1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
Name: bitwise
Version: 1.0.0.1
x-revision: 8
Synopsis: fast multi-dimensional unboxed bit packed Bool arrays
Description:
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:
.
* immutable random access single bit reads:
@BitArray ix@ is about 40% slower than @UArray ix Bool@,
.
* 'Control.Monad.ST.ST' mutable random access single bit reads:
@STBitArray s ix@ is about the same as @STUArray s ix Bool@,
.
* immutable map @Bool -> Bool@:
@BitArray ix@ is about 85x faster than @UArray ix Bool@,
.
* immutable zipWith @Bool -> Bool -> Bool@:
@BitArray ix@ is about 1300x faster than @UArray ix Bool@.
Homepage: https://code.mathr.co.uk/bitwise
License: BSD3
License-file: LICENSE
Author: Claude Heiland-Allen
Maintainer: claude@mathr.co.uk
Copyright: (c) 2012,2016,2018 Claude Heiland-Allen
Category: Data, Data Structures, Bit Vectors
Build-type: Simple
Cabal-version: >= 1.10
Library
Exposed-modules:
Data.Bits.Bitwise
Data.Array.BitArray
Data.Array.BitArray.IO
Data.Array.BitArray.ST
Data.Array.BitArray.ByteString
Codec.Image.PBM
Other-modules:
Data.Array.BitArray.Internal
Build-depends:
base >= 4.7 && < 4.19,
bytestring < 0.12,
array < 0.6
HS-source-dirs: src
Default-Language: Haskell2010
Other-Extensions: PatternGuards
GHC-Options: -Wall
Test-Suite bitwise-testsuite
type: exitcode-stdio-1.0
main-is: extra/testsuite.hs
build-depends:
bitwise,
base,
QuickCheck >= 2.4 && < 2.15
Default-Language: Haskell2010
Benchmark bitwise-benchmark
type: exitcode-stdio-1.0
main-is: extra/benchmark.hs
build-depends:
bitwise,
base,
array,
bytestring,
criterion >= 0.6 && < 1.7
Default-Language: Haskell2010
source-repository head
type: git
location: https://code.mathr.co.uk/bitwise.git
source-repository this
type: git
location: https://code.mathr.co.uk/bitwise.git
tag: v1.0.0.1
|