ANN: BLAS Bindings for Haskell, version 0.5
I’ve put together a new release of the Haskell BLAS bindings, now available on hackage.
Here are the new features:
- Add
Banded
matrix data type, as well asTri Banded
andHerm Banded
. - Add support for trapezoidal dense matrices (
Tri Matrix (m,n) e
, wherem
is not the same asn
). Note that trapezoidal banded matrices are NOT supported. - Add
Diag
matrix data type for diagonal matrices. - Add
Perm
matrix data type, for permutation matrices. - Enhance the
RMatrix
andRSolve
type classes with an API that allows specifying where to store the result of a computation. - Enhance the
IMatrix
,RMatrix
,ISolve
, andRSolve
type classes to add “scale and multiply” operations. - Remove the scale parameter for
Tri
andHerm
matrix data types. - Flatten the data types for
DVector
andDMatrix
. - Some inlining and unpacking performance improvements.
As far as what to expect in version 0.6, I plan to add support for operations in the ST monad. This is going to require a pretty big code reorganization and will cause quite a few API breakages, but I think it’s worth the pain. The next release will also come with a tutorial and examples. After the big code reorganization, I’ll get started on LAPACK bindings.
Please let me know if you are using the library. I’m really interested in what people like and don’t like. If you think that some functionality is missing, let me know. If you think the API is awkward in certain places, let me know that, too.