fn ell(f: &mut Fq12, coeffs: &(Fq2, Fq2, Fq2), p: &G1Affine) {
        let mut c0 = coeffs.0;
        let mut c1 = coeffs.1;

        c0.c0.mul_assign(&p.y);
        c0.c1.mul_assign(&p.y);

        c1.c0.mul_assign(&p.x);
        c1.c1.mul_assign(&p.x);

        // Sparse multiplication in Fq12
        f.mul_by_034(&c0, &c1, &coeffs.2);
    }
// Final steps of the line function on prepared coefficients
Final steps of the line function on prepared coefficients
Final steps of the line function on prepared coefficients
fn ell(f: &mut Fq12, coeffs: &(Fq2, Fq2, Fq2), p: &G1Affine) {
        let mut c0 = coeffs.0;
        let mut c1 = coeffs.1;
        c0.c0.mul_assign(&p.y);
        c0.c1.mul_assign(&p.y);
        c1.c0.mul_assign(&p.x);
        c1.c1.mul_assign(&p.x);
        // Sparse multiplication in Fq12
        f.mul_by_034(&c0, &c1, &coeffs.2);
    }
fn ell ( f : & mut Fq12 , coeffs : & ( Fq2 , Fq2 , Fq2 ) , p : & G1Affine ) { let mut c0 = coeffs . 0 ; let mut c1 = coeffs . 1 ; c0 . c0 . mul_assign ( & p . y ) ; c0 . c1 . mul_assign ( & p . y ) ; c1 . c0 . mul_assign ( & p . x ) ; c1 . c1 . mul_assign ( & p . x ) ; // Sparse multiplication in Fq12 f . mul_by_034 ( & c0 , & c1 , & coeffs . 2 ) ; }
Final steps of the line function on prepared coefficients
Final steps of the line function on prepared coefficients
f
&mut Fq12
coeffs
&(Fq2, Fq2, Fq2)
p
&G1Affine
f
&mut Fq12
coeffs
&(Fq2, Fq2, Fq2)
p
&G1Affine