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 => b -> [Bool]Source
Convert a number to a list of bits in usual binary encoding (most significant bit last). Truncates unset major bits.
This function is undefined for negative numbers of types that do not
have fixed bitsize, like Integer
.