public static void Add(uint[] x, uint[] y, uint[] z) { uint c = Nat256.Add(x, y, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat.Add33To(8, PInv33, z); } }
public static void Add(uint[] x, uint[] y, uint[] z) { uint c = Nat256.Add(x, y, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { AddPInvTo(z); } }
public static void AddExt(uint[] xx, uint[] yy, uint[] zz) { uint c = Nat256.Add(xx, yy, zz); if (c != 0 || (zz[7] >= PExt7 && Nat256.Gte(zz, PExt))) { Nat.AddTo(PExtInv.Length, PExtInv, zz); } }
public static void Subtract(uint[] x, uint[] y, uint[] z) { int c = Nat256.Sub(x, y, z); if (c != 0) { Nat256.Add(z, P, z); } }
public static void Add(uint[] x, uint[] y, uint[] z) { Nat256.Add(x, y, z); if (Nat256.Gte(z, P)) { Nat256.AddWord(PInv, z, 0); z[7] &= P7; } }
public static void Add(uint[] x, uint[] y, uint[] z) { uint c = Nat256.Add(x, y, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.AddDWord(PInv, z, 0); } }
public static void Half(uint[] x, uint[] z) { if ((x[0] & 1u) == 0u) { Nat.ShiftDownBit(8, x, 0u, z); return; } uint c = Nat256.Add(x, SecP256K1Field.P, z); Nat.ShiftDownBit(8, z, c); }
public static void Half(uint[] x, uint[] z) { if ((x[0] & 1) == 0) { Nat.ShiftDownBit(8, x, 0u, z); return; } uint c = Nat256.Add(x, P, z); Nat.ShiftDownBit(8, z, c); }
public static void Half(uint[] x, uint[] z) { if ((x[0] & 1) == 0) { Nat.ShiftDownBit(8, x, 0, z); } else { Nat256.Add(x, P, z); Nat.ShiftDownBit(8, z, 0); } }
public static void Half(uint[] x, uint[] z) { if ((x[0] & 1) == 0) { Nat256.ShiftDownBit(x, 0, z); } else { uint c = Nat256.Add(x, P, z); Nat256.ShiftDownBit(z, c, z); } }