FLENS project 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
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.
FLENS is DEFINITELY NOT:
· ... a replacement for Matlab. While FLENS adopted some nice notations it has a completely different intension. 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,...
What's New in This Release: [ read full changelog ]
· This release fully supports all matrix/vector types specified by BLAS (i.e. matrices with band, packed, or full storage formats and dense vectors).
· In addition, sparse matrices with coordinate and compressed storage formats are available.
· The tutorials were extended to exemplify how users can integrate new matrix/vector types into FLENS.
· They further demonstrate how matrix views can easily be utilized to implement numerical high performance algorithms.