pairing

Trait MultiMillerLoop

Source
pub trait MultiMillerLoop: Engine {
    type G2Prepared: Clone + Send + Sync + From<Self::G2Affine>;
    type Result: MillerLoopResult<Gt = Self::Gt>;

    // Required method
    fn multi_miller_loop(
        terms: &[(&Self::G1Affine, &Self::G2Prepared)],
    ) -> Self::Result;
}
Expand description

An engine that can compute sums of pairings in an efficient way.

Required Associated Types§

Source

type G2Prepared: Clone + Send + Sync + From<Self::G2Affine>

The prepared form of Self::G2Affine.

Source

type Result: MillerLoopResult<Gt = Self::Gt>

The type returned by Engine::miller_loop.

Required Methods§

Source

fn multi_miller_loop( terms: &[(&Self::G1Affine, &Self::G2Prepared)], ) -> Self::Result

Computes $$\sum_{i=1}^n \textbf{ML}(a_i, b_i)$$ given a series of terms $$(a_1, b_1), (a_2, b_2), …, (a_n, b_n).$$

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§