BSD-3-Clause licensed by Alex Washburn

Module documentation for 1.1.1

This version can be pinned in stack with:bv-little-1.1.1@sha256:52316b5a6099bf120f69656b88dfcfe6b2d722f868087ae4cccff4faee04d4c3,7452

Efficient little-endian bit vector Haskell library

Build 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 typeclasses 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 typeclass 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:

  • cabal new-test

  • cabal test

  • stack test

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 Benchmaks.hs file contains these metrics. It can be run by invoking any of the following commands:

  • cabal new-bench

  • cabal bench

  • stack bench

Changes

Unreleased Changes

  • None

[v1.1.1][6]

  • Added more benchmarks

  • Updated test suite to be more reliable

v1.1.0

  • Added rank and select functions

v1.0.1

  • Correcting Eq instance to test for value equality and not construction equality

  • Updated unit tests do not fail when the antecedent of logical implication cannot be satisfied

v1.0.0

  • Added explicit recursion to monomorphic folds to improve time and space performance

  • Added the following instances:

    • MonoAdjustable
    • MonoFoldableWithKey
    • MonoIndexable
    • MonoKeyed
    • MonoLookup
    • MonoTraversableWithKey
    • MonoZip
    • MonoZipWithKey
    • TextShow
  • Updated the following functions to be constant time:

    • omap
    • olength64
    • oall
    • oany
    • ofoldr1Ex
    • ofoldl1Ex
    • oelem
    • onotElem
    • ozipWith

v0.1.2

  • Updating to base bounds for GHC 8.6.1

v0.1.1

  • Updated to well-typed internal representation

  • Corrected defect in rotate, rotateL, and rotateR

  • Improved performance by switching exponentiation with base 2 to bit shifting operations

  • Improved performance of clearBit by increasing strictness

  • Increased benchmark coverage

  • Increased test suite coverage

v0.1.0

  • Created instances of applicable typeclass instances

  • Added numeric conversion functions

  • Added basic test suite

  • Added stub benchmark

comments powered byDisqus