Skip to content

Matrix implementations

Mike Anderson edited this page Jul 22, 2013 · 10 revisions

Overview

core.matrix supports multiple implemntations of vector/matrix maths conforming to the same API.

Implementations included in core.matrix

  • persistent-vector : regular Clojure vectors work as core.matrix implementations
  • double-array : Java double[] arrays work as 1D mutable vectors
  • ndarray : a general propose mutable n-dimensional array, stores objects of any type
  • sequence : Clojure sequences (anything implementing ISeq) can be used

Main external core.matrix implementations:

  • vectorz-clj : An implementation based on the Java Vectorz library, which offers fast pure-Java matrix and vector computation with double-valued matrices. Designed for games, simulations and machine learning.
  • Clatrix : A wrapper of jblas which in turns wraps the BLAS native libraries for matrix computation. High performance for large matrices.

Work in progress / experimental implementations

Example implementations we might want to support in the future:

  • Apache Commons maths
  • javax.vecmath (part of Java3D)
  • EJML
  • UJMP