Skip to main content

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

Implementations on Foreign Types§

Source§

impl BinomiallyExtendable<2> for Goldilocks

Source§

impl BinomiallyExtendable<5> for Goldilocks

Source§

impl<const WIDTH: usize, FP> BinomiallyExtendable<WIDTH> for MontyField31<FP>

Source§

const W: MontyField31<FP> = FP::W

Source§

const DTH_ROOT: MontyField31<FP> = FP::DTH_ROOT

Source§

const EXT_GENERATOR: [MontyField31<FP>; WIDTH] = FP::EXT_GENERATOR

Implementors§