[Numpy-discussion] Insights / lessons learned from NumPy design
Mon Jan 14 07:56:35 CST 2013
Just wanted to say a big thanks to everyone in the NumPy community who has
commented on this topic - it's given us a lot to think about and a lot of
good ideas to work into the design!
On 4 January 2013 14:29, Mike Anderson <firstname.lastname@example.org> wrote:
> Hello all,
> In the Clojure community there has been some discussion about creating a
> common matrix maths library / API. Currently there are a few different
> fledgeling matrix libraries in Clojure, so it seemed like a worthwhile
> effort to unify them and have a common base on which to build on.
> NumPy has been something of an inspiration for this, so I though I'd ask
> here to see what lessons have been learned.
> We're thinking of a matrix library with roughly the following design
> (subject to change!)
> - Support for multi-dimensional matrices (but with fast paths for 1D
> vectors and 2D matrices as the common cases)
> - Immutability by default, i.e. matrix operations are pure functions that
> create new matrices. There could be a "backdoor" option to mutate matrices,
> but that would be unidiomatic in Clojure
> - Support for 64-bit double precision floats only (this is the standard
> float type in Clojure)
> - Ability to support multiple different back-end matrix implementations
> (JBLAS, Colt, EJML, Vectorz, javax.vecmath etc.)
> - A full range of matrix operations. Operations would be delegated to back
> end implementations where they are supported, otherwise generic
> implementations could be used.
> Any thoughts on this topic based on the NumPy experience? In particular
> would be very interesting to know:
> - Features in NumPy which proved to be redundant / not worth the effort
> - Features that you wish had been designed in at the start
> - Design decisions that turned out to be a particularly big mistake /
> Would love to hear your insights, any ideas+advice greatly appreciated!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion