Пример #1
0
/* return This mod modulus, N is modulus, ND is Montgomery Constant */
    public FF reduce(FF N, FF ND)
    {     // fast karatsuba Montgomery reduction
        int n = N.length;
        FF  t = new FF(2 * n);
        FF  r = new FF(n);
        FF  m = new FF(n);

        r.sducopy(this);
        m.karmul_lower(0, this, 0, ND, 0, t, 0, n);
        karmul_upper(N, m, t, n);
        m.sducopy(this);

        r.add(N);
        r.sub(m);
        r.norm();

        return(r);
    }