|
numerics 0.1.0
|
LU dispatcher + utility functions (lu_solve, lu_det, lu_inv). More...
#include "linalg/factorization/lu.hpp"#include "backends/seq/impl.hpp"#include "backends/lapack/impl.hpp"Go to the source code of this file.
Namespaces | |
| namespace | num |
Functions | |
| LUResult | num::lu (const Matrix &A, Backend backend=lapack_backend) |
| LU factorization of a square matrix A with partial pivoting. | |
| void | num::lu_solve (const LUResult &f, const Vector &b, Vector &x) |
| Solve A*x = b using a precomputed LU factorization. | |
| void | num::lu_solve (const LUResult &f, const Matrix &B, Matrix &X) |
| Solve A*X = B for multiple right-hand sides. | |
| real | num::lu_det (const LUResult &f) |
| Determinant of A from its LU factorization. | |
| Matrix | num::lu_inv (const LUResult &f) |
| Inverse of A from its LU factorization. | |
LU dispatcher + utility functions (lu_solve, lu_det, lu_inv).
Backend routing: Backend::lapack -> backends::lapack::lu (LAPACKE_dgetrf, blocked BLAS-3) everything else -> backends::seq::lu (Doolittle, partial pivoting)
Adding an omp backend: create backends/omp/lu.cpp, include its impl.hpp here, and add the case Backend::omp below.
Definition in file lu.cpp.