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;
// Provided method
fn mul_w<A: Algebra<MontyField31<Self>>>(a: A) -> A { ... }
}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§
Sourceconst W: MontyField31<Self>
const W: MontyField31<Self>
W is a value such that (x^DEG - W) is irreducible.
Sourceconst DTH_ROOT: MontyField31<Self>
const DTH_ROOT: MontyField31<Self>
DTH_ROOT = W^((p - 1)/DEG)
Sourceconst EXT_GENERATOR: [MontyField31<Self>; DEG]
const EXT_GENERATOR: [MontyField31<Self>; DEG]
A generator of the extension fields multiplicative group.
const EXT_TWO_ADICITY: usize
Sourceconst TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike
const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike
A list of generators of 2-adic subgroups not contained in the base field.
Required Associated Types§
Provided Methods§
Sourcefn mul_w<A: Algebra<MontyField31<Self>>>(a: A) -> A
fn mul_w<A: Algebra<MontyField31<Self>>>(a: A) -> A
Multiply a field element (or packed field element) by W.
Defaults to standard multiplication but this can be reimplemented to
make use of the exact value of W. E.g. if W = 2, 3 this should be
reimplemented using addition.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".