pub trait FftParameters:
'static
+ Send
+ Sync
+ Sized {
type BigInt: BigInteger;
const TWO_ADICITY: u32;
const TWO_ADIC_ROOT_OF_UNITY: Self::BigInt;
const SMALL_SUBGROUP_BASE: Option<u32> = None;
const SMALL_SUBGROUP_BASE_ADICITY: Option<u32> = None;
const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInt> = None;
}Expand description
A trait that defines parameters for a field that can be used for FFTs.
Required Associated Constants§
Sourceconst TWO_ADICITY: u32
const TWO_ADICITY: u32
Let N be the size of the multiplicative group defined by the field.
Then TWO_ADICITY is the two-adicity of N, i.e. the integer s
such that N = 2^s * t for some odd integer t.
Sourceconst TWO_ADIC_ROOT_OF_UNITY: Self::BigInt
const TWO_ADIC_ROOT_OF_UNITY: Self::BigInt
2^s root of unity computed by GENERATOR^t
Provided Associated Constants§
Sourceconst SMALL_SUBGROUP_BASE: Option<u32> = None
const SMALL_SUBGROUP_BASE: Option<u32> = None
An integer b such that there exists a multiplicative subgroup
of size b^k for some integer k.
Sourceconst SMALL_SUBGROUP_BASE_ADICITY: Option<u32> = None
const SMALL_SUBGROUP_BASE_ADICITY: Option<u32> = None
The integer k such that there exists a multiplicative subgroup
of size Self::SMALL_SUBGROUP_BASE^k.
Sourceconst LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInt> = None
const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInt> = None
GENERATOR^((MODULUS-1) / (2^s *
SMALL_SUBGROUP_BASE^SMALL_SUBGROUP_BASE_ADICITY)) Used for mixed-radix FFT.
Required Associated Types§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".