Trait ark_ff::fields::models::quadratic_extension::QuadExtParameters [−][src]
Defines a Quadratic extension field from a quadratic non-residue.
Associated Types
type BasePrimeField: PrimeField
[src]
The prime field that this quadratic extension is eventually an extension of.
type BaseField: Field<BasePrimeField = Self::BasePrimeField>
[src]
The base field that this field is a quadratic extension of.
type FrobCoeff: Field
[src]
The type of the coefficients for an efficient implemntation of the Frobenius endomorphism.
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 quadratic non-residue used to construct the extension.
const FROBENIUS_COEFF_C1: &'static [Self::FrobCoeff]
[src]
Coefficients for the Frobenius automorphism.
Required methods
fn mul_base_field_by_frob_coeff(fe: &mut Self::BaseField, power: usize)
[src]
A specializable method for multiplying an element of the base field by the appropriate Frobenius coefficient.
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 Karatsuba multiplication and in complex squaring.
fn add_and_mul_base_field_by_nonresidue(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
A specializable method for computing x + mul_base_field_by_nonresidue(y) This allows for optimizations when the non-residue is canonically negative in the field.
fn add_and_mul_base_field_by_nonresidue_plus_one(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
A specializable method for computing x + mul_base_field_by_nonresidue(y) + y This allows for optimizations when the non-residue is not -1.
fn sub_and_mul_base_field_by_nonresidue(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
A specializable method for computing x - mul_base_field_by_nonresidue(y) This allows for optimizations when the non-residue is canonically negative in the field.
fn cyclotomic_exp(
fe: &QuadExtField<Self>,
exponent: impl AsRef<[u64]>
) -> QuadExtField<Self>
[src]
fe: &QuadExtField<Self>,
exponent: impl AsRef<[u64]>
) -> QuadExtField<Self>
A specializable method for exponentiating that is to be used
only when fe
is known to be in the cyclotommic subgroup.
Implementors
impl<P: Fp2Parameters> QuadExtParameters for Fp2ParamsWrapper<P>
[src]
type BasePrimeField = P::Fp
type BaseField = P::Fp
type FrobCoeff = P::Fp
const DEGREE_OVER_BASE_PRIME_FIELD: usize
[src]
const NONRESIDUE: Self::BaseField
[src]
const FROBENIUS_COEFF_C1: &'static [Self::FrobCoeff]
[src]
fn mul_base_field_by_nonresidue(fe: &Self::BaseField) -> Self::BaseField
[src]
fn add_and_mul_base_field_by_nonresidue(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
fn add_and_mul_base_field_by_nonresidue_plus_one(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
fn sub_and_mul_base_field_by_nonresidue(
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField
[src]
x: &Self::BaseField,
y: &Self::BaseField
) -> Self::BaseField