FLENS is short for Flexible Library for Efficient Numerical Solutions. This C++ can be used as a builing block for the implementation of other (higher-level) numerical libraries or numerical applications. It is a C++ library (requires a C++11 conform compiler). Easy install, as FLENS is headers only. It gives you Matrix/vector types for dense linear algebra; a generic (i.e. templated) implementation of BLAS; and a generic reimplementation of LAPACK. If high performance BLAS libraries like ATLAS, GotoBLAS, etc. are available, you simply can link against them and boost performance.
| Tags | Scientific/Engineering Mathematics education Software Development Libraries High Performance Computing Scientific Computing Scientific software |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | POSIX Mac OS X Unix |
| Implementation | C++ |
Recent releases


Release Notes: 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.


Release Notes: This release added matrix-vector products for general, symmetric, and hermitian sparse matrices with CRS and CCS format. Examples were added for user-defined matrix types.


Release Notes: Most of the documentation was rewritten. The list of generic FLENS-LAPACK functions was extended. A generic implementation of RefBLAS was completed (called CXXBLAS). Sparse matrix types were redesigned (still experimental). An example was added for interfacing with the sparse solver from SuperLU.


Release Notes: This release adds sparse matrix types. There are two types for general and symmetric matrices. For element storage, the "compressed row storage" format is used: the elements can be initialized in random (i.e. arbitrary) order. The tutorial slides have been extended with a demonstration of how to use sparse matrices, more details about how linear algebra expression are evaluated by FLENS, and an example on how to extend FLENS with new matrix/vector types.


Release Notes: Some bugs in the Makefiles and configuration template files were fixed. A bug in the FLENS wrapper functions for the Level 3 BLAS were fixed. Wrapper functions were added to apply some Level 1 BLAS functions like copy and axpy to GeMatrix and GbMatrix.