Struct snarkvm_curves::bls12_377::fq::FqParameters
source · pub struct FqParameters;
Trait Implementations§
source§impl FftParameters for FqParameters
impl FftParameters for FqParameters
type BigInteger = BigInteger384
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 = 46u32
const TWO_ADICITY: u32 = 46u32
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
.
2^s * t = MODULUS - 1 with t odd. This is the two-adicity of the prime. Read moresource§const TWO_ADIC_ROOT_OF_UNITY: BigInteger = _
const TWO_ADIC_ROOT_OF_UNITY: BigInteger = _
2^s root of unity, defined as
GENERATOR^t
.source§const 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
. Read moresource§const 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
. Read moresource§const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInteger> = None
const LARGE_SUBGROUP_ROOT_OF_UNITY: Option<Self::BigInteger> = None
GENERATOR^((MODULUS-1) / (2^s *
SMALL_SUBGROUP_BASE^SMALL_SUBGROUP_BASE_ADICITY)) Used for mixed-radix FFT. Read more
source§impl FieldParameters for FqParameters
impl FieldParameters for FqParameters
source§const GENERATOR: BigInteger = _
const GENERATOR: BigInteger = _
GENERATOR = -5
source§const MODULUS: BigInteger = _
const MODULUS: BigInteger = _
MODULUS = 258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177
source§const T: BigInteger = _
const T: BigInteger = _
T = (MODULUS - 1) // 2^S = 3675842578061421676390135839012792950148785745837396071634149488243117337281387659330802195819009059
source§const T_MINUS_ONE_DIV_TWO: BigInteger = _
const T_MINUS_ONE_DIV_TWO: BigInteger = _
(T - 1) // 2 = 1837921289030710838195067919506396475074392872918698035817074744121558668640693829665401097909504529
source§const CAPACITY: u32 = 376u32
const CAPACITY: u32 = 376u32
The number of bits that can be reliably stored.
(Should equal
SELF::MODULUS_BITS - 1
) Read moresource§const MODULUS_BITS: u32 = 377u32
const MODULUS_BITS: u32 = 377u32
The number of bits needed to represent the
Self::MODULUS
.source§const MODULUS_MINUS_ONE_DIV_TWO: BigInteger = _
const MODULUS_MINUS_ONE_DIV_TWO: BigInteger = _
(Self::MODULUS - 1) / 2
source§const R: BigInteger = _
const R: BigInteger = _
R = 2^256 % Self::MODULUS
source§const R2: BigInteger = _
const R2: BigInteger = _
R2 = R^2 % Self::MODULUS
source§const REPR_SHAVE_BITS: u32 = 7u32
const REPR_SHAVE_BITS: u32 = 7u32
The number of bits that must be shaved from the beginning of
the representation when randomly sampling. Read more
source§impl PoseidonDefaultParameters for FqParameters
impl PoseidonDefaultParameters for FqParameters
source§const PARAMS_OPT_FOR_CONSTRAINTS: [PoseidonDefaultParametersEntry; 7] = _
const PARAMS_OPT_FOR_CONSTRAINTS: [PoseidonDefaultParametersEntry; 7] = _
An array of the parameters optimized for constraints
(rate, alpha, full_rounds, partial_rounds, skip_matrices)
for rate = 2, 3, 4, 5, 6, 7, 8 Read more