pub trait WithSmallOrderMulGroup<const N: u8>: PrimeField {
const ZETA: Self;
}
Expand description
The subset of prime-order fields such that (modulus - 1)
is divisible by N
.
If N
is prime, there will be N - 1
valid choices of Self::ZETA
. Similarly to
PrimeField::MULTIPLICATIVE_GENERATOR
, the specific choice does not matter, as long
as the choice is consistent across all uses of the field.
Required Associated Constants§
Sourceconst ZETA: Self
const ZETA: Self
A field element of small multiplicative order $N$.
The presense of this element allows you to perform (certain types of) endomorphisms on some elliptic curves.
It can be calculated using SageMath as
GF(modulus).primitive_element() ^ ((modulus - 1) // N)
.
Choosing the element of order $N$ that is smallest, when considered
as an integer, may help to ensure consistency.
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.