コード例 #1
0
ファイル: MPUnit.cs プロジェクト: skeptomai/mpmath-csharp
        /// <summary>
        /// Divides current MPUnit by short int ui, Quotient in q, Remainder in r
        /// </summary>
        /// <param name="i"></param>
        /// <param name="q"></param>
        /// <param name="r"></param>
        /// <returns></returns>
        public static void Div(MPUnit dividend, int i, ref MPUnit q, ref MPUnit r)
        {
            if(i < 0 || i > BASE)
                throw new ArgumentOutOfRangeException();

            MPUnit pseudodividend = new MPUnit(dividend);
            pseudodividend.ASL(1);
            MPUnit divisor = new MPUnit(i);
            MPUnit pseudodivisor = new MPUnit(divisor);
            pseudodivisor.ASL(1);
            Div(pseudodividend, pseudodivisor, ref q, ref r);

            r = MPUnit.Sub(dividend, MPUnit.Mult(q,divisor));
        }