-
Notifications
You must be signed in to change notification settings - Fork 113
Home
Mike Anderson edited this page Jan 16, 2016
·
41 revisions
core.matrix
is an API for multi-dimensional array computation in Clojure. This includes vector and matrix maths (plus a lot more), using a consistent and idiomatic Clojure API.
Key goals of core.matrix:
- Provide a clear, standard API / abstraction for matrix and array programming in Clojure
- Enable pluggable support for different underlying matrix library implementations
- Provide a general purpose n-dimensional array implementations
- Provide a foundation library for other projects (e.g. Incanter)
- Enable high performance numerical computing
- Allow idiomatic Clojure coding for numerical code
For a general introduction, the slide and video from the 2013 Clojure Conj talk are available here:
- http://www.slideshare.net/mikeranderson/2013-1114-enter-thematrix
- http://www.youtube.com/watch?v=_h9TLJtjSJo
- [General core.matrix examples] (https://github.com/mikera/core.matrix/blob/develop/src/test/clojure/clojure/core/matrix/demo/examples.clj)
- Implementing Google Pagerank
- Simulating Snakes and Ladders
- vectorz-clj examples - external link to vectorz-clj
- Vectors vs. Matrices - FAQ on the differences between 1D vectors and 2D matrices
-
Broadcasting - how broadcasting works in
core.matrix
- Views - what are views, and how to use them
-
Matrix Implementations - what
core.matrix
implementations are currently available? - Linear Algebra - Linear algebra functions in core.matrix
Dmitry (si14) has contributed some nice visualizations of core.matrix protocol implementation coverage and performance:
Wiki Links:
- core.matrix internals
- Implementation Guide - for people building a core.matrix implementation
- Contributing
These pages contain working ideas, notes and discussions for future development.
- Core design ideas
- Selectors and Indexing
- Sorting
- NDArray Implementation - design notes for Clojure NDArray implementation
- Linear algebra API proposal
- Dataset API proposal