diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-10-04 22:07:56 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-10-04 22:07:56 +0000 |
commit | 52d295cb123671de01f1df9526e193e4b3967c82 (patch) | |
tree | b3e78fc63debbde183e9b44b50f0c1cfcc19f133 /src/jvm/clojure/lang/Numbers.java | |
parent | 75dcef321baeb94e4d35036fb7a7805e6350e662 (diff) |
added inlining for integer bitops
Diffstat (limited to 'src/jvm/clojure/lang/Numbers.java')
-rw-r--r-- | src/jvm/clojure/lang/Numbers.java | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/src/jvm/clojure/lang/Numbers.java b/src/jvm/clojure/lang/Numbers.java index 47bac98d..4a6f924c 100644 --- a/src/jvm/clojure/lang/Numbers.java +++ b/src/jvm/clojure/lang/Numbers.java @@ -294,21 +294,21 @@ static public Number divide(BigInteger n, BigInteger d){ (d.signum() < 0 ? d.negate() : d)); } -static public Number not(Number x){ - return bitOps(x).not(x); +static public Number not(Object x){ + return bitOps(x).not((Number)x); } -static public Number and(Number x, Number y){ - return bitOps(x).combine(bitOps(y)).and(x, y); +static public Number and(Object x, Object y){ + return bitOps(x).combine(bitOps(y)).and((Number)x, (Number)y); } -static public Number or(Number x, Number y){ - return bitOps(x).combine(bitOps(y)).or(x, y); +static public Number or(Object x, Object y){ + return bitOps(x).combine(bitOps(y)).or((Number)x, (Number)y); } -static public Number xor(Number x, Number y){ - return bitOps(x).combine(bitOps(y)).xor(x, y); +static public Number xor(Object x, Object y){ + return bitOps(x).combine(bitOps(y)).xor((Number)x, (Number)y); } static public Number andNot(Number x, Number y){ @@ -1562,6 +1562,21 @@ static public int add(int x, int y){ return ret; } +static public int not(int x){ + return ~x; +} + +static public int and(int x, int y){ + return x & y; +} + +static public int or(int x, int y){ + return x | y; +} + +static public int xor(int x, int y){ + return x ^ y; +} static public int minus(int x, int y){ int ret = x - y; @@ -3460,6 +3475,30 @@ static public Number add(Object x, int y){ return add(x,(Object)y); } +static public Number and(int x, Object y){ + return and((Object)x,y); +} + +static public Number and(Object x, int y){ + return and(x,(Object)y); +} + +static public Number or(int x, Object y){ + return or((Object)x,y); +} + +static public Number or(Object x, int y){ + return or(x,(Object)y); +} + +static public Number xor(int x, Object y){ + return xor((Object)x,y); +} + +static public Number xor(Object x, int y){ + return xor(x,(Object)y); +} + static public Number add(float x, Object y){ return add((Object)x,y); } |