public static void SquareN(uint[] x, int n, uint[] z) { uint[] array = Nat192.CreateExt(); Nat192.Square(x, array); Reduce(array, z); while (--n > 0) { Nat192.Square(z, array); Reduce(array, z); } }
public static void SquareN(uint[] x, int n, uint[] z) { uint[] zz = Nat192.CreateExt(); Nat192.Square(x, zz); Reduce(zz, z); while (--n > 0) { Nat192.Square(z, zz); Reduce(zz, z); } }
public static void SquareN(uint[] x, int n, uint[] z) { Debug.Assert(n > 0); uint[] tt = Nat192.CreateExt(); Nat192.Square(x, tt); Reduce(tt, z); while (--n > 0) { Nat192.Square(z, tt); Reduce(tt, z); } }
public static void Square(uint[] x, uint[] zz) { Nat192.Square(x, zz); Nat192.Square(x, 6, zz, 12); uint c18 = Nat192.AddToEachOther(zz, 6, zz, 12); uint c12 = c18 + Nat192.AddTo(zz, 0, zz, 6, 0); c18 += Nat192.AddTo(zz, 18, zz, 12, c12); uint[] dx = Nat192.Create(); Nat192.Diff(x, 6, x, 0, dx, 0); uint[] m = Nat192.CreateExt(); Nat192.Square(dx, m); c18 += (uint)Nat.SubFrom(12, m, 0, zz, 6); Nat.AddWordAt(24, c18, zz, 18); }
public static void Square(uint[] x, uint[] z) { uint[] zz = Nat192.CreateExt(); Nat192.Square(x, zz); Reduce(zz, z); }
public static void Square(uint[] x, uint[] z) { uint[] array = Nat192.CreateExt(); Nat192.Square(x, array); Reduce(array, z); }
public static void Square(uint[] x, uint[] z) { uint[] tt = Nat192.CreateExt(); Nat192.Square(x, tt); Reduce(tt, z); }