pub trait PrimeField: FftField<FftParameters = Self::Parameters> + PoseidonDefaultField + FromStr<Err = FieldError> {
    type Parameters: FieldParameters<BigInteger = Self::BigInteger>;
    type BigInteger: BigInteger;

    const SIZE_IN_BITS: usize = <Self::Parameters>::MODULUS_BITS as usize;
    const SIZE_IN_DATA_BITS: usize = <Self::Parameters>::CAPACITY as usize;

    fn from_bigint(repr: Self::BigInteger) -> Option<Self>;
    fn to_bigint(&self) -> Self::BigInteger;
    fn decompose(
        &self,
        q1: &[u64; 4],
        q2: &[u64; 4],
        b1: Self,
        b2: Self,
        r128: Self,
        half_r: &[u64; 8]
    ) -> (Self, Self, bool, bool); fn size_in_bits() -> usize { ... } fn size_in_data_bits() -> usize { ... } fn modulus() -> Self::BigInteger { ... } fn modulus_minus_one_div_two() -> Self::BigInteger { ... } fn trace() -> Self::BigInteger { ... } fn trace_minus_one_div_two() -> Self::BigInteger { ... } fn from_bytes_be_mod_order(bytes: &[u8]) -> Self { ... } fn from_bytes_le_mod_order(bytes: &[u8]) -> Self { ... } }
Expand description

The interface for a prime field.

Required Associated Types

Provided Associated Constants

Returns the field size in bits.

Returns the field capacity for data bits.

Required Methods

Constructs a PrimeField element given a human-readable Self::BigInteger.

Returns a human-readable Self::BigInteger in the range 0..(Self::MODULUS - 1).

Returns the decomposition of the scalar.

Provided Methods

Returns the field size in bits.

Returns the capacity size for data bits.

Returns the modulus.

Returns the modulus minus one divided by two.

Returns the trace.

Returns the trace minus one divided by two.

Reads bytes in big-endian, and converts them to a field element. If the bytes are larger than the modulus, it will reduce them.

Reads bytes in little-endian, and converts them to a field element. If the bytes are larger than the modulus, it will reduce them.

Implementors