pub trait TrinomialQuinticData: MontyParameters + Sized {
type ArrayLike: AsRef<[[MontyField31<Self>; 5]]> + Sized;
const EXT_GENERATOR: [MontyField31<Self>; 5];
const EXT_TWO_ADICITY: usize;
const FROBENIUS_COEFFS: [[MontyField31<Self>; 5]; 4];
const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike;
}Expand description
Data for a quintic extension using the trinomial polynomial X^5 + X^2 - 1.
This is required for fields where 5 does not divide (P - 1), making simple
binomial extensions X^5 - W impossible.
Required Associated Constants§
Sourceconst EXT_GENERATOR: [MontyField31<Self>; 5]
const EXT_GENERATOR: [MontyField31<Self>; 5]
Multiplicative generator of the extension field F_{p^5}*.
Sourceconst EXT_TWO_ADICITY: usize
const EXT_TWO_ADICITY: usize
Two-adicity of the extension field order p^5 - 1.
Sourceconst FROBENIUS_COEFFS: [[MontyField31<Self>; 5]; 4]
const FROBENIUS_COEFFS: [[MontyField31<Self>; 5]; 4]
Frobenius coefficients: FROBENIUS_COEFFS[k] = X^{(k+1)*p} mod (X^5 + X^2 - 1).
Sourceconst TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike
const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike
Generators of 2-adic subgroups not in the base field.
Required Associated Types§
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.