pub struct MNT4<P: MNT4Parameters>(_);
Implementations
sourceimpl<P: MNT4Parameters> MNT4<P>
impl<P: MNT4Parameters> MNT4<P>
pub fn ate_miller_loop(p: &G1Prepared<P>, q: &G2Prepared<P>) -> Fp4<P::Fp4Config>
Trait Implementations
sourceimpl<P: MNT4Parameters> Clone for MNT4<P>
impl<P: MNT4Parameters> Clone for MNT4<P>
sourceimpl<P: MNT4Parameters> Debug for MNT4<P>
impl<P: MNT4Parameters> Debug for MNT4<P>
sourceimpl<P: MNT4Parameters> Hash for MNT4<P>
impl<P: MNT4Parameters> Hash for MNT4<P>
sourceimpl<P: MNT4Parameters> Pairing for MNT4<P>
impl<P: MNT4Parameters> Pairing for MNT4<P>
type ScalarField = <<P as MNT4Parameters>::G1Parameters as CurveConfig>::ScalarField
type ScalarField = <<P as MNT4Parameters>::G1Parameters as CurveConfig>::ScalarField
This is the scalar field of the G1/G2 groups.
type G1 = Projective<<P as MNT4Parameters>::G1Parameters>
type G1 = Projective<<P as MNT4Parameters>::G1Parameters>
An element in G1.
type G1Affine = Affine<<P as MNT4Parameters>::G1Parameters>
type G1Prepared = G1Prepared<P>
type G1Prepared = G1Prepared<P>
A G1 element that has been preprocessed for use in a pairing.
type G2 = Projective<<P as MNT4Parameters>::G2Parameters>
type G2 = Projective<<P as MNT4Parameters>::G2Parameters>
An element of G2.
type G2Affine = Affine<<P as MNT4Parameters>::G2Parameters>
type G2Affine = Affine<<P as MNT4Parameters>::G2Parameters>
The affine representation of an element in G2.
type G2Prepared = G2Prepared<P>
type G2Prepared = G2Prepared<P>
A G2 element that has been preprocessed for use in a pairing.
type TargetField = QuadExtField<Fp4ConfigWrapper<<P as MNT4Parameters>::Fp4Config>>
type TargetField = QuadExtField<Fp4ConfigWrapper<<P as MNT4Parameters>::Fp4Config>>
The extension field that hosts the target group of the pairing.
sourcefn multi_miller_loop(
a: impl IntoIterator<Item = impl Into<Self::G1Prepared>>,
b: impl IntoIterator<Item = impl Into<Self::G2Prepared>>
) -> MillerLoopOutput<Self>
fn multi_miller_loop(
a: impl IntoIterator<Item = impl Into<Self::G1Prepared>>,
b: impl IntoIterator<Item = impl Into<Self::G2Prepared>>
) -> MillerLoopOutput<Self>
Computes the product of Miller loops for some number of (G1, G2) pairs.
sourcefn final_exponentiation(
f: MillerLoopOutput<Self>
) -> Option<PairingOutput<Self>>
fn final_exponentiation(
f: MillerLoopOutput<Self>
) -> Option<PairingOutput<Self>>
Performs final exponentiation of the result of a
Self::multi_miller_loop
.sourcefn miller_loop(
a: impl Into<Self::G1Prepared>,
b: impl Into<Self::G2Prepared>
) -> MillerLoopOutput<Self>
fn miller_loop(
a: impl Into<Self::G1Prepared>,
b: impl Into<Self::G2Prepared>
) -> MillerLoopOutput<Self>
Computes the Miller loop over
a
and b
.sourcefn multi_pairing(
a: impl IntoIterator<Item = impl Into<Self::G1Prepared>>,
b: impl IntoIterator<Item = impl Into<Self::G2Prepared>>
) -> PairingOutput<Self>
fn multi_pairing(
a: impl IntoIterator<Item = impl Into<Self::G1Prepared>>,
b: impl IntoIterator<Item = impl Into<Self::G2Prepared>>
) -> PairingOutput<Self>
Computes a “product” of pairings.
sourcefn pairing(
p: impl Into<Self::G1Prepared>,
q: impl Into<Self::G2Prepared>
) -> PairingOutput<Self>
fn pairing(
p: impl Into<Self::G1Prepared>,
q: impl Into<Self::G2Prepared>
) -> PairingOutput<Self>
Performs multiple pairing operations
sourceimpl<P: MNT4Parameters> PartialEq<MNT4<P>> for MNT4<P>
impl<P: MNT4Parameters> PartialEq<MNT4<P>> for MNT4<P>
impl<P: MNT4Parameters> Copy for MNT4<P>
impl<P: MNT4Parameters> Eq for MNT4<P>
Auto Trait Implementations
impl<P> RefUnwindSafe for MNT4<P>
impl<P> Send for MNT4<P>
impl<P> Sync for MNT4<P>
impl<P> Unpin for MNT4<P>
impl<P> UnwindSafe for MNT4<P>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more