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", so this trait is not object safe.

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§