BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::lapack Namespace Reference

Classes

struct  cplx_type
struct  cplx_type< std::complex< T > >
struct  gees_select
struct  gees_select< std::complex< R > >
struct  real_type
struct  real_type< std::complex< T > >

Typedefs

typedef int_t(*) sgees_select_t(const float *, const float *)
typedef int_t(*) dgees_select_t(const double *, const double *)
typedef int_t(*) cgees_select_t(const cplx_float_t *)
typedef int_t(*) zgees_select_t(const cplx_double_t *)
template<typename T>
using gees_select_t = typename gees_select< T >::type
template<typename T>
using real_t = typename real_type< T >::type
template<typename T>
using cplx_t = typename cplx_type< T >::type
typedef float cplx_float_t
typedef double cplx_double_t
typedef size_t fortran_charlen_t

Functions

void sgees_ (char *jobvs, char *sort, sgees_select_t select, int_t *n, float *a, int_t *lda, int_t *sdim, float *wr, float *wi, float *vs, int_t *ldvs, float *work, int_t *lwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls)
void dgees_ (char *jobvs, char *sort, dgees_select_t select, int_t *n, double *a, int_t *lda, int_t *sdim, double *wr, double *wi, double *vs, int_t *ldvs, double *work, int_t *lwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls)
void cgees_ (char *jobvs, char *sort, cgees_select_t select, int_t *n, cplx_float_t *a, int_t *lda, int_t *sdim, cplx_float_t *w, cplx_float_t *vs, int_t *ldvs, cplx_float_t *work, int_t *lwork, float *rwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls)
void zgees_ (char *jobvs, char *sort, zgees_select_t select, int_t *n, cplx_double_t *a, int_t *lda, int_t *sdim, cplx_double_t *w, cplx_double_t *vs, int_t *ldvs, cplx_double_t *work, int_t *lwork, double *rwork, int_t *bwork, int_t *info, fortran_charlen_t lj, fortran_charlen_t ls)
template<typename T>
void gees (const char *jobvs, const char *sort, gees_select_t< T > select, const int_t *n, T *a, const int_t *lda, int_t *sdim, cplx_t< T > *w, T *vs, const int_t *ldvs, T *work, const int_t *lwork, real_t< T > *rwork, int_t *bwork, int_t *info)
template<>
void gees (const char *jobvs, const char *sort, sgees_select_t select, const int_t *n, float *a, const int_t *lda, int_t *sdim, std::complex< float > *w, float *vs, const int_t *ldvs, float *work, const int_t *lwork, float *rwork, int_t *bwork, int_t *info)
template<>
void gees (const char *jobvs, const char *sort, dgees_select_t select, const int_t *n, double *a, const int_t *lda, int_t *sdim, std::complex< double > *w, double *vs, const int_t *ldvs, double *work, const int_t *lwork, double *rwork, int_t *bwork, int_t *info)
template<>
void gees (const char *jobvs, const char *sort, gees_select_t< std::complex< float > > select, const int_t *n, std::complex< float > *a, const int_t *lda, int_t *sdim, std::complex< float > *w, std::complex< float > *vs, const int_t *ldvs, std::complex< float > *work, const int_t *lwork, float *rwork, int_t *bwork, int_t *info)
template<>
void gees (const char *jobvs, const char *sort, gees_select_t< std::complex< double > > select, const int_t *n, std::complex< double > *a, const int_t *lda, int_t *sdim, std::complex< double > *w, std::complex< double > *vs, const int_t *ldvs, std::complex< double > *work, const int_t *lwork, double *rwork, int_t *bwork, int_t *info)
void sgeev_ (char *jobvl, char *jobvr, int_t *n, float *a, int_t *lda, float *wr, float *wi, float *vl, int_t *ldvl, float *vr, int_t *ldvr, float *work, int_t *lwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void dgeev_ (char *jobvl, char *jobvr, int_t *n, double *a, int_t *lda, double *wr, double *wi, double *vl, int_t *ldvl, double *vr, int_t *ldvr, double *work, int_t *lwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void cgeev_ (char *jobvl, char *jobvr, int_t *n, cplx_float_t *a, int_t *lda, cplx_float_t *w, cplx_float_t *vl, int_t *ldvl, cplx_float_t *vr, int_t *ldvr, cplx_float_t *work, int_t *lwork, float *rwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
void zgeev_ (char *jobvl, char *jobvr, int_t *n, cplx_double_t *a, int_t *lda, cplx_double_t *w, cplx_double_t *vl, int_t *ldvl, cplx_double_t *vr, int_t *ldvr, cplx_double_t *work, int_t *lwork, double *rwork, int_t *info, fortran_charlen_t lvl, fortran_charlen_t lvr)
template<typename T>
void geev (const char *jobvl, const char *jobvr, const int_t *n, T *a, const int_t *lda, cplx_t< T > *w, T *vl, const int_t *ldvl, T *vr, const int_t *ldvr, T *work, const int_t *lwork, real_t< T > *rwork, int_t *info)
template<>
void geev (const char *jobvl, const char *jobvr, const int_t *n, float *a, const int_t *lda, std::complex< float > *w, float *vl, const int_t *ldvl, float *vr, const int_t *ldvr, float *work, const int_t *lwork, float *rwork, int_t *info)
template<>
void geev (const char *jobvl, const char *jobvr, const int_t *n, double *a, const int_t *lda, std::complex< double > *w, double *vl, const int_t *ldvl, double *vr, const int_t *ldvr, double *work, const int_t *lwork, double *rwork, int_t *info)
template<>
void geev (const char *jobvl, const char *jobvr, const int_t *n, std::complex< float > *a, const int_t *lda, std::complex< float > *w, std::complex< float > *vl, const int_t *ldvl, std::complex< float > *vr, const int_t *ldvr, std::complex< float > *work, const int_t *lwork, float *rwork, int_t *info)
template<>
void geev (const char *jobvl, const char *jobvr, const int_t *n, std::complex< double > *a, const int_t *lda, std::complex< double > *w, std::complex< double > *vl, const int_t *ldvl, std::complex< double > *vr, const int_t *ldvr, std::complex< double > *work, const int_t *lwork, double *rwork, int_t *info)
void sgels_ (char *trans, int_t *m, int_t *n, int_t *nrhs, float *a, int_t *lda, float *b, int_t *ldb, float *work, int_t *lwork, int_t *info, fortran_charlen_t lt)
void dgels_ (char *trans, int_t *m, int_t *n, int_t *nrhs, double *a, int_t *lda, double *b, int_t *ldb, double *work, int_t *lwork, int_t *info, fortran_charlen_t lt)
void cgels_ (char *trans, int_t *m, int_t *n, int_t *nrhs, cplx_float_t *a, int_t *lda, cplx_float_t *b, int_t *ldb, cplx_float_t *work, int_t *lwork, int_t *info, fortran_charlen_t lt)
void zgels_ (char *trans, int_t *m, int_t *n, int_t *nrhs, cplx_double_t *a, int_t *lda, cplx_double_t *b, int_t *ldb, cplx_double_t *work, int_t *lwork, int_t *info, fortran_charlen_t lt)
template<typename T>
void gels (const char *trans, const int_t *m, const int_t *n, const int_t *nrhs, T *a, const int_t *lda, T *b, const int_t *ldb, T *work, const int_t *lwork, int_t *info)
template<>
void gels (const char *trans, const int_t *m, const int_t *n, const int_t *nrhs, float *a, const int_t *lda, float *b, const int_t *ldb, float *work, const int_t *lwork, int_t *info)
template<>
void gels (const char *trans, const int_t *m, const int_t *n, const int_t *nrhs, double *a, const int_t *lda, double *b, const int_t *ldb, double *work, const int_t *lwork, int_t *info)
template<>
void gels (const char *trans, const int_t *m, const int_t *n, const int_t *nrhs, std::complex< float > *a, const int_t *lda, std::complex< float > *b, const int_t *ldb, std::complex< float > *work, const int_t *lwork, int_t *info)
template<>
void gels (const char *trans, const int_t *m, const int_t *n, const int_t *nrhs, std::complex< double > *a, const int_t *lda, std::complex< double > *b, const int_t *ldb, std::complex< double > *work, const int_t *lwork, int_t *info)
void sgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, float *alpha, float *a, int_t *lda, float *b, int_t *ldb, float *beta, float *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb)
void dgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, double *alpha, double *a, int_t *lda, double *b, int_t *ldb, double *beta, double *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb)
void cgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, cplx_float_t *alpha, cplx_float_t *a, int_t *lda, cplx_float_t *b, int_t *ldb, cplx_float_t *beta, cplx_float_t *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb)
void zgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, cplx_double_t *alpha, cplx_double_t *a, int_t *lda, cplx_double_t *b, int_t *ldb, cplx_double_t *beta, cplx_double_t *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb)
template<typename T>
void gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const T *alpha, const T *a, const int_t *lda, const T *b, const int_t *ldb, const T *beta, T *c, const int_t *ldc)
template<>
void gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const float *alpha, const float *a, const int_t *lda, const float *b, const int_t *ldb, const float *beta, float *c, const int_t *ldc)
template<>
void gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const double *alpha, const double *a, const int_t *lda, const double *b, const int_t *ldb, const double *beta, double *c, const int_t *ldc)
template<>
void gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const std::complex< float > *alpha, const std::complex< float > *a, const int_t *lda, const std::complex< float > *b, const int_t *ldb, const std::complex< float > *beta, std::complex< float > *c, const int_t *ldc)
template<>
void gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const std::complex< double > *alpha, const std::complex< double > *a, const int_t *lda, const std::complex< double > *b, const int_t *ldb, const std::complex< double > *beta, std::complex< double > *c, const int_t *ldc)
void sgesv_ (int_t *n, int_t *nrhs, float *a, int_t *lda, int_t *ipiv, float *b, int_t *ldb, int_t *info)
void dgesv_ (int_t *n, int_t *nrhs, double *a, int_t *lda, int_t *ipiv, double *b, int_t *ldb, int_t *info)
void 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 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 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 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 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 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 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)
void sgesvd_ (char *jobu, char *jobvt, int_t *m, int_t *n, float *a, int_t *lda, float *s, float *u, int_t *ldu, float *vt, int_t *ldvt, float *work, int_t *lwork, int_t *info, fortran_charlen_t lu, fortran_charlen_t lvt)
void dgesvd_ (char *jobu, char *jobvt, int_t *m, int_t *n, double *a, int_t *lda, double *s, double *u, int_t *ldu, double *vt, int_t *ldvt, double *work, int_t *lwork, int_t *info, fortran_charlen_t lu, fortran_charlen_t lvt)
void cgesvd_ (char *jobu, char *jobvt, int_t *m, int_t *n, cplx_float_t *a, int_t *lda, float *s, cplx_float_t *u, int_t *ldu, cplx_float_t *vt, int_t *ldvt, cplx_float_t *work, int_t *lwork, float *rwork, int_t *info, fortran_charlen_t lu, fortran_charlen_t lvt)
void zgesvd_ (char *jobu, char *jobvt, int_t *m, int_t *n, cplx_double_t *a, int_t *lda, double *s, cplx_double_t *u, int_t *ldu, cplx_double_t *vt, int_t *ldvt, cplx_double_t *work, int_t *lwork, double *rwork, int_t *info, fortran_charlen_t lu, fortran_charlen_t lvt)
template<typename T>
void gesvd (const char *jobu, const char *jobvt, const int_t *m, const int_t *n, T *a, const int_t *lda, real_t< T > *s, T *u, const int_t *ldu, T *vt, const int_t *ldvt, T *work, const int_t *lwork, real_t< T > *rwork, int_t *info)
template<>
void gesvd (const char *jobu, const char *jobvt, const int_t *m, const int_t *n, float *a, const int_t *lda, float *s, float *u, const int_t *ldu, float *vt, const int_t *ldvt, float *work, const int_t *lwork, float *, int_t *info)
template<>
void gesvd (const char *jobu, const char *jobvt, const int_t *m, const int_t *n, double *a, const int_t *lda, double *s, double *u, const int_t *ldu, double *vt, const int_t *ldvt, double *work, const int_t *lwork, double *, int_t *info)
template<>
void gesvd (const char *jobu, const char *jobvt, const int_t *m, const int_t *n, std::complex< float > *a, const int_t *lda, float *s, std::complex< float > *u, const int_t *ldu, std::complex< float > *vt, const int_t *ldvt, std::complex< float > *work, const int_t *lwork, float *rwork, int_t *info)
template<>
void gesvd (const char *jobu, const char *jobvt, const int_t *m, const int_t *n, std::complex< double > *a, const int_t *lda, double *s, std::complex< double > *u, const int_t *ldu, std::complex< double > *vt, const int_t *ldvt, std::complex< double > *work, const int_t *lwork, double *rwork, int_t *info)
void sgetrf_ (int_t *m, int_t *n, float *a, int_t *lda, int_t *ipiv, int_t *info)
void dgetrf_ (int_t *m, int_t *n, double *a, int_t *lda, int_t *ipiv, int_t *info)
void cgetrf_ (int_t *m, int_t *n, cplx_float_t *a, int_t *lda, int_t *ipiv, int_t *info)
void zgetrf_ (int_t *m, int_t *n, cplx_double_t *a, int_t *lda, int_t *ipiv, int_t *info)
template<typename T>
void getrf (const int_t *m, const int_t *n, T *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void getrf (const int_t *m, const int_t *n, float *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void getrf (const int_t *m, const int_t *n, double *a, const int_t *lda, int_t *ipiv, int_t *info)
template<>
void 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 getrf (const int_t *m, const int_t *n, std::complex< double > *a, const int_t *lda, int_t *ipiv, int_t *info)
void sgetri_ (int_t *n, float *a, int_t *lda, int_t *ipiv, float *work, int_t *lwork, int_t *info)
void dgetri_ (int_t *n, double *a, int_t *lda, int_t *ipiv, double *work, int_t *lwork, int_t *info)
void 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 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 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 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 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 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 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)
void sposv_ (char *uplo, int_t *n, int_t *nrhs, float *a, int_t *lda, float *b, int_t *ldb, int_t *info, fortran_charlen_t l)
void dposv_ (char *uplo, int_t *n, int_t *nrhs, double *a, int_t *lda, double *b, int_t *ldb, int_t *info, fortran_charlen_t l)
void cposv_ (char *uplo, int_t *n, int_t *nrhs, cplx_float_t *a, int_t *lda, cplx_float_t *b, int_t *ldb, int_t *info, fortran_charlen_t l)
void zposv_ (char *uplo, int_t *n, int_t *nrhs, cplx_double_t *a, int_t *lda, cplx_double_t *b, int_t *ldb, int_t *info, fortran_charlen_t l)
template<typename T>
void posv (const char *uplo, const int_t *n, const int_t *nrhs, T *a, const int_t *lda, T *b, const int_t *ldb, int_t *info)
template<>
void posv (const char *uplo, const int_t *n, const int_t *nrhs, float *a, const int_t *lda, float *b, const int_t *ldb, int_t *info)
template<>
void posv (const char *uplo, const int_t *n, const int_t *nrhs, double *a, const int_t *lda, double *b, const int_t *ldb, int_t *info)
template<>
void posv (const char *uplo, const int_t *n, const int_t *nrhs, std::complex< float > *a, const int_t *lda, std::complex< float > *b, const int_t *ldb, int_t *info)
template<>
void posv (const char *uplo, const int_t *n, const int_t *nrhs, std::complex< double > *a, const int_t *lda, std::complex< double > *b, const int_t *ldb, int_t *info)
template<typename T>
int_t leading_dimension (const Vector< T > &A)
 logical length of a vector operand, as passed to LAPACK as LDB; vector storage is contiguous under both backends
template<typename T>
int_t leading_dimension (const Matrix< T > &A)
 stride between the columns of an owning, column-major matrix, as passed to LAPACK as LDA/LDB/LDC.
int_t work_size (const float &aValue)
 lapack reports the optimal work size in the first entry of the work array, which stays real valued for the complex flavors
int_t work_size (const double &aValue)
int_t work_size (const std::complex< float > &aValue)
int_t work_size (const std::complex< double > &aValue)

Variables

template<typename T>
constexpr bool dependent_false = false

Typedef Documentation

◆ cgees_select_t

typedef int_t(*) belfem::lapack::cgees_select_t(const cplx_float_t *)

◆ cplx_double_t

◆ cplx_float_t

◆ cplx_t

template<typename T>
using belfem::lapack::cplx_t = typename cplx_type< T >::type

◆ dgees_select_t

typedef int_t(*) belfem::lapack::dgees_select_t(const double *, const double *)

◆ fortran_charlen_t

◆ gees_select_t

template<typename T>
using belfem::lapack::gees_select_t = typename gees_select< T >::type

◆ real_t

template<typename T>
using belfem::lapack::real_t = typename real_type< T >::type

◆ sgees_select_t

typedef int_t(*) belfem::lapack::sgees_select_t(const float *, const float *)

◆ zgees_select_t

typedef int_t(*) belfem::lapack::zgees_select_t(const cplx_double_t *)

Function Documentation

◆ cgees_()

void belfem::lapack::cgees_ ( char * jobvs,
char * sort,
cgees_select_t select,
int_t * n,
cplx_float_t * a,
int_t * lda,
int_t * sdim,
cplx_float_t * w,
cplx_float_t * vs,
int_t * ldvs,
cplx_float_t * work,
int_t * lwork,
float * rwork,
int_t * bwork,
int_t * info,
fortran_charlen_t lj,
fortran_charlen_t ls )

◆ cgeev_()

void belfem::lapack::cgeev_ ( char * jobvl,
char * jobvr,
int_t * n,
cplx_float_t * a,
int_t * lda,
cplx_float_t * w,
cplx_float_t * vl,
int_t * ldvl,
cplx_float_t * vr,
int_t * ldvr,
cplx_float_t * work,
int_t * lwork,
float * rwork,
int_t * info,
fortran_charlen_t lvl,
fortran_charlen_t lvr )

◆ cgels_()

void belfem::lapack::cgels_ ( char * trans,
int_t * m,
int_t * n,
int_t * nrhs,
cplx_float_t * a,
int_t * lda,
cplx_float_t * b,
int_t * ldb,
cplx_float_t * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lt )

◆ cgemm_()

void belfem::lapack::cgemm_ ( char * transa,
char * transb,
int_t * m,
int_t * n,
int_t * k,
cplx_float_t * alpha,
cplx_float_t * a,
int_t * lda,
cplx_float_t * b,
int_t * ldb,
cplx_float_t * beta,
cplx_float_t * c,
int_t * ldc,
fortran_charlen_t lta,
fortran_charlen_t ltb )

◆ cgesv_()

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 )

◆ cgesvd_()

void belfem::lapack::cgesvd_ ( char * jobu,
char * jobvt,
int_t * m,
int_t * n,
cplx_float_t * a,
int_t * lda,
float * s,
cplx_float_t * u,
int_t * ldu,
cplx_float_t * vt,
int_t * ldvt,
cplx_float_t * work,
int_t * lwork,
float * rwork,
int_t * info,
fortran_charlen_t lu,
fortran_charlen_t lvt )

◆ cgetrf_()

void belfem::lapack::cgetrf_ ( int_t * m,
int_t * n,
cplx_float_t * a,
int_t * lda,
int_t * ipiv,
int_t * info )

◆ cgetri_()

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 )

◆ cposv_()

void belfem::lapack::cposv_ ( char * uplo,
int_t * n,
int_t * nrhs,
cplx_float_t * a,
int_t * lda,
cplx_float_t * b,
int_t * ldb,
int_t * info,
fortran_charlen_t l )

◆ dgees_()

void belfem::lapack::dgees_ ( char * jobvs,
char * sort,
dgees_select_t select,
int_t * n,
double * a,
int_t * lda,
int_t * sdim,
double * wr,
double * wi,
double * vs,
int_t * ldvs,
double * work,
int_t * lwork,
int_t * bwork,
int_t * info,
fortran_charlen_t lj,
fortran_charlen_t ls )

◆ dgeev_()

void belfem::lapack::dgeev_ ( char * jobvl,
char * jobvr,
int_t * n,
double * a,
int_t * lda,
double * wr,
double * wi,
double * vl,
int_t * ldvl,
double * vr,
int_t * ldvr,
double * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lvl,
fortran_charlen_t lvr )

◆ dgels_()

void belfem::lapack::dgels_ ( char * trans,
int_t * m,
int_t * n,
int_t * nrhs,
double * a,
int_t * lda,
double * b,
int_t * ldb,
double * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lt )

◆ dgemm_()

void belfem::lapack::dgemm_ ( char * transa,
char * transb,
int_t * m,
int_t * n,
int_t * k,
double * alpha,
double * a,
int_t * lda,
double * b,
int_t * ldb,
double * beta,
double * c,
int_t * ldc,
fortran_charlen_t lta,
fortran_charlen_t ltb )

◆ dgesv_()

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 )

◆ dgesvd_()

void belfem::lapack::dgesvd_ ( char * jobu,
char * jobvt,
int_t * m,
int_t * n,
double * a,
int_t * lda,
double * s,
double * u,
int_t * ldu,
double * vt,
int_t * ldvt,
double * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lu,
fortran_charlen_t lvt )

◆ dgetrf_()

void belfem::lapack::dgetrf_ ( int_t * m,
int_t * n,
double * a,
int_t * lda,
int_t * ipiv,
int_t * info )

◆ dgetri_()

void belfem::lapack::dgetri_ ( int_t * n,
double * a,
int_t * lda,
int_t * ipiv,
double * work,
int_t * lwork,
int_t * info )

◆ dposv_()

void belfem::lapack::dposv_ ( char * uplo,
int_t * n,
int_t * nrhs,
double * a,
int_t * lda,
double * b,
int_t * ldb,
int_t * info,
fortran_charlen_t l )

◆ gees() [1/5]

template<>
void belfem::lapack::gees ( const char * jobvs,
const char * sort,
dgees_select_t select,
const int_t * n,
double * a,
const int_t * lda,
int_t * sdim,
std::complex< double > * w,
double * vs,
const int_t * ldvs,
double * work,
const int_t * lwork,
double * rwork,
int_t * bwork,
int_t * info )
inline

◆ gees() [2/5]

template<>
void belfem::lapack::gees ( const char * jobvs,
const char * sort,
gees_select_t< std::complex< double > > select,
const int_t * n,
std::complex< double > * a,
const int_t * lda,
int_t * sdim,
std::complex< double > * w,
std::complex< double > * vs,
const int_t * ldvs,
std::complex< double > * work,
const int_t * lwork,
double * rwork,
int_t * bwork,
int_t * info )
inline

◆ gees() [3/5]

template<>
void belfem::lapack::gees ( const char * jobvs,
const char * sort,
gees_select_t< std::complex< float > > select,
const int_t * n,
std::complex< float > * a,
const int_t * lda,
int_t * sdim,
std::complex< float > * w,
std::complex< float > * vs,
const int_t * ldvs,
std::complex< float > * work,
const int_t * lwork,
float * rwork,
int_t * bwork,
int_t * info )
inline

◆ gees() [4/5]

template<typename T>
void belfem::lapack::gees ( const char * jobvs,
const char * sort,
gees_select_t< T > select,
const int_t * n,
T * a,
const int_t * lda,
int_t * sdim,
cplx_t< T > * w,
T * vs,
const int_t * ldvs,
T * work,
const int_t * lwork,
real_t< T > * rwork,
int_t * bwork,
int_t * info )

◆ gees() [5/5]

template<>
void belfem::lapack::gees ( const char * jobvs,
const char * sort,
sgees_select_t select,
const int_t * n,
float * a,
const int_t * lda,
int_t * sdim,
std::complex< float > * w,
float * vs,
const int_t * ldvs,
float * work,
const int_t * lwork,
float * rwork,
int_t * bwork,
int_t * info )
inline

◆ geev() [1/5]

template<>
void belfem::lapack::geev ( const char * jobvl,
const char * jobvr,
const int_t * n,
double * a,
const int_t * lda,
std::complex< double > * w,
double * vl,
const int_t * ldvl,
double * vr,
const int_t * ldvr,
double * work,
const int_t * lwork,
double * rwork,
int_t * info )
inline

◆ geev() [2/5]

template<>
void belfem::lapack::geev ( const char * jobvl,
const char * jobvr,
const int_t * n,
float * a,
const int_t * lda,
std::complex< float > * w,
float * vl,
const int_t * ldvl,
float * vr,
const int_t * ldvr,
float * work,
const int_t * lwork,
float * rwork,
int_t * info )
inline

◆ geev() [3/5]

template<>
void belfem::lapack::geev ( const char * jobvl,
const char * jobvr,
const int_t * n,
std::complex< double > * a,
const int_t * lda,
std::complex< double > * w,
std::complex< double > * vl,
const int_t * ldvl,
std::complex< double > * vr,
const int_t * ldvr,
std::complex< double > * work,
const int_t * lwork,
double * rwork,
int_t * info )
inline

◆ geev() [4/5]

template<>
void belfem::lapack::geev ( const char * jobvl,
const char * jobvr,
const int_t * n,
std::complex< float > * a,
const int_t * lda,
std::complex< float > * w,
std::complex< float > * vl,
const int_t * ldvl,
std::complex< float > * vr,
const int_t * ldvr,
std::complex< float > * work,
const int_t * lwork,
float * rwork,
int_t * info )
inline

◆ geev() [5/5]

template<typename T>
void belfem::lapack::geev ( const char * jobvl,
const char * jobvr,
const int_t * n,
T * a,
const int_t * lda,
cplx_t< T > * w,
T * vl,
const int_t * ldvl,
T * vr,
const int_t * ldvr,
T * work,
const int_t * lwork,
real_t< T > * rwork,
int_t * info )

◆ gels() [1/5]

template<>
void belfem::lapack::gels ( const char * trans,
const int_t * m,
const int_t * n,
const int_t * nrhs,
double * a,
const int_t * lda,
double * b,
const int_t * ldb,
double * work,
const int_t * lwork,
int_t * info )
inline

◆ gels() [2/5]

template<>
void belfem::lapack::gels ( const char * trans,
const int_t * m,
const int_t * n,
const int_t * nrhs,
float * a,
const int_t * lda,
float * b,
const int_t * ldb,
float * work,
const int_t * lwork,
int_t * info )
inline

◆ gels() [3/5]

template<>
void belfem::lapack::gels ( const char * trans,
const int_t * m,
const int_t * n,
const int_t * nrhs,
std::complex< double > * a,
const int_t * lda,
std::complex< double > * b,
const int_t * ldb,
std::complex< double > * work,
const int_t * lwork,
int_t * info )
inline

◆ gels() [4/5]

template<>
void belfem::lapack::gels ( const char * trans,
const int_t * m,
const int_t * n,
const int_t * nrhs,
std::complex< float > * a,
const int_t * lda,
std::complex< float > * b,
const int_t * ldb,
std::complex< float > * work,
const int_t * lwork,
int_t * info )
inline

◆ gels() [5/5]

template<typename T>
void belfem::lapack::gels ( const char * trans,
const int_t * m,
const int_t * n,
const int_t * nrhs,
T * a,
const int_t * lda,
T * b,
const int_t * ldb,
T * work,
const int_t * lwork,
int_t * info )

◆ gemm() [1/5]

template<>
void belfem::lapack::gemm ( const char * transa,
const char * transb,
const int_t * m,
const int_t * n,
const int_t * k,
const double * alpha,
const double * a,
const int_t * lda,
const double * b,
const int_t * ldb,
const double * beta,
double * c,
const int_t * ldc )
inline

◆ gemm() [2/5]

template<>
void belfem::lapack::gemm ( const char * transa,
const char * transb,
const int_t * m,
const int_t * n,
const int_t * k,
const float * alpha,
const float * a,
const int_t * lda,
const float * b,
const int_t * ldb,
const float * beta,
float * c,
const int_t * ldc )
inline

◆ gemm() [3/5]

template<>
void belfem::lapack::gemm ( const char * transa,
const char * transb,
const int_t * m,
const int_t * n,
const int_t * k,
const std::complex< double > * alpha,
const std::complex< double > * a,
const int_t * lda,
const std::complex< double > * b,
const int_t * ldb,
const std::complex< double > * beta,
std::complex< double > * c,
const int_t * ldc )
inline

◆ gemm() [4/5]

template<>
void belfem::lapack::gemm ( const char * transa,
const char * transb,
const int_t * m,
const int_t * n,
const int_t * k,
const std::complex< float > * alpha,
const std::complex< float > * a,
const int_t * lda,
const std::complex< float > * b,
const int_t * ldb,
const std::complex< float > * beta,
std::complex< float > * c,
const int_t * ldc )
inline

◆ gemm() [5/5]

template<typename T>
void belfem::lapack::gemm ( const char * transa,
const char * transb,
const int_t * m,
const int_t * n,
const int_t * k,
const T * alpha,
const T * a,
const int_t * lda,
const T * b,
const int_t * ldb,
const T * beta,
T * c,
const int_t * ldc )

◆ gesv() [1/5]

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 )
inline

◆ gesv() [2/5]

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 )
inline

◆ gesv() [3/5]

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 )
inline

◆ gesv() [4/5]

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 )
inline

◆ gesv() [5/5]

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 )

◆ gesvd() [1/5]

template<>
void belfem::lapack::gesvd ( const char * jobu,
const char * jobvt,
const int_t * m,
const int_t * n,
double * a,
const int_t * lda,
double * s,
double * u,
const int_t * ldu,
double * vt,
const int_t * ldvt,
double * work,
const int_t * lwork,
double * ,
int_t * info )
inline

◆ gesvd() [2/5]

template<>
void belfem::lapack::gesvd ( const char * jobu,
const char * jobvt,
const int_t * m,
const int_t * n,
float * a,
const int_t * lda,
float * s,
float * u,
const int_t * ldu,
float * vt,
const int_t * ldvt,
float * work,
const int_t * lwork,
float * ,
int_t * info )
inline

◆ gesvd() [3/5]

template<>
void belfem::lapack::gesvd ( const char * jobu,
const char * jobvt,
const int_t * m,
const int_t * n,
std::complex< double > * a,
const int_t * lda,
double * s,
std::complex< double > * u,
const int_t * ldu,
std::complex< double > * vt,
const int_t * ldvt,
std::complex< double > * work,
const int_t * lwork,
double * rwork,
int_t * info )
inline

◆ gesvd() [4/5]

template<>
void belfem::lapack::gesvd ( const char * jobu,
const char * jobvt,
const int_t * m,
const int_t * n,
std::complex< float > * a,
const int_t * lda,
float * s,
std::complex< float > * u,
const int_t * ldu,
std::complex< float > * vt,
const int_t * ldvt,
std::complex< float > * work,
const int_t * lwork,
float * rwork,
int_t * info )
inline

◆ gesvd() [5/5]

template<typename T>
void belfem::lapack::gesvd ( const char * jobu,
const char * jobvt,
const int_t * m,
const int_t * n,
T * a,
const int_t * lda,
real_t< T > * s,
T * u,
const int_t * ldu,
T * vt,
const int_t * ldvt,
T * work,
const int_t * lwork,
real_t< T > * rwork,
int_t * info )

◆ getrf() [1/5]

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 )
inline

◆ getrf() [2/5]

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 )
inline

◆ getrf() [3/5]

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 )
inline

◆ getrf() [4/5]

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 )
inline

◆ getrf() [5/5]

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 )

◆ getri() [1/5]

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 )
inline

◆ getri() [2/5]

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 )
inline

◆ getri() [3/5]

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 )
inline

◆ getri() [4/5]

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 )
inline

◆ getri() [5/5]

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 )

◆ leading_dimension() [1/2]

template<typename T>
int_t belfem::lapack::leading_dimension ( const Matrix< T > & A)

stride between the columns of an owning, column-major matrix, as passed to LAPACK as LDA/LDB/LDC.

This is a property of the stored array only — it does NOT change when the operand is used transposed ( trans only changes which logical dimension LAPACK validates the stride against ). Under Blaze, columns are padded for SIMD alignment, so the stride may exceed the row count — passing n_rows() instead would silently corrupt the result.

◆ leading_dimension() [2/2]

template<typename T>
int_t belfem::lapack::leading_dimension ( const Vector< T > & A)

logical length of a vector operand, as passed to LAPACK as LDB; vector storage is contiguous under both backends

◆ posv() [1/5]

template<>
void belfem::lapack::posv ( const char * uplo,
const int_t * n,
const int_t * nrhs,
double * a,
const int_t * lda,
double * b,
const int_t * ldb,
int_t * info )
inline

◆ posv() [2/5]

template<>
void belfem::lapack::posv ( const char * uplo,
const int_t * n,
const int_t * nrhs,
float * a,
const int_t * lda,
float * b,
const int_t * ldb,
int_t * info )
inline

◆ posv() [3/5]

template<>
void belfem::lapack::posv ( const char * uplo,
const int_t * n,
const int_t * nrhs,
std::complex< double > * a,
const int_t * lda,
std::complex< double > * b,
const int_t * ldb,
int_t * info )
inline

◆ posv() [4/5]

template<>
void belfem::lapack::posv ( const char * uplo,
const int_t * n,
const int_t * nrhs,
std::complex< float > * a,
const int_t * lda,
std::complex< float > * b,
const int_t * ldb,
int_t * info )
inline

◆ posv() [5/5]

template<typename T>
void belfem::lapack::posv ( const char * uplo,
const int_t * n,
const int_t * nrhs,
T * a,
const int_t * lda,
T * b,
const int_t * ldb,
int_t * info )

◆ sgees_()

void belfem::lapack::sgees_ ( char * jobvs,
char * sort,
sgees_select_t select,
int_t * n,
float * a,
int_t * lda,
int_t * sdim,
float * wr,
float * wi,
float * vs,
int_t * ldvs,
float * work,
int_t * lwork,
int_t * bwork,
int_t * info,
fortran_charlen_t lj,
fortran_charlen_t ls )

◆ sgeev_()

void belfem::lapack::sgeev_ ( char * jobvl,
char * jobvr,
int_t * n,
float * a,
int_t * lda,
float * wr,
float * wi,
float * vl,
int_t * ldvl,
float * vr,
int_t * ldvr,
float * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lvl,
fortran_charlen_t lvr )

◆ sgels_()

void belfem::lapack::sgels_ ( char * trans,
int_t * m,
int_t * n,
int_t * nrhs,
float * a,
int_t * lda,
float * b,
int_t * ldb,
float * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lt )

◆ sgemm_()

void belfem::lapack::sgemm_ ( char * transa,
char * transb,
int_t * m,
int_t * n,
int_t * k,
float * alpha,
float * a,
int_t * lda,
float * b,
int_t * ldb,
float * beta,
float * c,
int_t * ldc,
fortran_charlen_t lta,
fortran_charlen_t ltb )

◆ sgesv_()

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 )

◆ sgesvd_()

void belfem::lapack::sgesvd_ ( char * jobu,
char * jobvt,
int_t * m,
int_t * n,
float * a,
int_t * lda,
float * s,
float * u,
int_t * ldu,
float * vt,
int_t * ldvt,
float * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lu,
fortran_charlen_t lvt )

◆ sgetrf_()

void belfem::lapack::sgetrf_ ( int_t * m,
int_t * n,
float * a,
int_t * lda,
int_t * ipiv,
int_t * info )

◆ sgetri_()

void belfem::lapack::sgetri_ ( int_t * n,
float * a,
int_t * lda,
int_t * ipiv,
float * work,
int_t * lwork,
int_t * info )

◆ sposv_()

void belfem::lapack::sposv_ ( char * uplo,
int_t * n,
int_t * nrhs,
float * a,
int_t * lda,
float * b,
int_t * ldb,
int_t * info,
fortran_charlen_t l )

◆ work_size() [1/4]

int_t belfem::lapack::work_size ( const double & aValue)
inline

◆ work_size() [2/4]

int_t belfem::lapack::work_size ( const float & aValue)
inline

lapack reports the optimal work size in the first entry of the work array, which stays real valued for the complex flavors

◆ work_size() [3/4]

int_t belfem::lapack::work_size ( const std::complex< double > & aValue)
inline

◆ work_size() [4/4]

int_t belfem::lapack::work_size ( const std::complex< float > & aValue)
inline

◆ zgees_()

void belfem::lapack::zgees_ ( char * jobvs,
char * sort,
zgees_select_t select,
int_t * n,
cplx_double_t * a,
int_t * lda,
int_t * sdim,
cplx_double_t * w,
cplx_double_t * vs,
int_t * ldvs,
cplx_double_t * work,
int_t * lwork,
double * rwork,
int_t * bwork,
int_t * info,
fortran_charlen_t lj,
fortran_charlen_t ls )

◆ zgeev_()

void belfem::lapack::zgeev_ ( char * jobvl,
char * jobvr,
int_t * n,
cplx_double_t * a,
int_t * lda,
cplx_double_t * w,
cplx_double_t * vl,
int_t * ldvl,
cplx_double_t * vr,
int_t * ldvr,
cplx_double_t * work,
int_t * lwork,
double * rwork,
int_t * info,
fortran_charlen_t lvl,
fortran_charlen_t lvr )

◆ zgels_()

void belfem::lapack::zgels_ ( char * trans,
int_t * m,
int_t * n,
int_t * nrhs,
cplx_double_t * a,
int_t * lda,
cplx_double_t * b,
int_t * ldb,
cplx_double_t * work,
int_t * lwork,
int_t * info,
fortran_charlen_t lt )

◆ zgemm_()

void belfem::lapack::zgemm_ ( char * transa,
char * transb,
int_t * m,
int_t * n,
int_t * k,
cplx_double_t * alpha,
cplx_double_t * a,
int_t * lda,
cplx_double_t * b,
int_t * ldb,
cplx_double_t * beta,
cplx_double_t * c,
int_t * ldc,
fortran_charlen_t lta,
fortran_charlen_t ltb )

◆ zgesv_()

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 )

◆ zgesvd_()

void belfem::lapack::zgesvd_ ( char * jobu,
char * jobvt,
int_t * m,
int_t * n,
cplx_double_t * a,
int_t * lda,
double * s,
cplx_double_t * u,
int_t * ldu,
cplx_double_t * vt,
int_t * ldvt,
cplx_double_t * work,
int_t * lwork,
double * rwork,
int_t * info,
fortran_charlen_t lu,
fortran_charlen_t lvt )

◆ zgetrf_()

void belfem::lapack::zgetrf_ ( int_t * m,
int_t * n,
cplx_double_t * a,
int_t * lda,
int_t * ipiv,
int_t * info )

◆ zgetri_()

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 )

◆ zposv_()

void belfem::lapack::zposv_ ( char * uplo,
int_t * n,
int_t * nrhs,
cplx_double_t * a,
int_t * lda,
cplx_double_t * b,
int_t * ldb,
int_t * info,
fortran_charlen_t l )

Variable Documentation

◆ dependent_false

template<typename T>
bool belfem::lapack::dependent_false = false
constexpr