3
votes

I am looking for a Scheme implementation with a reasonable BLAS and LAPACK interface package, i.e. one that supports the API subset decribted in Golub and Van Loan's "Matrix Computations". This would include, at the very least, all the BLAS operations, the major decompositions (SVD, LU, QR, Cholesky) and, for convenience, least squares. I could see that Chicken and Racket have something, but it's not covering the above. Does anyone know of either an implementation of a portable library that accomplishes this?

2
When you went looking in Racket, I'm guessing you came across William Farr's plt-linalg package? It has 29 of the BLAS operations (looks like there are about 40 total), and it looks like adding the others would be extremely straightforward. - John Clements
Correct. Sure, it shouldn't be too hard. Same with Chicken. Still, I'd rather not fork an maintain a package. - gappy
Okay, yes, I was afraid you were going to say that. :) - John Clements

2 Answers

2
votes

I don't think I remember any Scheme implementation that support that subset of BLAS and LAPACK (although I could be wrong), but if I were you I'd consider Chicken with FFI (which is quite simple). You could even write some wrappers in Scheme, or, if you're willing to do so, contribute some enhancements to the two Chicken eggs (packages) blas and atlas-lapack.

1
votes

If you're using Chicken Scheme, you can use http://wiki.call-cc.org/eggref/4/atlas-lapack . Yes, you have to build atlas-lapack library before install this egg.