HBlas - Linear Algebra for Haskell


HBlas is a port of the BLAS (Basic Linear Algebra System) for Haskell. BLAS was originally written for Fortran, ported to C. HLAPack is a port of LAPack (Linear Algebra Package) for Haskell. LAPack was also originally written for Fortran and then ported to C.

There is a Romanian translation available due to Aleksandra Seremina.


To install HBlas/HLAPack (which come bundled together) you must first install CLAPACK which includes a C version of both BLAS and LAPACK. You can get CLAPACK from here. Follow their instructions very carefully; it's not a trivial insall.

Once you've installed CLAPACK, you can install HBlas by emailing me for the newest source bundle or by downloading the source bundle at the bottom of this page.

Warning: Not everything is ported yet; email me if you have a particular function you need ported and I'll do it fist; better yet, if you want to contribute, email me...

After you build CLAPACK, you will have files called something like blas.a, lapack.a and libF77.a. Copy the first two to libblas.a and liblapack.a respectively. Also, CLAPACK comes with headers blaswrap.h, clapack.h and f2c.h. Remember where these all are.

To build HLAPack/HBlas (which you should be able to do without greencard; if you want to greencard the files yourself, you're on your own -- though you can email me for help), we can try by building the HLAPack/TestDGEEV.hs program. To do this, go to the src directory and execute:

ghc -fglasgow-exts -package data --make -O2 -fvia-c HLAPack/TestDGEEV.hs -o TestDGEEV -Lwherever-the-lib-files-are -lHSrts -llapack -lblas -lF77 -Iwherever-the-h-files-are

This should work okay, but if not, scream and I'll try to help


You can view the documentation here.


Download the source bundle here: hblas.tar.gz


Email me at "> with any questions/comments/whatever.