Trait ark_ff::fields::models::cubic_extension::CubicExtParameters[][src]

pub trait CubicExtParameters: 'static + Send + Sync {
    type BasePrimeField: PrimeField;
    type BaseField: Field<BasePrimeField = Self::BasePrimeField>;
    type FrobCoeff: Field;

    const DEGREE_OVER_BASE_PRIME_FIELD: usize;
    const NONRESIDUE: Self::BaseField;
    const FROBENIUS_COEFF_C1: &'static [Self::FrobCoeff];
    const FROBENIUS_COEFF_C2: &'static [Self::FrobCoeff];

    fn mul_base_field_by_frob_coeff(
        c1: &mut Self::BaseField,
        c2: &mut Self::BaseField,
        power: usize
    ); fn mul_base_field_by_nonresidue(fe: &Self::BaseField) -> Self::BaseField { ... } }

Associated Types

type BasePrimeField: PrimeField[src]

The prime field that this cubic extension is eventually an extension of.

type BaseField: Field<BasePrimeField = Self::BasePrimeField>[src]

The base field that this field is a cubic extension of.

type FrobCoeff: Field[src]

The type of the coefficients for an efficient implemntation of the Frobenius endomorphism.

Loading content...

Associated Constants

const DEGREE_OVER_BASE_PRIME_FIELD: usize[src]

The degree of the extension over the base prime field.

const NONRESIDUE: Self::BaseField[src]

The cubic non-residue used to construct the extension.

const FROBENIUS_COEFF_C1: &'static [Self::FrobCoeff][src]

Coefficients for the Frobenius automorphism.

const FROBENIUS_COEFF_C2: &'static [Self::FrobCoeff][src]

Loading content...

Required methods

fn mul_base_field_by_frob_coeff(
    c1: &mut Self::BaseField,
    c2: &mut Self::BaseField,
    power: usize
)
[src]

A specializable method for multiplying an element of the base field by the appropriate Frobenius coefficient.

Loading content...

Provided methods

fn mul_base_field_by_nonresidue(fe: &Self::BaseField) -> Self::BaseField[src]

A specializable method for multiplying an element of the base field by the quadratic non-residue. This is used in multiplication and squaring.

Loading content...

Implementors

impl<P: Fp3Parameters> CubicExtParameters for Fp3ParamsWrapper<P>[src]

type BasePrimeField = P::Fp

type BaseField = P::Fp

type FrobCoeff = P::Fp

impl<P: Fp6Parameters> CubicExtParameters for Fp6ParamsWrapper<P>[src]

type BasePrimeField = <P::Fp2Params as Fp2Parameters>::Fp

type BaseField = Fp2<P::Fp2Params>

type FrobCoeff = Fp2<P::Fp2Params>

Loading content...