BinomiallyExtendable

Trait BinomiallyExtendable 

Source
pub trait BinomiallyExtendable<const D: usize>: Field + BinomiallyExtendableAlgebra<Self, D> {
    const W: Self;
    const DTH_ROOT: Self;
    const EXT_GENERATOR: [Self; D];
}
Expand description

Trait for fields that support binomial extension of the form F[X]/(X^D - W).

A type implementing this trait can define a degree-D extension field using an irreducible binomial polynomial X^D - W, where W is a nonzero constant in the base field.

This is used to construct extension fields with efficient arithmetic.

Required Associated Constants§

Source

const W: Self

The constant coefficient W in the binomial X^D - W.

Source

const DTH_ROOT: Self

A D-th root of unity derived from W.

This is W^((n - 1)/D), where n is the order of the field. Valid only when n = kD + 1 for some k.

Source

const EXT_GENERATOR: [Self; D]

A generator for the extension field, expressed as a degree-D polynomial.

This is an array of size D, where each entry is a base field element.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<F, const D: usize> BinomiallyExtendable<D> for Complex<F>

Source§

const W: Self

Source§

const DTH_ROOT: Self

Source§

const EXT_GENERATOR: [Self; D] = F::EXT_GENERATOR

Source§

impl<F: ComplexExtendable> BinomiallyExtendable<2> for F

Source§

const W: Self = F::NEG_ONE

Source§

const DTH_ROOT: Self = F::NEG_ONE

Source§

const EXT_GENERATOR: [Self; 2]