p3_monty_31

Trait BinomialExtensionData

Source
pub trait BinomialExtensionData<const DEG: usize>: MontyParameters + Sized {
    type ArrayLike: AsRef<[[MontyField31<Self>; DEG]]> + Sized;

    const W: MontyField31<Self>;
    const DTH_ROOT: MontyField31<Self>;
    const EXT_GENERATOR: [MontyField31<Self>; DEG];
    const EXT_TWO_ADICITY: usize;
    const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike;
}
Expand description

TODO: This should be deleted long term once we have improved our API for defining extension fields. This allows us to implement Binomial Extensions over Monty31 fields.

Required Associated Constants§

Source

const W: MontyField31<Self>

W is a value such that (x^DEG - WN) is irreducible.

Source

const DTH_ROOT: MontyField31<Self>

DTH_ROOT = W^((p - 1)/DEG)

Source

const EXT_GENERATOR: [MontyField31<Self>; DEG]

A generator of the extension fields multiplicative group.

Source

const EXT_TWO_ADICITY: usize

Source

const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike

A list of generators of 2-adic subgroups not contained in the base field.

Required Associated Types§

Source

type ArrayLike: AsRef<[[MontyField31<Self>; DEG]]> + Sized

ArrayLike should usually be [MontyField31; EXT_TWO_ADICITY - 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.

Implementors§