Skip to main content

HasTwoAdicBinomialExtension

Trait HasTwoAdicBinomialExtension 

pub trait HasTwoAdicBinomialExtension<const D: usize>: BinomiallyExtendable<D> {
    const EXT_TWO_ADICITY: usize;

    // Required method
    fn ext_two_adic_generator(bits: usize) -> [Self; D];
}
Expand description

Trait for binomial extensions that support a two-adic subgroup generator.

Required Associated Constants§

const EXT_TWO_ADICITY: usize

Two-adicity of the multiplicative group of the extension field.

This is the number of times 2 divides the order of the field minus 1.

Required Methods§

fn ext_two_adic_generator(bits: usize) -> [Self; D]

Returns a two-adic generator for the extension field.

This is used to generate the 2^bits-th roots of unity in the extension field. Behavior is undefined if bits > EXT_TWO_ADICITY.

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§

§

impl HasTwoAdicBinomialExtension<2> for Felt

§

impl HasTwoAdicBinomialExtension<2> for Goldilocks

§

const EXT_TWO_ADICITY: usize = 33

§

fn ext_two_adic_generator(bits: usize) -> [Goldilocks; 2]

§

impl HasTwoAdicBinomialExtension<5> for Felt

§

impl HasTwoAdicBinomialExtension<5> for Goldilocks

§

const EXT_TWO_ADICITY: usize = 32

§

fn ext_two_adic_generator(bits: usize) -> [Goldilocks; 5]

§

impl<const WIDTH: usize, FP> HasTwoAdicBinomialExtension<WIDTH> for MontyField31<FP>
where FP: BinomialExtensionData<WIDTH> + TwoAdicData + FieldParameters,

§

const EXT_TWO_ADICITY: usize = FP::EXT_TWO_ADICITY

§

fn ext_two_adic_generator(bits: usize) -> [MontyField31<FP>; WIDTH]

Implementors§

§

impl<F, const D: usize> HasTwoAdicBinomialExtension<D> for BinomialExtensionField<F, 2>
where F: HasTwoAdicComplexBinomialExtension<D>,

§

const EXT_TWO_ADICITY: usize = F::COMPLEX_EXT_TWO_ADICITY