예제 #1
0
        internal void _ToModular(Digits a, int aDigitN, Digits b)
        {
            Digits aR;
            int    aRDigitN;

            if (Digits.Compare(a, aDigitN, _mod, _digitN) >= 0)
            {
                aR = new Digits(_digitN);
                Digits.Div(a, aDigitN, _mod, _digitN, _leftRecip, null, aR);
                aRDigitN = _digitN;
            }
            else
            {
                aR       = a;
                aRDigitN = aDigitN;
            }
            aRDigitN = Digits.SigDigitN(aR, aRDigitN);
            Digits.Set(aR, aRDigitN, b, _digitN);
            _Shift(b, _scaleBitN, b);
        }