v0.15.0
Loading...
Searching...
No Matches
lapack_wrap.h
Go to the documentation of this file.
1
2
3// FIXME This is obsolete implementation, need to be rewritten
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9#ifndef __lapack__
10#define __lapack__
11
12#define __CLPK_TYPES__
13#ifdef __CLPK_TYPES__
14
15#if defined(__LP64__) /* In LP64 match sizes with the 32 bit ABI */
16typedef int __CLPK_integer;
17typedef int __CLPK_logical;
18typedef float __CLPK_real;
19typedef double __CLPK_doublereal;
20typedef __CLPK_logical (*__CLPK_L_fp)();
21typedef int __CLPK_ftnlen;
22#else
23typedef long int __CLPK_integer;
24typedef long int __CLPK_logical;
25typedef float __CLPK_real;
26typedef double __CLPK_doublereal;
28typedef long int __CLPK_ftnlen;
29#endif
30
31typedef struct {
37
40 __CLPK_integer *info);
41#ifndef MOAB_dgetrf
44 __CLPK_integer *ipiv, __CLPK_integer *info);
45#endif // MOAB_dgetrf
49 __CLPK_integer *ldb, __CLPK_integer *info);
53 __CLPK_integer *ldb, __CLPK_integer *info);
54#ifndef MOAB_dgetri
58 __CLPK_integer *info);
59#endif // MOAB_dgetri
61 __CLPK_integer *lda, __CLPK_integer *info);
65 __CLPK_integer *info);
69 __CLPK_integer *info);
74 __CLPK_integer *lwork, __CLPK_integer *info);
76 __CLPK_integer *lda, __CLPK_integer *info);
77__CLPK_integer dgesvd_(char *jobu, char *jobvt, __CLPK_integer *m,
83 __CLPK_integer *info);
84__CLPK_integer sgesvd_(char *jobu, char *jobvt, __CLPK_integer *m,
85 __CLPK_integer *n, float *a, __CLPK_integer *lda,
86 float *s, float *u, __CLPK_integer *ldu, float *vt,
87 __CLPK_integer *ldvt, float *work, __CLPK_integer *lwork,
88 __CLPK_integer *info);
89__CLPK_integer dsyev_(char *jobz, char *uplo, __CLPK_integer *n,
92 __CLPK_integer *lwork, __CLPK_integer *info);
93__CLPK_integer zheev_(char *jobz, char *uplo, __CLPK_integer *n,
96 __CLPK_integer *lwork, __CLPK_doublereal *rwork,
97 __CLPK_integer *info);
98__CLPK_integer zgeev_(char *jobvl, char *jobvr, __CLPK_integer *n,
103 __CLPK_integer *lwork, __CLPK_doublereal *rwork,
104 __CLPK_integer *info);
109 __CLPK_integer *lwork, __CLPK_integer *info);
114 __CLPK_integer *lwork, __CLPK_integer *info);
120 __CLPK_integer *lwork, __CLPK_integer *iwork,
121 __CLPK_integer *info);
122#ifndef MOAB_dsyevd
123__CLPK_integer dsyevd_(char *jobz, char *uplo, __CLPK_integer *n,
126 __CLPK_integer *lwork, __CLPK_integer *iwork,
127 __CLPK_integer *liwork, __CLPK_integer *info);
128#endif // MOAB_dsyevd
130 __CLPK_integer *lda, __CLPK_integer *ipiv,
132 __CLPK_integer *info);
135 __CLPK_integer *ipiv, __CLPK_integer *info);
137 __CLPK_integer *lda, __CLPK_integer *info);
139 __CLPK_integer *lda, __CLPK_integer *info);
140
141/// SUBROUTINE DPBTRS( UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO )
145 __CLPK_integer *ldb, __CLPK_integer *info);
146
147// Symmetric-indefinite factorisation: A = U*D*U^T or L*D*L^T
149 __CLPK_integer *lda, __CLPK_integer *ipiv,
150 __CLPK_doublereal *work, __CLPK_integer *lwork,
151 __CLPK_integer *info);
152
153// Solve using the factorisation from DSYTRF
157 __CLPK_integer *ldb, __CLPK_integer *info);
158
159 #endif
160
162 float *a, __CLPK_integer lda,
163 __CLPK_integer *ipiv) {
164 __CLPK_integer info;
165 sgetrf_(&m, &n, a, &lda, ipiv, &info);
166 return info;
167}
168
171 __CLPK_integer lda,
172 __CLPK_integer *ipiv) {
173 __CLPK_integer info;
174 dgetrf_(&m, &n, a, &lda, ipiv, &info);
175 return info;
176}
177
178inline static __CLPK_integer
182 __CLPK_integer info;
183 dgetrs_(&trans, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info);
184 return info;
185}
186
187inline static __CLPK_integer
190 __CLPK_integer ldb) {
191 __CLPK_integer info;
192 dgesv_(&n, &nrhs, a, &lda, ipiv, b, &ldb, &info);
193 return info;
194}
195
196inline static __CLPK_integer
199 __CLPK_integer lwork) {
200 __CLPK_integer info;
201 dgetri_(&n, a, &lda, ipiv, work, &lwork, &info);
202 return info;
203}
204
207 __CLPK_integer lda) {
208 __CLPK_integer info;
209 dpotrf_(&uplo, &n, a, &lda, &info);
210 return info;
211}
212
213inline static __CLPK_integer
216 __CLPK_integer ldb) {
217 __CLPK_integer info;
218 dpotrs_(&uplo, &n, &nrhs, a, &lda, b, &ldb, &info);
219 return info;
220}
221
222inline static __CLPK_integer
225 __CLPK_integer ldb) {
226 __CLPK_integer info;
227 dposv_(&uplo, &n, &nrhs, a, &lda, b, &ldb, &info);
228 return info;
229}
230
231inline static __CLPK_integer
235 __CLPK_integer lwork) {
236 __CLPK_integer info = 0;
237 dsysv_(&uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, work, &lwork, &info);
238 return info;
239}
240
243 __CLPK_integer lda) {
244 __CLPK_integer info;
245 dpotri_(&uplo, &n, a, &lda, &info);
246 return info;
247}
248
249inline static __CLPK_integer
254 __CLPK_integer lwork) {
255 __CLPK_integer info;
256 dgesvd_(&jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work, &lwork,
257 &info);
258 return info;
259}
260
261inline static __CLPK_integer
263 float *a, __CLPK_integer lda, float *s, float *u,
264 __CLPK_integer ldu, float *vt, __CLPK_integer ldvt, float *work,
265 __CLPK_integer lwork) {
266 __CLPK_integer info;
267 sgesvd_(&jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work, &lwork,
268 &info);
269 return info;
270}
271
272inline static __CLPK_integer
275 __CLPK_integer lwork) {
276 __CLPK_integer info;
277 dsyev_(&jobz, &uplo, &n, a, &lda, w, work, &lwork, &info);
278 return info;
279}
280inline static __CLPK_integer
284 __CLPK_doublereal *rwork) {
285 __CLPK_integer info;
286 zheev_(&jobz, &uplo, &n, a, &lda, w, work, &lwork, rwork, &info);
287 return info;
288}
289
290inline static __CLPK_integer
296 __CLPK_doublereal *rwork) {
297 __CLPK_integer info;
298 zgeev_(&jobvl, &jobvr, &n, a, &lda, w, vl, &ldvl, vr, &ldvr, work, &lwork,
299 rwork, &info);
300 return info;
301}
302
303inline static __CLPK_integer
307 __CLPK_integer lwork) {
308 __CLPK_integer info;
309 dgels_(&trans, &m, &n, &nrhs, a, &lda, b, &ldb, work, &lwork, &info);
310 return info;
311}
312
313inline static __CLPK_integer
318 __CLPK_integer lwork, __CLPK_integer *iwork) {
319 __CLPK_integer info;
320 dgesdd_(&jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work, &lwork, iwork,
321 &info);
322 return info;
323}
324
325inline static __CLPK_integer
328 __CLPK_integer lwork, __CLPK_integer *iwork,
329 __CLPK_integer liwork) {
330 __CLPK_integer info;
331 dsyevd_(&jobz, &uplo, &n, a, &lda, w, work, &lwork, iwork, &liwork, &info);
332 return info;
333}
334
337 __CLPK_integer lda,
338 __CLPK_integer *ipiv) {
339 __CLPK_integer info;
340 zgetrf_(&m, &n, a, &lda, ipiv, &info);
341 return info;
342}
343
344inline static __CLPK_integer
347 __CLPK_integer lwork) {
348 __CLPK_integer info;
349 zgetri_(&n, a, &lda, ipiv, work, &lwork, &info);
350 return info;
351}
352
355 __CLPK_integer lda) {
356 __CLPK_integer info;
357 zpotri_(&uplo, &n, a, &lda, &info);
358 return info;
359}
362 __CLPK_integer lda) {
363 __CLPK_integer info;
364 zpotrf_(&uplo, &n, a, &lda, &info);
365 return info;
366}
367
368inline static __CLPK_integer
372 __CLPK_integer info;
373 dpbtrs_(&uplo, &n, &kd, &nrhs, ab, &ldab, b, &ldb, &info);
374 return info;
375}
376
377inline static __CLPK_integer
380 __CLPK_integer lwork) {
381 __CLPK_integer info;
382 dsytrf_(&uplo, &n, a, &lda, ipiv, work, &lwork, &info);
383 return info;
384}
385
386inline static __CLPK_integer
390 __CLPK_integer info;
391 dsytrs_(&uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info);
392 return info;
393}
394
395#endif
396
397#ifdef __cplusplus
398}
399#endif
constexpr double a
const double n
refractive index of diffusive medium
__CLPK_integer dgesvd_(char *jobu, char *jobvt, __CLPK_integer *m, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *s, __CLPK_doublereal *u, __CLPK_integer *ldu, __CLPK_doublereal *vt, __CLPK_integer *ldvt, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
static __CLPK_integer lapack_sgetrf(__CLPK_integer m, __CLPK_integer n, float *a, __CLPK_integer lda, __CLPK_integer *ipiv)
static __CLPK_integer lapack_zgetri(__CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublecomplex *work, __CLPK_integer lwork)
__CLPK_integer dsysv_(char *uplo, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
static __CLPK_integer lapack_dposv(char uplo, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *b, __CLPK_integer ldb)
static __CLPK_integer lapack_zpotri(char uplo, __CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda)
static __CLPK_integer lapack_dpotri(char uplo, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda)
__CLPK_integer dgetri_(__CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
static __CLPK_integer lapack_dsytrf(char uplo, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *work, __CLPK_integer lwork)
static __CLPK_integer lapack_zgetrf(__CLPK_integer m, __CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda, __CLPK_integer *ipiv)
__CLPK_integer dsyevd_(char *jobz, char *uplo, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *w, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *iwork, __CLPK_integer *liwork, __CLPK_integer *info)
static __CLPK_integer lapack_dpotrf(char uplo, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda)
__CLPK_integer dgetrs_(char *trans, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
__CLPK_integer dsyev_(char *jobz, char *uplo, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *w, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
__CLPK_integer dgetrf_(__CLPK_integer *m, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_integer *info)
static __CLPK_integer lapack_dgesv(__CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer ldb)
long int __CLPK_integer
Definition lapack_wrap.h:23
__CLPK_integer dpotrs_(char *uplo, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
static __CLPK_integer lapack_dpotrs(char uplo, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *b, __CLPK_integer ldb)
__CLPK_integer sgesvd_(char *jobu, char *jobvt, __CLPK_integer *m, __CLPK_integer *n, float *a, __CLPK_integer *lda, float *s, float *u, __CLPK_integer *ldu, float *vt, __CLPK_integer *ldvt, float *work, __CLPK_integer *lwork, __CLPK_integer *info)
__CLPK_integer dpotri_(char *uplo, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *info)
__CLPK_integer dgesdd_(char *jobz, __CLPK_integer *m, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *s, __CLPK_doublereal *u, __CLPK_integer *ldu, __CLPK_doublereal *vt, __CLPK_integer *ldvt, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *iwork, __CLPK_integer *info)
__CLPK_logical(* __CLPK_L_fp)()
Definition lapack_wrap.h:27
__CLPK_integer dgesv_(__CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
__CLPK_integer zpotrf_(char *uplo, __CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_integer *info)
long int __CLPK_ftnlen
Definition lapack_wrap.h:28
__CLPK_integer sgetrf_(__CLPK_integer *m, __CLPK_integer *n, float *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_integer *info)
__CLPK_integer dposv_(char *uplo, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
__CLPK_integer zgetri_(__CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublecomplex *work, __CLPK_integer *lwork, __CLPK_integer *info)
static __CLPK_integer lapack_dgetrf(__CLPK_integer m, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv)
__CLPK_integer dpotrf_(char *uplo, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *info)
__CLPK_integer dgelsy_(char *trans, __CLPK_integer *m, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
__CLPK_integer dsytrs_(char *uplo, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
static __CLPK_integer lapack_zgeev(char jobvl, char jobvr, __CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda, __CLPK_doublecomplex *w, __CLPK_doublecomplex *vl, __CLPK_integer ldvl, __CLPK_doublecomplex *vr, __CLPK_integer ldvr, __CLPK_doublecomplex *work, __CLPK_integer lwork, __CLPK_doublereal *rwork)
static __CLPK_integer lapack_dsyev(char jobz, char uplo, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *w, __CLPK_doublereal *work, __CLPK_integer lwork)
static __CLPK_integer lapack_sgesvd(char jobu, char jobvt, __CLPK_integer m, __CLPK_integer n, float *a, __CLPK_integer lda, float *s, float *u, __CLPK_integer ldu, float *vt, __CLPK_integer ldvt, float *work, __CLPK_integer lwork)
static __CLPK_integer lapack_dsysv(char uplo, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer ldb, __CLPK_doublereal *work, __CLPK_integer lwork)
static __CLPK_integer lapack_dgetri(__CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *work, __CLPK_integer lwork)
static __CLPK_integer lapack_zpotrf(char uplo, __CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda)
long int __CLPK_logical
Definition lapack_wrap.h:24
static __CLPK_integer lapack_dgesdd(char jobz, __CLPK_integer m, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *s, __CLPK_doublereal *u, __CLPK_integer ldu, __CLPK_doublereal *vt, __CLPK_integer ldvt, __CLPK_doublereal *work, __CLPK_integer lwork, __CLPK_integer *iwork)
__CLPK_integer zgetrf_(__CLPK_integer *m, __CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_integer *info)
static __CLPK_integer lapack_dpbtrs(char uplo, __CLPK_integer n, __CLPK_integer kd, __CLPK_integer nrhs, __CLPK_doublereal *ab, __CLPK_integer ldab, __CLPK_doublereal *b, __CLPK_integer ldb)
__CLPK_integer zpotri_(char *uplo, __CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_integer *info)
static __CLPK_integer lapack_zheev(char jobz, char uplo, __CLPK_integer n, __CLPK_doublecomplex *a, __CLPK_integer lda, __CLPK_doublereal *w, __CLPK_doublecomplex *work, __CLPK_integer lwork, __CLPK_doublereal *rwork)
static __CLPK_integer lapack_dgesvd(char jobu, char jobvt, __CLPK_integer m, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *s, __CLPK_doublereal *u, __CLPK_integer ldu, __CLPK_doublereal *vt, __CLPK_integer ldvt, __CLPK_doublereal *work, __CLPK_integer lwork)
static __CLPK_integer lapack_dgetrs(char trans, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer ldb)
__CLPK_integer dgels_(char *trans, __CLPK_integer *m, __CLPK_integer *n, __CLPK_integer *nrhs, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
float __CLPK_real
Definition lapack_wrap.h:25
static __CLPK_integer lapack_dgels(char trans, __CLPK_integer m, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *b, __CLPK_integer ldb, __CLPK_doublereal *work, __CLPK_integer lwork)
__CLPK_integer zheev_(char *jobz, char *uplo, __CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_doublereal *w, __CLPK_doublecomplex *work, __CLPK_integer *lwork, __CLPK_doublereal *rwork, __CLPK_integer *info)
__CLPK_integer dsytrf_(char *uplo, __CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer *ipiv, __CLPK_doublereal *work, __CLPK_integer *lwork, __CLPK_integer *info)
__CLPK_integer dpbtrs_(char *uplo, __CLPK_integer *n, __CLPK_integer *kd, __CLPK_integer *nrhs, __CLPK_doublereal *ab, __CLPK_integer *ldab, __CLPK_doublereal *b, __CLPK_integer *ldb, __CLPK_integer *info)
SUBROUTINE DPBTRS( UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO )
static __CLPK_integer lapack_dsyevd(char jobz, char uplo, __CLPK_integer n, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_doublereal *w, __CLPK_doublereal *work, __CLPK_integer lwork, __CLPK_integer *iwork, __CLPK_integer liwork)
double __CLPK_doublereal
Definition lapack_wrap.h:26
static __CLPK_integer lapack_dsytrs(char uplo, __CLPK_integer n, __CLPK_integer nrhs, __CLPK_doublereal *a, __CLPK_integer lda, __CLPK_integer *ipiv, __CLPK_doublereal *b, __CLPK_integer ldb)
__CLPK_integer zgeev_(char *jobvl, char *jobvr, __CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, __CLPK_doublecomplex *w, __CLPK_doublecomplex *vl, __CLPK_integer *ldvl, __CLPK_doublecomplex *vr, __CLPK_integer *ldvr, __CLPK_doublecomplex *work, __CLPK_integer *lwork, __CLPK_doublereal *rwork, __CLPK_integer *info)
FTensor::Index< 'm', 3 > m
__CLPK_real i
Definition lapack_wrap.h:32
__CLPK_doublereal i
Definition lapack_wrap.h:35