Trait ark_ec::models::mnt4::MNT4Config
source · pub trait MNT4Config: 'static + Sized {
type Fp: PrimeField + Into<<Self::Fp as PrimeField>::BigInt>;
type Fr: PrimeField + Into<<Self::Fr as PrimeField>::BigInt>;
type Fp2Config: Fp2Config<Fp = Self::Fp>;
type Fp4Config: Fp4Config<Fp2Config = Self::Fp2Config>;
type G1Config: SWCurveConfig<BaseField = Self::Fp, ScalarField = Self::Fr>;
type G2Config: SWCurveConfig<BaseField = Fp2<Self::Fp2Config>, ScalarField = <Self::G1Config as CurveConfig>::ScalarField>;
Show 7 associated constants and 2 methods
const TWIST: Fp2<Self::Fp2Config>;
const TWIST_COEFF_A: Fp2<Self::Fp2Config>;
const ATE_LOOP_COUNT: &'static [i8];
const ATE_IS_LOOP_COUNT_NEG: bool;
const FINAL_EXPONENT_LAST_CHUNK_1: <Self::Fp as PrimeField>::BigInt;
const FINAL_EXPONENT_LAST_CHUNK_W0_IS_NEG: bool;
const FINAL_EXPONENT_LAST_CHUNK_ABS_OF_W0: <Self::Fp as PrimeField>::BigInt;
// Provided methods
fn multi_miller_loop(
a: impl IntoIterator<Item = impl Into<G1Prepared<Self>>>,
b: impl IntoIterator<Item = impl Into<G2Prepared<Self>>>
) -> MillerLoopOutput<MNT4<Self>> { ... }
fn final_exponentiation(
f: MillerLoopOutput<MNT4<Self>>
) -> Option<PairingOutput<MNT4<Self>>> { ... }
}