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

Solves a square linear system by LU factorization (LAPACK ?gesv). More...

#include "lapacktools.hpp"
#include "cl_Vector.hpp"
Include dependency graph for fn_gesv.hpp:

Go to the source code of this file.

Namespaces

namespace  belfem
 USER GUIDES:
namespace  belfem::lapack

Functions

void belfem::lapack::sgesv_ (int_t *n, int_t *nrhs, float *a, int_t *lda, int_t *ipiv, float *b, int_t *ldb, int_t *info)
void belfem::lapack::dgesv_ (int_t *n, int_t *nrhs, double *a, int_t *lda, int_t *ipiv, double *b, int_t *ldb, int_t *info)
void belfem::lapack::cgesv_ (int_t *n, int_t *nrhs, cplx_float_t *a, int_t *lda, int_t *ipiv, cplx_float_t *b, int_t *ldb, int_t *info)
void belfem::lapack::zgesv_ (int_t *n, int_t *nrhs, cplx_double_t *a, int_t *lda, int_t *ipiv, cplx_double_t *b, int_t *ldb, int_t *info)
template<typename T>
void belfem::lapack::gesv (const int_t *n, const int_t *nrhs, T *a, const int_t *lda, int_t *ipiv, T *b, const int_t *ldb, int_t *info)
template<>
void belfem::lapack::gesv (const int_t *n, const int_t *nrhs, float *a, const int_t *lda, int_t *ipiv, float *b, const int_t *ldb, int_t *info)
template<>
void belfem::lapack::gesv (const int_t *n, const int_t *nrhs, double *a, const int_t *lda, int_t *ipiv, double *b, const int_t *ldb, int_t *info)
template<>
void belfem::lapack::gesv (const int_t *n, const int_t *nrhs, std::complex< float > *a, const int_t *lda, int_t *ipiv, std::complex< float > *b, const int_t *ldb, int_t *info)
template<>
void belfem::lapack::gesv (const int_t *n, const int_t *nrhs, std::complex< double > *a, const int_t *lda, int_t *ipiv, std::complex< double > *b, const int_t *ldb, int_t *info)
template<typename T>
int_t belfem::gesv (Matrix< T > &A, Vector< T > &B, Vector< int_t > &Pivot, const bool AbortOnError=true)
 solve the square linear system A * x = b via LAPACK ?gesv ( LU factorization with partial pivoting )
template<typename T>
int_t belfem::gesv (Matrix< T > &A, Matrix< T > &B, Vector< int_t > &Pivot, const bool AbortOnError=true)
 solve A * X = B for multiple right hand sides via LAPACK ?gesv, see the vector version above

Detailed Description

Solves a square linear system by LU factorization (LAPACK ?gesv).

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.