numerics 0.1.0
Loading...
Searching...
No Matches
lu.cpp File Reference

LU dispatcher + utility functions (lu_solve, lu_det, lu_inv). More...

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.
 

Detailed Description

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.