public Fp2 Inverse() { Fp t0 = a.Squared(); Fp t1 = b.Squared(); Fp t2 = t0.Sub(Fp.NON_RESIDUE.Mul(t1)); Fp t3 = t2.Inverse(); Fp ra = a.Mul(t3); // ra = a * t3 Fp rb = b.Mul(t3).Negate(); // rb = -(b * t3) return(new Fp2(ra, rb)); }
public Fp2 Sub(Fp2 o) { return(new Fp2(a.Sub(o.a), b.Sub(o.b))); }