openvm_pairing_guest::pairing

Trait LineMulMType

Source
pub trait LineMulMType<Fp2, Fp12> {
    // Required methods
    fn mul_023_by_023(
        l0: &EvaluatedLine<Fp2>,
        l1: &EvaluatedLine<Fp2>,
    ) -> [Fp2; 5];
    fn mul_by_023(f: &Fp12, l: &EvaluatedLine<Fp2>) -> Fp12;
    fn mul_by_02345(f: &Fp12, x: &[Fp2; 5]) -> Fp12;
}
Expand description

Trait definition for line multiplication opcodes for M-type lines

Required Methods§

Source

fn mul_023_by_023(l0: &EvaluatedLine<Fp2>, l1: &EvaluatedLine<Fp2>) -> [Fp2; 5]

Multiplies two lines in 023-form to get an element in 02345-form

Source

fn mul_by_023(f: &Fp12, l: &EvaluatedLine<Fp2>) -> Fp12

Multiplies a line in 023-form with a Fp12 element to get an Fp12 element

Source

fn mul_by_02345(f: &Fp12, x: &[Fp2; 5]) -> Fp12

Multiplies a line in 02345-form with a Fp12 element to get an Fp12 element

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§

Source§

impl LineMulMType<Fp2, Fp12> for openvm_pairing_guest::halo2curves_shims::bls12_381::Bls12_381

Source§

impl LineMulMType<Bls12_381Fp2, SexticExtField<Bls12_381Fp2>> for openvm_pairing_guest::bls12_381::Bls12_381