public static void Reduce(uint[] xx, uint[] z) { ulong y = Nat192.Mul33Add(4553u, xx, 6, xx, 0, z, 0); if (Nat192.Mul33DWordAdd(4553u, y, z, 0) != 0u || (z[5] == 4294967295u && Nat192.Gte(z, SecP192K1Field.P))) { Nat.Add33To(6, 4553u, z); } }
public static void Reduce(uint[] xx, uint[] z) { ulong y = Nat192.Mul33Add(0x11c9, xx, 6, xx, 0, z, 0); if ((Nat192.Mul33DWordAdd(0x11c9, y, z, 0) != 0) || ((z[5] == uint.MaxValue) && Nat192.Gte(z, P))) { Nat.Add33To(6, 0x11c9, z); } }
public static void Reduce(uint[] xx, uint[] z) { ulong y = Nat192.Mul33Add(4553u, xx, 6, xx, 0, z, 0); if (Nat192.Mul33DWordAdd(4553u, y, z, 0) != 0 || (z[5] == uint.MaxValue && Nat192.Gte(z, P))) { Nat.Add33To(6, 4553u, z); } }
public static void Reduce(uint[] xx, uint[] z) { ulong cc = Nat192.Mul33Add(PInv33, xx, 6, xx, 0, z, 0); uint c = Nat192.Mul33DWordAdd(PInv33, cc, z, 0); Debug.Assert(c == 0 || c == 1); if (c != 0 || (z[5] == P5 && Nat192.Gte(z, P))) { Nat.Add33To(6, PInv33, z); } }