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 uint[] FromBigInteger(BigInteger x) { uint[] z = Nat256.FromBigInteger(x); if (z[7] == P7 && Nat256.Gte(z, P)) { Nat256.AddDWord(PInv, z, 0); } return(z); }
public static void Twice(uint[] x, uint[] z) { uint c = Nat256.ShiftUpBit(x, 0, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.AddDWord(PInv, z, 0); } }
public static void Twice(uint[] x, uint[] z) { uint c = Nat256.ShiftUpBit(x, 0, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.Sub(z, P, z); } }
public static uint[] FromBigInteger(BigInteger x) { uint[] numArray = Nat256.FromBigInteger(x); if ((numArray[7] == uint.MaxValue) && Nat256.Gte(numArray, P)) { Nat256.SubFrom(P, numArray); } return(numArray); }
public static void Reduce(uint[] xx, uint[] z) { ulong y = Nat256.Mul33Add(977u, xx, 8, xx, 0, z, 0); if (Nat256.Mul33DWordAdd(977u, y, z, 0) != 0u || (z[7] == 4294967295u && Nat256.Gte(z, SecP256K1Field.P))) { Nat.Add33To(8, 977u, z); } }
public static uint[] FromBigInteger(BigInteger x) { uint[] array = Nat256.FromBigInteger(x); if (array[7] == uint.MaxValue && Nat256.Gte(array, P)) { Nat256.SubFrom(P, array); } return(array); }
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 uint[] FromBigInteger(BigInteger x) { uint[] array = Nat256.FromBigInteger(x); if (array[7] == 4294967295u && Nat256.Gte(array, SecP256K1Field.P)) { Nat256.SubFrom(SecP256K1Field.P, array); } return(array); }
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz) { uint c = Nat128.MulAddTo(x, y, zz); if (c != 0 || (zz[7] >= PExt7 && Nat256.Gte(zz, PExt))) { Nat.AddTo(PExtInv.Length, PExtInv, zz); } }
public static void Twice(uint[] x, uint[] z) { uint c = Nat.ShiftUpBit(8, x, 0, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat.Add33To(8, PInv33, z); } }
public static uint[] FromBigInteger(BigInteger x) { uint[] z = Nat256.FromBigInteger(x); while (Nat256.Gte(z, P)) { Nat256.SubFrom(P, z); } return(z); }
public static void AddOne(uint[] x, uint[] z) { uint c = Nat.Inc(8, x, z); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat.Add33To(8, PInv33, 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 uint[] FromBigInteger(BigInteger x) { uint[] z = Nat256.FromBigInteger(x); if (z[7] == P7 && Nat256.Gte(z, P)) { Nat256.SubFrom(P, z); } return(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 Twice(uint[] x, uint[] z) { Nat256.ShiftUpBit(x, 0, z); if (Nat256.Gte(z, P)) { Nat256.AddWord(PInv, z, 0); z[7] &= P7; } }
public static void AddOne(uint[] x, uint[] z) { Nat256.Copy(x, z); uint c = Nat256.Inc(z, 0); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.Sub(z, P, z); } }
public static void AddOne(uint[] x, uint[] z) { Nat256.Copy(x, z); Nat256.Inc(z, 0); if (Nat256.Gte(z, P)) { Nat256.AddWord(PInv, z, 0); z[7] &= P7; } }
public static void Reduce32(uint x, uint[] z) { uint c = Nat256.Mul33WordAdd(PInv33, x, z, 0); Debug.Assert(c == 0 || c == 1); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.AddDWord(PInv, z, 0); } }
public static void Reduce(uint[] xx, uint[] z) { ulong cc = Nat256.Mul33Add(PInv33, xx, 8, xx, 0, z, 0); uint c = Nat256.Mul33DWordAdd(PInv33, cc, z, 0); Debug.Assert(c == 0 || c == 1); if (c != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat.Add33To(8, PInv33, z); } }
public static void Reduce32(uint x, uint[] z) { long cc = 0; if (x != 0) { long xx08 = x; cc += (long)z[0] + xx08; z[0] = (uint)cc; cc >>= 32; if (cc != 0) { cc += (long)z[1]; z[1] = (uint)cc; cc >>= 32; cc += (long)z[2]; z[2] = (uint)cc; cc >>= 32; } cc += (long)z[3] - xx08; z[3] = (uint)cc; cc >>= 32; if (cc != 0) { cc += (long)z[4]; z[4] = (uint)cc; cc >>= 32; cc += (long)z[5]; z[5] = (uint)cc; cc >>= 32; } cc += (long)z[6] - xx08; z[6] = (uint)cc; cc >>= 32; cc += (long)z[7] + xx08; z[7] = (uint)cc; cc >>= 32; Debug.Assert(cc == 0 || cc == 1); } if (cc != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { AddPInvTo(z); } }
public static void Reduce(uint[] xx, uint[] z) { Debug.Assert(xx[15] >> 30 == 0); uint xx07 = xx[7]; Nat.ShiftUpBit(8, xx, 8, xx07, z, 0); uint c = Nat256.MulByWordAddTo(PInv, xx, z) << 1; uint z07 = z[7]; z[7] = z07 & P7; c += (z07 >> 31) - (xx07 >> 31); Nat.AddWordTo(8, c * PInv, z); if (Nat256.Gte(z, P)) { AddPInvTo(z); } }
public static void Reduce32(uint x, uint[] z) { long num = 0L; if (x != 0) { long num2 = x; num = ((long)((ulong)num)) + (z[0] + num2); z[0] = (uint)num; num = num >> 0x20; if (num != 0L) { num += z[1]; z[1] = (uint)num; num = num >> 0x20; num += z[2]; z[2] = (uint)num; num = num >> 0x20; } num = ((long)((ulong)num)) + (z[3] - num2); z[3] = (uint)num; num = num >> 0x20; if (num != 0L) { num += z[4]; z[4] = (uint)num; num = num >> 0x20; num += z[5]; z[5] = (uint)num; num = num >> 0x20; } num = ((long)((ulong)num)) + (z[6] - num2); z[6] = (uint)num; num = num >> 0x20; num = ((long)((ulong)num)) + (z[7] + num2); z[7] = (uint)num; num = num >> 0x20; } if ((num != 0L) || ((z[7] == uint.MaxValue) && Nat256.Gte(z, P))) { AddPInvTo(z); } }
public static void Reduce32(uint x, uint[] z) { long num = 0L; if (x != 0u) { long num2 = (long)((ulong)x); num += (long)((ulong)z[0] + (ulong)num2); z[0] = (uint)num; num >>= 32; if (num != 0L) { num += (long)((ulong)z[1]); z[1] = (uint)num; num >>= 32; num += (long)((ulong)z[2]); z[2] = (uint)num; num >>= 32; } num += (long)((ulong)z[3] - (ulong)num2); z[3] = (uint)num; num >>= 32; if (num != 0L) { num += (long)((ulong)z[4]); z[4] = (uint)num; num >>= 32; num += (long)((ulong)z[5]); z[5] = (uint)num; num >>= 32; } num += (long)((ulong)z[6] - (ulong)num2); z[6] = (uint)num; num >>= 32; num += (long)((ulong)z[7] + (ulong)num2); z[7] = (uint)num; num >>= 32; } if (num != 0L || (z[7] == 4294967295u && Nat256.Gte(z, SecP256R1Field.P))) { SecP256R1Field.AddPInvTo(z); } }
public static void Reduce32(uint x, uint[] z) { long num = 0L; if (x != 0) { long num2 = x; num += z[0] + num2; z[0] = (uint)num; num >>= 32; if (num != 0L) { num += z[1]; z[1] = (uint)num; num >>= 32; num += z[2]; z[2] = (uint)num; num >>= 32; } num += z[3] - num2; z[3] = (uint)num; num >>= 32; if (num != 0L) { num += z[4]; z[4] = (uint)num; num >>= 32; num += z[5]; z[5] = (uint)num; num >>= 32; } num += z[6] - num2; z[6] = (uint)num; num >>= 32; num += z[7] + num2; z[7] = (uint)num; num >>= 32; } if (num != 0L || (z[7] == uint.MaxValue && Nat256.Gte(z, P))) { AddPInvTo(z); } }
public static void Reduce32(uint x, uint[] z) { long xx08 = x; long cc = 0; cc += (long)z[0] + xx08; z[0] = (uint)cc; cc >>= 32; cc += (long)z[1]; z[1] = (uint)cc; cc >>= 32; cc += (long)z[2]; z[2] = (uint)cc; cc >>= 32; cc += (long)z[3] - xx08; z[3] = (uint)cc; cc >>= 32; cc += (long)z[4]; z[4] = (uint)cc; cc >>= 32; cc += (long)z[5]; z[5] = (uint)cc; cc >>= 32; cc += (long)z[6] - xx08; z[6] = (uint)cc; cc >>= 32; cc += (long)z[7] + xx08; z[7] = (uint)cc; cc >>= 32; if (cc != 0 || (z[7] == P7 && Nat256.Gte(z, P))) { Nat256.Sub(z, P, z); } }
public static void Reduce32(uint x, uint[] z) { if ((x != 0 && Nat256.Mul33WordAdd(977u, x, z, 0) != 0) || (z[7] == uint.MaxValue && Nat256.Gte(z, P))) { Nat.Add33To(8, 977u, z); } }
public static void Reduce(uint[] xx, uint[] z) { ulong y = Nat256.Mul33Add(0x3d1, xx, 8, xx, 0, z, 0); if ((Nat256.Mul33DWordAdd(0x3d1, y, z, 0) != 0) || ((z[7] == uint.MaxValue) && Nat256.Gte(z, P))) { Nat.Add33To(8, 0x3d1, z); } }
public static void Reduce32(uint x, uint[] z) { if (((x != 0) && (Nat256.Mul33WordAdd(0x3d1, x, z, 0) != 0)) || ((z[7] == uint.MaxValue) && Nat256.Gte(z, P))) { Nat.Add33To(8, 0x3d1, z); } }