diff options
author | unknown <Ninja@.(none)> | 2009-11-11 16:34:14 +1100 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-11-24 08:30:52 -0500 |
commit | f966d6efab1463be32213d87343aa17c9003234b (patch) | |
tree | 8a2ed5a7014212dc864c48bc596ae5fe66db539d /src/clj | |
parent | fc5157d5b85b62dbf8e809d3caf014c792abd718 (diff) |
#209 Unifying array support for primatives
Signed-off-by: Rich Hickey <richhickey@gmail.com>
Diffstat (limited to 'src/clj')
-rw-r--r-- | src/clj/clojure/core.clj | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index 535acfcb..89929e02 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -3546,6 +3546,34 @@ ([size-or-seq] (. clojure.lang.Numbers float_array size-or-seq)) ([size init-val-or-seq] (. clojure.lang.Numbers float_array size init-val-or-seq))) +(defn boolean-array + "Creates an array of booleans" + {:inline (fn [& args] `(. clojure.lang.Numbers boolean_array ~@args)) + :inline-arities #{1 2}} + ([size-or-seq] (. clojure.lang.Numbers boolean_array size-or-seq)) + ([size init-val-or-seq] (. clojure.lang.Numbers boolean_array size init-val-or-seq))) + +(defn byte-array + "Creates an array of bytes" + {:inline (fn [& args] `(. clojure.lang.Numbers byte_array ~@args)) + :inline-arities #{1 2}} + ([size-or-seq] (. clojure.lang.Numbers byte_array size-or-seq)) + ([size init-val-or-seq] (. clojure.lang.Numbers byte_array size init-val-or-seq))) + +(defn char-array + "Creates an array of chars" + {:inline (fn [& args] `(. clojure.lang.Numbers char_array ~@args)) + :inline-arities #{1 2}} + ([size-or-seq] (. clojure.lang.Numbers char_array size-or-seq)) + ([size init-val-or-seq] (. clojure.lang.Numbers char_array size init-val-or-seq))) + +(defn short-array + "Creates an array of shorts" + {:inline (fn [& args] `(. clojure.lang.Numbers short_array ~@args)) + :inline-arities #{1 2}} + ([size-or-seq] (. clojure.lang.Numbers short_array size-or-seq)) + ([size init-val-or-seq] (. clojure.lang.Numbers short_array size init-val-or-seq))) + (defn double-array "Creates an array of doubles" {:inline (fn [& args] `(. clojure.lang.Numbers double_array ~@args)) @@ -3561,12 +3589,28 @@ ([size init-val-or-seq] (. clojure.lang.Numbers int_array size init-val-or-seq))) (defn long-array - "Creates an array of ints" + "Creates an array of longs" {:inline (fn [& args] `(. clojure.lang.Numbers long_array ~@args)) :inline-arities #{1 2}} ([size-or-seq] (. clojure.lang.Numbers long_array size-or-seq)) ([size init-val-or-seq] (. clojure.lang.Numbers long_array size init-val-or-seq))) +(definline booleans + "Casts to boolean[]" + [xs] `(. clojure.lang.Numbers booleans ~xs)) + +(definline bytes + "Casts to bytes[]" + [xs] `(. clojure.lang.Numbers bytes ~xs)) + +(definline chars + "Casts to chars[]" + [xs] `(. clojure.lang.Numbers chars ~xs)) + +(definline shorts + "Casts to shorts[]" + [xs] `(. clojure.lang.Numbers shorts ~xs)) + (definline floats "Casts to float[]" [xs] `(. clojure.lang.Numbers floats ~xs)) |