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.

Implementations§

source§

impl DecoderImplementation

source

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

Builds and LDPC decoder.

Given a parity check matrix, this function builds an LDPC decoder corresponding to this decoder implementation.

Trait Implementations§

source§

impl Clone for DecoderImplementation

source§

fn clone(&self) -> DecoderImplementation

Returns a copy 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 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

§

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<DecoderImplementation> for DecoderImplementation

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for DecoderImplementation

source§

impl Eq for DecoderImplementation

source§

impl StructuralEq for DecoderImplementation

source§

impl StructuralPartialEq for DecoderImplementation

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

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

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

§

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 Twhere U: TryFrom<T>,

§

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

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

§

fn vzip(self) -> V