LDPC
A toolbox for classical (and soon quantum) LDPC codes. For now, only classical linear codes are implemented. There is also a generic implementation of noise model that can be used to generate random error for codes.
Example
use LinearCode;
use BinarySymmetricChannel;
use thread_rng;
// This sample a random regular LDPC code.
let code = random_regular_code
.block_size
.number_of_checks
.bit_degree
.check_degree
.sample_with;
let noise = with_probability;
// The error is a sparse binary vector where each 1 represent a bit flip.
let error = code.random_error;