bv-little: Efficient little-endian bit vector library

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

. This package contains a time- and space- efficient implementation of little-endian, immutable bit vectors. Provides implementations of applicable typeclasses and numeric conversions. . The declared cost of each operation is either worst-case or amortized. . For an implementation of big-endian, immutable bit vectors use the bv package. . For an implementation of little-endian, mutable bit vectors, use the bitvec package.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.1, 0.1.2, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.3.0, 1.3.0, 1.3.1, 1.3.2
Change log changelog.md
Dependencies base (>=4.16.1 && <5), binary (>=0.8 && <0.9), bv-little, deepseq (>=1.4.6 && <1.5), hashable (>=1.4 && <1.5), integer-gmp (>=1.1 && <1.2), keys (>=3.12 && <3.13), mono-traversable (>=1.0.5.0 && <1.1), mono-traversable-keys (>=0.3 && <0.4), primitive (>=0.7.2 && <0.8), QuickCheck (>=2.14.2 && <2.15), text-show (>=3.10 && <3.11) [details]
License BSD-3-Clause
Copyright (c) Alex Washburn 2020
Author Alex Washburn
Maintainer hackage@recursion.ninja
Category Data, Bit Vectors
Home page https://github.com/recursion-ninja/bv-little
Bug tracker https://github.com/recursion-ninja/bv-little/issues
Source repo head: git clone https://github.com/recursion-ninja/bv-little
Uploaded by recursion_ninja at 2023-07-11T12:38:36Z

library bv-little

Modules

[Index] [Quick Jump]

library bv-little:instances-text-show

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.TextShow

library bv-little:instances-quickcheck

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.QuickCheck

library bv-little:instances-mono-traversable-keys

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.MonoKeyed

library bv-little:instances-mono-traversable

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.MonoTraversable

library bv-little:instances-binary

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.Binary

library bv-little:instances

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.Instances

library bv-little:core

Modules

[Index] [Quick Jump]

  • Data
    • BitVector
      • LittleEndian
        • Data.BitVector.LittleEndian.Internal

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for bv-little-1.3.0

[back to package description]

Efficient little-endian bit vector Haskell library

Build Status Workflow Status Coverage Status License FreeBSD

Hackage Hackage CI

Stackage LTS Stackage Nightly

This package contains an efficient implementation of little-endian, immutable bit vectors. It implements most applicable type-classes and also conversions to and from signed or unsigned numbers.

For an implementation of big-endian, immutable bit vectors, use the bv package.

For an implementation of little-endian, mutable bit vectors, use the bitvec package.

Tests

The test suite ensures that all type-class instances are "lawful" and that data-structure–specific functionality is well defined.

The TestSuite.hs file contains the specification. It can be run by invoking any of the following commands:

Benchmarks

The benchmarks provide an empyrical check for the asymptotic complexity of data structure operations and also provide easy metrics for detecting performance regressions.

The Benchmarks.hs file contains these metrics. It can be run by invoking any of the following commands: