Ql = modMult(Ql, Qh); Qh = modMult(Ql, Q); Uh = modMult(Uh, Vh); Vl = modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))); Vh = modReduce(Vh.multiply(Vh).subtract(Qh.shiftLeft(1))); Ql = modMult(Ql, Qh); Qh = modMult(Ql, Q); Uh = modReduce(Uh.multiply(Vl).subtract(Ql)); Vl = modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))); Ql = modMult(Ql, Qh); Uh = modMult(Uh, Vl); Vl = modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1))); Ql = modMult(Ql, Ql);
Ql = modMult(Ql, Qh); Qh = modMult(Ql, Q); Uh = modMult(Uh, Vh); Vl = modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))); Vh = modReduce(Vh.multiply(Vh).subtract(Qh.shiftLeft(1))); Ql = modMult(Ql, Qh); Qh = modMult(Ql, Q); Uh = modReduce(Uh.multiply(Vl).subtract(Ql)); Vl = modReduce(Vh.multiply(Vl).subtract(P.multiply(Ql))); Ql = modMult(Ql, Qh); Uh = modMult(Uh, Vl); Vl = modReduce(Vl.multiply(Vl).subtract(Ql.shiftLeft(1))); Ql = modMult(Ql, Ql);
public ECFieldElement square() { return new Fp(q, r, modMult(x, x)); }
public ECFieldElement multiply(ECFieldElement b) { return new Fp(q, r, modMult(x, b.toBigInteger())); }
public ECFieldElement multiply(ECFieldElement b) { return new Fp(q, r, modMult(x, b.toBigInteger())); }
public ECFieldElement divide(ECFieldElement b) { return new Fp(q, r, modMult(x, modInverse(b.toBigInteger()))); }
public ECFieldElement square() { return new Fp(q, r, modMult(x, x)); }
public ECFieldElement divide(ECFieldElement b) { return new Fp(q, r, modMult(x, modInverse(b.toBigInteger()))); }