   
 (require '[clojure.core.matrix :as m])
 (require '[clojure.core.matrix.linear :as l])
+(require '[criterium.core :refer [quick-bench]])
+
+(def w 1000)
+(def h 1000)
+(def numbers (for [_ (range w)]
+               (for [_ (range h)]
+                 (rand))))
+
+(def clatrix (m/matrix :clatrix numbers))
+(def mtj (m/matrix :mtj numbers))
+
+(quick-bench (m/mmul clatrix clatrix))
+(quick-bench (m/mmul mtj mtj))
 
   )

  Mat
  (matrix-add! [a x]
    (cond
      (zero-dim? x) (let [x (get-0d x)]
                      (dotimes [i (.numRows a)]
                        (dotimes [j (.numColumns a)]

  Vec
  (matrix-add! [a x]
    (cond
      (instance? Vec x) (.add a ^Vec x)
      (zero-dim? x) (let [x (double (get-0d x))]
                      (dotimes [i (.size a)]
                        (.add a i x))
                      a)
      (is-vector? x)
        (let [size (.size a)]
          (println "WARNING: Operations with mixed matrices/vectors may not yield the fastest result.")
