Enum DecoderImplementation

Source
pub enum DecoderImplementation {
Show 36 variants Phif64, Phif32, Tanhf64, Tanhf32, Minstarapproxf64, Minstarapproxf32, Minstarapproxi8, Minstarapproxi8Jones, Minstarapproxi8PartialHardLimit, Minstarapproxi8JonesPartialHardLimit, Minstarapproxi8Deg1Clip, Minstarapproxi8JonesDeg1Clip, Minstarapproxi8PartialHardLimitDeg1Clip, Minstarapproxi8JonesPartialHardLimitDeg1Clip, Aminstarf64, Aminstarf32, Aminstari8, Aminstari8Jones, Aminstari8PartialHardLimit, Aminstari8JonesPartialHardLimit, Aminstari8Deg1Clip, Aminstari8JonesDeg1Clip, Aminstari8PartialHardLimitDeg1Clip, Aminstari8JonesPartialHardLimitDeg1Clip, HLPhif64, HLPhif32, HLTanhf64, HLTanhf32, HLMinstarapproxf64, HLMinstarapproxf32, HLMinstarapproxi8, HLMinstarapproxi8PartialHardLimit, HLAminstarf64, HLAminstarf32, HLAminstari8, HLAminstari8PartialHardLimit,
}
Expand description

LDPC decoder implementation.

This enum lists the LDPC decoder implementations corresponding to different arithmetic rules.

Variants§

§

Phif64

The Phif64 implementation, using f64 and the involution phi(x). This uses a flooding schedule.

§

Phif32

The Phif32 implementation, using f32 and the involution phi(x). This uses a flooding schedule.

§

Tanhf64

The Tanhf64 implementation, using f64 and the tanh rule. This uses a flooding schedule.

§

Tanhf32

The Tanhf32 implementation, using f32 and the tanh rule. This uses a flooding schedule.

§

Minstarapproxf64

The Minstarapproxf64 implementation, using f64 and an approximation to the min* function. This uses a flooding schedule.

§

Minstarapproxf32

The Minstarapproxf32 implementation, using f32 and an approximation to the min* function. This uses a flooding schedule.

§

Minstarapproxi8

The Minstarapproxi8 implementation, using 8-bit quantization and a quantized approximation to the min* function (implemented using small table lookup). This uses a flooding schedule.

§

Minstarapproxi8Jones

The Minstarapproxi8Jones implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and Jones clipping for variable nodes. This uses a flooding schedule.

§

Minstarapproxi8PartialHardLimit

The Minstarapproxi8PartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and partial hard-limiting for check nodes. This uses a flooding schedule.

§

Minstarapproxi8JonesPartialHardLimit

The Minstarapproxi8JonesPartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, and partial hard-limiting for check nodes. This uses a flooding schedule.

§

Minstarapproxi8Deg1Clip

The Minstarapproxi8Deg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and degree-1 variable node clipping. This uses a flooding schedule.

§

Minstarapproxi8JonesDeg1Clip

The Minstarapproxi8JonesDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

Minstarapproxi8PartialHardLimitDeg1Clip

The Minstarapproxi8PartialHardLimitDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), partial hard-limiting for check nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

Minstarapproxi8JonesPartialHardLimitDeg1Clip

The Minstarapproxi8JonesPartialHardLimitDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, partial hard-limiting for check nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

Aminstarf64

The Aminstarf64 implementation, using f64 and an approximation to the min* function. This uses a flooding schedule.

§

Aminstarf32

The Aminstarf32 implementation, using f32 and an approximation to the min* function. This uses a flooding schedule.

§

Aminstari8

The Aminstari8 implementation, using 8-bit quantization and a quantized approximation to the min* function (implemented using small table lookup). This uses a flooding schedule.

§

Aminstari8Jones

The Aminstari8Jones implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and Jones clipping for variable nodes. This uses a flooding schedule.

§

Aminstari8PartialHardLimit

The Aminstari8PartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and partial hard-limiting for check nodes. This uses a flooding schedule.

§

Aminstari8JonesPartialHardLimit

The Aminstari8JonesPartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, and partial hard-limiting for check nodes. This uses a flooding schedule.

§

Aminstari8Deg1Clip

The Aminstari8Deg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and degree-1 variable node clipping. This uses a flooding schedule.

§

Aminstari8JonesDeg1Clip

The Aminstari8JonesDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

Aminstari8PartialHardLimitDeg1Clip

The Aminstari8PartialHardLimitDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), partial hard-limiting for check nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

Aminstari8JonesPartialHardLimitDeg1Clip

The Aminstari8JonesPartialHardLimitDeg1Clip implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), Jones clipping for variable nodes, partial hard-limiting for check nodes, and degree-1 variable node clipping. This uses a flooding schedule.

§

HLPhif64

The Phif64 implementation, using f64 and the involution phi(x). This uses a horizontal layered schedule.

§

HLPhif32

The Phif32 implementation, using f32 and the involution phi(x). This uses a horizontal layered schedule.

§

HLTanhf64

The Tanhf64 implementation, using f64 and the tanh rule. This uses a horizontal layered schedule.

§

HLTanhf32

The Tanhf32 implementation, using f32 and the tanh rule. This uses a horizontal layered schedule.

§

HLMinstarapproxf64

The Minstarapproxf64 implementation, using f64 and an approximation to the min* function. This uses a horizontal layered schedule.

§

HLMinstarapproxf32

The Minstarapproxf32 implementation, using f32 and an approximation to the min* function. This uses a horizontal layered schedule.

§

HLMinstarapproxi8

The Minstarapproxi8 implementation, using 8-bit quantization and a quantized approximation to the min* function (implemented using small table lookup). This uses a horizontal layered schedule.

§

HLMinstarapproxi8PartialHardLimit

The Minstarapproxi8PartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and partial hard-limiting for check nodes. This uses a horizontal layered schedule.

§

HLAminstarf64

The Aminstarf64 implementation, using f64 and an approximation to the min* function. This uses a horizontal layered schedule.

§

HLAminstarf32

The Aminstarf32 implementation, using f32 and an approximation to the min* function. This uses a horizontal layered schedule.

§

HLAminstari8

The Aminstari8 implementation, using 8-bit quantization and a quantized approximation to the min* function (implemented using small table lookup). This uses a horizontal layered schedule.

§

HLAminstari8PartialHardLimit

The Aminstari8PartialHardLimit implementation, using 8-bit quantization, a quantized approximation to the min* function (implemented using small table lookup), and partial hard-limiting for check nodes. This uses a horizontal layered schedule.

Trait Implementations§

Source§

impl Clone for DecoderImplementation

Source§

fn clone(&self) -> DecoderImplementation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DecoderImplementation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DecoderFactory for DecoderImplementation

Source§

fn build_decoder(&self, h: SparseMatrix) -> Box<dyn LdpcDecoder>

Builds and LDPC decoder. Read more
Source§

impl Display for DecoderImplementation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl FromStr for DecoderImplementation

Source§

type Err = &'static str

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for DecoderImplementation

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DecoderImplementation

Source§

fn eq(&self, other: &DecoderImplementation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ValueEnum for DecoderImplementation

Source§

fn value_variants<'a>() -> &'a [Self]

All possible argument values, in display order.
Source§

fn to_possible_value<'a>(&self) -> Option<PossibleValue>

The canonical argument value. Read more
Source§

fn from_str(input: &str, ignore_case: bool) -> Result<Self, String>

Parse an argument into Self.
Source§

impl Copy for DecoderImplementation

Source§

impl Eq for DecoderImplementation

Source§

impl StructuralPartialEq for DecoderImplementation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V