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);
51 void F77NAME(
dtrtrs) (
const char& uplo,
const char& trans,
const char& diag,
52 const int& n,
const int& nrhs,
const double* a,
53 const int& lda,
double* b,
const int& ldb,
int& info);
54 void F77NAME(
dtptrs) (
const char& uplo,
const char& trans,
const char& diag,
55 const int& n,
const int& nrhs,
const double* a,
56 double* b,
const int& ldb,
int& info);
58 double* ap,
int& info);
60 const int& nrhs,
const double* ap,
61 double* b,
const int& ldb,
int& info);
62 void F77NAME(
dpbtrf) (
const char& uplo,
const int& n,
const int& kd,
63 double* ab,
const int& ldab,
int& info);
65 const int& kd,
const int& nrhs,
66 const double* ab,
const int& ldab,
67 double* b,
const int& ldb,
int& info);
68 void F77NAME(
dgbtrf) (
const int& m,
const int& n,
const int& kl,
69 const int& ku,
double* a,
const int& lda,
70 int* ipiv,
int& info);
71 void F77NAME(
dgbtrs) (
const char& trans,
const int& n,
const int& kl,
72 const int &ku,
const int& nrhs,
const double* a,
73 const int& lda,
const int* ipiv,
double* b,
74 const int& ldb,
int& info);
76 const int& lda,
int* ipiv,
int& info);
77 void F77NAME(
dgetrs) (
const char& trans,
const int& n,
const int& nrhs,
78 const double* a,
const int& lda,
int* ipiv,
79 double* b,
const int& ldb,
int& info);
80 void F77NAME(
dgetri) (
const int& n,
double *a,
const int& lda,
81 const int *ipiv,
double *wk,
const int& lwk,
83 void F77NAME(
dsterf) (
const int& n,
double *d,
double *e,
int& info);
84 void F77NAME(
dgeev) (
const char& uplo,
const char& lrev,
const int& n,
85 const double* a,
const int& lda,
double* wr,
double* wi,
86 double* rev,
const int& ldr,
87 double* lev,
const int& ldv,
88 double* work,
const int& lwork,
int& info);
90 void F77NAME(
dspev) (
const char& jobz,
const char& uplo,
const int& n,
91 double* ap,
double* w,
double* z,
const int& ldz,
92 double* work,
int& info);
93 void F77NAME(
dsbev) (
const char& jobz,
const char& uplo,
const int& kl,
94 const int& ku,
double* ap,
const int& lda,
95 double* w,
double* z,
const int& ldz,
96 double* work,
int& info);
100 void dgetrs(
char trans,
int matrixRows,
int matrixColumns,
const double* A,
double* x);
102 #ifdef NEKTAR_USING_LAPACK
106 static inline void Dsptrf (
const char& uplo,
const int& n,
107 double* ap,
int *ipiv,
int& info)
114 static inline void Dsptrs (
const char& uplo,
const int& n,
const int& nrhs,
115 const double* ap,
const int *ipiv,
double* b,
116 const int& ldb,
int& info)
122 static inline void Dpptrf (
const char& uplo,
const int& n,
123 double *ap,
int& info)
130 static inline void Dpptrs (
const char& uplo,
const int& n,
const int& nrhs,
131 const double *ap,
double *b,
const int& ldb,
139 static inline void Dpbtrf (
const char& uplo,
const int& n,
const int& kd,
140 double *ab,
const int& ldab,
int& info)
148 static inline void Dpbtrs (
const char& uplo,
const int& n,
149 const int& kd,
const int& nrhs,
150 const double *ab,
const int& ldab,
151 double *b,
const int& ldb,
int& info)
157 static inline void Dgbtrf (
const int& m,
const int& n,
const int& kl,
158 const int& ku,
double* a,
const int& lda,
159 int* ipiv,
int& info)
165 static inline void Dgbtrs (
const char& trans,
const int& n,
const int& kl,
166 const int &ku,
const int& nrhs,
const double* a,
167 const int& lda,
const int* ipiv,
double* b,
168 const int& ldb,
int& info)
170 F77NAME(
dgbtrs)(trans,n,kl,ku,nrhs,a,lda,ipiv,b,ldb,info);
174 static inline void Dgetrf (
const int& m,
const int& n,
double *a,
175 const int& lda,
int *ipiv,
int& info)
181 static inline void Dgetrs (
const char& trans,
const int& n,
const int& nrhs,
182 const double* a,
const int& lda,
int* ipiv,
183 double* b,
const int& ldb,
int& info)
185 F77NAME(dgetrs) (trans,n,nrhs,a,lda,ipiv,b,ldb,info);
189 static inline void Dgetri (
const int& n,
double *a,
const int& lda,
190 const int *ipiv,
double *wk,
const int& lwk,
int& info)
196 static inline void Dsterf(
const int& n,
double *d,
double *e,
int& info)
202 static inline void Dgeev (
const char& uplo,
const char& lrev,
const int& n,
203 const double* a,
const int& lda,
double* wr,
double* wi,
204 double* rev,
const int& ldr,
205 double* lev,
const int& ldv,
206 double* work,
const int& lwork,
int& info)
209 ldr, lev, ldv, work, lwork, info);
213 static inline void Dspev (
const char& jobz,
const char& uplo,
const int& n,
214 double* ap,
double* w,
double* z,
const int& ldz,
215 double* work,
int& info)
217 F77NAME(
dspev) (jobz, uplo, n, ap, w, z, ldz, work, info);
221 static inline void Dsbev (
const char& jobz,
const char& uplo,
const int& kl,
222 const int& ku,
double* ap,
const int& lda,
223 double* w,
double* z,
const int& ldz,
224 double* work,
int& info)
226 F77NAME(
dsbev) (jobz, uplo, kl, ku, ap, lda, w, z, ldz, work, info);
229 static inline void Dtrtrs(
const char& uplo,
const char& trans,
const char& diag,
230 const int& n,
const int& nrhs,
const double* a,
231 const int& lda,
double* b,
const int& ldb,
int& info)
233 F77NAME(
dtrtrs) (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
236 static inline void Dtptrs(
const char& uplo,
const char& trans,
const char& diag,
237 const int& n,
const int& nrhs,
const double* a,
238 double* b,
const int& ldb,
int& info)
240 F77NAME(
dtptrs) (uplo, trans, diag, n, nrhs, a, b, ldb, info);
244 #endif //NEKTAR_USING_LAPACK
246 #endif //NEKTAR_LIB_UTILITIES_LAPACK_HPP