Struct ark_test_curves::mnt6::MNT6
source · pub struct MNT6<P>(_)
where
P: MNT6Config;
Implementations§
source§impl<P> MNT6<P>where
P: MNT6Config,
impl<P> MNT6<P>where P: MNT6Config,
pub fn ate_miller_loop( p: &G1Prepared<P>, q: &G2Prepared<P> ) -> QuadExtField<Fp6ConfigWrapper<<P as MNT6Config>::Fp6Config>>
Trait Implementations§
source§impl<P> Clone for MNT6<P>where
P: MNT6Config,
impl<P> Clone for MNT6<P>where P: MNT6Config,
source§impl<P> Debug for MNT6<P>where
P: MNT6Config,
impl<P> Debug for MNT6<P>where P: MNT6Config,
source§impl<P> Hash for MNT6<P>where
P: MNT6Config,
impl<P> Hash for MNT6<P>where P: MNT6Config,
source§impl<P> Pairing for MNT6<P>where
P: MNT6Config,
impl<P> Pairing for MNT6<P>where P: MNT6Config,
§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.
§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.
§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>
§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 MNT6Config>::G2Config>
type G2 = Projective<<P as MNT6Config>::G2Config>
An element of G2.
§type G2Affine = Affine<<P as MNT6Config>::G2Config>
type G2Affine = Affine<<P as MNT6Config>::G2Config>
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<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<<MNT6<P> as Pairing>::G1Prepared>>,
b: impl IntoIterator<Item = impl Into<<MNT6<P> as Pairing>::G2Prepared>>
) -> MillerLoopOutput<MNT6<P>>
fn multi_miller_loop( a: impl IntoIterator<Item = impl Into<<MNT6<P> as Pairing>::G1Prepared>>, b: impl IntoIterator<Item = impl Into<<MNT6<P> as Pairing>::G2Prepared>> ) -> MillerLoopOutput<MNT6<P>>
Computes the product of Miller loops for some number of (G1, G2) pairs.
source§fn final_exponentiation(
f: MillerLoopOutput<MNT6<P>>
) -> Option<PairingOutput<MNT6<P>>>
fn final_exponentiation( f: MillerLoopOutput<MNT6<P>> ) -> Option<PairingOutput<MNT6<P>>>
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> PartialEq<MNT6<P>> for MNT6<P>where
P: MNT6Config,
impl<P> PartialEq<MNT6<P>> for MNT6<P>where P: MNT6Config,
impl<P> Copy for MNT6<P>where P: MNT6Config,
impl<P> Eq for MNT6<P>where P: MNT6Config,
Auto Trait Implementations§
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§
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more