BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_getrf.hpp File Reference

LU factorization with partial pivoting, A = P*L*U (LAPACK ?getrf). More...

#include "assert.hpp"
#include "lapacktools.hpp"
Include dependency graph for fn_getrf.hpp:

Go to the source code of this file.

Namespaces

namespace  belfem
 USER GUIDES:
namespace  belfem::lapack

Functions

void belfem::lapack::sgetrf_ (int_t *m, int_t *n, float *a, int_t *lda, int_t *ipiv, int_t *info)
void belfem::lapack::dgetrf_ (int_t *m, int_t *n, double *a, int_t *lda, int_t *ipiv, int_t *info)
void belfem::lapack::cgetrf_ (int_t *m, int_t *n, cplx_float_t *a, int_t *lda, int_t *ipiv, int_t *info)
void belfem::lapack::zgetrf_ (int_t *m, int_t *n, cplx_double_t *a, int_t *lda, int_t *ipiv, int_t *info)
template<typename T>
void belfem::lapack::getrf (const int_t *m, const int_t *n, T *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void belfem::lapack::getrf (const int_t *m, const int_t *n, float *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void belfem::lapack::getrf (const int_t *m, const int_t *n, double *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void belfem::lapack::getrf (const int_t *m, const int_t *n, std::complex< float > *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void belfem::lapack::getrf (const int_t *m, const int_t *n, std::complex< double > *a, const int_t *lda, int_t *ipiv, int_t *info)
template<typename T>
int_t belfem::getrf (Matrix< T > &A, Vector< int_t > &Pivot, const bool AbortOnError=true)
 LU factorization with partial pivoting via LAPACK ?getrf, A = P * L * U; use together with getri() to invert a matrix.

Detailed Description

LU factorization with partial pivoting, A = P*L*U (LAPACK ?getrf).

Thin wrapper over the Fortran routine: BELFEM containers are passed straight through after their leading dimensions are worked out. Arguments are not copied – see each parameter for what is overwritten in place.