[−][src]Struct believer::generators::increasing_range_code::IncreasingRangeCodeGenerator
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.
fn generate(&self) -> ParityCheckMatrix
[src]
Auto Trait Implementations
impl Send for IncreasingRangeCodeGenerator
impl Sync for IncreasingRangeCodeGenerator
impl Unpin for IncreasingRangeCodeGenerator
impl UnwindSafe for IncreasingRangeCodeGenerator
impl RefUnwindSafe for IncreasingRangeCodeGenerator
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,