ark_ec::models::mnt6

Trait MNT6Config

Source
pub trait MNT6Config: 'static + Sized {
    type Fp: PrimeField + Into<<Self::Fp as PrimeField>::BigInt>;
    type Fr: PrimeField + Into<<Self::Fr as PrimeField>::BigInt>;
    type Fp3Config: Fp3Config<Fp = Self::Fp>;
    type Fp6Config: Fp6Config<Fp3Config = Self::Fp3Config>;
    type G1Config: SWCurveConfig<BaseField = Self::Fp, ScalarField = Self::Fr>;
    type G2Config: SWCurveConfig<BaseField = Fp3<Self::Fp3Config>, ScalarField = <Self::G1Config as CurveConfig>::ScalarField>;
Show 7 associated constants and 2 methods const TWIST: Fp3<Self::Fp3Config>; const TWIST_COEFF_A: Fp3<Self::Fp3Config>; 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<MNT6<Self>> { ... } fn final_exponentiation( f: MillerLoopOutput<MNT6<Self>>, ) -> Option<PairingOutput<MNT6<Self>>> { ... }
}

Required Associated Constants§

Required Associated Types§

Source

type Fp: PrimeField + Into<<Self::Fp as PrimeField>::BigInt>

Source

type Fr: PrimeField + Into<<Self::Fr as PrimeField>::BigInt>

Source

type Fp3Config: Fp3Config<Fp = Self::Fp>

Source

type Fp6Config: Fp6Config<Fp3Config = Self::Fp3Config>

Source

type G1Config: SWCurveConfig<BaseField = Self::Fp, ScalarField = Self::Fr>

Source

type G2Config: SWCurveConfig<BaseField = Fp3<Self::Fp3Config>, ScalarField = <Self::G1Config as CurveConfig>::ScalarField>

Provided Methods§

Source

fn multi_miller_loop( a: impl IntoIterator<Item = impl Into<G1Prepared<Self>>>, b: impl IntoIterator<Item = impl Into<G2Prepared<Self>>>, ) -> MillerLoopOutput<MNT6<Self>>

Source

fn final_exponentiation( f: MillerLoopOutput<MNT6<Self>>, ) -> Option<PairingOutput<MNT6<Self>>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§