FLENS 2012-10-01

A C++ interface for BLAS and LAPACK

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!

What's new in FLENS 2012-10-01:

  • 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.
Read full changelog
send us
an update
BSD License 
3.4/5 22
Michael Lehn
ROOT \ Science and Engineering \ Mathematics
1 FLENS Screenshot:
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


· 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.


· ... 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,...

Last updated on October 2nd, 2012

#BLAS interface #LAPACK interface #C++ interface #FLENS #BLAS #LAPACK #C++

Add your review!