snark_verifier::util::arithmetic

Trait MillerLoopResult

Source
pub trait MillerLoopResult:
    Clone
    + Copy
    + Default
    + Debug
    + Send
    + Sync
    + Add<Output = Self, Output = Self>
    + for<'a> Add<&'a Self>
    + AddAssign
    + for<'a> AddAssign<&'a Self> {
    type Gt: Group;

    // Required method
    fn final_exponentiation(&self) -> Self::Gt;
}
Expand description

Represents results of a Miller loop, one of the most expensive portions of the pairing function.

MillerLoopResults cannot be compared with each other until MillerLoopResult::final_exponentiation is called, which is also expensive.

Required Associated Types§

Source

type Gt: Group

The extension field that hosts the target group of the pairing.

Required Methods§

Source

fn final_exponentiation(&self) -> Self::Gt

This performs a “final exponentiation” routine to convert the result of a Miller loop into an element of MillerLoopResult::Gt, so that it can be compared with other elements of Gt.

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.

Implementations on Foreign Types§

Source§

impl MillerLoopResult for MillerLoopResult

Source§

impl MillerLoopResult for Gt

Source§

impl MillerLoopResult for Gt

Implementors§