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

Codec.Binary.Gray.List

Description

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.

Synopsis

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.

toList' :: Bits 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 bitSize i.

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.