ark_ec::models::bw6

Trait BW6Config

Source
pub trait BW6Config:
    'static
    + Eq
    + Sized {
    type Fp: PrimeField + Into<<Self::Fp as PrimeField>::BigInt>;
    type Fp3Config: Fp3Config<Fp = Self::Fp>;
    type Fp6Config: Fp6Config<Fp3Config = Self::Fp3Config>;
    type G1Config: SWCurveConfig<BaseField = Self::Fp>;
    type G2Config: SWCurveConfig<BaseField = Self::Fp, ScalarField = <Self::G1Config as CurveConfig>::ScalarField>;
Show 11 associated constants and 5 methods const X: <Self::Fp as PrimeField>::BigInt; const X_IS_NEGATIVE: bool; const X_MINUS_1_DIV_3: <Self::Fp as PrimeField>::BigInt; const ATE_LOOP_COUNT_1: &'static [u64]; const ATE_LOOP_COUNT_1_IS_NEGATIVE: bool; const ATE_LOOP_COUNT_2: &'static [i8]; const ATE_LOOP_COUNT_2_IS_NEGATIVE: bool; const TWIST_TYPE: TwistType; const H_T: i64; const H_Y: i64; const T_MOD_R_IS_ZERO: bool; // Provided methods fn cyclotomic_exp_signed( f: &Fp6<Self::Fp6Config>, x: impl AsRef<[u64]>, invert: bool, ) -> Fp6<Self::Fp6Config> { ... } fn exp_by_x(f: &Fp6<Self::Fp6Config>) -> Fp6<Self::Fp6Config> { ... } fn final_exponentiation_hard_part( f: &Fp6<Self::Fp6Config>, ) -> Fp6<Self::Fp6Config> { ... } fn final_exponentiation( f: MillerLoopOutput<BW6<Self>>, ) -> Option<PairingOutput<BW6<Self>>> { ... } fn multi_miller_loop( a: impl IntoIterator<Item = impl Into<G1Prepared<Self>>>, b: impl IntoIterator<Item = impl Into<G2Prepared<Self>>>, ) -> MillerLoopOutput<BW6<Self>> { ... }
}

Required Associated Constants§

Required Associated Types§

Source

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

Source

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

Source

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

Source

type G1Config: SWCurveConfig<BaseField = Self::Fp>

Source

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

Provided Methods§

Source

fn cyclotomic_exp_signed( f: &Fp6<Self::Fp6Config>, x: impl AsRef<[u64]>, invert: bool, ) -> Fp6<Self::Fp6Config>

Source

fn exp_by_x(f: &Fp6<Self::Fp6Config>) -> Fp6<Self::Fp6Config>

Source

fn final_exponentiation_hard_part( f: &Fp6<Self::Fp6Config>, ) -> Fp6<Self::Fp6Config>

Source

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

Source

fn multi_miller_loop( a: impl IntoIterator<Item = impl Into<G1Prepared<Self>>>, b: impl IntoIterator<Item = impl Into<G2Prepared<Self>>>, ) -> MillerLoopOutput<BW6<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§