Trait halo2_proofs::arithmetic::FieldExt
[−]pub trait FieldExt: SqrtRatio + From<bool> + Ord + Group<Scalar = Self> {
const MODULUS: &'static str;
const ROOT_OF_UNITY_INV: Self;
const DELTA: Self;
const TWO_INV: Self;
const ZETA: Self;
fn from_u128(v: u128) -> Self;
fn from_bytes_wide(bytes: &[u8; 64]) -> Self;
fn get_lower_128(&self) -> u128;
fn pow(&self, by: &[u64; 4]) -> Self { ... }
}
Expand description
This trait is a common interface for dealing with elements of a finite field.
Required Associated Constants
const ROOT_OF_UNITY_INV: Self
const ROOT_OF_UNITY_INV: Self
Inverse of PrimeField::root_of_unity()
const DELTA: Self
const DELTA: Self
Generator of the $t-order$ multiplicative subgroup
const TWO_INV: Self
const TWO_INV: Self
Inverse of $2$ in the field.
const ZETA: Self
const ZETA: Self
Element of multiplicative order $3$.
Required Methods
fn from_bytes_wide(bytes: &[u8; 64]) -> Self
fn from_bytes_wide(bytes: &[u8; 64]) -> Self
Obtains a field element that is congruent to the provided little endian byte representation of an integer.
fn get_lower_128(&self) -> u128
fn get_lower_128(&self) -> u128
Gets the lower 128 bits of this field element when expressed canonically.
Provided Methods
Implementations on Foreign Types
impl FieldExt for Fq
impl FieldExt for Fq
fn from_bytes_wide(bytes: &[u8; 64]) -> Fq
fn from_bytes_wide(bytes: &[u8; 64]) -> Fq
Converts a 512-bit little endian integer into
a Fq
by reducing by the modulus.
const MODULUS: &'static str = "0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001"
const ROOT_OF_UNITY_INV: Fq = Fq::from_raw([6336227815658842166, 5391806631710861324, 17638615478710601409, 2465124479527549238])
const DELTA: Fq = DELTA
const TWO_INV: Fq = Fq::from_raw([14277384507177828353, 1234914826959606894, 0, 2305843009213693952])
const ZETA: Fq = Fq::from_raw([3074220081524903503, 1147650983937979311, 5845026731688660826, 468825539646214798])
fn from_u128(v: u128) -> Fq
fn get_lower_128(&self) -> u128
impl FieldExt for Fp
impl FieldExt for Fp
fn from_bytes_wide(bytes: &[u8; 64]) -> Fp
fn from_bytes_wide(bytes: &[u8; 64]) -> Fp
Converts a 512-bit little endian integer into
a Fp
by reducing by the modulus.