Tutorial
Going through the tutorials should answer many questions for users new to FLENS:
-
How to compile a small C++ code that uses FLENS?
-
What matrix/vector types are defined and how to use them?
-
What are matrix/views?
-
How can I compute matrix-vector operations?
-
How to solve a system of linear equations, compute eigenvalues, etc.?
We also try to give insight of concepts used in the design of FLENS.
Matrices, Vectors and Basic Linear Algebra Operations
Page 1 |
Full Storage Schemes and General Matrices
-
What is a general matrix?
-
Concept of dividing a matrix type into matrix interface and storage scheme.
-
Simple example on how-to use a general matrix.
-
What are matrix-views and how to use them.
-
How are matrix types and matrix views realized in FLENS?
|
Page 2 |
Array Storage and Dense Vectors
-
What is a dense vector?
-
Example for using dense vectors.
-
Working with vector views.
-
Vector views referencing matrix rows, columns or diagonals of a matrix.
|
Page 3 |
Accessing Raw Data Pointers and Strides
|
Page 4 |
Triangular/Trapezoidal Matrices with Full Storage
-
Why using a full storage for triangular matrices?
-
TrMatrix is not a triangular matrix. And it is a good thing.
-
Zeros are not explicitly stored. Accidently accessing the elements from the wrong triangular part causes an assertion error.
-
Sometimes you have to modify the upper triangualr part of a lower TrMatrix (and vice versa). We just help you don't do it by accident.
-
How (and why) GeMatrix and TrMatrix can share the same data:
|
Page 5 |
Symmetric and Hermitian Matrices with Full Storage
|
Page 6 |
Basic Linear Algebra Operations (BLAS)
-
Who gives you High Performance? It's BLAS, not the Compiler!
-
Benchmarks comparing FLENS/ulmBLAS with others.
-
Vector operations.
-
Matrix-vector operations.
-
Matrix-matrix operations.
-
High level and low level interfaces for linear algebra operations.
-
Using overloaded operators and why you still have full control.
|
Page 7 |
Using Operators for BLAS
-
Why usage of operators has a bad reputation in high performance computing.
-
What users coming form Matlab should be aware of.
-
How FLENS provides a transparent and efficient solution.
-
How other C++ libraries deal with issues in the respect.
|
Page 8 |
Coding a High Performance LU Factorization with FLENS
|
Page 9 |
Numerical Linear Algebra (FLENS-LAPACK, LAPACK)
-
Using FLENS-LAPACK.
-
Examples on:
-
Solving a system of linear equations.
-
Computing \(LU\) and \(QR\) factorizations.
-
Computing eigenvalues and eigenvectors.
|