protected static void ImplSquare(ulong[] x, ulong[] zz) { for (int i = 0; i < 4; ++i) { Interleave.Expand64To128(x[i], zz, i << 1); } zz[8] = Interleave.Expand32to64((uint)x[4]); }
protected static void ImplSquare(ulong[] x, ulong[] zz) { Interleave.Expand64To128(x[0], zz, 0); Interleave.Expand64To128(x[1], zz, 2); Interleave.Expand64To128(x[2], zz, 4); Interleave.Expand64To128(x[3], zz, 6); zz[8] = Interleave.Expand32to64((uint)x[4]); }
protected static void ImplSquare(ulong[] x, ulong[] zz) { Interleave.Expand64To128(x[0], zz, 0); Interleave.Expand64To128(x[1], zz, 2); ulong num = x[2]; zz[4] = Interleave.Expand32to64((uint)num); zz[5] = (ulong)Interleave.Expand8to16((uint)(num >> 32)); }
protected static void ImplSquare(ulong[] x, ulong[] zz) { Interleave.Expand64To128(x[0], zz, 0); Interleave.Expand64To128(x[1], zz, 2); Interleave.Expand64To128(x[2], zz, 4); ulong num = x[3]; zz[6] = Interleave.Expand32to64((uint)num); zz[7] = Interleave.Expand16to32((uint)(num >> 32)); }
protected static void ImplSquare(ulong[] x, ulong[] zz) { Interleave.Expand64To128(x, 0, 4, zz, 0); zz[8] = Interleave.Expand32to64((uint)x[4]); }