Templated BLAS and LAPACK routines

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Templated BLAS and LAPACK routines

Pieter Collins
As part of a project on rigorous set-based numerics, I need some generic
linear algebra routines in C++. Unfortunately, none of the packages I
have found to date support everything I need (GMP number types and
Interval types; solution of linear equations, QR factorisation and
singular value decomposition; dense and sparse matrices; Matrix and
Vector classes). There are a number of partial solution (e.g. Boost
ublas has linear equations; MTL has an interface to Fortran LAPACK; JAMA
has the algorithms but poor types), but nothing which does everything I
want, and many libraries have incompatible classes.

As a temporary solution, I have developed my some of my own code. I
think it's valuable to separate algorithms from data structures, as in
the C++ STL and the Fortran BLAS/LAPACK framework. Hence computational
core of this code are a templated BLAS library, TBLAS, and a templated
library TLAPACK implementing a limited subset of LAPACK. I made the
TBLAS library by judiciously stream-editing the GNU Scientific Library
(GSL) C BLAS, but the TLAPACK routines needed more work. I also wrote a
simple class interface, SLA, with some expression templates.

I think the TBLAS and TLAPACK libraries are worth further development
(the code isn't very clean, not fully tested, can problably be made more
general, unoptimized, the LAPACK routines are minimal, and maybe the
interface could be simplified). Ideally, these packages would eventually
be suitable for inclusion in the Boost C++ library. I think it's
important that the packages can be used independantly of any class-based
linear algebra package. Unfortunately, I don't have time to work on this
much myself, so it would be great if somebody else would be willing to
take over the main development.

If you want to take a look at the packages, you can download them at
  http://homepages.cwi.nl/~collins/software/sla-0.3.5.tar.gz

(Apologies for cross-posting)


_______________________________________________
glas mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/glas
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Templated BLAS and LAPACK routines

Karl Meerbergen
Hi Pieter,

Thanks. I'll have a look at it. In glas, expressions can be evaluated
using BLAS. At this stage, we only have a limited version for vectors.

Karl


Pieter Collins wrote:

>As part of a project on rigorous set-based numerics, I need some generic
>linear algebra routines in C++. Unfortunately, none of the packages I
>have found to date support everything I need (GMP number types and
>Interval types; solution of linear equations, QR factorisation and
>singular value decomposition; dense and sparse matrices; Matrix and
>Vector classes). There are a number of partial solution (e.g. Boost
>ublas has linear equations; MTL has an interface to Fortran LAPACK; JAMA
>has the algorithms but poor types), but nothing which does everything I
>want, and many libraries have incompatible classes.
>
>As a temporary solution, I have developed my some of my own code. I
>think it's valuable to separate algorithms from data structures, as in
>the C++ STL and the Fortran BLAS/LAPACK framework. Hence computational
>core of this code are a templated BLAS library, TBLAS, and a templated
>library TLAPACK implementing a limited subset of LAPACK. I made the
>TBLAS library by judiciously stream-editing the GNU Scientific Library
>(GSL) C BLAS, but the TLAPACK routines needed more work. I also wrote a
>simple class interface, SLA, with some expression templates.
>
>I think the TBLAS and TLAPACK libraries are worth further development
>(the code isn't very clean, not fully tested, can problably be made more
>general, unoptimized, the LAPACK routines are minimal, and maybe the
>interface could be simplified). Ideally, these packages would eventually
>be suitable for inclusion in the Boost C++ library. I think it's
>important that the packages can be used independantly of any class-based
>linear algebra package. Unfortunately, I don't have time to work on this
>much myself, so it would be great if somebody else would be willing to
>take over the main development.
>
>If you want to take a look at the packages, you can download them at
>  http://homepages.cwi.nl/~collins/software/sla-0.3.5.tar.gz
>
>(Apologies for cross-posting)
>
>
>_______________________________________________
>glas mailing list
>[hidden email]
>http://lists.boost.org/mailman/listinfo.cgi/glas
>
>  
>


_______________________________________________
glas mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/glas
Loading...