Trait snarkvm_wasm::FieldParameters [−][src]
pub trait FieldParameters: 'static + FftParameters { const MODULUS: Self::BigInteger; const MODULUS_BITS: u32; const REPR_SHAVE_BITS: u32; const R: Self::BigInteger; const R2: Self::BigInteger; const INV: u64; const GENERATOR: Self::BigInteger; const CAPACITY: u32; const T: Self::BigInteger; const T_MINUS_ONE_DIV_TWO: Self::BigInteger; const MODULUS_MINUS_ONE_DIV_TWO: Self::BigInteger; }
Expand description
A trait that defines parameters for a prime field.
Associated Constants
const MODULUS: Self::BigInteger
const MODULUS: Self::BigIntegerThe modulus of the field.
const MODULUS_BITS: u32
const MODULUS_BITS: u32The number of bits needed to represent the Self::MODULUS.
const REPR_SHAVE_BITS: u32
const REPR_SHAVE_BITS: u32The number of bits that must be shaved from the beginning of the representation when randomly sampling.
const R: Self::BigInteger
const R: Self::BigIntegerR = 2^256 % Self::MODULUS
const R2: Self::BigInteger
const R2: Self::BigIntegerR2 = R^2 % Self::MODULUS
const GENERATOR: Self::BigInteger
const GENERATOR: Self::BigIntegerA multiplicative generator that is also a quadratic nonresidue.
Self::GENERATOR is an element having multiplicative order
Self::MODULUS - 1.
There also does not exist x such that Self::GENERATOR = x^2 % Self::MODULUS
The number of bits that can be reliably stored.
(Should equal SELF::MODULUS_BITS - 1)
const T: Self::BigInteger
const T: Self::BigIntegert for 2^s * t = MODULUS - 1
const T_MINUS_ONE_DIV_TWO: Self::BigInteger
const T_MINUS_ONE_DIV_TWO: Self::BigInteger(t - 1) / 2
const MODULUS_MINUS_ONE_DIV_TWO: Self::BigInteger
const MODULUS_MINUS_ONE_DIV_TWO: Self::BigInteger(Self::MODULUS - 1) / 2