35 #ifndef NEKTAR_LIB_UTILITIES_LAPACK_HPP
36 #define NEKTAR_LIB_UTILITIES_LAPACK_HPP
46 double* ap,
int *ipiv,
int& info);
48 const int& nrhs,
const double* ap,
49 const int *ipiv,
double* b,
50 const int& ldb,
int& info);
53 const int *ipiv,
double* work,
55 void F77NAME(
dtrtrs) (
const char& uplo,
const char& trans,
const char& diag,
56 const int& n,
const int& nrhs,
const double* a,
57 const int& lda,
double* b,
const int& ldb,
int& info);
58 void F77NAME(
dtptrs) (
const char& uplo,
const char& trans,
const char& diag,
59 const int& n,
const int& nrhs,
const double* a,
60 double* b,
const int& ldb,
int& info);
62 double* ap,
int& info);
64 const int& nrhs,
const double* ap,
65 double* b,
const int& ldb,
int& info);
66 void F77NAME(
dpbtrf) (
const char& uplo,
const int& n,
const int& kd,
67 double* ab,
const int& ldab,
int& info);
69 const int& kd,
const int& nrhs,
70 const double* ab,
const int& ldab,
71 double* b,
const int& ldb,
int& info);
72 void F77NAME(
dgbtrf) (
const int& m,
const int& n,
const int& kl,
73 const int& ku,
double* a,
const int& lda,
74 int* ipiv,
int& info);
75 void F77NAME(
dgbtrs) (
const char& trans,
const int& n,
const int& kl,
76 const int &ku,
const int& nrhs,
const double* a,
77 const int& lda,
const int* ipiv,
double* b,
78 const int& ldb,
int& info);
80 const int& lda,
int* ipiv,
int& info);
81 void F77NAME(
dgetrs) (
const char& trans,
const int& n,
const int& nrhs,
82 const double* a,
const int& lda,
int* ipiv,
83 double* b,
const int& ldb,
int& info);
84 void F77NAME(
dgetri) (
const int& n,
double *a,
const int& lda,
85 const int *ipiv,
double *wk,
const int& lwk,
87 void F77NAME(
dsterf) (
const int& n,
double *d,
double *e,
int& info);
88 void F77NAME(
dgeev) (
const char& uplo,
const char& lrev,
const int& n,
89 const double* a,
const int& lda,
double* wr,
double* wi,
90 double* rev,
const int& ldr,
91 double* lev,
const int& ldv,
92 double* work,
const int& lwork,
int& info);
94 void F77NAME(
dspev) (
const char& jobz,
const char& uplo,
const int& n,
95 double* ap,
double* w,
double* z,
const int& ldz,
96 double* work,
int& info);
97 void F77NAME(
dsbev) (
const char& jobz,
const char& uplo,
const int& kl,
98 const int& ku,
double* ap,
const int& lda,
99 double* w,
double* z,
const int& ldz,
100 double* work,
int& info);
104 void dgetrs(
char trans,
int matrixRows,
int matrixColumns,
const double*
A,
double* x);
106 #ifdef NEKTAR_USING_LAPACK
110 static inline void Dsptrf (
const char& uplo,
const int& n,
111 double* ap,
int *ipiv,
int& info)
118 static inline void Dsptrs (
const char& uplo,
const int& n,
const int& nrhs,
119 const double* ap,
const int *ipiv,
double* b,
120 const int& ldb,
int& info)
126 static inline void Dsptri (
const char& uplo,
const int& n,
127 const double* ap,
const int *ipiv,
double* work,
134 static inline void Dpptrf (
const char& uplo,
const int& n,
135 double *ap,
int& info)
142 static inline void Dpptrs (
const char& uplo,
const int& n,
const int& nrhs,
143 const double *ap,
double *b,
const int& ldb,
151 static inline void Dpbtrf (
const char& uplo,
const int& n,
const int& kd,
152 double *ab,
const int& ldab,
int& info)
160 static inline void Dpbtrs (
const char& uplo,
const int& n,
161 const int& kd,
const int& nrhs,
162 const double *ab,
const int& ldab,
163 double *b,
const int& ldb,
int& info)
169 static inline void Dgbtrf (
const int& m,
const int& n,
const int& kl,
170 const int& ku,
double* a,
const int& lda,
171 int* ipiv,
int& info)
177 static inline void Dgbtrs (
const char& trans,
const int& n,
const int& kl,
178 const int &ku,
const int& nrhs,
const double* a,
179 const int& lda,
const int* ipiv,
double* b,
180 const int& ldb,
int& info)
182 F77NAME(
dgbtrs)(trans,n,kl,ku,nrhs,a,lda,ipiv,b,ldb,info);
186 static inline void Dgetrf (
const int& m,
const int& n,
double *a,
187 const int& lda,
int *ipiv,
int& info)
193 static inline void Dgetrs (
const char& trans,
const int& n,
const int& nrhs,
194 const double* a,
const int& lda,
int* ipiv,
195 double* b,
const int& ldb,
int& info)
197 F77NAME(dgetrs) (trans,n,nrhs,a,lda,ipiv,b,ldb,info);
201 static inline void Dgetri (
const int& n,
double *a,
const int& lda,
202 const int *ipiv,
double *wk,
const int& lwk,
int& info)
208 static inline void Dsterf(
const int& n,
double *d,
double *e,
int& info)
214 static inline void Dgeev (
const char& uplo,
const char& lrev,
const int& n,
215 const double* a,
const int& lda,
double* wr,
double* wi,
216 double* rev,
const int& ldr,
217 double* lev,
const int& ldv,
218 double* work,
const int& lwork,
int& info)
221 ldr, lev, ldv, work, lwork, info);
225 static inline void Dspev (
const char& jobz,
const char& uplo,
const int& n,
226 double* ap,
double* w,
double* z,
const int& ldz,
227 double* work,
int& info)
229 F77NAME(
dspev) (jobz, uplo, n, ap, w, z, ldz, work, info);
233 static inline void Dsbev (
const char& jobz,
const char& uplo,
const int& kl,
234 const int& ku,
double* ap,
const int& lda,
235 double* w,
double* z,
const int& ldz,
236 double* work,
int& info)
238 F77NAME(
dsbev) (jobz, uplo, kl, ku, ap, lda, w, z, ldz, work, info);
241 static inline void Dtrtrs(
const char& uplo,
const char& trans,
const char& diag,
242 const int& n,
const int& nrhs,
const double* a,
243 const int& lda,
double* b,
const int& ldb,
int& info)
245 F77NAME(
dtrtrs) (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
248 static inline void Dtptrs(
const char& uplo,
const char& trans,
const char& diag,
249 const int& n,
const int& nrhs,
const double* a,
250 double* b,
const int& ldb,
int& info)
252 F77NAME(
dtptrs) (uplo, trans, diag, n, nrhs, a, b, ldb, info);
256 #endif //NEKTAR_USING_LAPACK
258 #endif //NEKTAR_LIB_UTILITIES_LAPACK_HPP
void F77NAME() dsptrs(const char &uplo, const int &n, const int &nrhs, const double *ap, const int *ipiv, double *b, const int &ldb, int &info)
void F77NAME() dpbtrf(const char &uplo, const int &n, const int &kd, double *ab, const int &ldab, int &info)
void F77NAME() dgetrf(const int &m, const int &n, double *a, const int &lda, int *ipiv, int &info)
void F77NAME() dtrtrs(const char &uplo, const char &trans, const char &diag, const int &n, const int &nrhs, const double *a, const int &lda, double *b, const int &ldb, int &info)
#define F77NAME(x)
Fortran routines need an underscore.
void F77NAME() dpbtrs(const char &uplo, const int &n, const int &kd, const int &nrhs, const double *ab, const int &ldab, double *b, const int &ldb, int &info)
void F77NAME() dsterf(const int &n, double *d, double *e, int &info)
void F77NAME() dtptrs(const char &uplo, const char &trans, const char &diag, const int &n, const int &nrhs, const double *a, double *b, const int &ldb, int &info)
void F77NAME() dpptrf(const char &uplo, const int &n, double *ap, int &info)
void F77NAME() dgeev(const char &uplo, const char &lrev, const int &n, const double *a, const int &lda, double *wr, double *wi, double *rev, const int &ldr, double *lev, const int &ldv, double *work, const int &lwork, int &info)
void F77NAME() dgetrs(const char &trans, const int &n, const int &nrhs, const double *a, const int &lda, int *ipiv, double *b, const int &ldb, int &info)
void F77NAME() dspev(const char &jobz, const char &uplo, const int &n, double *ap, double *w, double *z, const int &ldz, double *work, int &info)
void F77NAME() dsptri(const char &uplo, const int &n, const double *ap, const int *ipiv, double *work, int &info)
void F77NAME() dsbev(const char &jobz, const char &uplo, const int &kl, const int &ku, double *ap, const int &lda, double *w, double *z, const int &ldz, double *work, int &info)
void F77NAME() dgbtrf(const int &m, const int &n, const int &kl, const int &ku, double *a, const int &lda, int *ipiv, int &info)
void F77NAME() dpptrs(const char &uplo, const int &n, const int &nrhs, const double *ap, double *b, const int &ldb, int &info)
void F77NAME() dgetri(const int &n, double *a, const int &lda, const int *ipiv, double *wk, const int &lwk, int &info)
void F77NAME() dsptrf(const char &uplo, const int &n, double *ap, int *ipiv, int &info)
void F77NAME() dgbtrs(const char &trans, const int &n, const int &kl, const int &ku, const int &nrhs, const double *a, const int &lda, const int *ipiv, double *b, const int &ldb, int &info)