gray-code-0.2: Gray code encoder/decoder.



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.



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 last).

This function is undefined for negative numbers of types that do not have fixed bitsize, like Integer.

fromList :: Bits b => [Bool] -> bSource

Convert a list of bits in binary encoding to a number.

showBits :: [Bool] -> StringSource

Render a list of bits as a string of 0s and 1s.