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); }