diff options
Diffstat (limited to 'src/cli/runtime/BigNum.cs')
-rw-r--r-- | src/cli/runtime/BigNum.cs | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/src/cli/runtime/BigNum.cs b/src/cli/runtime/BigNum.cs deleted file mode 100644 index 9bde7116..00000000 --- a/src/cli/runtime/BigNum.cs +++ /dev/null @@ -1,225 +0,0 @@ -/** - * Copyright (c) Rich Hickey. All rights reserved. - * The use and distribution terms for this software are covered by the - * Common Public License 1.0 (http://opensource.org/licenses/cpl.php) - * which can be found in the file CPL.TXT at the root of this distribution. - * By using this software in any fashion, you are agreeing to be bound by - * the terms of this license. - * You must not remove this notice, or any other, from this software. - **/ - -/* rich Mar 28, 2006 10:08:33 AM */ - -using System;
-using java.math; - -namespace clojure.lang
-{ - - -public class BigNum : IntegerNum{ -public BigInteger val; - -override public Boolean Equals(Object arg0) - { - return arg0 != null - && arg0 is BigNum - && ((BigNum) arg0).val == val; - } - -override public int GetHashCode() - { - return val.GetHashCode(); - } - -override public String ToString() - { - return val.ToString(); - } - -public BigNum(long val) - { - this.val = BigInteger.valueOf(val); - } - -public BigNum(BigInteger val) - { - this.val = val; - } - -override public double doubleValue() - { - return val.doubleValue(); - } - -override public float floatValue() - { - return val.floatValue(); - } - -override public int intValue() - { - return val.intValue(); - } - -override public long longValue() - { - return val.longValue(); - } - -override public Boolean equiv(Num rhs) - { - return rhs.equivTo(val); - } - -override public Boolean equivTo(BigInteger x) - { - return x.Equals(val); - } - -override public Boolean equivTo(int x) - { - //must be outside of range of int or would be one itself - return false; - } - -override public Boolean equivTo(RatioNum x) - { - //wouldn't still be a RatioNum if it was an integer - return false; - } - -override public Boolean lt(Num rhs) - { - return rhs.gt(val); - } - -override public Boolean gt(BigInteger x) - { - return x.compareTo(val) < 0; - } - -override public Boolean gt(int x) - { - return BigInteger.valueOf(x).compareTo(val) < 0; - } - -override public Boolean gt(RatioNum x) - { - return x.numerator.lt(x.denominator.multiply(val)); - } - -override public Num add(Num rhs) - { - return rhs.addTo(val); - } - -override public Num addTo(BigInteger x) - { - return Num.from(x.add(val)); - } - -override public Num addTo(int x) - { - return Num.from(val.add(BigInteger.valueOf(x))); - } - -override public Num addTo(RatioNum x) - { - return x.addTo(val); - } - -override public Num subtractFrom(Num x) - { - return x.addTo(val.negate()); - } - -override public Num multiplyBy(Num rhs) - { - return rhs.multiply(val); - } - -override public Num multiply(BigInteger x) - { - return Num.from(x.multiply(val)); - } - -override public Num multiply(int x) - { - return Num.from(val.multiply(BigInteger.valueOf(x))); - } - -override public Num multiply(RatioNum x) - { - return x.multiply(val); - } - -override public Num divideBy(Num rhs) - { - return rhs.divide(val); - } - -override public Num divide(BigInteger n) - { - return Num.divide(n, val); - } - -override public Num divide(int n) - { - return Num.divide(BigInteger.valueOf(n), val); - } - -override public Num divide(RatioNum x) - { - return Num.divide(x.numerator, x.denominator.multiply(val)); - } - -override public Object truncateDivide( Num num) - { - return num.truncateBy( val); - } - -override public Object truncateBy( int div) - { - return Num.truncateBigints( val, BigInteger.valueOf(div)); - } - -override public Object truncateBy( BigInteger div) - { - return Num.truncateBigints( val, div); - } - -override public Object truncateBy( RatioNum div) - { - Num q = (Num) Num.truncate( div.denominator.multiply(val), div.numerator); - return RT.setValues( q, q.multiplyBy(div).subtractFrom(this)); - } - -override public Num negate() - { - return Num.from(val.negate()); - } - -override public Boolean minusp() - { - return val.signum() < 0; - } - -override public Boolean plusp() - { - return val.signum() > 0; - } - - -override public Num oneMinus() - { - return Num.from(val.subtract(BIG_ONE)); - } - -override public Num onePlus() - { - return Num.from(val.add(BIG_ONE)); - } -} -} - |