pub struct BerTestBuilder<'a, Dec = DecoderImplementation> {
pub h: SparseMatrix,
pub decoder_implementation: Dec,
pub modulation: Modulation,
pub puncturing_pattern: Option<&'a [bool]>,
pub interleaving_columns: Option<isize>,
pub max_frame_errors: u64,
pub max_iterations: usize,
pub ebn0s_db: &'a [f32],
pub reporter: Option<Reporter>,
pub bch_max_errors: u64,
}
Expand description
BER test builder.
This struct contains all the parameters needed to create a BER test.
Fields§
§h: SparseMatrix
LDPC parity check matrix.
decoder_implementation: Dec
LDPC decoder implementation.
modulation: Modulation
Modulation.
puncturing_pattern: Option<&'a [bool]>
Codeword puncturing pattern.
interleaving_columns: Option<isize>
Codeword interleaving.
A negative value indicates that the columns should be read backwards.
max_frame_errors: u64
Maximum number of frame errors per Eb/N0.
max_iterations: usize
Maximum number of iterations per codeword.
ebn0s_db: &'a [f32]
List of Eb/N0’s (in dB) to simulate.
reporter: Option<Reporter>
An optional reporter object to which the BER test will send periodic updates about its progress.
bch_max_errors: u64
Maximum number of bit errors that the BCH decoder can correct.
A value of zero means that there is no BCH decoder.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a, Dec> Freeze for BerTestBuilder<'a, Dec>where
Dec: Freeze,
impl<'a, Dec> RefUnwindSafe for BerTestBuilder<'a, Dec>where
Dec: RefUnwindSafe,
impl<'a, Dec> Send for BerTestBuilder<'a, Dec>where
Dec: Send,
impl<'a, Dec> Sync for BerTestBuilder<'a, Dec>where
Dec: Sync,
impl<'a, Dec> Unpin for BerTestBuilder<'a, Dec>where
Dec: Unpin,
impl<'a, Dec> UnwindSafe for BerTestBuilder<'a, Dec>where
Dec: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more