pub struct MNT6<P: MNT6Config>(/* private fields */);
Implementations§
Source§impl<P: MNT6Config> MNT6<P>
impl<P: MNT6Config> MNT6<P>
pub fn ate_miller_loop( p: &G1Prepared<P>, q: &G2Prepared<P>, ) -> Fp6<P::Fp6Config>
Trait Implementations§
Source§impl<P: MNT6Config> Clone for MNT6<P>
impl<P: MNT6Config> Clone for MNT6<P>
Source§impl<P: MNT6Config> Debug for MNT6<P>
impl<P: MNT6Config> Debug for MNT6<P>
Source§impl<P: MNT6Config> Hash for MNT6<P>
impl<P: MNT6Config> Hash for MNT6<P>
Source§impl<P: MNT6Config> Pairing for MNT6<P>
impl<P: MNT6Config> Pairing for MNT6<P>
Source§type BaseField = <<P as MNT6Config>::G1Config as CurveConfig>::BaseField
type BaseField = <<P as MNT6Config>::G1Config as CurveConfig>::BaseField
This is the base field of the G1 group and base prime field of G2.
Source§type ScalarField = <<P as MNT6Config>::G1Config as CurveConfig>::ScalarField
type ScalarField = <<P as MNT6Config>::G1Config as CurveConfig>::ScalarField
This is the scalar field of the G1/G2 groups.
Source§type G1 = Projective<<P as MNT6Config>::G1Config>
type G1 = Projective<<P as MNT6Config>::G1Config>
An element in G1.
type G1Affine = Affine<<P as MNT6Config>::G1Config>
Source§type G1Prepared = G1Prepared<P>
type G1Prepared = G1Prepared<P>
A G1 element that has been preprocessed for use in a pairing.
Source§type G2 = Projective<<P as MNT6Config>::G2Config>
type G2 = Projective<<P as MNT6Config>::G2Config>
An element of G2.
Source§type G2Affine = Affine<<P as MNT6Config>::G2Config>
type G2Affine = Affine<<P as MNT6Config>::G2Config>
The affine representation of an element in G2.
Source§type G2Prepared = G2Prepared<P>
type G2Prepared = G2Prepared<P>
A G2 element that has been preprocessed for use in a pairing.
Source§type TargetField = QuadExtField<Fp6ConfigWrapper<<P as MNT6Config>::Fp6Config>>
type TargetField = QuadExtField<Fp6ConfigWrapper<<P as MNT6Config>::Fp6Config>>
The extension field that hosts the target group of the pairing.
Source§fn 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.
Source§fn 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
.Source§fn 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
.Source§fn 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.
Source§fn 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
Source§impl<P: MNT6Config> PartialEq for MNT6<P>
impl<P: MNT6Config> PartialEq for MNT6<P>
impl<P: MNT6Config> Copy for MNT6<P>
impl<P: MNT6Config> Eq for MNT6<P>
Auto Trait Implementations§
impl<P> Freeze for MNT6<P>
impl<P> RefUnwindSafe for MNT6<P>
impl<P> Send for MNT6<P>
impl<P> Sync for MNT6<P>
impl<P> Unpin for MNT6<P>
impl<P> UnwindSafe for MNT6<P>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more