public static int mulWordsAdd(int x, int y, int[] z, int zOff) { // assert zOff <= 3; long c = 0, xVal = x & M, yVal = y & M; c += yVal * xVal + (z[zOff + 0] & M); z[zOff + 0] = (int)c; c >>>= 32; c += (z[zOff + 1] & M); z[zOff + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : Nat.incAt(5, z, zOff, 2); }
public static int addDWordTo(int len, long x, int[] z) { long c = (z[0] & M) + (x & M); z[0] = (int)c; c >>>= 32; c += (z[1] & M) + (x >>> 32); z[1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, 2); }
public static int mulWordsAdd(int x, int y, int[] z, int zOff) { // assert zOff <= 2; long c = 0, xVal = x & M, yVal = y & M; c += yVal * xVal + (z[zOff + 0] & M); z[zOff + 0] = (int)c; c >>>= 32; c += (z[zOff + 1] & M); z[zOff + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : Nat.incAt(4, z, zOff, 2); }
public static int add33At(int len, int x, int[] z, int zPos) { // assert zPos <= (len - 2); long c = (z[zPos + 0] & M) + (x & M); z[zPos + 0] = (int)c; c >>>= 32; c += (z[zPos + 1] & M) + 1L; z[zPos + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zPos + 2); }
public static int add33To(int len, int x, int[] z, int zOff) { long c = (z[zOff + 0] & M) + (x & M); z[zOff + 0] = (int)c; c >>>= 32; c += (z[zOff + 1] & M) + 1L; z[zOff + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zOff, 2); }
public static int addDWordTo(int len, long x, int[] z, int zOff) { long c = (z[zOff + 0] & M) + (x & M); z[zOff + 0] = (int)c; c >>>= 32; c += (z[zOff + 1] & M) + (x >>> 32); z[zOff + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zOff, 2); }
public static int addDWordAt(int len, long x, int[] z, int zPos) { // assert zPos <= (len - 2); long c = (z[zPos + 0] & M) + (x & M); z[zPos + 0] = (int)c; c >>>= 32; c += (z[zPos + 1] & M) + (x >>> 32); z[zPos + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zPos + 2); }
public static int addDWordAt(int len, long x, int[] z, int zOff, int zPos) { // assert zPos <= (len - 2); long c = (z[zOff + zPos] & M) + (x & M); z[zOff + zPos] = (int)c; c >>>= 32; c += (z[zOff + zPos + 1] & M) + (x >>> 32); z[zOff + zPos + 1] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zOff, zPos + 2); }
public static int addWordAt(int len, int x, int[] z, int zOff, int zPos) { // assert zPos <= (len - 1); long c = (x & M) + (z[zOff + zPos] & M); z[zOff + zPos] = (int)c; c >>>= 32; return c == 0 ? 0 : incAt(len, z, zOff, zPos + 1); }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat192.mulAddTo(x, y, zz); if (c != 0 || (zz[11] == PExt11 && Nat.gte(12, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(12, zz, PExtInv.length); } } }
public static void addExt(int[] xx, int[] yy, int[] zz) { int c = Nat.add(24, xx, yy, zz); if (c != 0 || (zz[23] == PExt23 && Nat.gte(24, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(24, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat160.mulAddTo(x, y, zz); if (c != 0 || (zz[9] == PExt9 && Nat.gte(10, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(10, zz, PExtInv.length); } } }
public static void addExt(int[] xx, int[] yy, int[] zz) { int c = Nat.add(12, xx, yy, zz); if (c != 0 || (zz[11] == PExt11 && Nat.gte(12, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(12, zz, PExtInv.length); } } }
public static void addExt(int[] xx, int[] yy, int[] zz) { int c = Nat.add(14, xx, yy, zz); if (c != 0 || (zz[13] == PExt13 && Nat.gte(14, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(14, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat160.mulAddTo(x, y, zz); if (c != 0 || (zz[9] == PExt9 && Nat.gte(10, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(10, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat224.mulAddTo(x, y, zz); if (c != 0 || (zz[13] == PExt13 && Nat.gte(14, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(14, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat224.mulAddTo(x, y, zz); if (c != 0 || (zz[13] == PExt13 && Nat.gte(14, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(14, zz, PExtInv.length); } } }
public static void addExt(int[] xx, int[] yy, int[] zz) { int c = Nat.add(12, xx, yy, zz); if (c != 0 || (zz[11] == PExt11 && Nat.gte(12, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(12, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat256.mulAddTo(x, y, zz); if (c != 0 || (zz[15] == PExt15 && Nat.gte(16, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(16, zz, PExtInv.length); } } }
public static void multiplyAddToExt(int[] x, int[] y, int[] zz) { int c = Nat224.mulAddTo(x, y, zz); if (c != 0 || (zz[13] == PExt13 && Nat.gte(14, zz, PExt))) { if (Nat.addTo(PExtInv.length, PExtInv, zz) != 0) { Nat.incAt(14, zz, PExtInv.length); } } }