Struct snarkvm_curves::bls12_377::FrParameters
source · pub struct FrParameters;
Trait Implementations§
source§impl FftParameters for FrParameters
impl FftParameters for FrParameters
source§const TWO_ADIC_ROOT_OF_UNITY: BigInteger = _
const TWO_ADIC_ROOT_OF_UNITY: BigInteger = _
TWO_ADIC_ROOT_OF_UNITY = 8065159656716812877374967518403273466521432693661810619979959746626482506078 Encoded in Montgomery form, the value is (8065159656716812877374967518403273466521432693661810619979959746626482506078 * R % q) = 7039866554349711480672062101017509031917008525101396696252683426045173093960
type BigInteger = BigInteger256
source§const POWERS_OF_ROOTS_OF_UNITY: &'static [BigInteger] = _
const POWERS_OF_ROOTS_OF_UNITY: &'static [BigInteger] = _
TWO_ADIC_ROOT_OF_UNITY^2^i
for i := 0..TWO_ADICITY-1
source§const TWO_ADICITY: u32 = 47u32
const TWO_ADICITY: u32 = 47u32
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
.
2^s * t = MODULUS - 1 with t odd. This is the two-adicity of the prime. Read moresource§const SMALL_SUBGROUP_BASE: Option<u32> = None
const SMALL_SUBGROUP_BASE: Option<u32> = None
b
such that there exists a multiplicative subgroup
of size b^k
for some integer k
. Read moresource§const SMALL_SUBGROUP_BASE_ADICITY: Option<u32> = None
const SMALL_SUBGROUP_BASE_ADICITY: Option<u32> = None
k
such that there exists a multiplicative subgroup
of size Self::SMALL_SUBGROUP_BASE^k
. Read moresource§const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInteger> = None
const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInteger> = None
source§impl FieldParameters for FrParameters
impl FieldParameters for FrParameters
source§const GENERATOR: BigInteger = _
const GENERATOR: BigInteger = _
GENERATOR = 22 Encoded in Montgomery form, so the value is (22 * R) % q = 5642976643016801619665363617888466827793962762719196659561577942948671127251
source§const MODULUS: BigInteger = _
const MODULUS: BigInteger = _
MODULUS = 8444461749428370424248824938781546531375899335154063827935233455917409239041
source§const MODULUS_MINUS_ONE_DIV_TWO: BigInteger = _
const MODULUS_MINUS_ONE_DIV_TWO: BigInteger = _
(r - 1)/2 = 4222230874714185212124412469390773265687949667577031913967616727958704619520
source§const T: BigInteger = _
const T: BigInteger = _
t = (r - 1) / 2^s = 60001509534603559531609739528203892656505753216962260608619555
source§const T_MINUS_ONE_DIV_TWO: BigInteger = _
const T_MINUS_ONE_DIV_TWO: BigInteger = _
(t - 1) / 2 = 30000754767301779765804869764101946328252876608481130304309777
source§const CAPACITY: u32 = 252u32
const CAPACITY: u32 = 252u32
SELF::MODULUS_BITS - 1
) Read moresource§const MODULUS_BITS: u32 = 253u32
const MODULUS_BITS: u32 = 253u32
Self::MODULUS
.