3
* Copyright (c) Toon Knapen & Kresimir Fresl 2003
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE_1_0.txt or copy at
7
* http://www.boost.org/LICENSE_1_0.txt)
9
* KF acknowledges the support of the Faculty of Civil Engineering,
10
* University of Zagreb, Croatia.
14
#ifndef BOOST_NUMERIC_BINDINGS_LAPACK_LAPACK_H
15
#define BOOST_NUMERIC_BINDINGS_LAPACK_LAPACK_H
17
#include <boost/numeric/bindings/traits/type.h>
18
#include <boost/numeric/bindings/lapack/lapack_names.h>
20
#ifndef BOOST_NUMERIC_BINDINGS_NO_STRUCTURE_CHECK
21
# define BOOST_NUMERIC_BINDINGS_FORTRAN
26
/********************************************************************/
28
/********************************************************************/
32
void LAPACK_SGESV (int const* n, int const* nrhs,
33
float* a, int const* lda, int* ipiv,
34
float* b, int const* ldb, int* info);
35
void LAPACK_DGESV (int const* n, int const* nrhs,
36
double* a, int const* lda, int* ipiv,
37
double* b, int const* ldb, int* info);
38
void LAPACK_CGESV (int const* n, int const* nrhs,
39
fcomplex_t* a, int const* lda, int* ipiv,
40
fcomplex_t* b, int const* ldb, int* info);
41
void LAPACK_ZGESV (int const* n, int const* nrhs,
42
dcomplex_t* a, int const* lda, int* ipiv,
43
dcomplex_t* b, int const* ldb, int* info);
45
void LAPACK_SGETRF (int const* n, int const* nrhs,
46
float* a, int const* lda, int* ipiv, int* info);
47
void LAPACK_DGETRF (int const* n, int const* nrhs,
48
double* a, int const* lda, int* ipiv, int* info);
49
void LAPACK_CGETRF (int const* n, int const* nrhs,
50
fcomplex_t* a, int const* lda,
51
int* ipiv, int* info);
52
void LAPACK_ZGETRF (int const* n, int const* nrhs,
53
dcomplex_t* a, int const* lda,
54
int* ipiv, int* info);
56
void LAPACK_SGETRS (char const* trans, int const* n, int const* nrhs,
57
float const* a, int const* lda, int const* ipiv,
58
float* b, int const* ldb, int* info);
59
void LAPACK_DGETRS (char const* trans, int const* n, int const* nrhs,
60
double const* a, int const* lda, int const* ipiv,
61
double* b, int const* ldb, int* info);
62
void LAPACK_CGETRS (char const* trans, int const* n, int const* nrhs,
63
fcomplex_t const* a, int const* lda, int const* ipiv,
64
fcomplex_t* b, int const* ldb, int* info);
65
void LAPACK_ZGETRS (char const* trans, int const* n, int const* nrhs,
66
dcomplex_t const* a, int const* lda, int const* ipiv,
67
dcomplex_t* b, int const* ldb, int* info);
70
/* symmetric/Hermitian positive definite */
72
void LAPACK_SPOSV (char const* uplo, int const* n, int const* nrhs,
73
float* a, int const* lda,
74
float* b, int const* ldb, int* info);
75
void LAPACK_DPOSV (char const* uplo, int const* n, int const* nrhs,
76
double* a, int const* lda,
77
double* b, int const* ldb, int* info);
78
void LAPACK_CPOSV (char const* uplo, int const* n, int const* nrhs,
79
fcomplex_t* a, int const* lda,
80
fcomplex_t* b, int const* ldb, int* info);
81
void LAPACK_ZPOSV (char const* uplo, int const* n, int const* nrhs,
82
dcomplex_t* a, int const* lda,
83
dcomplex_t* b, int const* ldb, int* info);
85
void LAPACK_SPOTRF (char const* uplo, int const* n,
86
float* a, int const* lda, int* info);
87
void LAPACK_DPOTRF (char const* uplo, int const* n,
88
double* a, int const* lda, int* info);
89
void LAPACK_CPOTRF (char const* uplo, int const* n,
90
fcomplex_t* a, int const* lda, int* info);
91
void LAPACK_ZPOTRF (char const* uplo, int const* n,
92
dcomplex_t* a, int const* lda, int* info);
94
void LAPACK_SPOTRS (char const* uplo, int const* n, int const* nrhs,
95
float const* a, int const* lda,
96
float* b, int const* ldb, int* info);
97
void LAPACK_DPOTRS (char const* uplo, int const* n, int const* nrhs,
98
double const* a, int const* lda,
99
double* b, int const* ldb, int* info);
100
void LAPACK_CPOTRS (char const* uplo, int const* n, int const* nrhs,
101
fcomplex_t const* a, int const* lda,
102
fcomplex_t* b, int const* ldb, int* info);
103
void LAPACK_ZPOTRS (char const* uplo, int const* n, int const* nrhs,
104
dcomplex_t const* a, int const* lda,
105
dcomplex_t* b, int const* ldb, int* info);
108
/* symmetric/Hermitian positive definite in packed storage */
110
void LAPACK_SPPSV (char const* uplo, int const* n, int const* nrhs,
111
float* ap, float* b, int const* ldb, int* info);
112
void LAPACK_DPPSV (char const* uplo, int const* n, int const* nrhs,
113
double* ap, double* b, int const* ldb, int* info);
114
void LAPACK_CPPSV (char const* uplo, int const* n, int const* nrhs,
115
fcomplex_t* ap, fcomplex_t* b, int const* ldb, int* info);
116
void LAPACK_ZPPSV (char const* uplo, int const* n, int const* nrhs,
117
dcomplex_t* ap, dcomplex_t* b, int const* ldb, int* info);
119
void LAPACK_SPPTRF (char const* uplo, int const* n, float* ap, int* info);
120
void LAPACK_DPPTRF (char const* uplo, int const* n, double* ap, int* info);
121
void LAPACK_CPPTRF (char const* uplo, int const* n,
122
fcomplex_t* ap, int* info);
123
void LAPACK_ZPPTRF (char const* uplo, int const* n,
124
dcomplex_t* ap, int* info);
126
void LAPACK_SPPTRS (char const* uplo, int const* n, int const* nrhs,
127
float const* ap, float* b, int const* ldb, int* info);
128
void LAPACK_DPPTRS (char const* uplo, int const* n, int const* nrhs,
129
double const* ap, double* b, int const* ldb, int* info);
130
void LAPACK_CPPTRS (char const* uplo, int const* n, int const* nrhs,
131
fcomplex_t const* ap,
132
fcomplex_t* b, int const* ldb, int* info);
133
void LAPACK_ZPPTRS (char const* uplo, int const* n, int const* nrhs,
134
dcomplex_t const* ap,
135
dcomplex_t* b, int const* ldb, int* info);
137
void LAPACK_SPPTRI (char const* uplo, int const* n, float* ap, int* info);
138
void LAPACK_DPPTRI (char const* uplo, int const* n, double* ap, int* info);
139
void LAPACK_CPPTRI (char const* uplo, int const* n,
140
fcomplex_t* ap, int* info);
141
void LAPACK_ZPPTRI (char const* uplo, int const* n,
142
dcomplex_t* ap, int* info);
145
/* symmetric/Hermitian indefinite and complex symmetric */
147
void LAPACK_SSYSV (char const* uplo, int const* n, int const* nrhs,
148
float* a, int const* lda, int* ipiv,
149
float* b, int const* ldb,
150
float* w, int const* lw, int* info);
151
void LAPACK_DSYSV (char const* uplo, int const* n, int const* nrhs,
152
double* a, int const* lda, int* ipiv,
153
double* b, int const* ldb,
154
double* w, int const* lw, int* info);
155
void LAPACK_CSYSV (char const* uplo, int const* n, int const* nrhs,
156
fcomplex_t* a, int const* lda, int* ipiv,
157
fcomplex_t* b, int const* ldb,
158
fcomplex_t* w, int const* lw, int* info);
159
void LAPACK_ZSYSV (char const* uplo, int const* n, int const* nrhs,
160
dcomplex_t* a, int const* lda, int* ipiv,
161
dcomplex_t* b, int const* ldb,
162
dcomplex_t* w, int const* lw, int* info);
164
void LAPACK_CHESV (char const* uplo, int const* n, int const* nrhs,
165
fcomplex_t* a, int const* lda, int* ipiv,
166
fcomplex_t* b, int const* ldb,
167
fcomplex_t* w, int const* lw, int* info);
168
void LAPACK_ZHESV (char const* uplo, int const* n, int const* nrhs,
169
dcomplex_t* a, int const* lda, int* ipiv,
170
dcomplex_t* b, int const* ldb,
171
dcomplex_t* w, int const* lw, int* info);
173
void LAPACK_SSYTRF (char const* uplo, int const* n,
174
float* a, int const* lda, int* ipiv,
175
float* w, int const* lw, int* info);
176
void LAPACK_DSYTRF (char const* uplo, int const* n,
177
double* a, int const* lda, int* ipiv,
178
double* w, int const* lw, int* info);
179
void LAPACK_CSYTRF (char const* uplo, int const* n,
180
fcomplex_t* a, int const* lda, int* ipiv,
181
fcomplex_t* w, int const* lw, int* info);
182
void LAPACK_ZSYTRF (char const* uplo, int const* n,
183
dcomplex_t* a, int const* lda, int* ipiv,
184
dcomplex_t* w, int const* lw, int* info);
186
void LAPACK_CHETRF (char const* uplo, int const* n,
187
fcomplex_t* a, int const* lda, int* ipiv,
188
fcomplex_t* w, int const* lw, int* info);
189
void LAPACK_ZHETRF (char const* uplo, int const* n,
190
dcomplex_t* a, int const* lda, int* ipiv,
191
dcomplex_t* w, int const* lw, int* info);
193
void LAPACK_SSYTRS (char const* uplo, int const* n, int const* nrhs,
194
float const* a, int const* lda, int const* ipiv,
195
float* b, int const* ldb, int* info);
196
void LAPACK_DSYTRS (char const* uplo, int const* n, int const* nrhs,
197
double const* a, int const* lda, int const* ipiv,
198
double* b, int const* ldb, int* info);
199
void LAPACK_CSYTRS (char const* uplo, int const* n, int const* nrhs,
200
fcomplex_t const* a, int const* lda, int const* ipiv,
201
fcomplex_t* b, int const* ldb, int* info);
202
void LAPACK_ZSYTRS (char const* uplo, int const* n, int const* nrhs,
203
dcomplex_t const* a, int const* lda, int const* ipiv,
204
dcomplex_t* b, int const* ldb, int* info);
206
void LAPACK_CHETRS (char const* uplo, int const* n, int const* nrhs,
207
fcomplex_t const* a, int const* lda, int const* ipiv,
208
fcomplex_t* b, int const* ldb, int* info);
209
void LAPACK_ZHETRS (char const* uplo, int const* n, int const* nrhs,
210
dcomplex_t const* a, int const* lda, int const* ipiv,
211
dcomplex_t* b, int const* ldb, int* info);
214
/* symmetric/Hermitian indefinite and complex symmetric in packed storage */
216
void LAPACK_SSPSV (char const* uplo, int const* n, int const* nrhs,
217
float* ap, int* ipiv,
218
float* b, int const* ldb, int* info);
219
void LAPACK_DSPSV (char const* uplo, int const* n, int const* nrhs,
220
double* ap, int* ipiv,
221
double* b, int const* ldb, int* info);
222
void LAPACK_CSPSV (char const* uplo, int const* n, int const* nrhs,
223
fcomplex_t* ap, int* ipiv,
224
fcomplex_t* b, int const* ldb, int* info);
225
void LAPACK_ZSPSV (char const* uplo, int const* n, int const* nrhs,
226
dcomplex_t* ap, int* ipiv,
227
dcomplex_t* b, int const* ldb, int* info);
229
void LAPACK_CHPSV (char const* uplo, int const* n, int const* nrhs,
230
fcomplex_t* ap, int* ipiv,
231
fcomplex_t* b, int const* ldb, int* info);
232
void LAPACK_ZHPSV (char const* uplo, int const* n, int const* nrhs,
233
dcomplex_t* ap, int* ipiv,
234
dcomplex_t* b, int const* ldb, int* info);
236
void LAPACK_SSPTRF (char const* uplo, int const* n,
237
float* ap, int* ipiv, int* info);
238
void LAPACK_DSPTRF (char const* uplo, int const* n,
239
double* ap, int* ipiv, int* info);
240
void LAPACK_CSPTRF (char const* uplo, int const* n,
241
fcomplex_t* ap, int* ipiv, int* info);
242
void LAPACK_ZSPTRF (char const* uplo, int const* n,
243
dcomplex_t* ap, int* ipiv, int* info);
245
void LAPACK_CHPTRF (char const* uplo, int const* n,
246
fcomplex_t* ap, int* ipiv, int* info);
247
void LAPACK_ZHPTRF (char const* uplo, int const* n,
248
dcomplex_t* ap, int* ipiv, int* info);
250
void LAPACK_SSPTRS (char const* uplo, int const* n, int const* nrhs,
251
float const* ap, int const* ipiv,
252
float* b, int const* ldb, int* info);
253
void LAPACK_DSPTRS (char const* uplo, int const* n, int const* nrhs,
254
double const* ap, int const* ipiv,
255
double* b, int const* ldb, int* info);
256
void LAPACK_CSPTRS (char const* uplo, int const* n, int const* nrhs,
257
fcomplex_t const* ap, int const* ipiv,
258
fcomplex_t* b, int const* ldb, int* info);
259
void LAPACK_ZSPTRS (char const* uplo, int const* n, int const* nrhs,
260
dcomplex_t const* ap, int const* ipiv,
261
dcomplex_t* b, int const* ldb, int* info);
263
void LAPACK_CHPTRS (char const* uplo, int const* n, int const* nrhs,
264
fcomplex_t const* ap, int const* ipiv,
265
fcomplex_t* b, int const* ldb, int* info);
266
void LAPACK_ZHPTRS (char const* uplo, int const* n, int const* nrhs,
267
dcomplex_t const* ap, int const* ipiv,
268
dcomplex_t* b, int const* ldb, int* info);
271
/**********************************************************************/
273
/**********************************************************************/
275
void LAPACK_SGEES (const char* jobvs, const char* sort, logical_t* select, const int* n,
276
float* a, const int * lda, const int* sdim, float* wr, float* wi,
277
float* vs, const int * ldvs, float* work, const int * lwork,
278
bool* bwork, int* info);
280
void LAPACK_DGEES (const char* jobvs, const char* sort, logical_t* select, const int* n,
281
double* a, const int * lda, const int* sdim, double* wr, double* wi,
282
double* vs, const int * ldvs, double* work, const int * lwork,
283
bool* bwork, int* info);
285
void LAPACK_CGEES( const char* jobvs, const char* sort, logical_t* select, const int *n,
286
fcomplex_t* a, const int * lda, int * sdim, fcomplex_t* w, fcomplex_t* vs,
287
const int * ldvs, fcomplex_t* work, const int * lwork, float* rwork,
288
bool* bwork, int* info );
290
void LAPACK_ZGEES( const char* jobvs, const char* sort, const logical_t* select, const int *n,
291
dcomplex_t* a, const int * lda, int * sdim, dcomplex_t* w, dcomplex_t* vs,
292
const int * ldvs, dcomplex_t* work, const int * lwork, double* rwork,
293
bool* bwork, int* info );
296
void LAPACK_SGEEV( const char* jobvl, const char* jobvr, const int* n, float* a,
297
const int* lda, float* wr, float* wi, float* vl, const int* ldvl,
298
float* vr, const int* ldvr, float* work, const int* lwork, int* info );
300
void LAPACK_DGEEV( const char* jobvl, const char* jobvr, const int* n, double* a,
301
const int* lda, double* wr, double* wi, double* vl, const int* ldvl,
302
double* vr, const int* ldvr, double* work, const int* lwork, int* info );
304
void LAPACK_CGEEV( const char* jobvl, const char* jobvr, const int* n, fcomplex_t* a,
305
const int* lda, fcomplex_t* w, fcomplex_t* vl, const int* ldvl,
306
fcomplex_t* vr, const int* ldvr, fcomplex_t* work, const int* lwork,
307
float* rwork, int* info );
309
void LAPACK_ZGEEV( const char* jobvl, const char* jobvr, const int* n, dcomplex_t* a,
310
const int* lda, dcomplex_t* w, dcomplex_t* vl, const int* ldvl,
311
dcomplex_t* vr, const int* ldvr, dcomplex_t* work, const int* lwork,
312
double* rwork, int* info );
315
void LAPACK_SSYEV( const char* jobz, const char* uplo, const int *n,
316
float* a, const int * lda, float* w,
317
float* work, const int * lwork, int* info );
319
void LAPACK_DSYEV( const char* jobz, const char* uplo, const int *n,
320
double* a, const int * lda, double* w,
321
double* work, const int * lwork, int* info );
323
void LAPACK_CHEEV( const char* jobz, const char* uplo, const int *n,
324
fcomplex_t* a, const int * lda, float* w,
325
fcomplex_t* work, const int * lwork, float* rwork,
328
void LAPACK_ZHEEV( const char* jobz, const char* uplo, const int *n,
329
dcomplex_t* a, const int * lda, double* w,
330
dcomplex_t* work, const int * lwork, double* rwork,
334
void LAPACK_SSYEVD( const char* jobz, const char* uplo, const int* n,
335
float* a, const int* lda, float* w,
336
float* work, const int* lwork,
337
int* iwork, const int* liwork, int* info);
339
void LAPACK_DSYEVD( const char* jobz, const char* uplo, const int* n,
340
double* a, const int* lda, double* w,
341
double* work, const int* lwork,
342
int* iwork, const int* liwork, int* info);
344
void LAPACK_CHEEVD( const char* jobz, const char* uplo, const int* n,
345
fcomplex_t* a, const int* lda, float* w,
346
fcomplex_t* work, const int* lwork, float* rwork, const int* lrwork,
347
int* iwork, const int* liwork, int* info);
349
void LAPACK_ZHEEVD( const char* jobz, const char* uplo, const int* n,
350
dcomplex_t* a, const int* lda, double* w,
351
dcomplex_t* work, const int* lwork, double* rwork, const int* lrwork,
352
int* iwork, const int* liwork, int* info);
355
void LAPACK_SSYEVX( const char* jobz, const char* range, const char* uplo, const int* n,
356
float* a, const int* lda, const float* vl, const float* vu, const int* il, const int* iu,
357
const float* abstol, int* m, float* w, float* z, const int* ldz,
358
float* work, const int* lwork,
359
int* iwork, int* ifail, int* info);
361
void LAPACK_DSYEVX( const char* jobz, const char* range, const char* uplo, const int* n,
362
double* a, const int* lda, const double* vl, const double* vu, const int* il, const int* iu,
363
const double* abstol, int* m, double* w, double* z, const int* ldz,
364
double* work, const int* lwork,
365
int* iwork, int* ifail, int* info);
367
void LAPACK_CHEEVX( const char* jobz, const char* range, const char* uplo, const int* n,
368
fcomplex_t* a, const int* lda, const float* vl, const float* vu, const int* il, const int* iu,
369
const float* abstol, int* m, float* w, fcomplex_t* z, const int* ldz,
370
fcomplex_t* work, const int* lwork, float* rwork,
371
int* iwork, int* ifail, int* info);
373
void LAPACK_ZHEEVX( const char* jobz, const char* range, const char* uplo, const int* n,
374
dcomplex_t* a, const int* lda, const double* vl, const double* vu, const int* il, const int* iu,
375
const double* abstol, int* m, double* w, dcomplex_t* z, const int* ldz,
376
dcomplex_t* work, const int* lwork, double* rwork,
377
int* iwork, int* ifail, int* info);
380
void LAPACK_CTREVC( const char* side, const char* howmny, const logical_t* select, const int *n,
381
fcomplex_t* t, const int * ldt, fcomplex_t* vl, const int* ldvl,
382
fcomplex_t* vr, const int * ldvr, const int * nm, int* m, fcomplex_t* work,
383
float* rwork, int* info );
385
void LAPACK_ZTREVC( const char* side, const char* howmny, const logical_t* select, const int *n,
386
dcomplex_t* t, const int * ldt, dcomplex_t* vl, const int* ldvl,
387
dcomplex_t* vr, const int * ldvr, const int * nm, int* m, dcomplex_t* work,
388
double* rwork, int* info );
390
void LAPACK_STREVC( const char* side, const char* howmny, const logical_t* select, const int *n,
391
float* t, const int * ldt, float* vl, const int* ldvl,
392
float* vr, const int * ldvr, const int * nm, int* m, float* work,
395
void LAPACK_DTREVC( const char* side, const char* howmny, const logical_t* select, const int *n,
396
double* t, const int * ldt, double* vl, const int* ldvl,
397
double* vr, const int * ldvr, const int * nm, int* m, double* work,
401
void LAPACK_STREXC( const char* compq, const int *n,
402
float* t, const int * ldt, float* q, const int* ldq,
403
int* ifst, const int * ilst, float* work, int* info );
405
void LAPACK_DTREXC( const char* compq, const int *n,
406
double* t, const int * ldt, double* q, const int* ldq,
407
int* ifst, const int * ilst, double* work, int* info );
409
void LAPACK_CTREXC( const char* compq, const int *n,
410
fcomplex_t* t, const int * ldt, fcomplex_t* q, const int* ldq,
411
int* ifst, const int * ilst, int* info );
413
void LAPACK_ZTREXC( const char* compq, const int *n,
414
dcomplex_t* t, const int * ldt, dcomplex_t* q, const int* ldq,
415
int* ifst, const int * ilst, int* info );
417
/* Hessenberg matrices */
419
void LAPACK_SHSEQR( const char* JOB, const char* COMPZ, const int* N, const int* ILO, const int* IHI, float* H,
420
const int* LDH, float* WR, float* WI, float* Z, int const* LDZ,
421
float* WORK, const int* LWORK, int* INFO ) ;
423
void LAPACK_CHSEQR( const char* JOB, const char* COMPZ, const int* N, const int* ILO, const int* IHI, fcomplex_t* H,
424
const int* LDH, fcomplex_t* W, fcomplex_t* Z, int const* LDZ,
425
fcomplex_t* WORK, const int* LWORK, int* INFO ) ;
427
void LAPACK_DHSEQR( const char* JOB, const char* COMPZ, const int* N, const int* ILO, const int* IHI, double* H,
428
const int* LDH, double* WR, double* WI, double* Z, int const* LDZ,
429
double* WORK, const int* LWORK, int* INFO ) ;
431
void LAPACK_ZHSEQR( const char* JOB, const char* COMPZ, const int* N, const int* ILO, const int* IHI, dcomplex_t* H,
432
const int* LDH, dcomplex_t* W, dcomplex_t* Z, int const* LDZ,
433
dcomplex_t* WORK, const int* LWORK, int* INFO ) ;
435
/* Hermitian tridiagonal matrices */
437
void LAPACK_SSTEQR( char const* compz, int const* n, float* d, float* E, float* z, int const* ldz, float* work, int* info ) ;
438
void LAPACK_DSTEQR( char const* compz, int const* n, double* d, double* E, double* z, int const* ldz, double* work, int* info ) ;
440
/* Hermitian banded matrices */
442
void LAPACK_SSBEV( char const* jobz, char const* uplo, int const* n,
443
int const* kd, float* ab, int const* ldab, float* w,
444
float* z, int const* ldz, float* work, int* info );
446
void LAPACK_DSBEV( char const* jobz, char const* uplo, int const* n,
447
int const* kd, double* ab, int const* ldab, double* w,
448
double* z, int const* ldz, double* work, int* info );
450
void LAPACK_CHBEV( char const* jobz, char const* uplo, int const* n,
451
int const* kd, fcomplex_t* ab, int const* ldab, float* w,
452
fcomplex_t* z, int const* ldz, fcomplex_t* work,
453
float* rwork, int* info );
455
void LAPACK_ZHBEV( char const* jobz, char const* uplo, int const* n,
456
int const* kd, dcomplex_t* ab, int const* ldab, double* w,
457
dcomplex_t* z, int const* ldz, dcomplex_t* work,
458
double* rwork, int* info );
461
void LAPACK_SSBEVX( char const* jobz, char const* range, char const* uplo, int const* n,
462
int const* kd, float* ab, int const* ldab, float* q, int const* ldq,
463
const float* vl, const float* vu, const int* il, const int* iu,
464
const float* abstol, int* m,
465
float* w, float* z, int const* ldz, float* work,
466
int* iwork, int* ifail, int* info );
468
void LAPACK_DSBEVX( char const* jobz, char const* range, char const* uplo, int const* n,
469
int const* kd, double* ab, int const* ldab, double* q, int const* ldq,
470
const double* vl, const double* vu, const int* il, const int* iu,
471
const double* abstol, int* m,
472
double* w, double* z, int const* ldz, double* work,
473
int* iwork, int* ifail, int* info );
475
void LAPACK_CHBEVX( char const* jobz, char const* range, char const* uplo, int const* n,
476
int const* kd, fcomplex_t* ab, int const* ldab, fcomplex_t* q, int const* ldq,
477
const float* vl, const float* vu, const int* il, const int* iu,
478
const float* abstol, int* m,
479
float* w, fcomplex_t* z, int const* ldz, fcomplex_t* work, float* rwork,
480
int* iwork, int* ifail, int* info );
482
void LAPACK_ZHBEVX( char const* jobz, char const* range, char const* uplo, int const* n,
483
int const* kd, dcomplex_t* ab, int const* ldab, dcomplex_t* q, int const* ldq,
484
const double* vl, const double* vu, const int* il, const int* iu,
485
const double* abstol, int* m,
486
double* w, dcomplex_t* z, int const* ldz, dcomplex_t* work, double* rwork,
487
int* iwork, int* ifail, int* info );
490
/*********************************************************************/
491
/* Auxiliary routines for eigenvalue problems */
492
/*********************************************************************/
494
void LAPACK_SSYTRD( char const* uplo, int const* n, float* a, int const* lda, float* d,
495
float* e, float* tau, float* work, int const* lwork, int* INFO ) ;
497
void LAPACK_DSYTRD( char const* uplo, int const* n, double* a, int const* lda, double* d,
498
double* e, double* tau, double* work, int const* lwork, int* INFO ) ;
500
/*********************************************************************/
502
/*********************************************************************/
504
void LAPACK_SGESVD (char const* jobu, char const* jobvt,
505
int const* m, int const* n, float* a, int const* lda,
506
float* s, float* u, int const* ldu,
507
float* vt, int const* ldvt,
508
float* work, int const* lwork, int* info);
509
void LAPACK_DGESVD (char const* jobu, char const* jobvt,
510
int const* m, int const* n, double* a, int const* lda,
511
double* s, double* u, int const* ldu,
512
double* vt, int const* ldvt,
513
double* work, int const* lwork, int* info);
514
void LAPACK_CGESVD (char const* jobu, char const* jobvt,
515
int const* m, int const* n,
516
fcomplex_t* a, int const* lda,
517
float* s, fcomplex_t* u, int const* ldu,
518
fcomplex_t* vt, int const* ldvt,
519
fcomplex_t* work, int const* lwork,
520
float* rwork, int* info);
521
void LAPACK_ZGESVD (char const* jobu, char const* jobvt,
522
int const* m, int const* n,
523
dcomplex_t* a, int const* lda,
524
double* s, dcomplex_t* u, int const* ldu,
525
dcomplex_t* vt, int const* ldvt,
526
dcomplex_t* work, int const* lwork,
527
double* rwork, int* info);
529
void LAPACK_SGESDD (char const* jobz, int const* m, int const* n,
530
float* a, int const* lda,
531
float* s, float* u, int const* ldu,
532
float* vt, int const* ldvt,
533
float* work, int const* lwork, int* iwork, int* info);
534
void LAPACK_DGESDD (char const* jobz, int const* m, int const* n,
535
double* a, int const* lda,
536
double* s, double* u, int const* ldu,
537
double* vt, int const* ldvt,
538
double* work, int const* lwork, int* iwork, int* info);
539
void LAPACK_CGESDD (char const* jobz, int const* m, int const* n,
540
fcomplex_t* a, int const* lda,
541
float* s, fcomplex_t* u, int const* ldu,
542
fcomplex_t* vt, int const* ldvt,
543
fcomplex_t* work, int const* lwork,
544
float* rwork, int* iwork, int* info);
545
void LAPACK_ZGESDD (char const* jobz, int const* m, int const* n,
546
dcomplex_t* a, int const* lda,
547
double* s, dcomplex_t* u, int const* ldu,
548
dcomplex_t* vt, int const* ldvt,
549
dcomplex_t* work, int const* lwork,
550
double* rwork, int* iwork, int* info);
553
/*********************************************************************/
554
/* QR factorization */
555
/*********************************************************************/
557
void LAPACK_SGEQRF( const int* m, const int* n, float* a, const int* lda,
558
float* tau, float* work, const int* lwork, int* info );
559
void LAPACK_DGEQRF( const int* m, const int* n, double* a, const int* lda,
560
double* tau, double* work, const int* lwork, int* info );
561
void LAPACK_CGEQRF( const int* m, const int* n, fcomplex_t* a, const int* lda,
562
fcomplex_t* tau, fcomplex_t* work, const int* lwork, int* info );
563
void LAPACK_ZGEQRF( const int* m, const int* n, dcomplex_t* a, const int* lda,
564
dcomplex_t* tau, dcomplex_t* work, const int* lwork, int* info );
568
void LAPACK_SORMQR( const char* side, const char* trans, const int* m,
569
const int* n, const int* k, const float* a,
570
const int* lda, const float* tau,
571
float* c, const int* ldc, float* work,
572
const int* lwork, int* info );
573
void LAPACK_DORMQR( const char* side, const char* trans, const int* m,
574
const int* n, const int* k, const double* a,
575
const int* lda, const double* tau,
576
double* c, const int* ldc, double* work,
577
const int* lwork, int* info );
578
void LAPACK_CUNMQR( const char* side, const char* trans, const int* m,
579
const int* n, const int* k, const fcomplex_t* a,
580
const int* lda, const fcomplex_t* tau,
581
fcomplex_t* c, const int* ldc, fcomplex_t* work,
582
const int* lwork, int* info );
583
void LAPACK_ZUNMQR( const char* side, const char* trans, const int* m,
584
const int* n, const int* k, const dcomplex_t* a,
585
const int* lda, const dcomplex_t* tau,
586
dcomplex_t* c, const int* ldc, dcomplex_t* work,
587
const int* lwork, int* info );
589
void LAPACK_SORGQR( const int* m, const int* n, const int* k,
590
float* a, const int* lda, float* tau,
591
float* work, const int* lwork, const int* info);
592
void LAPACK_DORGQR( const int* m, const int* n, const int* k,
593
double* a, const int* lda, double* tau,
594
double* work, const int* lwork, const int* info);
595
void LAPACK_CUNGQR( const int* m, const int* n, const int* k,
596
fcomplex_t* a, const int* lda, fcomplex_t* tau,
597
fcomplex_t* work, const int* lwork, const int* info);
598
void LAPACK_ZUNGQR( const int* m, const int* n, const int* k,
599
dcomplex_t* a, const int* lda, dcomplex_t* tau,
600
dcomplex_t* work, const int* lwork, const int* info);
604
/********************************************************************/
606
/********************************************************************/
608
int LAPACK_ILAENV (int const* ispec, const char* name, const char* opt,
609
int const* n1, int const* n2, int const* n3,
610
int const* n4, int, int);