First: thanks for making this great package available!
Second: The svd wrapper does more than just allocate temporary storage. It turns the singular value vector into an entire matrix. In my application, this could represent a lot of wasted space. It might be more intuitive if there were 3 layers of code in matlisp: the ffi to a lapack function, the lisp wrapper that allocates temporary storage and deals with truly mundane details, and then a third layer on top that provides a simple interface for folks that don't want to look at the lapack manual and for whom details like an extra matrix-worth of storage is not an issue.
Third: I'm not really familiar with sourceforge, and I don't know whether the fact that it is hosting matlisp means you are eager for others to modify the matlisp code, add interfaces to other packages, etc... It seems like matlisp could become a nice clearinghouse for numerical lisp code, but it is unclear to me whether the original authors want it to evolve in that direction, or how I can help.
Fourth: I hope some sort of manual for matlisp is in the works!
Fifth: fyi, matlisp seems to work on dec alpha with allegro 5.0.1 and the dec lapack library (cxml).
Yes, the SVD seems to return the DIAGonalized singular values.
There is some freedom to control the return value of SVD, try
(HELP SVD) to see the JOB options.
There are 3 layers of code in MATLISP:
1. the direct interfaces to BLAS/LAPACK/DFFTPACK, accessible
in packages BLAS,LAPACK,DFFTPACK. Try, (HELP DAXPY)
to see what I mean or (HELP BLAS)
2. the wrapped versions of some key BLAS/LAPACK routines. For
example, AXPY wraps DAXPY and ZAXPY etc ...
3. the higher level wrappers such as EIG,SVD, DIAG etc ...
To have MATLISP on sourceforge, in my opinion, should encourage
in participation of the tool. I think that if there is a contribution to
be made then something can be worked out.