public static void square(long[] x, long[] z) { long[] tt = Nat256.createExt64(); implSquare(x, tt); reduce(tt, z); }
public static void multiply(long[] x, long[] y, long[] z) { long[] tt = Nat256.createExt64(); implMultiply(x, y, tt); reduce(tt, z); }
public ECFieldElement multiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y) { long[] ax = this.x, bx = ((SecT239FieldElement)b).x; long[] xx = ((SecT239FieldElement)x).x, yx = ((SecT239FieldElement)y).x; long[] tt = Nat256.createExt64(); SecT239Field.multiplyAddToExt(ax, bx, tt); SecT239Field.multiplyAddToExt(xx, yx, tt); long[] z = Nat256.create64(); SecT239Field.reduce(tt, z); return new SecT239FieldElement(z); }
public ECFieldElement squarePlusProduct(ECFieldElement x, ECFieldElement y) { long[] ax = this.x; long[] xx = ((SecT239FieldElement)x).x, yx = ((SecT239FieldElement)y).x; long[] tt = Nat256.createExt64(); SecT239Field.squareAddToExt(ax, tt); SecT239Field.multiplyAddToExt(xx, yx, tt); long[] z = Nat256.create64(); SecT239Field.reduce(tt, z); return new SecT239FieldElement(z); }