openvm_pairing_guest::pairing

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];
}

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)

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§