clojure.lang.Numbers.BIDivide C# (CSharp) Метод

BIDivide() публичный статический Метод

public static BIDivide ( BigInteger n, BigInteger d ) : object
n BigInteger
d BigInteger
Результат object
        public static object BIDivide(BigInteger n, BigInteger d)
        {
            if (d.Equals(BigInteger.Zero))
                throw new ArithmeticException("Divide by zero");
            BigInteger gcd = n.Gcd(d);
            if (gcd.Equals(BigInteger.Zero))
                return BigInt.ZERO;
            n = n / gcd;
            d = d / gcd;

            if (d.Equals(BigInteger.One))
                return BigInt.fromBigInteger(n);
            else if (d.Equals(BigInteger.NegativeOne))
                return BigInt.fromBigInteger(n.Negate());

            return new Ratio((d.Signum < 0 ? -n : n), d.Abs());
        }