[eigen] FLENS C++ expression template Library has excellent documentation

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hello EIGEN - List,

i want to point you to the lib FLENS. It provides a C++ Interface to BLAS and
LAPACK in a expression template manner. I am mentioning flens here, because it
may be a source of inspiration for further eigen2 design desicions.

http://flens.sourceforge.net/

here is the very extensive documentation:

http://flens.sf.net/flensdoc.pdf


quote from the page:

"FLENS intends to be the building block of choice for the creation of serious
scientific software in C++.

What FLENS is...
a C++ interface for BLAS and LAPACK
an extremely convenient C++ interface for BLAS and LAPACK
an extremely efficient C++ interface to BLAS and LAPACK:
There is no run-time overhead compared to directly calling BLAS and LAPACK.
There are no obscure side-effects like internal creation of temporary objects

What FLENS is NOT...
just a C++ interface for BLAS and LAPACK!
It is more than that:
it is extendable: e.g. easy integration of user-defined matrix/vector types.
it is flexible: e.g. generic programming of numerical algorithms.
Have a look on the tutorial...


What FLENS is DEFINITELY NOT...

.... a replacement for Matlab. While FLENS adopted some nice notations it has a
completely different intention. Ok, Matlab uses BLAS and LAPACK just like FLENS.
But it uses only a subset. Matlab basically has only two data types and these
are general matrices and sparse matrices. If you have matrices with band
structure Matlab will not use those BLAS and LAPACK routines that exploit this
structure.

Just to make sure you get us right: We do not want to bash Matlab. It is a great
tool. But you have to figure out what's the right tool for your job. Matlab is a
great tool because it is very easy to use and it allows rapid prototyping. For
many people the performance of Matlab is Ok. For those people there might be
absolutely no reason to even consider using FLENS.

FLENS gives you full control about what's going on behind the scene. It provides
(for example) general, triangular, symmetric and hermitian matrix types.
Elements of these matrices can be stored in different formats: full storage
(store all m x n elements), band storage (store only diagonals of a banded
matrix), packed storage (store only the upper or lower triangular part).

FLENS implements a view concept: You can define that a vector references a row,
column or diagonal of a matrix. You can define, that elements of a triangular
matrix are those stored in the upper triangular part of a general matrix,...

These are just a few things needed for serious scientific computing. See the
tutorials and the documentation for more.
"



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/