>>> although Matlisp comes close.
> Are you saying that NumPy is efficient? Or that you like its user
> interface? Or its scope? The efficiency of numerical calculations
> in Lisp is heavily dependent on the particular implementation.
> CMU-CL or SBCL, among the free lisps, should be pretty good.
Yes, SBCL is quite fast by the looks of it, CCL not quite (maybe
because it was interpreted ?); having numerics in Lisp kind of
ties one down to an interpreter.
For me it had been mostly the NumPy/SciPy/Matplotlib/Mayavi ecosystem.
NumPy/SciPy doesn't look as fast as MATLAB or Octave even, at certain
tasks, but python is a much nicer language.
What excites me with Lisp, is that I can - in theory - do symbolic,
numerical computation seamlessly, and at the end of prototyping,
compile the code :)
>> creating equivalents of NumPy working with sbcl.
> There is some attempt, CFFI, which I have not used myself, to
> standardize foreign function interfaces. My understanding is the
> GCL doesn't allow this. If SBCL truly runs on Windows, (for which
> there seems to be some issues), that would help. I personally
> solve these issues by not using "several Common Lisp variants" but
> only one.
>
>>> Ray and I have been incorporating new stuff into Matlisp
>>> though, hopefully that will mature into something that I'd be
>>> happy using.
> Great! I'm a fan of Matlisp, at least in principle; I haven't used
> it myself :)
:)
If anyone is interested in having a go at the code,
the bleeding-edge branch of Matlisp is here:
git://matlisp.git.sourceforge.net/gitroot/matlisp/matlisp matlisp-cffi
The basic datastructure has been tweaked so as to be able to handle
matrix slices and row/col-major matrices seamlessly.
Things like:
--------------------------------------------------
(defvar e (make-complex-matrix '((#c(1 2) #c(2 6)) (#c(3 1) #c(4 5)))))
(defvar out (make-complex-matrix 2 2))
(gemm! 1d0 (realpart! e) (imagpart! e) 0d0 out)
--------------------------------------------------
can be done without ever having to copy the store.
Not everything works, and SBCL throws up an error about row-stride
midway, but if you just accept that and fool lisp into believing
everything is hunky-dory; the above example should work.
Akshay
>
> _______________________________________________ Maxima mailing
> list Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima