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`

.