summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-12-08 01:44:50 +0000
committerRich Hickey <richhickey@gmail.com>2008-12-08 01:44:50 +0000
commitc5cac92d5a1583e00bcb29d7f8a4f50f13fe69d2 (patch)
tree81fb1f33381b0a3c2b58c6b5ba89966c23b42979
parentc244cef69bef5461c16774c7542e8f2bc849a310 (diff)
added unchecked-remainder
-rw-r--r--src/clj/clojure/core.clj6
-rw-r--r--src/jvm/clojure/lang/Numbers.java8
2 files changed, 14 insertions, 0 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 4aad594a..24c9d019 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -712,6 +712,12 @@
{:inline (fn [x y] `(. clojure.lang.Numbers (unchecked_divide ~x ~y)))}
[x y] (. clojure.lang.Numbers (unchecked_divide x y)))
+(defn unchecked-remainder
+ "Returns the remainder of division of x by y, both int or long.
+ Note - uses a primitive operator subject to truncation."
+ {:inline (fn [x y] `(. clojure.lang.Numbers (unchecked_remainder ~x ~y)))}
+ [x y] (. clojure.lang.Numbers (unchecked_remainder x y)))
+
(defn pos?
"Returns true if num is greater than zero, else false"
{:tag Boolean
diff --git a/src/jvm/clojure/lang/Numbers.java b/src/jvm/clojure/lang/Numbers.java
index 4a6f924c..cb140fdf 100644
--- a/src/jvm/clojure/lang/Numbers.java
+++ b/src/jvm/clojure/lang/Numbers.java
@@ -1614,6 +1614,10 @@ static public int unchecked_divide(int x, int y){
return x / y;
}
+static public int unchecked_remainder(int x, int y){
+ return x % y;
+}
+
static public boolean equiv(int x, int y){
return x == y;
}
@@ -1717,6 +1721,10 @@ static public long unchecked_divide(long x, long y){
return x / y;
}
+static public long unchecked_remainder(long x, long y){
+ return x % y;
+}
+
static public boolean equiv(long x, long y){
return x == y;
}