The bitwise package

[Tags:bsd3, library]

Unboxed multidimensional bit packed Bool arrays with fast aggregate operations based on lifting Bool operations to bitwise operations.

There are many other bit packed structures out there, but none met all of these requirements:

  1. unboxed bit packed Bool array,

  2. multi-dimensional indexing,

  3. fast (de)serialization, or interoperable with foreign code,

  4. fast aggregate operations (fold, map, zip).

Quick tour of the bitwise library:

Data.Bits.Bitwise
Lift boolean operations on Bool to bitwise operations on Data.Bits.Bits.
Data.Array.BitArray
Immutable bit arrays.
Data.Array.BitArray.ST
Mutable bit arrays in Control.Monad.ST.ST.
Data.Array.BitArray.IO
Mutable bit arrays in IO.
Data.Array.BitArray.ByteString
(De)serialization.
Codec.Image.PBM
Portable bitmap monochrome 2D image format.

Very rough performance benchmarks:


[Skip to Readme]

Properties

Versions 0.1, 0.1.0.1, 0.1.0.2, 0.1.1, 0.1.1.1
Dependencies array, base (>=2 && <6), bytestring [details]
License BSD3
Copyright (c) 2012 Claude Heiland-Allen
Author Claude Heiland-Allen
Maintainer claudiusmaximus@goto10.org
Stability Unknown
Category Data, Data Structures, Bit Vectors
Home page https://gitorious.org/bitwise
Source repository head: git clone git://gitorious.org/bitwise/bitwise.git
this: git clone git://gitorious.org/bitwise/bitwise.git(tag v0.1)
Uploaded Sat Apr 28 19:32:39 UTC 2012 by ClaudeHeilandAllen
Distributions LTSHaskell:0.1.1.1, NixOS:0.1.1
Downloads 1115 total (12 in the last 30 days)
Votes
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for bitwise

Readme for bitwise-0.1

Interactive interpreted usage without having installed first
requires adding a search path for the respective environment:

  hugs -98 -P:src:hugs98
  ghci-7.0.4 -isrc:ghc70
  ghci-7.4.1 -isrc:ghc74

ghc < 7 has not been tested, reports welcome.