Copyright | (c) Adam C. Foltzer 2011-2015 |
---|---|
License | BSD3 |
Maintainer | acfoltzer@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
- type BitVector = Vector Bool
- unpack :: FiniteBits a => a -> BitVector
- pack :: (Num a, Bits a) => BitVector -> a
- unpackInteger :: Integer -> BitVector
- packInteger :: BitVector -> Integer
- unpackInt :: Int -> BitVector
- packInt :: BitVector -> Int
- pad :: Int -> BitVector -> BitVector
- padMax :: BitVector -> BitVector -> (BitVector, BitVector)
- zipPad :: BitVector -> BitVector -> Vector (Bool, Bool)
- trimLeading :: BitVector -> BitVector
- (==~) :: BitVector -> BitVector -> Bool
Bit vectors
Conversions
To and from other Bits
instances
unpack :: FiniteBits a => a -> BitVector Source
Converts an instance of FiniteBits
to a BitVector
.
Specialized conversions
unpackInteger :: Integer -> BitVector Source
packInteger :: BitVector -> Integer Source
Utilities
zipPad :: BitVector -> BitVector -> Vector (Bool, Bool) Source
Like zip
, except pads the vectors to equal length
rather than discarding elements of the longer vector.
trimLeading :: BitVector -> BitVector Source