public Fp2 Squared() { Fp ab = a.Mul(b); Fp ra = a.Add(b).Mul(b.Mul(Fp.NON_RESIDUE).Add(a)) .Sub(ab) .Sub(ab.Mul(Fp.NON_RESIDUE)); // ra = (a + b)(a + NON_RESIDUE * b) - ab - NON_RESIDUE * b Fp rb = ab.Dbl(); return(new Fp2(ra, rb)); }
public Fp2 Add(Fp2 o) { return(new Fp2(a.Add(o.a), b.Add(o.b))); }