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

Inverts a square matrix in place from its LU factors (LAPACK ?getri). More...

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

Go to the source code of this file.

Namespaces

namespace  belfem
 USER GUIDES:
namespace  belfem::lapack

Functions

void belfem::lapack::sgetri_ (int_t *n, float *a, int_t *lda, int_t *ipiv, float *work, int_t *lwork, int_t *info)
void belfem::lapack::dgetri_ (int_t *n, double *a, int_t *lda, int_t *ipiv, double *work, int_t *lwork, int_t *info)
void belfem::lapack::cgetri_ (int_t *n, cplx_float_t *a, int_t *lda, int_t *ipiv, cplx_float_t *work, int_t *lwork, int_t *info)
void belfem::lapack::zgetri_ (int_t *n, cplx_double_t *a, int_t *lda, int_t *ipiv, cplx_double_t *work, int_t *lwork, int_t *info)
template<typename T>
void belfem::lapack::getri (const int_t *n, T *a, const int_t *lda, int_t *ipiv, T *work, const int_t *lwork, int_t *info)
template<>
void belfem::lapack::getri (const int_t *n, float *a, const int_t *lda, int_t *ipiv, float *work, const int_t *lwork, int_t *info)
template<>
void belfem::lapack::getri (const int_t *n, double *a, const int_t *lda, int_t *ipiv, double *work, const int_t *lwork, int_t *info)
template<>
void belfem::lapack::getri (const int_t *n, std::complex< float > *a, const int_t *lda, int_t *ipiv, std::complex< float > *work, const int_t *lwork, int_t *info)
template<>
void belfem::lapack::getri (const int_t *n, std::complex< double > *a, const int_t *lda, int_t *ipiv, std::complex< double > *work, const int_t *lwork, int_t *info)
template<typename T>
int_t belfem::getri (Matrix< T > &A, Vector< int_t > &Pivot, Vector< T > &Work, const bool AbortOnError=true)
 invert a square matrix in place via LAPACK ?getri, using the LU factorization computed by getrf()

Detailed Description

Inverts a square matrix in place from its LU factors (LAPACK ?getri).

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.