Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into core_matrix
Browse files Browse the repository at this point in the history
Conflicts:
	project.clj
	src/clatrix/core.clj
  • Loading branch information
mikera committed Aug 8, 2014
2 parents 34b59f9 + 8c5e880 commit d0cbcd7
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
10 changes: 4 additions & 6 deletions project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
:url "http://www.opensource.org/licenses/MIT"}
:resource-paths ["native"]
:plugins [[lein-expectations "0.0.8"]]
:dev-dependencies [[lein-expectations "0.0.8"]
[expectations "1.4.41"]]

:dependencies [[org.clojure/clojure "1.4.0"]

:dependencies [[org.clojure/clojure "1.6.0"]
[slingshot "0.10.3"]
[org.jblas/jblas "1.2.3"]
[net.mikera/core.matrix "0.27.1"]]

:profiles {:dev {:dependencies [[criterium/criterium "0.4.1"]
[expectations "1.4.41"]]}})
:profiles {:dev {:dependencies [[criterium/criterium "0.4.3"]
[expectations "1.4.56"]]}})
24 changes: 15 additions & 9 deletions src/clatrix/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
(deftype Vector [^DoubleMatrix me ^clojure.lang.IPersistentMap metadata]
Object
(toString [mat]
(str (vec (clojure.core/map vec (vec (.toArray2 ^DoubleMatrix (.me mat)))))))
(str (vec (mp/element-seq mat))))

clojure.lang.IObj

Expand Down Expand Up @@ -408,9 +408,9 @@
(m/array? m)
(case (long (m/dimensionality m))
0 (double (mp/get-0d m))
1 (vector m)
2 (matrix m))
:else m)))
1 (clatrix.core/vector m)
2 (clatrix.core/matrix m))
:else (double m))))

(defn diag
"`diag` creates a diagonal matrix from a seq of numbers or extracts
Expand Down Expand Up @@ -447,7 +447,8 @@
(defn reshape!
"reshape! modifies matrix in place."
[^Matrix A p q]
(let [[n m] (size A)]
(let [n (nrows A)
m (ncols A)]
(if (= (clojure.core/* n m) (clojure.core/* p q))
(dotom .reshape A p q)
(throw+ {:exception "Cannot change the number of elements during a reshape."
Expand Down Expand Up @@ -1446,7 +1447,7 @@ Uses the same algorithm as java's default Random constructor."

(defn- construct-clatrix [m]
(case (long (mp/dimensionality m))
0 (double m)
0 (double (mp/get-0d m))
1 (vector m)
2 (matrix m)
(throw (UnsupportedOperationException. "Only 1-d vectors or 2-d matrices are supported."))))
Expand Down Expand Up @@ -1481,7 +1482,7 @@ Uses the same algorithm as java's default Random constructor."

mp/PDimensionInfo
(dimensionality [m] 2)
(get-shape [m] (size m))
(get-shape [m] [(nrows m) (ncols m)])
(is-scalar? [m] false)
(is-vector? [m] false )
(dimension-count [m dimension-number]
Expand Down Expand Up @@ -1661,6 +1662,7 @@ Uses the same algorithm as java's default Random constructor."
(set result i j (f (get m i j) (get a i j)))))
result)))


(element-map!
([m f]
(map! f m))
Expand Down Expand Up @@ -1957,8 +1959,12 @@ Uses the same algorithm as java's default Random constructor."
;; TODO: make faster version, note clatrix overrides clojure.core/map
(vector (clojure.core/mapv f m)))
([m f a]
;; TODO: make faster version, note clatrix overrides clojure.core/map
(vector (clojure.core/mapv f m (vector a)))))
;; TODO: make faster version, note clatrix overrides cljure.core/map
(vector (mp/element-map (mp/convert-to-nested-vectors m) f a)))
([m f a more]
;; TODO: make faster version, note clatrix overrides cljure.core/map
(vector (apply mp/element-map (mp/convert-to-nested-vectors m) f a more))))


(element-map!
([m f]
Expand Down

0 comments on commit d0cbcd7

Please sign in to comment.