summaryrefslogtreecommitdiff
path: root/src/cli/runtime/FixNum.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/runtime/FixNum.cs')
-rw-r--r--src/cli/runtime/FixNum.cs243
1 files changed, 0 insertions, 243 deletions
diff --git a/src/cli/runtime/FixNum.cs b/src/cli/runtime/FixNum.cs
deleted file mode 100644
index 6b0d6759..00000000
--- a/src/cli/runtime/FixNum.cs
+++ /dev/null
@@ -1,243 +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:09:27 AM */
-
-using System;
-using java.math;
-
-namespace clojure.lang
-{
-
-
-public class FixNum : IntegerNum{
-public int val;
-
-override public Boolean Equals(Object arg0)
- {
- return arg0 != null
- && arg0 is FixNum
- && ((FixNum) arg0).val == val;
- }
-
-override public int GetHashCode()
- {
- return val;
- }
-
-override public String ToString()
- {
- return val.ToString();
- }
-
-public FixNum(int val)
- {
- this.val = val;
- }
-
-override public double doubleValue()
- {
- return (double) val;
- }
-
-override public float floatValue()
- {
- return (float) val;
- }
-
-override public int intValue()
- {
- return val;
- }
-
-override public long longValue()
- {
- return (long) val;
- }
-
-override public Boolean equiv(Num rhs)
- {
- return rhs.equivTo(val);
- }
-
-override public Boolean equivTo(BigInteger x)
- {
- //wouldn't still be a BigInteger if it fit in int
- return false;
- }
-
-override public Boolean equivTo(int x)
- {
- return x == val;
- }
-
-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(BigInteger.valueOf(val)) < 0;
- }
-
-override public Boolean gt(int x)
- {
- return x < val;
- }
-
-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(BigInteger.valueOf(val)));
- }
-
-override public Num addTo(int x)
- {
- return Num.from((long) x + val);
- }
-
-override public Num addTo(RatioNum x)
- {
- return x.addTo(val);
- }
-
-override public Num subtractFrom(Num x)
- {
- return x.addTo(-val);
- }
-
-override public Num multiplyBy(Num rhs)
- {
- return rhs.multiply(val);
- }
-
-override public Num multiply(BigInteger x)
- {
- return Num.from(x.multiply(BigInteger.valueOf(val)));
- }
-
-override public Num multiply(int x)
- {
- return Num.from((long) x * val);
- }
-
-override public Num multiply(RatioNum x)
- {
- return x.multiply(val);
- }
-
-override public Object truncateDivide( Num num)
- {
- return num.truncateBy( val);
- }
-
-override public Object truncateBy( int div)
- {
- return RT.setValues( Num.from(val / div), Num.from(val % div));
- }
-
-override public Object truncateBy( BigInteger div)
- {
- return Num.truncateBigints( BigInteger.valueOf(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 divideBy(Num rhs)
- {
- return rhs.divide(val);
- }
-
-override public Num divide(BigInteger n)
- {
- return Num.divide(n, BigInteger.valueOf(val));
- }
-
-static int gcdf(int u, int v)
- {
- while(v != 0)
- {
- int r = u % v;
- u = v;
- v = r;
- }
- return u;
- }
-
-override public Num divide(int n)
- {
- int gcd = gcdf(n, val);
- if(gcd == 0)
- return Num.ZERO;
-
- n = n / gcd;
- int d = val / gcd;
- if(d == 1)
- return Num.from(n);
- if(d < 0)
- {
- n = -n;
- d = -d;
- }
- return new RatioNum((IntegerNum) Num.from(n), (IntegerNum) Num.from(d));
- }
-
-override public Num divide(RatioNum x)
- {
- return Num.divide(x.numerator, x.denominator.multiply(val));
- }
-
-override public Num negate()
- {
- return Num.from(-val);
- }
-
-override public Boolean minusp()
- {
- return val < 0;
- }
-
-override public Boolean plusp()
- {
- return val > 0;
- }
-
-override public Num oneMinus()
- {
- return Num.from(val - 1);
- }
-
-override public Num onePlus()
- {
- return Num.from(val + 1);
- }
-
-}
-}