public static void multiply(long[] x, long[] y, long[] z) { long[] tt = Nat576.createExt64(); implMultiply(x, y, tt); reduce(tt, z); }
public static void multiplyAddToExt(long[] x, long[] y, long[] zz) { long[] tt = Nat576.createExt64(); implMultiply(x, y, tt); addExt(zz, tt, zz); }
public static void multiplyPrecomp(long[] x, long[] precomp, long[] z) { long[] tt = Nat576.createExt64(); implMultiplyPrecomp(x, precomp, tt); reduce(tt, z); }
public static void multiplyPrecompAddToExt(long[] x, long[] precomp, long[] zz) { long[] tt = Nat576.createExt64(); implMultiplyPrecomp(x, precomp, tt); addExt(zz, tt, zz); }
public static void square(long[] x, long[] z) { long[] tt = Nat576.createExt64(); implSquare(x, tt); reduce(tt, z); }
public static void squareAddToExt(long[] x, long[] zz) { long[] tt = Nat576.createExt64(); implSquare(x, tt); addExt(zz, tt, zz); }
public static void squareN(long[] x, int n, long[] z) { // assert n > 0; long[] tt = Nat576.createExt64(); implSquare(x, tt); reduce(tt, z); while (--n > 0) { implSquare(z, tt); reduce(tt, z); } }
public ECFieldElement squarePlusProduct(ECFieldElement x, ECFieldElement y) { long[] ax = this.x; long[] xx = ((SecT571FieldElement)x).x, yx = ((SecT571FieldElement)y).x; long[] tt = Nat576.createExt64(); SecT571Field.squareAddToExt(ax, tt); SecT571Field.multiplyAddToExt(xx, yx, tt); long[] z = Nat576.create64(); SecT571Field.reduce(tt, z); return new SecT571FieldElement(z); }
public ECFieldElement multiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y) { long[] ax = this.x, bx = ((SecT571FieldElement)b).x; long[] xx = ((SecT571FieldElement)x).x, yx = ((SecT571FieldElement)y).x; long[] tt = Nat576.createExt64(); SecT571Field.multiplyAddToExt(ax, bx, tt); SecT571Field.multiplyAddToExt(xx, yx, tt); long[] z = Nat576.create64(); SecT571Field.reduce(tt, z); return new SecT571FieldElement(z); }
long[] tt = Nat576.createExt64(); SecT571Field.multiplyAddToExt(T, L1Z1, tt);
SecT571Field.add(A, L1Sq, A); long[] tt = Nat576.createExt64(); SecT571Field.multiplyAddToExt(A, T, tt); SecT571Field.multiplyPrecompAddToExt(X1Sq, Z1SqPrecomp, tt);
long[] tt = Nat576.createExt64();
long[] tt = Nat576.createExt64();