On Sun, Dec 5, 2010 at 6:27 PM, Robert McIntyre <r...@mit.edu> wrote:
> I'm trying to use clojure for scientific data analysis but I keep
> running into lacunas of functionality.
>
> I'd love to hear the community's recommendations and experiences with this:
>
> Is there a standard way to do things like:
> 1. take the convolution of two vectors
> 2. work with imaginary numbers, quaternions, octonions, etc
> 3. work with matrices of arbitrary dimension
> 4. Fourier transform ( in multiple dimensions)
> 5. integration / finite difference
> 6. symbolic manipulation as in sage
> 7. minimizing non-linear functions
> 8. finding zeros of non-linear functions

Standard, as in built into Clojure? No. Standard as in algorithmic? Of course.

There are two options here. First, many of those things are fairly
easily implemented in Clojure, and with a bit more work can be made
very efficient (essentially, native-C efficient). For instance, for
matrices you'd want a contiguous representation in memory so you'd use
a vector, or even a Java array of doubles, of length m*n and functions
that provided a matrix API and used this representation internally.
With definline and macros this can be made efficient, and a Java array
of doubles could have the speed of equivalent C code since it would be
a contiguous block of doubles in RAM just as you'd get in C.

Second, there are probably lots of existing scientific-computing
libraries for Java out there that do the things you need done, and
Clojure can load and call into Java libraries pretty easily.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to