protected static void ImplSquare(uint[] x, uint[] zz)
        {
            Nat512.Square(x, zz);
            uint num = x[0x10];

            zz[0x20] = Nat.MulWordAddTo(0x10, num << 1, x, 0, zz, 0x10) + (num * num);
        }
Beispiel #2
0
        protected static void ImplSquare(uint[] x, uint[] zz)
        {
            Nat512.Square(x, zz);
            uint num = x[16];

            zz[32] = Nat.MulWordAddTo(16, num << 1, x, 0, zz, 16) + num * num;
        }
        protected static void ImplMultiply(uint[] x, uint[] y, uint[] zz)
        {
            Nat512.Mul(x, y, zz);
            uint a = x[0x10];
            uint b = y[0x10];

            zz[0x20] = Nat.Mul31BothAdd(0x10, a, y, b, x, zz, 0x10) + (a * b);
        }
Beispiel #4
0
        protected static void ImplMultiply(uint[] x, uint[] y, uint[] zz)
        {
            Nat512.Mul(x, y, zz);
            uint num  = x[16];
            uint num2 = y[16];

            zz[32] = Nat.Mul31BothAdd(16, num, y, num2, x, zz, 16) + num * num2;
        }
Beispiel #5
0
        protected static void ImplSquare(uint[] x, uint[] zz)
        {
            Nat512.Square(x, zz);

            uint x16 = x[16];

            zz[32] = Nat.MulWordAddTo(16, x16 << 1, x, 0, zz, 16) + (x16 * x16);
        }
Beispiel #6
0
        protected static void ImplMultiply(uint[] x, uint[] y, uint[] zz)
        {
            Nat512.Mul(x, y, zz);

            uint x16 = x[16], y16 = y[16];

            zz[32] = Nat.Mul31BothAdd(16, x16, y, y16, x, zz, 16) + (x16 * y16);
        }