openvm_pairing_guest::pairing

Trait LineMulDType

Source
pub trait LineMulDType<Fp2, Fp12> {
    // Required methods
    fn mul_013_by_013(
        l0: &EvaluatedLine<Fp2>,
        l1: &EvaluatedLine<Fp2>,
    ) -> [Fp2; 5];
    fn mul_by_013(f: &Fp12, l: &EvaluatedLine<Fp2>) -> Fp12;
    fn mul_by_01234(f: &Fp12, x: &[Fp2; 5]) -> Fp12;
}
Expand description

Trait definition for line multiplication opcodes for D-type lines

Required Methods§

Source

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

Multiplies two lines in 013-form to get an element in 01234-form

Source

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

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

Source

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

Multiplies a line in 01234-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 LineMulDType<Fq2, Fq12> for openvm_pairing_guest::halo2curves_shims::bn254::Bn254

Source§

impl LineMulDType<Bn254Fp2, SexticExtField<Bn254Fp2>> for openvm_pairing_guest::bn254::Bn254