Trait reed_solomon_erasure::Field
source · [−]pub trait Field: Sized {
type Elem: Default + Clone + Copy + PartialEq + Debug;
const ORDER: usize;
fn add(a: Self::Elem, b: Self::Elem) -> Self::Elem;
fn mul(a: Self::Elem, b: Self::Elem) -> Self::Elem;
fn div(a: Self::Elem, b: Self::Elem) -> Self::Elem;
fn exp(a: Self::Elem, n: usize) -> Self::Elem;
fn zero() -> Self::Elem;
fn one() -> Self::Elem;
fn nth_internal(n: usize) -> Self::Elem;
fn nth(n: usize) -> Self::Elem { ... }
fn mul_slice(elem: Self::Elem, input: &[Self::Elem], out: &mut [Self::Elem]) { ... }
fn mul_slice_add(
elem: Self::Elem,
input: &[Self::Elem],
out: &mut [Self::Elem]
) { ... }
}
Expand description
A finite field to perform encoding over.
Required Associated Types
Required Associated Constants
Required Methods
fn nth_internal(n: usize) -> Self::Elem
Provided Methods
Yield the nth element of the field. Panics if n >= ORDER.
Assignment is arbitrary but must be unique to n
.
Multiply a slice of elements by another. Writes into the output slice.
Panics
Panics if the output slice does not have equal length to the input.