PairingIntrinsics

Trait PairingIntrinsics 

Source
pub trait PairingIntrinsics {
    type Fp: Field + IntMod;
    type Fp2: Field + FieldExtension<Self::Fp> + ComplexConjugate;
    type Fp12: FieldExtension<Self::Fp2> + ComplexConjugate;

    const PAIRING_IDX: usize;
    const XI: Self::Fp2;
    const FROBENIUS_COEFFS: [[Self::Fp2; 5]; 12];
    const FP2_TWO: Self::Fp2;
    const FP2_THREE: Self::Fp2;
}

Required Associated Constants§

Source

const PAIRING_IDX: usize

Index for custom intrinsic opcode determination.

Source

const XI: Self::Fp2

The sextic extension Fp12 is Fp2[X] / (X^6 - \xi), where \xi is a non-residue.

Source

const FROBENIUS_COEFFS: [[Self::Fp2; 5]; 12]

Multiplication constants for the Frobenius map for coefficients in Fp2 c1..=c5 for powers 0..12 FROBENIUS_COEFFS[i][j] = \xi^{(j + 1) * (p^i - 1)/6} when p = 1 (mod 6)

Source

const FP2_TWO: Self::Fp2

Source

const FP2_THREE: Self::Fp2

Required Associated Types§

Source

type Fp: Field + IntMod

Source

type Fp2: Field + FieldExtension<Self::Fp> + ComplexConjugate

Source

type Fp12: FieldExtension<Self::Fp2> + ComplexConjugate

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§