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§

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§