コード例 #1
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract LispNumber Add(LispBigInteger addend);
コード例 #2
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 protected static bool NumberEquals(LispBigInteger a, LispBigInteger b)
 {
     return a.Value == b.Value;
 }
コード例 #3
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 protected static bool NumberEquals(LispBigInteger a, LispDouble b)
 {
     return IsIntegral(b.Value) && a.Value == (BigInteger)b.Value;
 }
コード例 #4
0
ファイル: LispDouble.cs プロジェクト: nja/keel
 public override int CompareTo(LispBigInteger number)
 {
     return -Compare(number, this);
 }
コード例 #5
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 protected static LispNumber Multiply(LispBigInteger a, LispBigInteger b)
 {
     return MakeNumber(a.Value * b.Value);
 }
コード例 #6
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract LispNumber DivideInto(LispBigInteger dividend);
コード例 #7
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract bool NumberEquals(LispBigInteger number);
コード例 #8
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override int CompareTo(LispBigInteger number)
 {
     return Value.CompareTo(number.Value);
 }
コード例 #9
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override LispNumber DivideBy(LispBigInteger divisor)
 {
     return Divide(this, divisor);
 }
コード例 #10
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override bool NumberEquals(LispBigInteger number)
 {
     return NumberEquals(this, number);
 }
コード例 #11
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override LispNumber Add(LispBigInteger addend)
 {
     return Add(this, addend);
 }
コード例 #12
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override LispNumber Multiply(LispBigInteger factor)
 {
     return Multiply(this, factor);
 }
コード例 #13
0
ファイル: LispBigInteger.cs プロジェクト: nja/keel
 public override LispNumber DivideInto(LispBigInteger dividend)
 {
     return Divide(dividend, this);
 }
コード例 #14
0
ファイル: LispInteger.cs プロジェクト: nja/keel
 public override int CompareTo(LispBigInteger number)
 {
     return Compare(this, number);
 }
コード例 #15
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract int CompareTo(LispBigInteger number);
コード例 #16
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 protected static int Compare(LispInteger a, LispBigInteger b)
 {
     return ((BigInteger)a.Value).CompareTo(b.Value);
 }
コード例 #17
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract LispNumber DivideBy(LispBigInteger divisor);
コード例 #18
0
ファイル: LispNumber.cs プロジェクト: nja/keel
        protected static int Compare(LispBigInteger a, LispDouble b)
        {
            var truncatedB = new BigInteger(b.Value);

            var truncatedCompare = a.Value.CompareTo(truncatedB);

            if (truncatedCompare == 0)
            {
                return -Math.Truncate(b.Value).CompareTo(b.Value);
            }

            return truncatedCompare;
        }
コード例 #19
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 public abstract LispNumber Multiply(LispBigInteger factor);
コード例 #20
0
ファイル: LispNumber.cs プロジェクト: nja/keel
        protected static LispNumber Divide(LispBigInteger dividend, LispBigInteger divisor)
        {
            BigInteger remainder;
            BigInteger quotient = BigInteger.DivRem(dividend.Value, divisor.Value, out remainder);

            if (remainder != 0)
            {
                return Divide((LispDouble)dividend, (LispDouble)divisor);
            }

            return MakeNumber(quotient);
        }
コード例 #21
0
ファイル: LispNumber.cs プロジェクト: nja/keel
 protected static LispNumber Add(LispBigInteger a, LispBigInteger b)
 {
     return MakeNumber(a.Value + b.Value);
 }
コード例 #22
0
ファイル: LispDouble.cs プロジェクト: nja/keel
 public LispDouble(LispBigInteger bigInteger)
 {
     this.Value = (double)bigInteger.Value;
 }