Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Gray code is a binary numeral system where two successive numbers differ in only one bit.
This module provides an interface to encode/decode numbers
represented as lists of Bool
.
Algorithm: Haupt, R.L. and Haupt, S.E., Practical Genetic Algorithms, Second ed. (2004), 5.4. Gray Codes.
Documentation
gray :: [Bool] -> [Bool] Source
Take a list of bits (most significant last) in binary encoding and convert them to Gray code.
binary :: [Bool] -> [Bool] Source
Take a list of bits in Gray code and convert them to binary encoding (most significant bit last).
toList :: (Bits b, Num b) => b -> [Bool] Source
Convert a number to a list of bits in usual binary encoding (most significant bit last). Truncates unset major bits.
The function may be also applied to unbounded integral types (like
Integer
): it will return a list of bits for positive values, and
an empty list for negative values or zero.
toList' :: (FiniteBits b, Num b) => b -> [Bool] Source
Convert a number to a list of bits in usual binary encoding (most significant bit last).
Like toList
, but returns all unset major bits too. So the length
of the output is always the same length as finiteBitSize i
.