Content |
FLENS
FLENS is short for Flexible Library for Efficient Numerical Solutions. And that's exactly what it is:
A builing block for the implementation of other (higher-level) numerical libraries or numerical applications
Some key points
-
C++ library (requires a C++11 conform compiler)
-
Easy install as FLENS is headers only
-
FLENS gives you
-
Matrix/vector types for dense linear algebra
-
Generic implementation of BLAS (see CXXBLAS)
-
Generic reimplementation of LAPACK (see FLENS-LAPACK)
-
Generic implementation means that you can use any element type for your matrices/vectors that “acts like a double”. So in particular types from the QD Library, mpfr, ...
-
-
If high performance BLAS libraries like ATLAS or GotoBLAS are available:
-
compile with -DWITH_ATLAS or -DWITH_GOTOBLAS respectively,
-
link against them and boost performance.
FLENS does not introduce any overhead due to abstraction. You get all the performance.
-
-
FLENS-BLAS is a high-level and easy-to-use BLAS interface
-
FLENS-LAPACK is a high-level and easy-to-use C++ implementation of LAPACK.
-
FLENS also allows using overloaded operators for accessing BLAS. Most important in this respect:
-
Overloaded operators come without performance penalty!
-
In a special debug mode you can exactly trace what is happening and how you linear algebra expressions gets evaluated through BLAS calls
-
More features are explained in the tutorial.
-
Examples and Tutorial
-
Overview of all driver functions currently implemented in FLENS-LAPACK
-
We just started with a tutorial:
-
Session 1: General matrices and dense vectors.
-
Session 2: BLAS, CXXBLAS, FLENS-BLAS and Overloaded Operators.
-
Session 3: More on matrices: Triangular and symmetric matrices, matrix views, ...
-
Session 4: Using FLENS-LAPACK.
-
Session 5: Using an external LAPACK implementation.
-
Session 6: Sparse Matrices (Experimental).
-
Session 7: User Defined Matrix Types.
-
Scope of this Branch
-
Real and complex matrix types with full storage and dense vector types, i.e.
-
Sparse matrices are experimental at the moment.
-
Our generic BLAS implementation CXXBLAS.
-
Support for high and multipecission types from QD Library and mpfr.
-
Support for native BLAS implementations like ATLAS or GotoBLAS.
-
FLENS-BLAS and FLENS-LAPACK.
-
Overloaded operators for BLAS working ontop of the FLENS-BLAS layer.
-
We improved our DocTool (look at the bottom of each page for document source). We now use restructured text.
Compiler Requirements
FLENS uses some of the C++11 features and therefore requires a recent C++ compiler:
Git It/Download
You can clone a public branch from GitHub
git clone git://github.com/michael-lehn/FLENS.git
or download a snapshot.
Mailing List
Join the mailing list!
Contributors
-
Michael Lehn
-
Klaus Pototzky
-
Alexander Stippler
Contributors
-
Iris Häcker
-
Michael Lehn
-
Klaus Pototzky
-
Alexander Stippler