[][src]Struct believer::generators::increasing_range_code::IncreasingRangeCodeGenerator

pub struct IncreasingRangeCodeGenerator { /* fields omitted */ }

A generator for increasing range code.

An increasing range code is a ldpc code where half the checks fit in a box of length initial_range, a quarter in a box of length 2 * initial_range, an eight in a box of length 4 * initial_range and so on.

The way to create a IncreasingRangeCodeGenerator is to use the IRCodeGenBuilder interface.

Example

use believer::{IRCodeGenBuilder, CodeGenerator};
let n_bits = 4;
let n_checks = 3;
let generator = IRCodeGenBuilder::new(n_bits, n_checks)
    .with_max_bit_degree(3)
    .with_max_check_degree(4)
    .build();

let code = generator.generate();

assert_eq!(code.get_n_bits(), 4);
assert_eq!(code.get_n_checks(), 3);

// Bit degrees are at most 3.
code.get_bit_degrees().iter().for_each(|&d| assert_eq!(d <= 3, true));

// Check degrees are at most 4.
code.get_check_degrees().iter().for_each(|&d| assert_eq!(d <= 4, true));

Trait Implementations

impl CodeGenerator for IncreasingRangeCodeGenerator[src]

fn generate_with_rng<R: Rng>(&self, rng: &mut R) -> ParityCheckMatrix[src]

Returns a code generated by the generator.

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,