Skip to content

core.matrix : A Matrix / Vector API for Clojure supporting multiple implementations

License

Notifications You must be signed in to change notification settings

orbitfold/matrix-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

core.matrix

N-dimensional Array / Matrix / Vector API for Clojure.

(+ [[1 2] 
    [3 4]] 
   (* (identity-matrix 2) 3.0))
   
=> [[4.0 2.0] 
    [3.0 7.0]]

The objective of core.matrix is to provide a common and idiomatic abstraction for matrix maths in Clojure, independent of underlying implementations. The plan is to develop this into an official Clojure Contrib language extension. Like NumPy, but with more parens and functional goodness..

Key objectives:

  • Provide a clear, standard API / abstraction for matrix and vector maths in Clojure
  • Enable plugable support for different underlying matrix library implementations
  • Provide a general purpose n-dimensional array implementation (NumPy style)
  • Provide a foundation layer for other projects (e.g. Incanter)
  • Maintain good performance wherever possible

Build Status

Getting Started

Get the latest version from Clojars:

For code examples see:

For documentation and further examples see the Wiki:

WARNING: Subject to change

This API is still a work in progress and subject to change.

If you build anything on top of it, don't be too surprised if it breaks with the next release.

Getting started

Right now the code base is primarily intended for people working on the API + implementation.

You can include the latest released version by adding it as a leiningen or Maven dependency from Clojars, but be aware that this is probably out of data compared to the latest master branch.

Some documentation / examples can be found in the Wiki:

Contributing

All contributions / ideas welcome!

If you wish to contribute code, please ensure you have a Clojure Contributors Agreement signed and on file. For more information see:

Discussions related to core.matrix generally take place on the "Numerical Clojure" group:

If you are interested in writing a core.matrix implementation, see:

About

core.matrix : A Matrix / Vector API for Clojure supporting multiple implementations

Resources

License

Stars

Watchers

Forks

Packages

No packages published