LAPACK++
LAPACK C++ API
wrappers.hh
1 // Copyright (c) 2017-2020, University of Tennessee. All rights reserved.
2 // SPDX-License-Identifier: BSD-3-Clause
3 // This program is free software: you can redistribute it and/or modify it under
4 // the terms of the BSD 3-Clause license. See the accompanying LICENSE file.
5 
6 #ifndef LAPACK_WRAPPERS_HH
7 #define LAPACK_WRAPPERS_HH
8 
9 #include "lapack/util.hh"
10 
11 namespace lapack {
12 
13 // This is in alphabetical order.
14 
15 // -----------------------------------------------------------------------------
16 int64_t bbcsd(
17  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
18  float* theta,
19  float* phi,
20  float* U1, int64_t ldu1,
21  float* U2, int64_t ldu2,
22  float* V1T, int64_t ldv1t,
23  float* V2T, int64_t ldv2t,
24  float* B11D,
25  float* B11E,
26  float* B12D,
27  float* B12E,
28  float* B21D,
29  float* B21E,
30  float* B22D,
31  float* B22E );
32 
33 int64_t bbcsd(
34  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
35  double* theta,
36  double* phi,
37  double* U1, int64_t ldu1,
38  double* U2, int64_t ldu2,
39  double* V1T, int64_t ldv1t,
40  double* V2T, int64_t ldv2t,
41  double* B11D,
42  double* B11E,
43  double* B12D,
44  double* B12E,
45  double* B21D,
46  double* B21E,
47  double* B22D,
48  double* B22E );
49 
50 int64_t bbcsd(
51  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
52  float* theta,
53  float* phi,
54  std::complex<float>* U1, int64_t ldu1,
55  std::complex<float>* U2, int64_t ldu2,
56  std::complex<float>* V1T, int64_t ldv1t,
57  std::complex<float>* V2T, int64_t ldv2t,
58  float* B11D,
59  float* B11E,
60  float* B12D,
61  float* B12E,
62  float* B21D,
63  float* B21E,
64  float* B22D,
65  float* B22E );
66 
67 int64_t bbcsd(
68  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
69  double* theta,
70  double* phi,
71  std::complex<double>* U1, int64_t ldu1,
72  std::complex<double>* U2, int64_t ldu2,
73  std::complex<double>* V1T, int64_t ldv1t,
74  std::complex<double>* V2T, int64_t ldv2t,
75  double* B11D,
76  double* B11E,
77  double* B12D,
78  double* B12E,
79  double* B21D,
80  double* B21E,
81  double* B22D,
82  double* B22E );
83 
84 // -----------------------------------------------------------------------------
85 int64_t bdsdc(
86  lapack::Uplo uplo, lapack::Job compq, int64_t n,
87  float* D,
88  float* E,
89  float* U, int64_t ldu,
90  float* VT, int64_t ldvt,
91  float* Q,
92  int64_t* IQ );
93 
94 int64_t bdsdc(
95  lapack::Uplo uplo, lapack::Job compq, int64_t n,
96  double* D,
97  double* E,
98  double* U, int64_t ldu,
99  double* VT, int64_t ldvt,
100  double* Q,
101  int64_t* IQ );
102 
103 // -----------------------------------------------------------------------------
104 int64_t bdsqr(
105  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
106  float* D,
107  float* E,
108  float* VT, int64_t ldvt,
109  float* U, int64_t ldu,
110  float* C, int64_t ldc );
111 
112 int64_t bdsqr(
113  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
114  double* D,
115  double* E,
116  double* VT, int64_t ldvt,
117  double* U, int64_t ldu,
118  double* C, int64_t ldc );
119 
120 int64_t bdsqr(
121  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
122  float* D,
123  float* E,
124  std::complex<float>* VT, int64_t ldvt,
125  std::complex<float>* U, int64_t ldu,
126  std::complex<float>* C, int64_t ldc );
127 
128 int64_t bdsqr(
129  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
130  double* D,
131  double* E,
132  std::complex<double>* VT, int64_t ldvt,
133  std::complex<double>* U, int64_t ldu,
134  std::complex<double>* C, int64_t ldc );
135 
136 // -----------------------------------------------------------------------------
137 int64_t bdsvdx(
138  lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n,
139  float const* D,
140  float const* E, float vl, float vu, int64_t il, int64_t iu,
141  int64_t* nfound,
142  float* S,
143  float* Z, int64_t ldz );
144 
145 int64_t bdsvdx(
146  lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n,
147  double const* D,
148  double const* E, double vl, double vu, int64_t il, int64_t iu,
149  int64_t* nfound,
150  double* S,
151  double* Z, int64_t ldz );
152 
153 // -----------------------------------------------------------------------------
154 int64_t disna(
155  lapack::JobCond jobcond, int64_t m, int64_t n,
156  float const* D,
157  float* SEP );
158 
159 int64_t disna(
160  lapack::JobCond jobcond, int64_t m, int64_t n,
161  double const* D,
162  double* SEP );
163 
164 // -----------------------------------------------------------------------------
165 int64_t gbbrd(
166  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
167  float* AB, int64_t ldab,
168  float* D,
169  float* E,
170  float* Q, int64_t ldq,
171  float* PT, int64_t ldpt,
172  float* C, int64_t ldc );
173 
174 int64_t gbbrd(
175  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
176  double* AB, int64_t ldab,
177  double* D,
178  double* E,
179  double* Q, int64_t ldq,
180  double* PT, int64_t ldpt,
181  double* C, int64_t ldc );
182 
183 int64_t gbbrd(
184  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
185  std::complex<float>* AB, int64_t ldab,
186  float* D,
187  float* E,
188  std::complex<float>* Q, int64_t ldq,
189  std::complex<float>* PT, int64_t ldpt,
190  std::complex<float>* C, int64_t ldc );
191 
192 int64_t gbbrd(
193  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
194  std::complex<double>* AB, int64_t ldab,
195  double* D,
196  double* E,
197  std::complex<double>* Q, int64_t ldq,
198  std::complex<double>* PT, int64_t ldpt,
199  std::complex<double>* C, int64_t ldc );
200 
201 // -----------------------------------------------------------------------------
202 int64_t gbcon(
203  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
204  float const* AB, int64_t ldab,
205  int64_t const* ipiv, float anorm,
206  float* rcond );
207 
208 int64_t gbcon(
209  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
210  double const* AB, int64_t ldab,
211  int64_t const* ipiv, double anorm,
212  double* rcond );
213 
214 int64_t gbcon(
215  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
216  std::complex<float> const* AB, int64_t ldab,
217  int64_t const* ipiv, float anorm,
218  float* rcond );
219 
220 int64_t gbcon(
221  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
222  std::complex<double> const* AB, int64_t ldab,
223  int64_t const* ipiv, double anorm,
224  double* rcond );
225 
226 // -----------------------------------------------------------------------------
227 int64_t gbequ(
228  int64_t m, int64_t n, int64_t kl, int64_t ku,
229  float const* AB, int64_t ldab,
230  float* R,
231  float* C,
232  float* rowcnd,
233  float* colcnd,
234  float* amax );
235 
236 int64_t gbequ(
237  int64_t m, int64_t n, int64_t kl, int64_t ku,
238  double const* AB, int64_t ldab,
239  double* R,
240  double* C,
241  double* rowcnd,
242  double* colcnd,
243  double* amax );
244 
245 int64_t gbequ(
246  int64_t m, int64_t n, int64_t kl, int64_t ku,
247  std::complex<float> const* AB, int64_t ldab,
248  float* R,
249  float* C,
250  float* rowcnd,
251  float* colcnd,
252  float* amax );
253 
254 int64_t gbequ(
255  int64_t m, int64_t n, int64_t kl, int64_t ku,
256  std::complex<double> const* AB, int64_t ldab,
257  double* R,
258  double* C,
259  double* rowcnd,
260  double* colcnd,
261  double* amax );
262 
263 // -----------------------------------------------------------------------------
264 int64_t gbequb(
265  int64_t m, int64_t n, int64_t kl, int64_t ku,
266  float const* AB, int64_t ldab,
267  float* R,
268  float* C,
269  float* rowcnd,
270  float* colcnd,
271  float* amax );
272 
273 int64_t gbequb(
274  int64_t m, int64_t n, int64_t kl, int64_t ku,
275  double const* AB, int64_t ldab,
276  double* R,
277  double* C,
278  double* rowcnd,
279  double* colcnd,
280  double* amax );
281 
282 int64_t gbequb(
283  int64_t m, int64_t n, int64_t kl, int64_t ku,
284  std::complex<float> const* AB, int64_t ldab,
285  float* R,
286  float* C,
287  float* rowcnd,
288  float* colcnd,
289  float* amax );
290 
291 int64_t gbequb(
292  int64_t m, int64_t n, int64_t kl, int64_t ku,
293  std::complex<double> const* AB, int64_t ldab,
294  double* R,
295  double* C,
296  double* rowcnd,
297  double* colcnd,
298  double* amax );
299 
300 // -----------------------------------------------------------------------------
301 int64_t gbrfs(
302  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
303  float const* AB, int64_t ldab,
304  float const* AFB, int64_t ldafb,
305  int64_t const* ipiv,
306  float const* B, int64_t ldb,
307  float* X, int64_t ldx,
308  float* ferr,
309  float* berr );
310 
311 int64_t gbrfs(
312  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
313  double const* AB, int64_t ldab,
314  double const* AFB, int64_t ldafb,
315  int64_t const* ipiv,
316  double const* B, int64_t ldb,
317  double* X, int64_t ldx,
318  double* ferr,
319  double* berr );
320 
321 int64_t gbrfs(
322  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
323  std::complex<float> const* AB, int64_t ldab,
324  std::complex<float> const* AFB, int64_t ldafb,
325  int64_t const* ipiv,
326  std::complex<float> const* B, int64_t ldb,
327  std::complex<float>* X, int64_t ldx,
328  float* ferr,
329  float* berr );
330 
331 int64_t gbrfs(
332  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
333  std::complex<double> const* AB, int64_t ldab,
334  std::complex<double> const* AFB, int64_t ldafb,
335  int64_t const* ipiv,
336  std::complex<double> const* B, int64_t ldb,
337  std::complex<double>* X, int64_t ldx,
338  double* ferr,
339  double* berr );
340 
341 // -----------------------------------------------------------------------------
342 int64_t gbrfsx(
343  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
344  float const* AB, int64_t ldab,
345  float const* AFB, int64_t ldafb,
346  int64_t const* ipiv,
347  float* R,
348  float* C,
349  float const* B, int64_t ldb,
350  float* X, int64_t ldx,
351  float* rcond,
352  float* berr, int64_t n_err_bnds,
353  float* err_bnds_norm,
354  float* err_bnds_comp, int64_t nparams,
355  float* params );
356 
357 int64_t gbrfsx(
358  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
359  double const* AB, int64_t ldab,
360  double const* AFB, int64_t ldafb,
361  int64_t const* ipiv,
362  double* R,
363  double* C,
364  double const* B, int64_t ldb,
365  double* X, int64_t ldx,
366  double* rcond,
367  double* berr, int64_t n_err_bnds,
368  double* err_bnds_norm,
369  double* err_bnds_comp, int64_t nparams,
370  double* params );
371 
372 int64_t gbrfsx(
373  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
374  std::complex<float> const* AB, int64_t ldab,
375  std::complex<float> const* AFB, int64_t ldafb,
376  int64_t const* ipiv,
377  float* R,
378  float* C,
379  std::complex<float> const* B, int64_t ldb,
380  std::complex<float>* X, int64_t ldx,
381  float* rcond,
382  float* berr, int64_t n_err_bnds,
383  float* err_bnds_norm,
384  float* err_bnds_comp, int64_t nparams,
385  float* params );
386 
387 int64_t gbrfsx(
388  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
389  std::complex<double> const* AB, int64_t ldab,
390  std::complex<double> const* AFB, int64_t ldafb,
391  int64_t const* ipiv,
392  double* R,
393  double* C,
394  std::complex<double> const* B, int64_t ldb,
395  std::complex<double>* X, int64_t ldx,
396  double* rcond,
397  double* berr, int64_t n_err_bnds,
398  double* err_bnds_norm,
399  double* err_bnds_comp, int64_t nparams,
400  double* params );
401 
402 // -----------------------------------------------------------------------------
403 int64_t gbsv(
404  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
405  float* AB, int64_t ldab,
406  int64_t* ipiv,
407  float* B, int64_t ldb );
408 
409 int64_t gbsv(
410  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
411  double* AB, int64_t ldab,
412  int64_t* ipiv,
413  double* B, int64_t ldb );
414 
415 int64_t gbsv(
416  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
417  std::complex<float>* AB, int64_t ldab,
418  int64_t* ipiv,
419  std::complex<float>* B, int64_t ldb );
420 
421 int64_t gbsv(
422  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
423  std::complex<double>* AB, int64_t ldab,
424  int64_t* ipiv,
425  std::complex<double>* B, int64_t ldb );
426 
427 // -----------------------------------------------------------------------------
428 int64_t gbsvx(
429  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
430  float* AB, int64_t ldab,
431  float* AFB, int64_t ldafb,
432  int64_t* ipiv,
433  lapack::Equed* equed,
434  float* R,
435  float* C,
436  float* B, int64_t ldb,
437  float* X, int64_t ldx,
438  float* rcond,
439  float* ferr,
440  float* berr );
441 
442 int64_t gbsvx(
443  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
444  double* AB, int64_t ldab,
445  double* AFB, int64_t ldafb,
446  int64_t* ipiv,
447  lapack::Equed* equed,
448  double* R,
449  double* C,
450  double* B, int64_t ldb,
451  double* X, int64_t ldx,
452  double* rcond,
453  double* ferr,
454  double* berr );
455 
456 int64_t gbsvx(
457  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
458  std::complex<float>* AB, int64_t ldab,
459  std::complex<float>* AFB, int64_t ldafb,
460  int64_t* ipiv,
461  lapack::Equed* equed,
462  float* R,
463  float* C,
464  std::complex<float>* B, int64_t ldb,
465  std::complex<float>* X, int64_t ldx,
466  float* rcond,
467  float* ferr,
468  float* berr );
469 
470 int64_t gbsvx(
471  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
472  std::complex<double>* AB, int64_t ldab,
473  std::complex<double>* AFB, int64_t ldafb,
474  int64_t* ipiv,
475  lapack::Equed* equed,
476  double* R,
477  double* C,
478  std::complex<double>* B, int64_t ldb,
479  std::complex<double>* X, int64_t ldx,
480  double* rcond,
481  double* ferr,
482  double* berr );
483 
484 // -----------------------------------------------------------------------------
485 int64_t gbtrf(
486  int64_t m, int64_t n, int64_t kl, int64_t ku,
487  float* AB, int64_t ldab,
488  int64_t* ipiv );
489 
490 int64_t gbtrf(
491  int64_t m, int64_t n, int64_t kl, int64_t ku,
492  double* AB, int64_t ldab,
493  int64_t* ipiv );
494 
495 int64_t gbtrf(
496  int64_t m, int64_t n, int64_t kl, int64_t ku,
497  std::complex<float>* AB, int64_t ldab,
498  int64_t* ipiv );
499 
500 int64_t gbtrf(
501  int64_t m, int64_t n, int64_t kl, int64_t ku,
502  std::complex<double>* AB, int64_t ldab,
503  int64_t* ipiv );
504 
505 // -----------------------------------------------------------------------------
506 int64_t gbtrs(
507  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
508  float const* AB, int64_t ldab,
509  int64_t const* ipiv,
510  float* B, int64_t ldb );
511 
512 int64_t gbtrs(
513  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
514  double const* AB, int64_t ldab,
515  int64_t const* ipiv,
516  double* B, int64_t ldb );
517 
518 int64_t gbtrs(
519  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
520  std::complex<float> const* AB, int64_t ldab,
521  int64_t const* ipiv,
522  std::complex<float>* B, int64_t ldb );
523 
524 int64_t gbtrs(
525  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
526  std::complex<double> const* AB, int64_t ldab,
527  int64_t const* ipiv,
528  std::complex<double>* B, int64_t ldb );
529 
530 // -----------------------------------------------------------------------------
531 int64_t gebak(
532  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
533  float const* scale, int64_t m,
534  float* V, int64_t ldv );
535 
536 int64_t gebak(
537  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
538  double const* scale, int64_t m,
539  double* V, int64_t ldv );
540 
541 int64_t gebak(
542  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
543  float const* scale, int64_t m,
544  std::complex<float>* V, int64_t ldv );
545 
546 int64_t gebak(
547  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
548  double const* scale, int64_t m,
549  std::complex<double>* V, int64_t ldv );
550 
551 // -----------------------------------------------------------------------------
552 int64_t gebal(
553  lapack::Balance balance, int64_t n,
554  float* A, int64_t lda,
555  int64_t* ilo,
556  int64_t* ihi,
557  float* scale );
558 
559 int64_t gebal(
560  lapack::Balance balance, int64_t n,
561  double* A, int64_t lda,
562  int64_t* ilo,
563  int64_t* ihi,
564  double* scale );
565 
566 int64_t gebal(
567  lapack::Balance balance, int64_t n,
568  std::complex<float>* A, int64_t lda,
569  int64_t* ilo,
570  int64_t* ihi,
571  float* scale );
572 
573 int64_t gebal(
574  lapack::Balance balance, int64_t n,
575  std::complex<double>* A, int64_t lda,
576  int64_t* ilo,
577  int64_t* ihi,
578  double* scale );
579 
580 // -----------------------------------------------------------------------------
581 int64_t gebrd(
582  int64_t m, int64_t n,
583  float* A, int64_t lda,
584  float* D,
585  float* E,
586  float* tauq,
587  float* taup );
588 
589 int64_t gebrd(
590  int64_t m, int64_t n,
591  double* A, int64_t lda,
592  double* D,
593  double* E,
594  double* tauq,
595  double* taup );
596 
597 int64_t gebrd(
598  int64_t m, int64_t n,
599  std::complex<float>* A, int64_t lda,
600  float* D,
601  float* E,
602  std::complex<float>* tauq,
603  std::complex<float>* taup );
604 
605 int64_t gebrd(
606  int64_t m, int64_t n,
607  std::complex<double>* A, int64_t lda,
608  double* D,
609  double* E,
610  std::complex<double>* tauq,
611  std::complex<double>* taup );
612 
613 // -----------------------------------------------------------------------------
614 int64_t gecon(
615  lapack::Norm norm, int64_t n,
616  float const* A, int64_t lda,
617  float anorm, float* rcond );
618 
619 int64_t gecon(
620  lapack::Norm norm, int64_t n,
621  double const* A, int64_t lda,
622  double anorm, double* rcond );
623 
624 int64_t gecon(
625  lapack::Norm norm, int64_t n,
626  std::complex<float> const* A, int64_t lda,
627  float anorm, float* rcond );
628 
629 int64_t gecon(
630  lapack::Norm norm, int64_t n,
631  std::complex<double> const* A, int64_t lda,
632  double anorm, double* rcond );
633 
634 // -----------------------------------------------------------------------------
635 int64_t geequ(
636  int64_t m, int64_t n,
637  float const* A, int64_t lda,
638  float* R,
639  float* C,
640  float* rowcnd,
641  float* colcnd,
642  float* amax );
643 
644 int64_t geequ(
645  int64_t m, int64_t n,
646  double const* A, int64_t lda,
647  double* R,
648  double* C,
649  double* rowcnd,
650  double* colcnd,
651  double* amax );
652 
653 int64_t geequ(
654  int64_t m, int64_t n,
655  std::complex<float> const* A, int64_t lda,
656  float* R,
657  float* C,
658  float* rowcnd,
659  float* colcnd,
660  float* amax );
661 
662 int64_t geequ(
663  int64_t m, int64_t n,
664  std::complex<double> const* A, int64_t lda,
665  double* R,
666  double* C,
667  double* rowcnd,
668  double* colcnd,
669  double* amax );
670 
671 // -----------------------------------------------------------------------------
672 int64_t geequb(
673  int64_t m, int64_t n,
674  float const* A, int64_t lda,
675  float* R,
676  float* C,
677  float* rowcnd,
678  float* colcnd,
679  float* amax );
680 
681 int64_t geequb(
682  int64_t m, int64_t n,
683  double const* A, int64_t lda,
684  double* R,
685  double* C,
686  double* rowcnd,
687  double* colcnd,
688  double* amax );
689 
690 int64_t geequb(
691  int64_t m, int64_t n,
692  std::complex<float> const* A, int64_t lda,
693  float* R,
694  float* C,
695  float* rowcnd,
696  float* colcnd,
697  float* amax );
698 
699 int64_t geequb(
700  int64_t m, int64_t n,
701  std::complex<double> const* A, int64_t lda,
702  double* R,
703  double* C,
704  double* rowcnd,
705  double* colcnd,
706  double* amax );
707 
708 // -----------------------------------------------------------------------------
709 int64_t gees(
710  lapack::Job jobvs, lapack::Sort sort, lapack_s_select2 select, int64_t n,
711  float* A, int64_t lda,
712  int64_t* sdim,
713  std::complex<float>* W,
714  float* VS, int64_t ldvs );
715 
716 int64_t gees(
717  lapack::Job jobvs, lapack::Sort sort, lapack_d_select2 select, int64_t n,
718  double* A, int64_t lda,
719  int64_t* sdim,
720  std::complex<double>* W,
721  double* VS, int64_t ldvs );
722 
723 int64_t gees(
724  lapack::Job jobvs, lapack::Sort sort, lapack_c_select1 select, int64_t n,
725  std::complex<float>* A, int64_t lda,
726  int64_t* sdim,
727  std::complex<float>* W,
728  std::complex<float>* VS, int64_t ldvs );
729 
730 int64_t gees(
731  lapack::Job jobvs, lapack::Sort sort, lapack_z_select1 select, int64_t n,
732  std::complex<double>* A, int64_t lda,
733  int64_t* sdim,
734  std::complex<double>* W,
735  std::complex<double>* VS, int64_t ldvs );
736 
737 // -----------------------------------------------------------------------------
738 int64_t geesx(
739  lapack::Job jobvs, lapack::Sort sort, lapack_s_select2 select, lapack::Sense sense, int64_t n,
740  float* A, int64_t lda,
741  int64_t* sdim,
742  std::complex<float>* W,
743  float* VS, int64_t ldvs,
744  float* rconde,
745  float* rcondv );
746 
747 int64_t geesx(
748  lapack::Job jobvs, lapack::Sort sort, lapack_d_select2 select, lapack::Sense sense, int64_t n,
749  double* A, int64_t lda,
750  int64_t* sdim,
751  std::complex<double>* W,
752  double* VS, int64_t ldvs,
753  double* rconde,
754  double* rcondv );
755 
756 int64_t geesx(
757  lapack::Job jobvs, lapack::Sort sort, lapack_c_select1 select, lapack::Sense sense, int64_t n,
758  std::complex<float>* A, int64_t lda,
759  int64_t* sdim,
760  std::complex<float>* W,
761  std::complex<float>* VS, int64_t ldvs,
762  float* rconde,
763  float* rcondv );
764 
765 int64_t geesx(
766  lapack::Job jobvs, lapack::Sort sort, lapack_z_select1 select, lapack::Sense sense, int64_t n,
767  std::complex<double>* A, int64_t lda,
768  int64_t* sdim,
769  std::complex<double>* W,
770  std::complex<double>* VS, int64_t ldvs,
771  double* rconde,
772  double* rcondv );
773 
774 // -----------------------------------------------------------------------------
775 int64_t geev(
776  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
777  float* A, int64_t lda,
778  std::complex<float>* W,
779  float* VL, int64_t ldvl,
780  float* VR, int64_t ldvr );
781 
782 int64_t geev(
783  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
784  double* A, int64_t lda,
785  std::complex<double>* W,
786  double* VL, int64_t ldvl,
787  double* VR, int64_t ldvr );
788 
789 int64_t geev(
790  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
791  std::complex<float>* A, int64_t lda,
792  std::complex<float>* W,
793  std::complex<float>* VL, int64_t ldvl,
794  std::complex<float>* VR, int64_t ldvr );
795 
796 int64_t geev(
797  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
798  std::complex<double>* A, int64_t lda,
799  std::complex<double>* W,
800  std::complex<double>* VL, int64_t ldvl,
801  std::complex<double>* VR, int64_t ldvr );
802 
803 // -----------------------------------------------------------------------------
804 int64_t geevx(
805  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
806  float* A, int64_t lda,
807  std::complex<float>* W,
808  float* VL, int64_t ldvl,
809  float* VR, int64_t ldvr,
810  int64_t* ilo,
811  int64_t* ihi,
812  float* scale,
813  float* abnrm,
814  float* rconde,
815  float* rcondv );
816 
817 int64_t geevx(
818  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
819  double* A, int64_t lda,
820  std::complex<double>* W,
821  double* VL, int64_t ldvl,
822  double* VR, int64_t ldvr,
823  int64_t* ilo,
824  int64_t* ihi,
825  double* scale,
826  double* abnrm,
827  double* rconde,
828  double* rcondv );
829 
830 int64_t geevx(
831  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
832  std::complex<float>* A, int64_t lda,
833  std::complex<float>* W,
834  std::complex<float>* VL, int64_t ldvl,
835  std::complex<float>* VR, int64_t ldvr,
836  int64_t* ilo,
837  int64_t* ihi,
838  float* scale,
839  float* abnrm,
840  float* rconde,
841  float* rcondv );
842 
843 int64_t geevx(
844  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
845  std::complex<double>* A, int64_t lda,
846  std::complex<double>* W,
847  std::complex<double>* VL, int64_t ldvl,
848  std::complex<double>* VR, int64_t ldvr,
849  int64_t* ilo,
850  int64_t* ihi,
851  double* scale,
852  double* abnrm,
853  double* rconde,
854  double* rcondv );
855 
856 // -----------------------------------------------------------------------------
857 int64_t gehrd(
858  int64_t n, int64_t ilo, int64_t ihi,
859  float* A, int64_t lda,
860  float* tau );
861 
862 int64_t gehrd(
863  int64_t n, int64_t ilo, int64_t ihi,
864  double* A, int64_t lda,
865  double* tau );
866 
867 int64_t gehrd(
868  int64_t n, int64_t ilo, int64_t ihi,
869  std::complex<float>* A, int64_t lda,
870  std::complex<float>* tau );
871 
872 int64_t gehrd(
873  int64_t n, int64_t ilo, int64_t ihi,
874  std::complex<double>* A, int64_t lda,
875  std::complex<double>* tau );
876 
877 // -----------------------------------------------------------------------------
878 int64_t gelq(
879  int64_t m, int64_t n,
880  float* A, int64_t lda,
881  float* T, int64_t tsize );
882 
883 int64_t gelq(
884  int64_t m, int64_t n,
885  double* A, int64_t lda,
886  double* T, int64_t tsize );
887 
888 int64_t gelq(
889  int64_t m, int64_t n,
890  std::complex<float>* A, int64_t lda,
891  std::complex<float>* T, int64_t tsize );
892 
893 int64_t gelq(
894  int64_t m, int64_t n,
895  std::complex<double>* A, int64_t lda,
896  std::complex<double>* T, int64_t tsize );
897 
898 // -----------------------------------------------------------------------------
899 int64_t gelq2(
900  int64_t m, int64_t n,
901  float* A, int64_t lda,
902  float* tau );
903 
904 int64_t gelq2(
905  int64_t m, int64_t n,
906  double* A, int64_t lda,
907  double* tau );
908 
909 int64_t gelq2(
910  int64_t m, int64_t n,
911  std::complex<float>* A, int64_t lda,
912  std::complex<float>* tau );
913 
914 int64_t gelq2(
915  int64_t m, int64_t n,
916  std::complex<double>* A, int64_t lda,
917  std::complex<double>* tau );
918 
919 // -----------------------------------------------------------------------------
920 int64_t gelqf(
921  int64_t m, int64_t n,
922  float* A, int64_t lda,
923  float* tau );
924 
925 int64_t gelqf(
926  int64_t m, int64_t n,
927  double* A, int64_t lda,
928  double* tau );
929 
930 int64_t gelqf(
931  int64_t m, int64_t n,
932  std::complex<float>* A, int64_t lda,
933  std::complex<float>* tau );
934 
935 int64_t gelqf(
936  int64_t m, int64_t n,
937  std::complex<double>* A, int64_t lda,
938  std::complex<double>* tau );
939 
940 // -----------------------------------------------------------------------------
941 int64_t gels(
942  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
943  float* A, int64_t lda,
944  float* B, int64_t ldb );
945 
946 int64_t gels(
947  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
948  double* A, int64_t lda,
949  double* B, int64_t ldb );
950 
951 int64_t gels(
952  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
953  std::complex<float>* A, int64_t lda,
954  std::complex<float>* B, int64_t ldb );
955 
956 int64_t gels(
957  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
958  std::complex<double>* A, int64_t lda,
959  std::complex<double>* B, int64_t ldb );
960 
961 // -----------------------------------------------------------------------------
962 int64_t gelsd(
963  int64_t m, int64_t n, int64_t nrhs,
964  float* A, int64_t lda,
965  float* B, int64_t ldb,
966  float* S, float rcond,
967  int64_t* rank );
968 
969 int64_t gelsd(
970  int64_t m, int64_t n, int64_t nrhs,
971  double* A, int64_t lda,
972  double* B, int64_t ldb,
973  double* S, double rcond,
974  int64_t* rank );
975 
976 int64_t gelsd(
977  int64_t m, int64_t n, int64_t nrhs,
978  std::complex<float>* A, int64_t lda,
979  std::complex<float>* B, int64_t ldb,
980  float* S, float rcond,
981  int64_t* rank );
982 
983 int64_t gelsd(
984  int64_t m, int64_t n, int64_t nrhs,
985  std::complex<double>* A, int64_t lda,
986  std::complex<double>* B, int64_t ldb,
987  double* S, double rcond,
988  int64_t* rank );
989 
990 // -----------------------------------------------------------------------------
991 int64_t gelss(
992  int64_t m, int64_t n, int64_t nrhs,
993  float* A, int64_t lda,
994  float* B, int64_t ldb,
995  float* S, float rcond,
996  int64_t* rank );
997 
998 int64_t gelss(
999  int64_t m, int64_t n, int64_t nrhs,
1000  double* A, int64_t lda,
1001  double* B, int64_t ldb,
1002  double* S, double rcond,
1003  int64_t* rank );
1004 
1005 int64_t gelss(
1006  int64_t m, int64_t n, int64_t nrhs,
1007  std::complex<float>* A, int64_t lda,
1008  std::complex<float>* B, int64_t ldb,
1009  float* S, float rcond,
1010  int64_t* rank );
1011 
1012 int64_t gelss(
1013  int64_t m, int64_t n, int64_t nrhs,
1014  std::complex<double>* A, int64_t lda,
1015  std::complex<double>* B, int64_t ldb,
1016  double* S, double rcond,
1017  int64_t* rank );
1018 
1019 // -----------------------------------------------------------------------------
1020 int64_t gelsy(
1021  int64_t m, int64_t n, int64_t nrhs,
1022  float* A, int64_t lda,
1023  float* B, int64_t ldb,
1024  int64_t* jpvt, float rcond,
1025  int64_t* rank );
1026 
1027 int64_t gelsy(
1028  int64_t m, int64_t n, int64_t nrhs,
1029  double* A, int64_t lda,
1030  double* B, int64_t ldb,
1031  int64_t* jpvt, double rcond,
1032  int64_t* rank );
1033 
1034 int64_t gelsy(
1035  int64_t m, int64_t n, int64_t nrhs,
1036  std::complex<float>* A, int64_t lda,
1037  std::complex<float>* B, int64_t ldb,
1038  int64_t* jpvt, float rcond,
1039  int64_t* rank );
1040 
1041 int64_t gelsy(
1042  int64_t m, int64_t n, int64_t nrhs,
1043  std::complex<double>* A, int64_t lda,
1044  std::complex<double>* B, int64_t ldb,
1045  int64_t* jpvt, double rcond,
1046  int64_t* rank );
1047 
1048 // -----------------------------------------------------------------------------
1049 int64_t gemlq(
1050  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1051  float const* A, int64_t lda,
1052  float const* T, int64_t tsize,
1053  float* C, int64_t ldc );
1054 
1055 int64_t gemlq(
1056  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1057  double const* A, int64_t lda,
1058  double const* T, int64_t tsize,
1059  double* C, int64_t ldc );
1060 
1061 int64_t gemlq(
1062  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1063  std::complex<float> const* A, int64_t lda,
1064  std::complex<float> const* T, int64_t tsize,
1065  std::complex<float>* C, int64_t ldc );
1066 
1067 int64_t gemlq(
1068  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1069  std::complex<double> const* A, int64_t lda,
1070  std::complex<double> const* T, int64_t tsize,
1071  std::complex<double>* C, int64_t ldc );
1072 
1073 // -----------------------------------------------------------------------------
1074 int64_t gemqr(
1075  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1076  float const* A, int64_t lda,
1077  float const* T, int64_t tsize,
1078  float* C, int64_t ldc );
1079 
1080 int64_t gemqr(
1081  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1082  double const* A, int64_t lda,
1083  double const* T, int64_t tsize,
1084  double* C, int64_t ldc );
1085 
1086 int64_t gemqr(
1087  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1088  std::complex<float> const* A, int64_t lda,
1089  std::complex<float> const* T, int64_t tsize,
1090  std::complex<float>* C, int64_t ldc );
1091 
1092 int64_t gemqr(
1093  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1094  std::complex<double> const* A, int64_t lda,
1095  std::complex<double> const* T, int64_t tsize,
1096  std::complex<double>* C, int64_t ldc );
1097 
1098 // -----------------------------------------------------------------------------
1099 int64_t geql2(
1100  int64_t m, int64_t n,
1101  float* A, int64_t lda,
1102  float* tau );
1103 
1104 int64_t geql2(
1105  int64_t m, int64_t n,
1106  double* A, int64_t lda,
1107  double* tau );
1108 
1109 int64_t geql2(
1110  int64_t m, int64_t n,
1111  std::complex<float>* A, int64_t lda,
1112  std::complex<float>* tau );
1113 
1114 int64_t geql2(
1115  int64_t m, int64_t n,
1116  std::complex<double>* A, int64_t lda,
1117  std::complex<double>* tau );
1118 
1119 // -----------------------------------------------------------------------------
1120 int64_t geqlf(
1121  int64_t m, int64_t n,
1122  float* A, int64_t lda,
1123  float* tau );
1124 
1125 int64_t geqlf(
1126  int64_t m, int64_t n,
1127  double* A, int64_t lda,
1128  double* tau );
1129 
1130 int64_t geqlf(
1131  int64_t m, int64_t n,
1132  std::complex<float>* A, int64_t lda,
1133  std::complex<float>* tau );
1134 
1135 int64_t geqlf(
1136  int64_t m, int64_t n,
1137  std::complex<double>* A, int64_t lda,
1138  std::complex<double>* tau );
1139 
1140 // -----------------------------------------------------------------------------
1141 int64_t geqp3(
1142  int64_t m, int64_t n,
1143  float* A, int64_t lda,
1144  int64_t* jpvt,
1145  float* tau );
1146 
1147 int64_t geqp3(
1148  int64_t m, int64_t n,
1149  double* A, int64_t lda,
1150  int64_t* jpvt,
1151  double* tau );
1152 
1153 int64_t geqp3(
1154  int64_t m, int64_t n,
1155  std::complex<float>* A, int64_t lda,
1156  int64_t* jpvt,
1157  std::complex<float>* tau );
1158 
1159 int64_t geqp3(
1160  int64_t m, int64_t n,
1161  std::complex<double>* A, int64_t lda,
1162  int64_t* jpvt,
1163  std::complex<double>* tau );
1164 
1165 // -----------------------------------------------------------------------------
1166 int64_t geqr(
1167  int64_t m, int64_t n,
1168  float* A, int64_t lda,
1169  float* T, int64_t tsize );
1170 
1171 int64_t geqr(
1172  int64_t m, int64_t n,
1173  double* A, int64_t lda,
1174  double* T, int64_t tsize );
1175 
1176 int64_t geqr(
1177  int64_t m, int64_t n,
1178  std::complex<float>* A, int64_t lda,
1179  std::complex<float>* T, int64_t tsize );
1180 
1181 int64_t geqr(
1182  int64_t m, int64_t n,
1183  std::complex<double>* A, int64_t lda,
1184  std::complex<double>* T, int64_t tsize );
1185 
1186 // -----------------------------------------------------------------------------
1187 int64_t geqr2(
1188  int64_t m, int64_t n,
1189  float* A, int64_t lda,
1190  float* tau );
1191 
1192 int64_t geqr2(
1193  int64_t m, int64_t n,
1194  double* A, int64_t lda,
1195  double* tau );
1196 
1197 int64_t geqr2(
1198  int64_t m, int64_t n,
1199  std::complex<float>* A, int64_t lda,
1200  std::complex<float>* tau );
1201 
1202 int64_t geqr2(
1203  int64_t m, int64_t n,
1204  std::complex<double>* A, int64_t lda,
1205  std::complex<double>* tau );
1206 
1207 // -----------------------------------------------------------------------------
1208 int64_t geqrf(
1209  int64_t m, int64_t n,
1210  float* A, int64_t lda,
1211  float* tau );
1212 
1213 int64_t geqrf(
1214  int64_t m, int64_t n,
1215  double* A, int64_t lda,
1216  double* tau );
1217 
1218 int64_t geqrf(
1219  int64_t m, int64_t n,
1220  std::complex<float>* A, int64_t lda,
1221  std::complex<float>* tau );
1222 
1223 int64_t geqrf(
1224  int64_t m, int64_t n,
1225  std::complex<double>* A, int64_t lda,
1226  std::complex<double>* tau );
1227 
1228 // -----------------------------------------------------------------------------
1229 int64_t geqrfp(
1230  int64_t m, int64_t n,
1231  float* A, int64_t lda,
1232  float* tau );
1233 
1234 int64_t geqrfp(
1235  int64_t m, int64_t n,
1236  double* A, int64_t lda,
1237  double* tau );
1238 
1239 int64_t geqrfp(
1240  int64_t m, int64_t n,
1241  std::complex<float>* A, int64_t lda,
1242  std::complex<float>* tau );
1243 
1244 int64_t geqrfp(
1245  int64_t m, int64_t n,
1246  std::complex<double>* A, int64_t lda,
1247  std::complex<double>* tau );
1248 
1249 // -----------------------------------------------------------------------------
1250 int64_t geqrt(
1251  int64_t m, int64_t n, int64_t nb,
1252  float* A, int64_t lda,
1253  float* T, int64_t ldt );
1254 
1255 int64_t geqrt(
1256  int64_t m, int64_t n, int64_t nb,
1257  double* A, int64_t lda,
1258  double* T, int64_t ldt );
1259 
1260 int64_t geqrt(
1261  int64_t m, int64_t n, int64_t nb,
1262  std::complex<float>* A, int64_t lda,
1263  std::complex<float>* T, int64_t ldt );
1264 
1265 int64_t geqrt(
1266  int64_t m, int64_t n, int64_t nb,
1267  std::complex<double>* A, int64_t lda,
1268  std::complex<double>* T, int64_t ldt );
1269 
1270 // -----------------------------------------------------------------------------
1271 int64_t geqrt2(
1272  int64_t m, int64_t n,
1273  float* A, int64_t lda,
1274  float* T, int64_t ldt );
1275 
1276 int64_t geqrt2(
1277  int64_t m, int64_t n,
1278  double* A, int64_t lda,
1279  double* T, int64_t ldt );
1280 
1281 int64_t geqrt2(
1282  int64_t m, int64_t n,
1283  std::complex<float>* A, int64_t lda,
1284  std::complex<float>* T, int64_t ldt );
1285 
1286 int64_t geqrt2(
1287  int64_t m, int64_t n,
1288  std::complex<double>* A, int64_t lda,
1289  std::complex<double>* T, int64_t ldt );
1290 
1291 // -----------------------------------------------------------------------------
1292 int64_t geqrt3(
1293  int64_t m, int64_t n,
1294  float* A, int64_t lda,
1295  float* T, int64_t ldt );
1296 
1297 int64_t geqrt3(
1298  int64_t m, int64_t n,
1299  double* A, int64_t lda,
1300  double* T, int64_t ldt );
1301 
1302 int64_t geqrt3(
1303  int64_t m, int64_t n,
1304  std::complex<float>* A, int64_t lda,
1305  std::complex<float>* T, int64_t ldt );
1306 
1307 int64_t geqrt3(
1308  int64_t m, int64_t n,
1309  std::complex<double>* A, int64_t lda,
1310  std::complex<double>* T, int64_t ldt );
1311 
1312 // -----------------------------------------------------------------------------
1313 int64_t gerfs(
1314  lapack::Op trans, int64_t n, int64_t nrhs,
1315  float const* A, int64_t lda,
1316  float const* AF, int64_t ldaf,
1317  int64_t const* ipiv,
1318  float const* B, int64_t ldb,
1319  float* X, int64_t ldx,
1320  float* ferr,
1321  float* berr );
1322 
1323 int64_t gerfs(
1324  lapack::Op trans, int64_t n, int64_t nrhs,
1325  double const* A, int64_t lda,
1326  double const* AF, int64_t ldaf,
1327  int64_t const* ipiv,
1328  double const* B, int64_t ldb,
1329  double* X, int64_t ldx,
1330  double* ferr,
1331  double* berr );
1332 
1333 int64_t gerfs(
1334  lapack::Op trans, int64_t n, int64_t nrhs,
1335  std::complex<float> const* A, int64_t lda,
1336  std::complex<float> const* AF, int64_t ldaf,
1337  int64_t const* ipiv,
1338  std::complex<float> const* B, int64_t ldb,
1339  std::complex<float>* X, int64_t ldx,
1340  float* ferr,
1341  float* berr );
1342 
1343 int64_t gerfs(
1344  lapack::Op trans, int64_t n, int64_t nrhs,
1345  std::complex<double> const* A, int64_t lda,
1346  std::complex<double> const* AF, int64_t ldaf,
1347  int64_t const* ipiv,
1348  std::complex<double> const* B, int64_t ldb,
1349  std::complex<double>* X, int64_t ldx,
1350  double* ferr,
1351  double* berr );
1352 
1353 // -----------------------------------------------------------------------------
1354 int64_t gerfsx(
1355  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1356  float const* A, int64_t lda,
1357  float const* AF, int64_t ldaf,
1358  int64_t const* ipiv,
1359  float const* R,
1360  float const* C,
1361  float const* B, int64_t ldb,
1362  float* X, int64_t ldx,
1363  float* rcond,
1364  float* berr, int64_t n_err_bnds,
1365  float* err_bnds_norm,
1366  float* err_bnds_comp, int64_t nparams,
1367  float* params );
1368 
1369 int64_t gerfsx(
1370  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1371  double const* A, int64_t lda,
1372  double const* AF, int64_t ldaf,
1373  int64_t const* ipiv,
1374  double const* R,
1375  double const* C,
1376  double const* B, int64_t ldb,
1377  double* X, int64_t ldx,
1378  double* rcond,
1379  double* berr, int64_t n_err_bnds,
1380  double* err_bnds_norm,
1381  double* err_bnds_comp, int64_t nparams,
1382  double* params );
1383 
1384 int64_t gerfsx(
1385  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1386  std::complex<float> const* A, int64_t lda,
1387  std::complex<float> const* AF, int64_t ldaf,
1388  int64_t const* ipiv,
1389  float const* R,
1390  float const* C,
1391  std::complex<float> const* B, int64_t ldb,
1392  std::complex<float>* X, int64_t ldx,
1393  float* rcond,
1394  float* berr, int64_t n_err_bnds,
1395  float* err_bnds_norm,
1396  float* err_bnds_comp, int64_t nparams,
1397  float* params );
1398 
1399 int64_t gerfsx(
1400  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1401  std::complex<double> const* A, int64_t lda,
1402  std::complex<double> const* AF, int64_t ldaf,
1403  int64_t const* ipiv,
1404  double const* R,
1405  double const* C,
1406  std::complex<double> const* B, int64_t ldb,
1407  std::complex<double>* X, int64_t ldx,
1408  double* rcond,
1409  double* berr, int64_t n_err_bnds,
1410  double* err_bnds_norm,
1411  double* err_bnds_comp, int64_t nparams,
1412  double* params );
1413 
1414 // -----------------------------------------------------------------------------
1415 int64_t gerq2(
1416  int64_t m, int64_t n,
1417  float* A, int64_t lda,
1418  float* tau );
1419 
1420 int64_t gerq2(
1421  int64_t m, int64_t n,
1422  double* A, int64_t lda,
1423  double* tau );
1424 
1425 int64_t gerq2(
1426  int64_t m, int64_t n,
1427  std::complex<float>* A, int64_t lda,
1428  std::complex<float>* tau );
1429 
1430 int64_t gerq2(
1431  int64_t m, int64_t n,
1432  std::complex<double>* A, int64_t lda,
1433  std::complex<double>* tau );
1434 
1435 // -----------------------------------------------------------------------------
1436 int64_t gerqf(
1437  int64_t m, int64_t n,
1438  float* A, int64_t lda,
1439  float* tau );
1440 
1441 int64_t gerqf(
1442  int64_t m, int64_t n,
1443  double* A, int64_t lda,
1444  double* tau );
1445 
1446 int64_t gerqf(
1447  int64_t m, int64_t n,
1448  std::complex<float>* A, int64_t lda,
1449  std::complex<float>* tau );
1450 
1451 int64_t gerqf(
1452  int64_t m, int64_t n,
1453  std::complex<double>* A, int64_t lda,
1454  std::complex<double>* tau );
1455 
1456 // -----------------------------------------------------------------------------
1457 int64_t gesdd(
1458  lapack::Job jobz, int64_t m, int64_t n,
1459  float* A, int64_t lda,
1460  float* S,
1461  float* U, int64_t ldu,
1462  float* VT, int64_t ldvt );
1463 
1464 int64_t gesdd(
1465  lapack::Job jobz, int64_t m, int64_t n,
1466  double* A, int64_t lda,
1467  double* S,
1468  double* U, int64_t ldu,
1469  double* VT, int64_t ldvt );
1470 
1471 int64_t gesdd(
1472  lapack::Job jobz, int64_t m, int64_t n,
1473  std::complex<float>* A, int64_t lda,
1474  float* S,
1475  std::complex<float>* U, int64_t ldu,
1476  std::complex<float>* VT, int64_t ldvt );
1477 
1478 int64_t gesdd(
1479  lapack::Job jobz, int64_t m, int64_t n,
1480  std::complex<double>* A, int64_t lda,
1481  double* S,
1482  std::complex<double>* U, int64_t ldu,
1483  std::complex<double>* VT, int64_t ldvt );
1484 
1485 // -----------------------------------------------------------------------------
1486 int64_t gesv(
1487  int64_t n, int64_t nrhs,
1488  float* A, int64_t lda,
1489  int64_t* ipiv,
1490  float* B, int64_t ldb );
1491 
1492 int64_t gesv(
1493  int64_t n, int64_t nrhs,
1494  double* A, int64_t lda,
1495  int64_t* ipiv,
1496  double* B, int64_t ldb );
1497 
1498 int64_t gesv(
1499  int64_t n, int64_t nrhs,
1500  std::complex<float>* A, int64_t lda,
1501  int64_t* ipiv,
1502  std::complex<float>* B, int64_t ldb );
1503 
1504 int64_t gesv(
1505  int64_t n, int64_t nrhs,
1506  std::complex<double>* A, int64_t lda,
1507  int64_t* ipiv,
1508  std::complex<double>* B, int64_t ldb );
1509 
1510 int64_t gesv(
1511  int64_t n, int64_t nrhs,
1512  double* A, int64_t lda,
1513  int64_t* ipiv,
1514  double const* B, int64_t ldb,
1515  double* X, int64_t ldx,
1516  int64_t* iter );
1517 
1518 int64_t gesv(
1519  int64_t n, int64_t nrhs,
1520  std::complex<double>* A, int64_t lda,
1521  int64_t* ipiv,
1522  std::complex<double> const* B, int64_t ldb,
1523  std::complex<double>* X, int64_t ldx,
1524  int64_t* iter );
1525 
1526 // -----------------------------------------------------------------------------
1527 int64_t gesvx(
1528  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1529  float* A, int64_t lda,
1530  float* AF, int64_t ldaf,
1531  int64_t* ipiv,
1532  lapack::Equed* equed,
1533  float* R,
1534  float* C,
1535  float* B, int64_t ldb,
1536  float* X, int64_t ldx,
1537  float* rcond,
1538  float* ferr,
1539  float* berr,
1540  float* rpivotgrowth );
1541 
1542 int64_t gesvx(
1543  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1544  double* A, int64_t lda,
1545  double* AF, int64_t ldaf,
1546  int64_t* ipiv,
1547  lapack::Equed* equed,
1548  double* R,
1549  double* C,
1550  double* B, int64_t ldb,
1551  double* X, int64_t ldx,
1552  double* rcond,
1553  double* ferr,
1554  double* berr,
1555  double* rpivotgrowth );
1556 
1557 int64_t gesvx(
1558  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1559  std::complex<float>* A, int64_t lda,
1560  std::complex<float>* AF, int64_t ldaf,
1561  int64_t* ipiv,
1562  lapack::Equed* equed,
1563  float* R,
1564  float* C,
1565  std::complex<float>* B, int64_t ldb,
1566  std::complex<float>* X, int64_t ldx,
1567  float* rcond,
1568  float* ferr,
1569  float* berr,
1570  float* rpivotgrowth );
1571 
1572 int64_t gesvx(
1573  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1574  std::complex<double>* A, int64_t lda,
1575  std::complex<double>* AF, int64_t ldaf,
1576  int64_t* ipiv,
1577  lapack::Equed* equed,
1578  double* R,
1579  double* C,
1580  std::complex<double>* B, int64_t ldb,
1581  std::complex<double>* X, int64_t ldx,
1582  double* rcond,
1583  double* ferr,
1584  double* berr,
1585  double* rpivotgrowth );
1586 
1587 // -----------------------------------------------------------------------------
1588 int64_t gesvd(
1589  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1590  float* A, int64_t lda,
1591  float* S,
1592  float* U, int64_t ldu,
1593  float* VT, int64_t ldvt );
1594 
1595 int64_t gesvd(
1596  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1597  double* A, int64_t lda,
1598  double* S,
1599  double* U, int64_t ldu,
1600  double* VT, int64_t ldvt );
1601 
1602 int64_t gesvd(
1603  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1604  std::complex<float>* A, int64_t lda,
1605  float* S,
1606  std::complex<float>* U, int64_t ldu,
1607  std::complex<float>* VT, int64_t ldvt );
1608 
1609 int64_t gesvd(
1610  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1611  std::complex<double>* A, int64_t lda,
1612  double* S,
1613  std::complex<double>* U, int64_t ldu,
1614  std::complex<double>* VT, int64_t ldvt );
1615 
1616 // -----------------------------------------------------------------------------
1617 int64_t gesvdx(
1618  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1619  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu,
1620  int64_t* ns,
1621  float* S,
1622  float* U, int64_t ldu,
1623  float* VT, int64_t ldvt );
1624 
1625 int64_t gesvdx(
1626  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1627  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu,
1628  int64_t* ns,
1629  double* S,
1630  double* U, int64_t ldu,
1631  double* VT, int64_t ldvt );
1632 
1633 int64_t gesvdx(
1634  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1635  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu,
1636  int64_t* ns,
1637  float* S,
1638  std::complex<float>* U, int64_t ldu,
1639  std::complex<float>* VT, int64_t ldvt );
1640 
1641 int64_t gesvdx(
1642  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1643  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu,
1644  int64_t* ns,
1645  double* S,
1646  std::complex<double>* U, int64_t ldu,
1647  std::complex<double>* VT, int64_t ldvt );
1648 
1649 // -----------------------------------------------------------------------------
1650 int64_t getf2(
1651  int64_t m, int64_t n,
1652  float* A, int64_t lda,
1653  int64_t* ipiv );
1654 
1655 int64_t getf2(
1656  int64_t m, int64_t n,
1657  double* A, int64_t lda,
1658  int64_t* ipiv );
1659 
1660 int64_t getf2(
1661  int64_t m, int64_t n,
1662  std::complex<float>* A, int64_t lda,
1663  int64_t* ipiv );
1664 
1665 int64_t getf2(
1666  int64_t m, int64_t n,
1667  std::complex<double>* A, int64_t lda,
1668  int64_t* ipiv );
1669 
1670 // -----------------------------------------------------------------------------
1671 int64_t getrf(
1672  int64_t m, int64_t n,
1673  float* A, int64_t lda,
1674  int64_t* ipiv );
1675 
1676 int64_t getrf(
1677  int64_t m, int64_t n,
1678  double* A, int64_t lda,
1679  int64_t* ipiv );
1680 
1681 int64_t getrf(
1682  int64_t m, int64_t n,
1683  std::complex<float>* A, int64_t lda,
1684  int64_t* ipiv );
1685 
1686 int64_t getrf(
1687  int64_t m, int64_t n,
1688  std::complex<double>* A, int64_t lda,
1689  int64_t* ipiv );
1690 
1691 // -----------------------------------------------------------------------------
1692 int64_t getrf2(
1693  int64_t m, int64_t n,
1694  float* A, int64_t lda,
1695  int64_t* ipiv );
1696 
1697 int64_t getrf2(
1698  int64_t m, int64_t n,
1699  double* A, int64_t lda,
1700  int64_t* ipiv );
1701 
1702 int64_t getrf2(
1703  int64_t m, int64_t n,
1704  std::complex<float>* A, int64_t lda,
1705  int64_t* ipiv );
1706 
1707 int64_t getrf2(
1708  int64_t m, int64_t n,
1709  std::complex<double>* A, int64_t lda,
1710  int64_t* ipiv );
1711 
1712 // -----------------------------------------------------------------------------
1713 int64_t getri(
1714  int64_t n,
1715  float* A, int64_t lda,
1716  int64_t const* ipiv );
1717 
1718 int64_t getri(
1719  int64_t n,
1720  double* A, int64_t lda,
1721  int64_t const* ipiv );
1722 
1723 int64_t getri(
1724  int64_t n,
1725  std::complex<float>* A, int64_t lda,
1726  int64_t const* ipiv );
1727 
1728 int64_t getri(
1729  int64_t n,
1730  std::complex<double>* A, int64_t lda,
1731  int64_t const* ipiv );
1732 
1733 // -----------------------------------------------------------------------------
1734 int64_t getrs(
1735  lapack::Op trans, int64_t n, int64_t nrhs,
1736  float const* A, int64_t lda,
1737  int64_t const* ipiv,
1738  float* B, int64_t ldb );
1739 
1740 int64_t getrs(
1741  lapack::Op trans, int64_t n, int64_t nrhs,
1742  double const* A, int64_t lda,
1743  int64_t const* ipiv,
1744  double* B, int64_t ldb );
1745 
1746 int64_t getrs(
1747  lapack::Op trans, int64_t n, int64_t nrhs,
1748  std::complex<float> const* A, int64_t lda,
1749  int64_t const* ipiv,
1750  std::complex<float>* B, int64_t ldb );
1751 
1752 int64_t getrs(
1753  lapack::Op trans, int64_t n, int64_t nrhs,
1754  std::complex<double> const* A, int64_t lda,
1755  int64_t const* ipiv,
1756  std::complex<double>* B, int64_t ldb );
1757 
1758 // -----------------------------------------------------------------------------
1759 int64_t getsls(
1760  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1761  float* A, int64_t lda,
1762  float* B, int64_t ldb );
1763 
1764 int64_t getsls(
1765  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1766  double* A, int64_t lda,
1767  double* B, int64_t ldb );
1768 
1769 int64_t getsls(
1770  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1771  std::complex<float>* A, int64_t lda,
1772  std::complex<float>* B, int64_t ldb );
1773 
1774 int64_t getsls(
1775  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1776  std::complex<double>* A, int64_t lda,
1777  std::complex<double>* B, int64_t ldb );
1778 
1779 // -----------------------------------------------------------------------------
1780 int64_t ggbak(
1781  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1782  float const* lscale,
1783  float const* rscale, int64_t m,
1784  float* V, int64_t ldv );
1785 
1786 int64_t ggbak(
1787  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1788  double const* lscale,
1789  double const* rscale, int64_t m,
1790  double* V, int64_t ldv );
1791 
1792 int64_t ggbak(
1793  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1794  float const* lscale,
1795  float const* rscale, int64_t m,
1796  std::complex<float>* V, int64_t ldv );
1797 
1798 int64_t ggbak(
1799  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1800  double const* lscale,
1801  double const* rscale, int64_t m,
1802  std::complex<double>* V, int64_t ldv );
1803 
1804 // -----------------------------------------------------------------------------
1805 int64_t ggbal(
1806  lapack::Balance balance, int64_t n,
1807  float* A, int64_t lda,
1808  float* B, int64_t ldb,
1809  int64_t* ilo,
1810  int64_t* ihi,
1811  float* lscale,
1812  float* rscale );
1813 
1814 int64_t ggbal(
1815  lapack::Balance balance, int64_t n,
1816  double* A, int64_t lda,
1817  double* B, int64_t ldb,
1818  int64_t* ilo,
1819  int64_t* ihi,
1820  double* lscale,
1821  double* rscale );
1822 
1823 int64_t ggbal(
1824  lapack::Balance balance, int64_t n,
1825  std::complex<float>* A, int64_t lda,
1826  std::complex<float>* B, int64_t ldb,
1827  int64_t* ilo,
1828  int64_t* ihi,
1829  float* lscale,
1830  float* rscale );
1831 
1832 int64_t ggbal(
1833  lapack::Balance balance, int64_t n,
1834  std::complex<double>* A, int64_t lda,
1835  std::complex<double>* B, int64_t ldb,
1836  int64_t* ilo,
1837  int64_t* ihi,
1838  double* lscale,
1839  double* rscale );
1840 
1841 // -----------------------------------------------------------------------------
1842 int64_t gges(
1843  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, int64_t n,
1844  float* A, int64_t lda,
1845  float* B, int64_t ldb,
1846  int64_t* sdim,
1847  std::complex<float>* alpha,
1848  float* beta,
1849  float* VSL, int64_t ldvsl,
1850  float* VSR, int64_t ldvsr );
1851 
1852 int64_t gges(
1853  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, int64_t n,
1854  double* A, int64_t lda,
1855  double* B, int64_t ldb,
1856  int64_t* sdim,
1857  std::complex<double>* alpha,
1858  double* beta,
1859  double* VSL, int64_t ldvsl,
1860  double* VSR, int64_t ldvsr );
1861 
1862 int64_t gges(
1863  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, int64_t n,
1864  std::complex<float>* A, int64_t lda,
1865  std::complex<float>* B, int64_t ldb,
1866  int64_t* sdim,
1867  std::complex<float>* alpha,
1868  std::complex<float>* beta,
1869  std::complex<float>* VSL, int64_t ldvsl,
1870  std::complex<float>* VSR, int64_t ldvsr );
1871 
1872 int64_t gges(
1873  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, int64_t n,
1874  std::complex<double>* A, int64_t lda,
1875  std::complex<double>* B, int64_t ldb,
1876  int64_t* sdim,
1877  std::complex<double>* alpha,
1878  std::complex<double>* beta,
1879  std::complex<double>* VSL, int64_t ldvsl,
1880  std::complex<double>* VSR, int64_t ldvsr );
1881 
1882 // -----------------------------------------------------------------------------
1883 int64_t gges3(
1884  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, int64_t n,
1885  float* A, int64_t lda,
1886  float* B, int64_t ldb,
1887  int64_t* sdim,
1888  std::complex<float>* alpha,
1889  float* beta,
1890  float* VSL, int64_t ldvsl,
1891  float* VSR, int64_t ldvsr );
1892 
1893 int64_t gges3(
1894  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, int64_t n,
1895  double* A, int64_t lda,
1896  double* B, int64_t ldb,
1897  int64_t* sdim,
1898  std::complex<double>* alpha,
1899  double* beta,
1900  double* VSL, int64_t ldvsl,
1901  double* VSR, int64_t ldvsr );
1902 
1903 int64_t gges3(
1904  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, int64_t n,
1905  std::complex<float>* A, int64_t lda,
1906  std::complex<float>* B, int64_t ldb,
1907  int64_t* sdim,
1908  std::complex<float>* alpha,
1909  std::complex<float>* beta,
1910  std::complex<float>* VSL, int64_t ldvsl,
1911  std::complex<float>* VSR, int64_t ldvsr );
1912 
1913 int64_t gges3(
1914  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, int64_t n,
1915  std::complex<double>* A, int64_t lda,
1916  std::complex<double>* B, int64_t ldb,
1917  int64_t* sdim,
1918  std::complex<double>* alpha,
1919  std::complex<double>* beta,
1920  std::complex<double>* VSL, int64_t ldvsl,
1921  std::complex<double>* VSR, int64_t ldvsr );
1922 
1923 // -----------------------------------------------------------------------------
1924 int64_t ggesx(
1925  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, lapack::Sense sense, int64_t n,
1926  float* A, int64_t lda,
1927  float* B, int64_t ldb,
1928  int64_t* sdim,
1929  std::complex<float>* alpha,
1930  float* beta,
1931  float* VSL, int64_t ldvsl,
1932  float* VSR, int64_t ldvsr,
1933  float* rconde,
1934  float* rcondv );
1935 
1936 int64_t ggesx(
1937  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, lapack::Sense sense, int64_t n,
1938  double* A, int64_t lda,
1939  double* B, int64_t ldb,
1940  int64_t* sdim,
1941  std::complex<double>* alpha,
1942  double* beta,
1943  double* VSL, int64_t ldvsl,
1944  double* VSR, int64_t ldvsr,
1945  double* rconde,
1946  double* rcondv );
1947 
1948 int64_t ggesx(
1949  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, lapack::Sense sense, int64_t n,
1950  std::complex<float>* A, int64_t lda,
1951  std::complex<float>* B, int64_t ldb,
1952  int64_t* sdim,
1953  std::complex<float>* alpha,
1954  std::complex<float>* beta,
1955  std::complex<float>* VSL, int64_t ldvsl,
1956  std::complex<float>* VSR, int64_t ldvsr,
1957  float* rconde,
1958  float* rcondv );
1959 
1960 int64_t ggesx(
1961  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, lapack::Sense sense, int64_t n,
1962  std::complex<double>* A, int64_t lda,
1963  std::complex<double>* B, int64_t ldb,
1964  int64_t* sdim,
1965  std::complex<double>* alpha,
1966  std::complex<double>* beta,
1967  std::complex<double>* VSL, int64_t ldvsl,
1968  std::complex<double>* VSR, int64_t ldvsr,
1969  double* rconde,
1970  double* rcondv );
1971 
1972 // -----------------------------------------------------------------------------
1973 int64_t ggev(
1974  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1975  float* A, int64_t lda,
1976  float* B, int64_t ldb,
1977  std::complex<float>* alpha,
1978  float* beta,
1979  float* VL, int64_t ldvl,
1980  float* VR, int64_t ldvr );
1981 
1982 int64_t ggev(
1983  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1984  double* A, int64_t lda,
1985  double* B, int64_t ldb,
1986  std::complex<double>* alpha,
1987  double* beta,
1988  double* VL, int64_t ldvl,
1989  double* VR, int64_t ldvr );
1990 
1991 int64_t ggev(
1992  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1993  std::complex<float>* A, int64_t lda,
1994  std::complex<float>* B, int64_t ldb,
1995  std::complex<float>* alpha,
1996  std::complex<float>* beta,
1997  std::complex<float>* VL, int64_t ldvl,
1998  std::complex<float>* VR, int64_t ldvr );
1999 
2000 int64_t ggev(
2001  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2002  std::complex<double>* A, int64_t lda,
2003  std::complex<double>* B, int64_t ldb,
2004  std::complex<double>* alpha,
2005  std::complex<double>* beta,
2006  std::complex<double>* VL, int64_t ldvl,
2007  std::complex<double>* VR, int64_t ldvr );
2008 
2009 // -----------------------------------------------------------------------------
2010 int64_t ggev3(
2011  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2012  float* A, int64_t lda,
2013  float* B, int64_t ldb,
2014  std::complex<float>* alpha,
2015  float* beta,
2016  float* VL, int64_t ldvl,
2017  float* VR, int64_t ldvr );
2018 
2019 int64_t ggev3(
2020  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2021  double* A, int64_t lda,
2022  double* B, int64_t ldb,
2023  std::complex<double>* alpha,
2024  double* beta,
2025  double* VL, int64_t ldvl,
2026  double* VR, int64_t ldvr );
2027 
2028 int64_t ggev3(
2029  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2030  std::complex<float>* A, int64_t lda,
2031  std::complex<float>* B, int64_t ldb,
2032  std::complex<float>* alpha,
2033  std::complex<float>* beta,
2034  std::complex<float>* VL, int64_t ldvl,
2035  std::complex<float>* VR, int64_t ldvr );
2036 
2037 int64_t ggev3(
2038  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2039  std::complex<double>* A, int64_t lda,
2040  std::complex<double>* B, int64_t ldb,
2041  std::complex<double>* alpha,
2042  std::complex<double>* beta,
2043  std::complex<double>* VL, int64_t ldvl,
2044  std::complex<double>* VR, int64_t ldvr );
2045 
2046 // -----------------------------------------------------------------------------
2047 int64_t ggglm(
2048  int64_t n, int64_t m, int64_t p,
2049  float* A, int64_t lda,
2050  float* B, int64_t ldb,
2051  float* D,
2052  float* X,
2053  float* Y );
2054 
2055 int64_t ggglm(
2056  int64_t n, int64_t m, int64_t p,
2057  double* A, int64_t lda,
2058  double* B, int64_t ldb,
2059  double* D,
2060  double* X,
2061  double* Y );
2062 
2063 int64_t ggglm(
2064  int64_t n, int64_t m, int64_t p,
2065  std::complex<float>* A, int64_t lda,
2066  std::complex<float>* B, int64_t ldb,
2067  std::complex<float>* D,
2068  std::complex<float>* X,
2069  std::complex<float>* Y );
2070 
2071 int64_t ggglm(
2072  int64_t n, int64_t m, int64_t p,
2073  std::complex<double>* A, int64_t lda,
2074  std::complex<double>* B, int64_t ldb,
2075  std::complex<double>* D,
2076  std::complex<double>* X,
2077  std::complex<double>* Y );
2078 
2079 // -----------------------------------------------------------------------------
2080 int64_t gghrd(
2081  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2082  float* A, int64_t lda,
2083  float* B, int64_t ldb,
2084  float* Q, int64_t ldq,
2085  float* Z, int64_t ldz );
2086 
2087 int64_t gghrd(
2088  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2089  double* A, int64_t lda,
2090  double* B, int64_t ldb,
2091  double* Q, int64_t ldq,
2092  double* Z, int64_t ldz );
2093 
2094 int64_t gghrd(
2095  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2096  std::complex<float>* A, int64_t lda,
2097  std::complex<float>* B, int64_t ldb,
2098  std::complex<float>* Q, int64_t ldq,
2099  std::complex<float>* Z, int64_t ldz );
2100 
2101 int64_t gghrd(
2102  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2103  std::complex<double>* A, int64_t lda,
2104  std::complex<double>* B, int64_t ldb,
2105  std::complex<double>* Q, int64_t ldq,
2106  std::complex<double>* Z, int64_t ldz );
2107 
2108 // -----------------------------------------------------------------------------
2109 int64_t gglse(
2110  int64_t m, int64_t n, int64_t p,
2111  float* A, int64_t lda,
2112  float* B, int64_t ldb,
2113  float* C,
2114  float* D,
2115  float* X );
2116 
2117 int64_t gglse(
2118  int64_t m, int64_t n, int64_t p,
2119  double* A, int64_t lda,
2120  double* B, int64_t ldb,
2121  double* C,
2122  double* D,
2123  double* X );
2124 
2125 int64_t gglse(
2126  int64_t m, int64_t n, int64_t p,
2127  std::complex<float>* A, int64_t lda,
2128  std::complex<float>* B, int64_t ldb,
2129  std::complex<float>* C,
2130  std::complex<float>* D,
2131  std::complex<float>* X );
2132 
2133 int64_t gglse(
2134  int64_t m, int64_t n, int64_t p,
2135  std::complex<double>* A, int64_t lda,
2136  std::complex<double>* B, int64_t ldb,
2137  std::complex<double>* C,
2138  std::complex<double>* D,
2139  std::complex<double>* X );
2140 
2141 // -----------------------------------------------------------------------------
2142 int64_t ggqrf(
2143  int64_t n, int64_t m, int64_t p,
2144  float* A, int64_t lda,
2145  float* taua,
2146  float* B, int64_t ldb,
2147  float* taub );
2148 
2149 int64_t ggqrf(
2150  int64_t n, int64_t m, int64_t p,
2151  double* A, int64_t lda,
2152  double* taua,
2153  double* B, int64_t ldb,
2154  double* taub );
2155 
2156 int64_t ggqrf(
2157  int64_t n, int64_t m, int64_t p,
2158  std::complex<float>* A, int64_t lda,
2159  std::complex<float>* taua,
2160  std::complex<float>* B, int64_t ldb,
2161  std::complex<float>* taub );
2162 
2163 int64_t ggqrf(
2164  int64_t n, int64_t m, int64_t p,
2165  std::complex<double>* A, int64_t lda,
2166  std::complex<double>* taua,
2167  std::complex<double>* B, int64_t ldb,
2168  std::complex<double>* taub );
2169 
2170 // -----------------------------------------------------------------------------
2171 int64_t ggrqf(
2172  int64_t m, int64_t p, int64_t n,
2173  float* A, int64_t lda,
2174  float* taua,
2175  float* B, int64_t ldb,
2176  float* taub );
2177 
2178 int64_t ggrqf(
2179  int64_t m, int64_t p, int64_t n,
2180  double* A, int64_t lda,
2181  double* taua,
2182  double* B, int64_t ldb,
2183  double* taub );
2184 
2185 int64_t ggrqf(
2186  int64_t m, int64_t p, int64_t n,
2187  std::complex<float>* A, int64_t lda,
2188  std::complex<float>* taua,
2189  std::complex<float>* B, int64_t ldb,
2190  std::complex<float>* taub );
2191 
2192 int64_t ggrqf(
2193  int64_t m, int64_t p, int64_t n,
2194  std::complex<double>* A, int64_t lda,
2195  std::complex<double>* taua,
2196  std::complex<double>* B, int64_t ldb,
2197  std::complex<double>* taub );
2198 
2199 // -----------------------------------------------------------------------------
2200 int64_t ggsvd3(
2201  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2202  int64_t* k,
2203  int64_t* l,
2204  float* A, int64_t lda,
2205  float* B, int64_t ldb,
2206  float* alpha,
2207  float* beta,
2208  float* U, int64_t ldu,
2209  float* V, int64_t ldv,
2210  float* Q, int64_t ldq );
2211 
2212 int64_t ggsvd3(
2213  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2214  int64_t* k,
2215  int64_t* l,
2216  double* A, int64_t lda,
2217  double* B, int64_t ldb,
2218  double* alpha,
2219  double* beta,
2220  double* U, int64_t ldu,
2221  double* V, int64_t ldv,
2222  double* Q, int64_t ldq );
2223 
2224 int64_t ggsvd3(
2225  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2226  int64_t* k,
2227  int64_t* l,
2228  std::complex<float>* A, int64_t lda,
2229  std::complex<float>* B, int64_t ldb,
2230  float* alpha,
2231  float* beta,
2232  std::complex<float>* U, int64_t ldu,
2233  std::complex<float>* V, int64_t ldv,
2234  std::complex<float>* Q, int64_t ldq );
2235 
2236 int64_t ggsvd3(
2237  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2238  int64_t* k,
2239  int64_t* l,
2240  std::complex<double>* A, int64_t lda,
2241  std::complex<double>* B, int64_t ldb,
2242  double* alpha,
2243  double* beta,
2244  std::complex<double>* U, int64_t ldu,
2245  std::complex<double>* V, int64_t ldv,
2246  std::complex<double>* Q, int64_t ldq );
2247 
2248 // -----------------------------------------------------------------------------
2249 int64_t ggsvp3(
2250  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2251  float* A, int64_t lda,
2252  float* B, int64_t ldb, float tola, float tolb,
2253  int64_t* k,
2254  int64_t* l,
2255  float* U, int64_t ldu,
2256  float* V, int64_t ldv,
2257  float* Q, int64_t ldq,
2258  float* tau );
2259 
2260 int64_t ggsvp3(
2261  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2262  double* A, int64_t lda,
2263  double* B, int64_t ldb, double tola, double tolb,
2264  int64_t* k,
2265  int64_t* l,
2266  double* U, int64_t ldu,
2267  double* V, int64_t ldv,
2268  double* Q, int64_t ldq,
2269  double* tau );
2270 
2271 int64_t ggsvp3(
2272  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2273  std::complex<float>* A, int64_t lda,
2274  std::complex<float>* B, int64_t ldb, float tola, float tolb,
2275  int64_t* k,
2276  int64_t* l,
2277  std::complex<float>* U, int64_t ldu,
2278  std::complex<float>* V, int64_t ldv,
2279  std::complex<float>* Q, int64_t ldq,
2280  std::complex<float>* tau );
2281 
2282 int64_t ggsvp3(
2283  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2284  std::complex<double>* A, int64_t lda,
2285  std::complex<double>* B, int64_t ldb, double tola, double tolb,
2286  int64_t* k,
2287  int64_t* l,
2288  std::complex<double>* U, int64_t ldu,
2289  std::complex<double>* V, int64_t ldv,
2290  std::complex<double>* Q, int64_t ldq,
2291  std::complex<double>* tau );
2292 
2293 // -----------------------------------------------------------------------------
2294 int64_t gtcon(
2295  lapack::Norm norm, int64_t n,
2296  float const* DL,
2297  float const* D,
2298  float const* DU,
2299  float const* DU2,
2300  int64_t const* ipiv, float anorm,
2301  float* rcond );
2302 
2303 int64_t gtcon(
2304  lapack::Norm norm, int64_t n,
2305  double const* DL,
2306  double const* D,
2307  double const* DU,
2308  double const* DU2,
2309  int64_t const* ipiv, double anorm,
2310  double* rcond );
2311 
2312 int64_t gtcon(
2313  lapack::Norm norm, int64_t n,
2314  std::complex<float> const* DL,
2315  std::complex<float> const* D,
2316  std::complex<float> const* DU,
2317  std::complex<float> const* DU2,
2318  int64_t const* ipiv, float anorm,
2319  float* rcond );
2320 
2321 int64_t gtcon(
2322  lapack::Norm norm, int64_t n,
2323  std::complex<double> const* DL,
2324  std::complex<double> const* D,
2325  std::complex<double> const* DU,
2326  std::complex<double> const* DU2,
2327  int64_t const* ipiv, double anorm,
2328  double* rcond );
2329 
2330 // -----------------------------------------------------------------------------
2331 int64_t gtrfs(
2332  lapack::Op trans, int64_t n, int64_t nrhs,
2333  float const* DL,
2334  float const* D,
2335  float const* DU,
2336  float const* DLF,
2337  float const* DF,
2338  float const* DUF,
2339  float const* DU2,
2340  int64_t const* ipiv,
2341  float const* B, int64_t ldb,
2342  float* X, int64_t ldx,
2343  float* ferr,
2344  float* berr );
2345 
2346 int64_t gtrfs(
2347  lapack::Op trans, int64_t n, int64_t nrhs,
2348  double const* DL,
2349  double const* D,
2350  double const* DU,
2351  double const* DLF,
2352  double const* DF,
2353  double const* DUF,
2354  double const* DU2,
2355  int64_t const* ipiv,
2356  double const* B, int64_t ldb,
2357  double* X, int64_t ldx,
2358  double* ferr,
2359  double* berr );
2360 
2361 int64_t gtrfs(
2362  lapack::Op trans, int64_t n, int64_t nrhs,
2363  std::complex<float> const* DL,
2364  std::complex<float> const* D,
2365  std::complex<float> const* DU,
2366  std::complex<float> const* DLF,
2367  std::complex<float> const* DF,
2368  std::complex<float> const* DUF,
2369  std::complex<float> const* DU2,
2370  int64_t const* ipiv,
2371  std::complex<float> const* B, int64_t ldb,
2372  std::complex<float>* X, int64_t ldx,
2373  float* ferr,
2374  float* berr );
2375 
2376 int64_t gtrfs(
2377  lapack::Op trans, int64_t n, int64_t nrhs,
2378  std::complex<double> const* DL,
2379  std::complex<double> const* D,
2380  std::complex<double> const* DU,
2381  std::complex<double> const* DLF,
2382  std::complex<double> const* DF,
2383  std::complex<double> const* DUF,
2384  std::complex<double> const* DU2,
2385  int64_t const* ipiv,
2386  std::complex<double> const* B, int64_t ldb,
2387  std::complex<double>* X, int64_t ldx,
2388  double* ferr,
2389  double* berr );
2390 
2391 // -----------------------------------------------------------------------------
2392 int64_t gtsv(
2393  int64_t n, int64_t nrhs,
2394  float* DL,
2395  float* D,
2396  float* DU,
2397  float* B, int64_t ldb );
2398 
2399 int64_t gtsv(
2400  int64_t n, int64_t nrhs,
2401  double* DL,
2402  double* D,
2403  double* DU,
2404  double* B, int64_t ldb );
2405 
2406 int64_t gtsv(
2407  int64_t n, int64_t nrhs,
2408  std::complex<float>* DL,
2409  std::complex<float>* D,
2410  std::complex<float>* DU,
2411  std::complex<float>* B, int64_t ldb );
2412 
2413 int64_t gtsv(
2414  int64_t n, int64_t nrhs,
2415  std::complex<double>* DL,
2416  std::complex<double>* D,
2417  std::complex<double>* DU,
2418  std::complex<double>* B, int64_t ldb );
2419 
2420 // -----------------------------------------------------------------------------
2421 int64_t gtsvx(
2422  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2423  float const* DL,
2424  float const* D,
2425  float const* DU,
2426  float* DLF,
2427  float* DF,
2428  float* DUF,
2429  float* DU2,
2430  int64_t* ipiv,
2431  float const* B, int64_t ldb,
2432  float* X, int64_t ldx,
2433  float* rcond,
2434  float* ferr,
2435  float* berr );
2436 
2437 int64_t gtsvx(
2438  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2439  double const* DL,
2440  double const* D,
2441  double const* DU,
2442  double* DLF,
2443  double* DF,
2444  double* DUF,
2445  double* DU2,
2446  int64_t* ipiv,
2447  double const* B, int64_t ldb,
2448  double* X, int64_t ldx,
2449  double* rcond,
2450  double* ferr,
2451  double* berr );
2452 
2453 int64_t gtsvx(
2454  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2455  std::complex<float> const* DL,
2456  std::complex<float> const* D,
2457  std::complex<float> const* DU,
2458  std::complex<float>* DLF,
2459  std::complex<float>* DF,
2460  std::complex<float>* DUF,
2461  std::complex<float>* DU2,
2462  int64_t* ipiv,
2463  std::complex<float> const* B, int64_t ldb,
2464  std::complex<float>* X, int64_t ldx,
2465  float* rcond,
2466  float* ferr,
2467  float* berr );
2468 
2469 int64_t gtsvx(
2470  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2471  std::complex<double> const* DL,
2472  std::complex<double> const* D,
2473  std::complex<double> const* DU,
2474  std::complex<double>* DLF,
2475  std::complex<double>* DF,
2476  std::complex<double>* DUF,
2477  std::complex<double>* DU2,
2478  int64_t* ipiv,
2479  std::complex<double> const* B, int64_t ldb,
2480  std::complex<double>* X, int64_t ldx,
2481  double* rcond,
2482  double* ferr,
2483  double* berr );
2484 
2485 // -----------------------------------------------------------------------------
2486 int64_t gttrf(
2487  int64_t n,
2488  float* DL,
2489  float* D,
2490  float* DU,
2491  float* DU2,
2492  int64_t* ipiv );
2493 
2494 int64_t gttrf(
2495  int64_t n,
2496  double* DL,
2497  double* D,
2498  double* DU,
2499  double* DU2,
2500  int64_t* ipiv );
2501 
2502 int64_t gttrf(
2503  int64_t n,
2504  std::complex<float>* DL,
2505  std::complex<float>* D,
2506  std::complex<float>* DU,
2507  std::complex<float>* DU2,
2508  int64_t* ipiv );
2509 
2510 int64_t gttrf(
2511  int64_t n,
2512  std::complex<double>* DL,
2513  std::complex<double>* D,
2514  std::complex<double>* DU,
2515  std::complex<double>* DU2,
2516  int64_t* ipiv );
2517 
2518 // -----------------------------------------------------------------------------
2519 int64_t gttrs(
2520  lapack::Op trans, int64_t n, int64_t nrhs,
2521  float const* DL,
2522  float const* D,
2523  float const* DU,
2524  float const* DU2,
2525  int64_t const* ipiv,
2526  float* B, int64_t ldb );
2527 
2528 int64_t gttrs(
2529  lapack::Op trans, int64_t n, int64_t nrhs,
2530  double const* DL,
2531  double const* D,
2532  double const* DU,
2533  double const* DU2,
2534  int64_t const* ipiv,
2535  double* B, int64_t ldb );
2536 
2537 int64_t gttrs(
2538  lapack::Op trans, int64_t n, int64_t nrhs,
2539  std::complex<float> const* DL,
2540  std::complex<float> const* D,
2541  std::complex<float> const* DU,
2542  std::complex<float> const* DU2,
2543  int64_t const* ipiv,
2544  std::complex<float>* B, int64_t ldb );
2545 
2546 int64_t gttrs(
2547  lapack::Op trans, int64_t n, int64_t nrhs,
2548  std::complex<double> const* DL,
2549  std::complex<double> const* D,
2550  std::complex<double> const* DU,
2551  std::complex<double> const* DU2,
2552  int64_t const* ipiv,
2553  std::complex<double>* B, int64_t ldb );
2554 
2555 // -----------------------------------------------------------------------------
2556 int64_t hbev(
2557  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2558  std::complex<float>* AB, int64_t ldab,
2559  float* W,
2560  std::complex<float>* Z, int64_t ldz );
2561 
2562 int64_t hbev(
2563  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2564  std::complex<double>* AB, int64_t ldab,
2565  double* W,
2566  std::complex<double>* Z, int64_t ldz );
2567 
2568 // -----------------------------------------------------------------------------
2569 int64_t hbev_2stage(
2570  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2571  std::complex<float>* AB, int64_t ldab,
2572  float* W,
2573  std::complex<float>* Z, int64_t ldz );
2574 
2575 int64_t hbev_2stage(
2576  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2577  std::complex<double>* AB, int64_t ldab,
2578  double* W,
2579  std::complex<double>* Z, int64_t ldz );
2580 
2581 // -----------------------------------------------------------------------------
2582 int64_t hbevd(
2583  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2584  std::complex<float>* AB, int64_t ldab,
2585  float* W,
2586  std::complex<float>* Z, int64_t ldz );
2587 
2588 int64_t hbevd(
2589  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2590  std::complex<double>* AB, int64_t ldab,
2591  double* W,
2592  std::complex<double>* Z, int64_t ldz );
2593 
2594 // -----------------------------------------------------------------------------
2595 int64_t hbevd_2stage(
2596  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2597  std::complex<float>* AB, int64_t ldab,
2598  float* W,
2599  std::complex<float>* Z, int64_t ldz );
2600 
2601 int64_t hbevd_2stage(
2602  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2603  std::complex<double>* AB, int64_t ldab,
2604  double* W,
2605  std::complex<double>* Z, int64_t ldz );
2606 
2607 // -----------------------------------------------------------------------------
2608 int64_t hbevx(
2609  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2610  std::complex<float>* AB, int64_t ldab,
2611  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2612  int64_t* m,
2613  float* W,
2614  std::complex<float>* Z, int64_t ldz,
2615  int64_t* ifail );
2616 
2617 int64_t hbevx(
2618  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2619  std::complex<double>* AB, int64_t ldab,
2620  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2621  int64_t* m,
2622  double* W,
2623  std::complex<double>* Z, int64_t ldz,
2624  int64_t* ifail );
2625 
2626 // -----------------------------------------------------------------------------
2627 int64_t hbevx_2stage(
2628  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2629  std::complex<float>* AB, int64_t ldab,
2630  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2631  int64_t* m,
2632  float* W,
2633  std::complex<float>* Z, int64_t ldz,
2634  int64_t* ifail );
2635 
2636 int64_t hbevx_2stage(
2637  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2638  std::complex<double>* AB, int64_t ldab,
2639  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2640  int64_t* m,
2641  double* W,
2642  std::complex<double>* Z, int64_t ldz,
2643  int64_t* ifail );
2644 
2645 // -----------------------------------------------------------------------------
2646 int64_t hbgst(
2647  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2648  std::complex<float>* AB, int64_t ldab,
2649  std::complex<float> const* BB, int64_t ldbb,
2650  std::complex<float>* X, int64_t ldx );
2651 
2652 int64_t hbgst(
2653  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2654  std::complex<double>* AB, int64_t ldab,
2655  std::complex<double> const* BB, int64_t ldbb,
2656  std::complex<double>* X, int64_t ldx );
2657 
2658 // -----------------------------------------------------------------------------
2659 int64_t hbgv(
2660  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2661  std::complex<float>* AB, int64_t ldab,
2662  std::complex<float>* BB, int64_t ldbb,
2663  float* W,
2664  std::complex<float>* Z, int64_t ldz );
2665 
2666 int64_t hbgv(
2667  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2668  std::complex<double>* AB, int64_t ldab,
2669  std::complex<double>* BB, int64_t ldbb,
2670  double* W,
2671  std::complex<double>* Z, int64_t ldz );
2672 
2673 // -----------------------------------------------------------------------------
2674 int64_t hbgvd(
2675  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2676  std::complex<float>* AB, int64_t ldab,
2677  std::complex<float>* BB, int64_t ldbb,
2678  float* W,
2679  std::complex<float>* Z, int64_t ldz );
2680 
2681 int64_t hbgvd(
2682  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2683  std::complex<double>* AB, int64_t ldab,
2684  std::complex<double>* BB, int64_t ldbb,
2685  double* W,
2686  std::complex<double>* Z, int64_t ldz );
2687 
2688 // -----------------------------------------------------------------------------
2689 int64_t hbgvx(
2690  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2691  std::complex<float>* AB, int64_t ldab,
2692  std::complex<float>* BB, int64_t ldbb,
2693  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2694  int64_t* m,
2695  float* W,
2696  std::complex<float>* Z, int64_t ldz,
2697  int64_t* ifail );
2698 
2699 int64_t hbgvx(
2700  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2701  std::complex<double>* AB, int64_t ldab,
2702  std::complex<double>* BB, int64_t ldbb,
2703  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2704  int64_t* m,
2705  double* W,
2706  std::complex<double>* Z, int64_t ldz,
2707  int64_t* ifail );
2708 
2709 // -----------------------------------------------------------------------------
2710 int64_t hbtrd(
2711  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2712  std::complex<float>* AB, int64_t ldab,
2713  float* D,
2714  float* E,
2715  std::complex<float>* Q, int64_t ldq );
2716 
2717 int64_t hbtrd(
2718  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2719  std::complex<double>* AB, int64_t ldab,
2720  double* D,
2721  double* E,
2722  std::complex<double>* Q, int64_t ldq );
2723 
2724 // -----------------------------------------------------------------------------
2725 int64_t hecon(
2726  lapack::Uplo uplo, int64_t n,
2727  std::complex<float> const* A, int64_t lda,
2728  int64_t const* ipiv, float anorm,
2729  float* rcond );
2730 
2731 int64_t hecon(
2732  lapack::Uplo uplo, int64_t n,
2733  std::complex<double> const* A, int64_t lda,
2734  int64_t const* ipiv, double anorm,
2735  double* rcond );
2736 
2737 // -----------------------------------------------------------------------------
2738 // hecon_rk wraps hecon_3
2739 int64_t hecon_rk(
2740  lapack::Uplo uplo, int64_t n,
2741  std::complex<float> const* A, int64_t lda,
2742  std::complex<float> const* E,
2743  int64_t const* ipiv, float anorm,
2744  float* rcond );
2745 
2746 int64_t hecon_rk(
2747  lapack::Uplo uplo, int64_t n,
2748  std::complex<double> const* A, int64_t lda,
2749  std::complex<double> const* E,
2750  int64_t const* ipiv, double anorm,
2751  double* rcond );
2752 
2753 // -----------------------------------------------------------------------------
2754 int64_t heequb(
2755  lapack::Uplo uplo, int64_t n,
2756  std::complex<float> const* A, int64_t lda,
2757  float* S,
2758  float* scond,
2759  float* amax );
2760 
2761 int64_t heequb(
2762  lapack::Uplo uplo, int64_t n,
2763  std::complex<double> const* A, int64_t lda,
2764  double* S,
2765  double* scond,
2766  double* amax );
2767 
2768 // -----------------------------------------------------------------------------
2769 int64_t heev(
2770  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2771  std::complex<float>* A, int64_t lda,
2772  float* W );
2773 
2774 int64_t heev(
2775  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2776  std::complex<double>* A, int64_t lda,
2777  double* W );
2778 
2779 // -----------------------------------------------------------------------------
2780 int64_t heev_2stage(
2781  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2782  std::complex<float>* A, int64_t lda,
2783  float* W );
2784 
2785 int64_t heev_2stage(
2786  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2787  std::complex<double>* A, int64_t lda,
2788  double* W );
2789 
2790 // -----------------------------------------------------------------------------
2791 int64_t heevd(
2792  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2793  std::complex<float>* A, int64_t lda,
2794  float* W );
2795 
2796 int64_t heevd(
2797  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2798  std::complex<double>* A, int64_t lda,
2799  double* W );
2800 
2801 // -----------------------------------------------------------------------------
2802 int64_t heevd_2stage(
2803  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2804  std::complex<float>* A, int64_t lda,
2805  float* W );
2806 
2807 int64_t heevd_2stage(
2808  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2809  std::complex<double>* A, int64_t lda,
2810  double* W );
2811 
2812 // -----------------------------------------------------------------------------
2813 int64_t heevr(
2814  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2815  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2816  int64_t* m,
2817  float* W,
2818  std::complex<float>* Z, int64_t ldz,
2819  int64_t* isuppz );
2820 
2821 int64_t heevr(
2822  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2823  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2824  int64_t* m,
2825  double* W,
2826  std::complex<double>* Z, int64_t ldz,
2827  int64_t* isuppz );
2828 
2829 // -----------------------------------------------------------------------------
2830 int64_t heevr_2stage(
2831  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2832  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2833  int64_t* m,
2834  float* W,
2835  std::complex<float>* Z, int64_t ldz,
2836  int64_t* isuppz );
2837 
2838 int64_t heevr_2stage(
2839  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2840  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2841  int64_t* m,
2842  double* W,
2843  std::complex<double>* Z, int64_t ldz,
2844  int64_t* isuppz );
2845 
2846 // -----------------------------------------------------------------------------
2847 int64_t heevx(
2848  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2849  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2850  int64_t* m,
2851  float* W,
2852  std::complex<float>* Z, int64_t ldz,
2853  int64_t* ifail );
2854 
2855 int64_t heevx(
2856  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2857  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2858  int64_t* m,
2859  double* W,
2860  std::complex<double>* Z, int64_t ldz,
2861  int64_t* ifail );
2862 
2863 // -----------------------------------------------------------------------------
2864 int64_t heevx_2stage(
2865  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2866  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2867  int64_t* m,
2868  float* W,
2869  std::complex<float>* Z, int64_t ldz,
2870  int64_t* ifail );
2871 
2872 int64_t heevx_2stage(
2873  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2874  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2875  int64_t* m,
2876  double* W,
2877  std::complex<double>* Z, int64_t ldz,
2878  int64_t* ifail );
2879 
2880 // -----------------------------------------------------------------------------
2881 int64_t hegst(
2882  int64_t itype, lapack::Uplo uplo, int64_t n,
2883  std::complex<float>* A, int64_t lda,
2884  std::complex<float>* B, int64_t ldb );
2885 
2886 int64_t hegst(
2887  int64_t itype, lapack::Uplo uplo, int64_t n,
2888  std::complex<double>* A, int64_t lda,
2889  std::complex<double>* B, int64_t ldb );
2890 
2891 // -----------------------------------------------------------------------------
2892 int64_t hegv(
2893  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2894  std::complex<float>* A, int64_t lda,
2895  std::complex<float>* B, int64_t ldb,
2896  float* W );
2897 
2898 int64_t hegv(
2899  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2900  std::complex<double>* A, int64_t lda,
2901  std::complex<double>* B, int64_t ldb,
2902  double* W );
2903 
2904 // -----------------------------------------------------------------------------
2905 int64_t hegv_2stage(
2906  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2907  std::complex<float>* A, int64_t lda,
2908  std::complex<float>* B, int64_t ldb,
2909  float* W );
2910 
2911 int64_t hegv_2stage(
2912  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2913  std::complex<double>* A, int64_t lda,
2914  std::complex<double>* B, int64_t ldb,
2915  double* W );
2916 
2917 // -----------------------------------------------------------------------------
2918 int64_t hegvd(
2919  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2920  std::complex<float>* A, int64_t lda,
2921  std::complex<float>* B, int64_t ldb,
2922  float* W );
2923 
2924 int64_t hegvd(
2925  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2926  std::complex<double>* A, int64_t lda,
2927  std::complex<double>* B, int64_t ldb,
2928  double* W );
2929 
2930 // -----------------------------------------------------------------------------
2931 int64_t hegvx(
2932  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2933  std::complex<float>* A, int64_t lda,
2934  std::complex<float>* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
2935  int64_t* m,
2936  float* W,
2937  std::complex<float>* Z, int64_t ldz,
2938  int64_t* ifail );
2939 
2940 int64_t hegvx(
2941  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2942  std::complex<double>* A, int64_t lda,
2943  std::complex<double>* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
2944  int64_t* m,
2945  double* W,
2946  std::complex<double>* Z, int64_t ldz,
2947  int64_t* ifail );
2948 
2949 // -----------------------------------------------------------------------------
2950 int64_t herfs(
2951  lapack::Uplo uplo, int64_t n, int64_t nrhs,
2952  std::complex<float> const* A, int64_t lda,
2953  std::complex<float> const* AF, int64_t ldaf,
2954  int64_t const* ipiv,
2955  std::complex<float> const* B, int64_t ldb,
2956  std::complex<float>* X, int64_t ldx,
2957  float* ferr,
2958  float* berr );
2959 
2960 int64_t herfs(
2961  lapack::Uplo uplo, int64_t n, int64_t nrhs,
2962  std::complex<double> const* A, int64_t lda,
2963  std::complex<double> const* AF, int64_t ldaf,
2964  int64_t const* ipiv,
2965  std::complex<double> const* B, int64_t ldb,
2966  std::complex<double>* X, int64_t ldx,
2967  double* ferr,
2968  double* berr );
2969 
2970 // -----------------------------------------------------------------------------
2971 int64_t herfsx(
2972  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
2973  std::complex<float> const* A, int64_t lda,
2974  std::complex<float> const* AF, int64_t ldaf,
2975  int64_t const* ipiv,
2976  float* S,
2977  std::complex<float> const* B, int64_t ldb,
2978  std::complex<float>* X, int64_t ldx,
2979  float* rcond,
2980  float* berr, int64_t n_err_bnds,
2981  float* err_bnds_norm,
2982  float* err_bnds_comp, int64_t nparams,
2983  float* params );
2984 
2985 int64_t herfsx(
2986  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
2987  std::complex<double> const* A, int64_t lda,
2988  std::complex<double> const* AF, int64_t ldaf,
2989  int64_t const* ipiv,
2990  double* S,
2991  std::complex<double> const* B, int64_t ldb,
2992  std::complex<double>* X, int64_t ldx,
2993  double* rcond,
2994  double* berr, int64_t n_err_bnds,
2995  double* err_bnds_norm,
2996  double* err_bnds_comp, int64_t nparams,
2997  double* params );
2998 
2999 // -----------------------------------------------------------------------------
3000 int64_t hesv(
3001  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3002  std::complex<float>* A, int64_t lda,
3003  int64_t* ipiv,
3004  std::complex<float>* B, int64_t ldb );
3005 
3006 int64_t hesv(
3007  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3008  std::complex<double>* A, int64_t lda,
3009  int64_t* ipiv,
3010  std::complex<double>* B, int64_t ldb );
3011 
3012 // -----------------------------------------------------------------------------
3013 int64_t hesvx(
3014  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3015  std::complex<float> const* A, int64_t lda,
3016  std::complex<float>* AF, int64_t ldaf,
3017  int64_t* ipiv,
3018  std::complex<float> const* B, int64_t ldb,
3019  std::complex<float>* X, int64_t ldx,
3020  float* rcond,
3021  float* ferr,
3022  float* berr );
3023 
3024 int64_t hesvx(
3025  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3026  std::complex<double> const* A, int64_t lda,
3027  std::complex<double>* AF, int64_t ldaf,
3028  int64_t* ipiv,
3029  std::complex<double> const* B, int64_t ldb,
3030  std::complex<double>* X, int64_t ldx,
3031  double* rcond,
3032  double* ferr,
3033  double* berr );
3034 
3035 // -----------------------------------------------------------------------------
3036 int64_t hesv_aa(
3037  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3038  std::complex<float>* A, int64_t lda,
3039  int64_t* ipiv,
3040  std::complex<float>* B, int64_t ldb );
3041 
3042 int64_t hesv_aa(
3043  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3044  std::complex<double>* A, int64_t lda,
3045  int64_t* ipiv,
3046  std::complex<double>* B, int64_t ldb );
3047 
3048 // -----------------------------------------------------------------------------
3049 int64_t hesv_rk(
3050  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3051  std::complex<float>* A, int64_t lda,
3052  std::complex<float>* E,
3053  int64_t* ipiv,
3054  std::complex<float>* B, int64_t ldb );
3055 
3056 int64_t hesv_rk(
3057  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3058  std::complex<double>* A, int64_t lda,
3059  std::complex<double>* E,
3060  int64_t* ipiv,
3061  std::complex<double>* B, int64_t ldb );
3062 
3063 // -----------------------------------------------------------------------------
3064 int64_t hesv_rook(
3065  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3066  std::complex<float>* A, int64_t lda,
3067  int64_t* ipiv,
3068  std::complex<float>* B, int64_t ldb );
3069 
3070 int64_t hesv_rook(
3071  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3072  std::complex<double>* A, int64_t lda,
3073  int64_t* ipiv,
3074  std::complex<double>* B, int64_t ldb );
3075 
3076 // -----------------------------------------------------------------------------
3077 void heswapr(
3078  lapack::Uplo uplo, int64_t n,
3079  std::complex<float>* A, int64_t lda, int64_t i1, int64_t i2 );
3080 
3081 void heswapr(
3082  lapack::Uplo uplo, int64_t n,
3083  std::complex<double>* A, int64_t lda, int64_t i1, int64_t i2 );
3084 
3085 // -----------------------------------------------------------------------------
3086 int64_t hetrd(
3087  lapack::Uplo uplo, int64_t n,
3088  std::complex<float>* A, int64_t lda,
3089  float* D,
3090  float* E,
3091  std::complex<float>* tau );
3092 
3093 int64_t hetrd(
3094  lapack::Uplo uplo, int64_t n,
3095  std::complex<double>* A, int64_t lda,
3096  double* D,
3097  double* E,
3098  std::complex<double>* tau );
3099 
3100 // -----------------------------------------------------------------------------
3101 int64_t hetrd_2stage(
3102  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3103  std::complex<float>* A, int64_t lda,
3104  float* D,
3105  float* E,
3106  std::complex<float>* tau,
3107  std::complex<float>* hous2, int64_t lhous2 );
3108 
3109 int64_t hetrd_2stage(
3110  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3111  std::complex<double>* A, int64_t lda,
3112  double* D,
3113  double* E,
3114  std::complex<double>* tau,
3115  std::complex<double>* hous2, int64_t lhous2 );
3116 
3117 // -----------------------------------------------------------------------------
3118 int64_t hetrf(
3119  lapack::Uplo uplo, int64_t n,
3120  std::complex<float>* A, int64_t lda,
3121  int64_t* ipiv );
3122 
3123 int64_t hetrf(
3124  lapack::Uplo uplo, int64_t n,
3125  std::complex<double>* A, int64_t lda,
3126  int64_t* ipiv );
3127 
3128 // -----------------------------------------------------------------------------
3129 int64_t hetrf_aa(
3130  lapack::Uplo uplo, int64_t n,
3131  std::complex<float>* A, int64_t lda,
3132  int64_t* ipiv );
3133 
3134 int64_t hetrf_aa(
3135  lapack::Uplo uplo, int64_t n,
3136  std::complex<double>* A, int64_t lda,
3137  int64_t* ipiv );
3138 
3139 // -----------------------------------------------------------------------------
3140 int64_t hetrf_rk(
3141  lapack::Uplo uplo, int64_t n,
3142  std::complex<float>* A, int64_t lda,
3143  std::complex<float>* E,
3144  int64_t* ipiv );
3145 
3146 int64_t hetrf_rk(
3147  lapack::Uplo uplo, int64_t n,
3148  std::complex<double>* A, int64_t lda,
3149  std::complex<double>* E,
3150  int64_t* ipiv );
3151 
3152 // -----------------------------------------------------------------------------
3153 int64_t hetrf_rook(
3154  lapack::Uplo uplo, int64_t n,
3155  std::complex<float>* A, int64_t lda,
3156  int64_t* ipiv );
3157 
3158 int64_t hetrf_rook(
3159  lapack::Uplo uplo, int64_t n,
3160  std::complex<double>* A, int64_t lda,
3161  int64_t* ipiv );
3162 
3163 // -----------------------------------------------------------------------------
3164 int64_t hetri(
3165  lapack::Uplo uplo, int64_t n,
3166  std::complex<float>* A, int64_t lda,
3167  int64_t const* ipiv );
3168 
3169 int64_t hetri(
3170  lapack::Uplo uplo, int64_t n,
3171  std::complex<double>* A, int64_t lda,
3172  int64_t const* ipiv );
3173 
3174 // -----------------------------------------------------------------------------
3175 int64_t hetri2(
3176  lapack::Uplo uplo, int64_t n,
3177  std::complex<float>* A, int64_t lda,
3178  int64_t const* ipiv );
3179 
3180 int64_t hetri2(
3181  lapack::Uplo uplo, int64_t n,
3182  std::complex<double>* A, int64_t lda,
3183  int64_t const* ipiv );
3184 
3185 // -----------------------------------------------------------------------------
3186 // hetri_rk wraps hetri_3
3187 int64_t hetri_rk(
3188  lapack::Uplo uplo, int64_t n,
3189  std::complex<float>* A, int64_t lda,
3190  std::complex<float> const* E,
3191  int64_t const* ipiv );
3192 
3193 int64_t hetri_rk(
3194  lapack::Uplo uplo, int64_t n,
3195  std::complex<double>* A, int64_t lda,
3196  std::complex<double> const* E,
3197  int64_t const* ipiv );
3198 
3199 // -----------------------------------------------------------------------------
3200 int64_t hetrs(
3201  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3202  std::complex<float> const* A, int64_t lda,
3203  int64_t const* ipiv,
3204  std::complex<float>* B, int64_t ldb );
3205 
3206 int64_t hetrs(
3207  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3208  std::complex<double> const* A, int64_t lda,
3209  int64_t const* ipiv,
3210  std::complex<double>* B, int64_t ldb );
3211 
3212 // -----------------------------------------------------------------------------
3213 int64_t hetrs2(
3214  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3215  std::complex<float> const* A, int64_t lda,
3216  int64_t const* ipiv,
3217  std::complex<float>* B, int64_t ldb );
3218 
3219 int64_t hetrs2(
3220  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3221  std::complex<double> const* A, int64_t lda,
3222  int64_t const* ipiv,
3223  std::complex<double>* B, int64_t ldb );
3224 
3225 // -----------------------------------------------------------------------------
3226 int64_t hetrs_aa(
3227  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3228  std::complex<float> const* A, int64_t lda,
3229  int64_t const* ipiv,
3230  std::complex<float>* B, int64_t ldb );
3231 
3232 int64_t hetrs_aa(
3233  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3234  std::complex<double> const* A, int64_t lda,
3235  int64_t const* ipiv,
3236  std::complex<double>* B, int64_t ldb );
3237 
3238 // -----------------------------------------------------------------------------
3239 // hetrs_rk wraps hetrs_3
3240 int64_t hetrs_rk(
3241  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3242  std::complex<float> const* A, int64_t lda,
3243  std::complex<float> const* E,
3244  int64_t const* ipiv,
3245  std::complex<float>* B, int64_t ldb );
3246 
3247 int64_t hetrs_rk(
3248  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3249  std::complex<double> const* A, int64_t lda,
3250  std::complex<double> const* E,
3251  int64_t const* ipiv,
3252  std::complex<double>* B, int64_t ldb );
3253 
3254 // -----------------------------------------------------------------------------
3255 int64_t hetrs_rook(
3256  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3257  std::complex<float> const* A, int64_t lda,
3258  int64_t const* ipiv,
3259  std::complex<float>* B, int64_t ldb );
3260 
3261 int64_t hetrs_rook(
3262  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3263  std::complex<double> const* A, int64_t lda,
3264  int64_t const* ipiv,
3265  std::complex<double>* B, int64_t ldb );
3266 
3267 // -----------------------------------------------------------------------------
3268 void hfrk(
3269  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, float alpha,
3270  std::complex<float> const* A, int64_t lda, float beta,
3271  std::complex<float>* C );
3272 
3273 void hfrk(
3274  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, double alpha,
3275  std::complex<double> const* A, int64_t lda, double beta,
3276  std::complex<double>* C );
3277 
3278 // -----------------------------------------------------------------------------
3279 int64_t hgeqz(
3280  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3281  float* H, int64_t ldh,
3282  float* T, int64_t ldt,
3283  std::complex<float>* alpha,
3284  float* beta,
3285  float* Q, int64_t ldq,
3286  float* Z, int64_t ldz );
3287 
3288 int64_t hgeqz(
3289  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3290  double* H, int64_t ldh,
3291  double* T, int64_t ldt,
3292  std::complex<double>* alpha,
3293  double* beta,
3294  double* Q, int64_t ldq,
3295  double* Z, int64_t ldz );
3296 
3297 int64_t hgeqz(
3298  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3299  std::complex<float>* H, int64_t ldh,
3300  std::complex<float>* T, int64_t ldt,
3301  std::complex<float>* alpha,
3302  std::complex<float>* beta,
3303  std::complex<float>* Q, int64_t ldq,
3304  std::complex<float>* Z, int64_t ldz );
3305 
3306 int64_t hgeqz(
3307  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3308  std::complex<double>* H, int64_t ldh,
3309  std::complex<double>* T, int64_t ldt,
3310  std::complex<double>* alpha,
3311  std::complex<double>* beta,
3312  std::complex<double>* Q, int64_t ldq,
3313  std::complex<double>* Z, int64_t ldz );
3314 
3315 // -----------------------------------------------------------------------------
3316 int64_t hpcon(
3317  lapack::Uplo uplo, int64_t n,
3318  std::complex<float> const* AP,
3319  int64_t const* ipiv, float anorm,
3320  float* rcond );
3321 
3322 int64_t hpcon(
3323  lapack::Uplo uplo, int64_t n,
3324  std::complex<double> const* AP,
3325  int64_t const* ipiv, double anorm,
3326  double* rcond );
3327 
3328 // -----------------------------------------------------------------------------
3329 int64_t hpev(
3330  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3331  std::complex<float>* AP,
3332  float* W,
3333  std::complex<float>* Z, int64_t ldz );
3334 
3335 int64_t hpev(
3336  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3337  std::complex<double>* AP,
3338  double* W,
3339  std::complex<double>* Z, int64_t ldz );
3340 
3341 // -----------------------------------------------------------------------------
3342 int64_t hpevd(
3343  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3344  std::complex<float>* AP,
3345  float* W,
3346  std::complex<float>* Z, int64_t ldz );
3347 
3348 int64_t hpevd(
3349  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3350  std::complex<double>* AP,
3351  double* W,
3352  std::complex<double>* Z, int64_t ldz );
3353 
3354 // -----------------------------------------------------------------------------
3355 int64_t hpevx(
3356  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3357  std::complex<float>* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
3358  int64_t* m,
3359  float* W,
3360  std::complex<float>* Z, int64_t ldz,
3361  int64_t* ifail );
3362 
3363 int64_t hpevx(
3364  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3365  std::complex<double>* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
3366  int64_t* m,
3367  double* W,
3368  std::complex<double>* Z, int64_t ldz,
3369  int64_t* ifail );
3370 
3371 // -----------------------------------------------------------------------------
3372 int64_t hpgst(
3373  int64_t itype, lapack::Uplo uplo, int64_t n,
3374  std::complex<float>* AP,
3375  std::complex<float> const* BP );
3376 
3377 int64_t hpgst(
3378  int64_t itype, lapack::Uplo uplo, int64_t n,
3379  std::complex<double>* AP,
3380  std::complex<double> const* BP );
3381 
3382 // -----------------------------------------------------------------------------
3383 int64_t hpgv(
3384  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3385  std::complex<float>* AP,
3386  std::complex<float>* BP,
3387  float* W,
3388  std::complex<float>* Z, int64_t ldz );
3389 
3390 int64_t hpgv(
3391  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3392  std::complex<double>* AP,
3393  std::complex<double>* BP,
3394  double* W,
3395  std::complex<double>* Z, int64_t ldz );
3396 
3397 // -----------------------------------------------------------------------------
3398 int64_t hpgvd(
3399  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3400  std::complex<float>* AP,
3401  std::complex<float>* BP,
3402  float* W,
3403  std::complex<float>* Z, int64_t ldz );
3404 
3405 int64_t hpgvd(
3406  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3407  std::complex<double>* AP,
3408  std::complex<double>* BP,
3409  double* W,
3410  std::complex<double>* Z, int64_t ldz );
3411 
3412 // -----------------------------------------------------------------------------
3413 int64_t hpgvx(
3414  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3415  std::complex<float>* AP,
3416  std::complex<float>* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
3417  int64_t* m,
3418  float* W,
3419  std::complex<float>* Z, int64_t ldz,
3420  int64_t* ifail );
3421 
3422 int64_t hpgvx(
3423  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3424  std::complex<double>* AP,
3425  std::complex<double>* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
3426  int64_t* m,
3427  double* W,
3428  std::complex<double>* Z, int64_t ldz,
3429  int64_t* ifail );
3430 
3431 // -----------------------------------------------------------------------------
3432 int64_t hprfs(
3433  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3434  std::complex<float> const* AP,
3435  std::complex<float> const* AFP,
3436  int64_t const* ipiv,
3437  std::complex<float> const* B, int64_t ldb,
3438  std::complex<float>* X, int64_t ldx,
3439  float* ferr,
3440  float* berr );
3441 
3442 int64_t hprfs(
3443  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3444  std::complex<double> const* AP,
3445  std::complex<double> const* AFP,
3446  int64_t const* ipiv,
3447  std::complex<double> const* B, int64_t ldb,
3448  std::complex<double>* X, int64_t ldx,
3449  double* ferr,
3450  double* berr );
3451 
3452 // -----------------------------------------------------------------------------
3453 int64_t hpsv(
3454  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3455  std::complex<float>* AP,
3456  int64_t* ipiv,
3457  std::complex<float>* B, int64_t ldb );
3458 
3459 int64_t hpsv(
3460  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3461  std::complex<double>* AP,
3462  int64_t* ipiv,
3463  std::complex<double>* B, int64_t ldb );
3464 
3465 // -----------------------------------------------------------------------------
3466 int64_t hpsvx(
3467  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3468  std::complex<float> const* AP,
3469  std::complex<float>* AFP,
3470  int64_t* ipiv,
3471  std::complex<float> const* B, int64_t ldb,
3472  std::complex<float>* X, int64_t ldx,
3473  float* rcond,
3474  float* ferr,
3475  float* berr );
3476 
3477 int64_t hpsvx(
3478  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3479  std::complex<double> const* AP,
3480  std::complex<double>* AFP,
3481  int64_t* ipiv,
3482  std::complex<double> const* B, int64_t ldb,
3483  std::complex<double>* X, int64_t ldx,
3484  double* rcond,
3485  double* ferr,
3486  double* berr );
3487 
3488 // -----------------------------------------------------------------------------
3489 int64_t hptrd(
3490  lapack::Uplo uplo, int64_t n,
3491  std::complex<float>* AP,
3492  float* D,
3493  float* E,
3494  std::complex<float>* tau );
3495 
3496 int64_t hptrd(
3497  lapack::Uplo uplo, int64_t n,
3498  std::complex<double>* AP,
3499  double* D,
3500  double* E,
3501  std::complex<double>* tau );
3502 
3503 // -----------------------------------------------------------------------------
3504 int64_t hptrf(
3505  lapack::Uplo uplo, int64_t n,
3506  std::complex<float>* AP,
3507  int64_t* ipiv );
3508 
3509 int64_t hptrf(
3510  lapack::Uplo uplo, int64_t n,
3511  std::complex<double>* AP,
3512  int64_t* ipiv );
3513 
3514 // -----------------------------------------------------------------------------
3515 int64_t hptri(
3516  lapack::Uplo uplo, int64_t n,
3517  std::complex<float>* AP,
3518  int64_t const* ipiv );
3519 
3520 int64_t hptri(
3521  lapack::Uplo uplo, int64_t n,
3522  std::complex<double>* AP,
3523  int64_t const* ipiv );
3524 
3525 // -----------------------------------------------------------------------------
3526 int64_t hptrs(
3527  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3528  std::complex<float> const* AP,
3529  int64_t const* ipiv,
3530  std::complex<float>* B, int64_t ldb );
3531 
3532 int64_t hptrs(
3533  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3534  std::complex<double> const* AP,
3535  int64_t const* ipiv,
3536  std::complex<double>* B, int64_t ldb );
3537 
3538 // -----------------------------------------------------------------------------
3539 int64_t hseqr(
3540  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3541  float* H, int64_t ldh,
3542  std::complex<float>* W,
3543  float* Z, int64_t ldz );
3544 
3545 int64_t hseqr(
3546  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3547  double* H, int64_t ldh,
3548  std::complex<double>* W,
3549  double* Z, int64_t ldz );
3550 
3551 int64_t hseqr(
3552  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3553  std::complex<float>* H, int64_t ldh,
3554  std::complex<float>* W,
3555  std::complex<float>* Z, int64_t ldz );
3556 
3557 int64_t hseqr(
3558  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3559  std::complex<double>* H, int64_t ldh,
3560  std::complex<double>* W,
3561  std::complex<double>* Z, int64_t ldz );
3562 
3563 // -----------------------------------------------------------------------------
3564 // real types have no-op dummy inline functions, to facilitate templating
3565 inline void lacgv(
3566  int64_t n,
3567  float* X, int64_t incx )
3568 {}
3569 
3570 inline void lacgv(
3571  int64_t n,
3572  double* X, int64_t incx )
3573 {}
3574 
3575 void lacgv(
3576  int64_t n,
3577  std::complex<float>* X, int64_t incx );
3578 
3579 void lacgv(
3580  int64_t n,
3581  std::complex<double>* X, int64_t incx );
3582 
3583 // -----------------------------------------------------------------------------
3584 void lacp2(
3585  lapack::Uplo uplo, int64_t m, int64_t n,
3586  float const* A, int64_t lda,
3587  std::complex<float>* B, int64_t ldb );
3588 
3589 void lacp2(
3590  lapack::Uplo uplo, int64_t m, int64_t n,
3591  double const* A, int64_t lda,
3592  std::complex<double>* B, int64_t ldb );
3593 
3594 // -----------------------------------------------------------------------------
3595 void lacpy(
3596  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3597  float const* A, int64_t lda,
3598  float* B, int64_t ldb );
3599 
3600 void lacpy(
3601  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3602  double const* A, int64_t lda,
3603  double* B, int64_t ldb );
3604 
3605 void lacpy(
3606  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3607  std::complex<float> const* A, int64_t lda,
3608  std::complex<float>* B, int64_t ldb );
3609 
3610 void lacpy(
3611  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3612  std::complex<double> const* A, int64_t lda,
3613  std::complex<double>* B, int64_t ldb );
3614 
3615 // -----------------------------------------------------------------------------
3616 int64_t lag2c(
3617  int64_t m, int64_t n,
3618  std::complex<double> const* A, int64_t lda,
3619  std::complex<float>* SA, int64_t ldsa );
3620 
3621 // -----------------------------------------------------------------------------
3622 int64_t lag2d(
3623  int64_t m, int64_t n,
3624  float const* SA, int64_t ldsa,
3625  double* A, int64_t lda );
3626 
3627 // -----------------------------------------------------------------------------
3628 int64_t lag2s(
3629  int64_t m, int64_t n,
3630  double const* A, int64_t lda,
3631  float* SA, int64_t ldsa );
3632 
3633 // -----------------------------------------------------------------------------
3634 int64_t lag2z(
3635  int64_t m, int64_t n,
3636  std::complex<float> const* SA, int64_t ldsa,
3637  std::complex<double>* A, int64_t lda );
3638 
3639 // -----------------------------------------------------------------------------
3640 int64_t lagge(
3641  int64_t m, int64_t n, int64_t kl, int64_t ku,
3642  float const* D,
3643  float* A, int64_t lda,
3644  int64_t* iseed );
3645 
3646 int64_t lagge(
3647  int64_t m, int64_t n, int64_t kl, int64_t ku,
3648  double const* D,
3649  double* A, int64_t lda,
3650  int64_t* iseed );
3651 
3652 int64_t lagge(
3653  int64_t m, int64_t n, int64_t kl, int64_t ku,
3654  float const* D,
3655  std::complex<float>* A, int64_t lda,
3656  int64_t* iseed );
3657 
3658 int64_t lagge(
3659  int64_t m, int64_t n, int64_t kl, int64_t ku,
3660  double const* D,
3661  std::complex<double>* A, int64_t lda,
3662  int64_t* iseed );
3663 
3664 // -----------------------------------------------------------------------------
3665 int64_t laghe(
3666  int64_t n, int64_t k,
3667  float const* D,
3668  std::complex<float>* A, int64_t lda,
3669  int64_t* iseed );
3670 
3671 int64_t laghe(
3672  int64_t n, int64_t k,
3673  double const* D,
3674  std::complex<double>* A, int64_t lda,
3675  int64_t* iseed );
3676 
3677 // -----------------------------------------------------------------------------
3678 int64_t lagsy(
3679  int64_t n, int64_t k,
3680  float const* D,
3681  float* A, int64_t lda,
3682  int64_t* iseed );
3683 
3684 int64_t lagsy(
3685  int64_t n, int64_t k,
3686  double const* D,
3687  double* A, int64_t lda,
3688  int64_t* iseed );
3689 
3690 int64_t lagsy(
3691  int64_t n, int64_t k,
3692  float const* D,
3693  std::complex<float>* A, int64_t lda,
3694  int64_t* iseed );
3695 
3696 int64_t lagsy(
3697  int64_t n, int64_t k,
3698  double const* D,
3699  std::complex<double>* A, int64_t lda,
3700  int64_t* iseed );
3701 
3702 // -----------------------------------------------------------------------------
3703 float langb(
3704  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3705  float const* AB, int64_t ldab );
3706 
3707 double langb(
3708  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3709  double const* AB, int64_t ldab );
3710 
3711 float langb(
3712  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3713  std::complex<float> const* AB, int64_t ldab );
3714 
3715 double langb(
3716  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3717  std::complex<double> const* AB, int64_t ldab );
3718 
3719 // -----------------------------------------------------------------------------
3720 float lange(
3721  lapack::Norm norm, int64_t m, int64_t n,
3722  float const* A, int64_t lda );
3723 
3724 double lange(
3725  lapack::Norm norm, int64_t m, int64_t n,
3726  double const* A, int64_t lda );
3727 
3728 float lange(
3729  lapack::Norm norm, int64_t m, int64_t n,
3730  std::complex<float> const* A, int64_t lda );
3731 
3732 double lange(
3733  lapack::Norm norm, int64_t m, int64_t n,
3734  std::complex<double> const* A, int64_t lda );
3735 
3736 // -----------------------------------------------------------------------------
3737 float langt(
3738  lapack::Norm norm, int64_t n,
3739  float const* DL,
3740  float const* D,
3741  float const* DU );
3742 
3743 double langt(
3744  lapack::Norm norm, int64_t n,
3745  double const* DL,
3746  double const* D,
3747  double const* DU );
3748 
3749 float langt(
3750  lapack::Norm norm, int64_t n,
3751  std::complex<float> const* DL,
3752  std::complex<float> const* D,
3753  std::complex<float> const* DU );
3754 
3755 double langt(
3756  lapack::Norm norm, int64_t n,
3757  std::complex<double> const* DL,
3758  std::complex<double> const* D,
3759  std::complex<double> const* DU );
3760 
3761 // -----------------------------------------------------------------------------
3762 float lanhb(
3763  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3764  std::complex<float> const* AB, int64_t ldab );
3765 
3766 double lanhb(
3767  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3768  std::complex<double> const* AB, int64_t ldab );
3769 
3770 // -----------------------------------------------------------------------------
3771 float lanhe(
3772  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3773  std::complex<float> const* A, int64_t lda );
3774 
3775 double lanhe(
3776  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3777  std::complex<double> const* A, int64_t lda );
3778 
3779 // -----------------------------------------------------------------------------
3780 float lanhp(
3781  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3782  std::complex<float> const* AP );
3783 
3784 double lanhp(
3785  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3786  std::complex<double> const* AP );
3787 
3788 // -----------------------------------------------------------------------------
3789 float lanhs(
3790  lapack::Norm norm, int64_t n,
3791  float const* A, int64_t lda );
3792 
3793 double lanhs(
3794  lapack::Norm norm, int64_t n,
3795  double const* A, int64_t lda );
3796 
3797 float lanhs(
3798  lapack::Norm norm, int64_t n,
3799  std::complex<float> const* A, int64_t lda );
3800 
3801 double lanhs(
3802  lapack::Norm norm, int64_t n,
3803  std::complex<double> const* A, int64_t lda );
3804 
3805 // -----------------------------------------------------------------------------
3806 float lanht(
3807  lapack::Norm norm, int64_t n,
3808  float const* D,
3809  std::complex<float> const* E );
3810 
3811 double lanht(
3812  lapack::Norm norm, int64_t n,
3813  double const* D,
3814  std::complex<double> const* E );
3815 
3816 // -----------------------------------------------------------------------------
3817 float lansb(
3818  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3819  float const* AB, int64_t ldab );
3820 
3821 // lanhb alias to lansb
3823 inline float lanhb(
3824  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3825  float const* AB, int64_t ldab )
3826 {
3827  return lansb( norm, uplo, n, kd, AB, ldab );
3828 }
3829 
3830 double lansb(
3831  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3832  double const* AB, int64_t ldab );
3833 
3834 // lanhb alias to lansb
3836 inline double lanhb(
3837  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3838  double const* AB, int64_t ldab )
3839 {
3840  return lansb( norm, uplo, n, kd, AB, ldab );
3841 }
3842 
3843 float lansb(
3844  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3845  std::complex<float> const* AB, int64_t ldab );
3846 
3847 double lansb(
3848  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3849  std::complex<double> const* AB, int64_t ldab );
3850 
3851 // -----------------------------------------------------------------------------
3852 float lansp(
3853  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3854  float const* AP );
3855 
3856 // lanhp alias to lansp
3858 inline float lanhp(
3859  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3860  float const* AP )
3861 {
3862  return lansp( norm, uplo, n, AP );
3863 }
3864 
3865 double lansp(
3866  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3867  double const* AP );
3868 
3869 // lanhp alias to lansp
3871 inline double lanhp(
3872  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3873  double const* AP )
3874 {
3875  return lansp( norm, uplo, n, AP );
3876 }
3877 
3878 float lansp(
3879  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3880  std::complex<float> const* AP );
3881 
3882 double lansp(
3883  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3884  std::complex<double> const* AP );
3885 
3886 // -----------------------------------------------------------------------------
3887 float lanst(
3888  lapack::Norm norm, int64_t n,
3889  float const* D,
3890  float const* E );
3891 
3892 // lanht alias to lanst
3894 inline float lanht(
3895  lapack::Norm norm, int64_t n,
3896  float const* D,
3897  float const* E )
3898 {
3899  return lanst( norm, n, D, E );
3900 }
3901 
3902 double lanst(
3903  lapack::Norm norm, int64_t n,
3904  double const* D,
3905  double const* E );
3906 
3907 // lanht alias to lanst
3909 inline double lanht(
3910  lapack::Norm norm, int64_t n,
3911  double const* D,
3912  double const* E )
3913 {
3914  return lanst( norm, n, D, E );
3915 }
3916 
3917 // -----------------------------------------------------------------------------
3918 float lansy(
3919  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3920  float const* A, int64_t lda );
3921 
3922 // lanhe alias to lansy
3924 inline float lanhe(
3925  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3926  float const* A, int64_t lda )
3927 {
3928  return lansy( norm, uplo, n, A, lda );
3929 }
3930 
3931 double lansy(
3932  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3933  double const* A, int64_t lda );
3934 
3935 // lanhe alias to lansy
3937 inline double lanhe(
3938  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3939  double const* A, int64_t lda )
3940 {
3941  return lansy( norm, uplo, n, A, lda );
3942 }
3943 
3944 float lansy(
3945  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3946  std::complex<float> const* A, int64_t lda );
3947 
3948 double lansy(
3949  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3950  std::complex<double> const* A, int64_t lda );
3951 
3952 // -----------------------------------------------------------------------------
3953 float lantb(
3954  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3955  float const* AB, int64_t ldab );
3956 
3957 double lantb(
3958  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3959  double const* AB, int64_t ldab );
3960 
3961 float lantb(
3962  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3963  std::complex<float> const* AB, int64_t ldab );
3964 
3965 double lantb(
3966  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3967  std::complex<double> const* AB, int64_t ldab );
3968 
3969 // -----------------------------------------------------------------------------
3970 float lantp(
3971  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3972  float const* AP );
3973 
3974 double lantp(
3975  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3976  double const* AP );
3977 
3978 float lantp(
3979  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3980  std::complex<float> const* AP );
3981 
3982 double lantp(
3983  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3984  std::complex<double> const* AP );
3985 
3986 // -----------------------------------------------------------------------------
3987 float lantr(
3988  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3989  float const* A, int64_t lda );
3990 
3991 double lantr(
3992  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3993  double const* A, int64_t lda );
3994 
3995 float lantr(
3996  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3997  std::complex<float> const* A, int64_t lda );
3998 
3999 double lantr(
4000  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4001  std::complex<double> const* A, int64_t lda );
4002 
4003 // -----------------------------------------------------------------------------
4004 void lapmr(
4005  bool forwrd, int64_t m, int64_t n,
4006  float* X, int64_t ldx,
4007  int64_t* K );
4008 
4009 void lapmr(
4010  bool forwrd, int64_t m, int64_t n,
4011  double* X, int64_t ldx,
4012  int64_t* K );
4013 
4014 void lapmr(
4015  bool forwrd, int64_t m, int64_t n,
4016  std::complex<float>* X, int64_t ldx,
4017  int64_t* K );
4018 
4019 void lapmr(
4020  bool forwrd, int64_t m, int64_t n,
4021  std::complex<double>* X, int64_t ldx,
4022  int64_t* K );
4023 
4024 // -----------------------------------------------------------------------------
4025 void lapmt(
4026  bool forwrd, int64_t m, int64_t n,
4027  float* X, int64_t ldx,
4028  int64_t* K );
4029 
4030 void lapmt(
4031  bool forwrd, int64_t m, int64_t n,
4032  double* X, int64_t ldx,
4033  int64_t* K );
4034 
4035 void lapmt(
4036  bool forwrd, int64_t m, int64_t n,
4037  std::complex<float>* X, int64_t ldx,
4038  int64_t* K );
4039 
4040 void lapmt(
4041  bool forwrd, int64_t m, int64_t n,
4042  std::complex<double>* X, int64_t ldx,
4043  int64_t* K );
4044 
4045 // -----------------------------------------------------------------------------
4046 float lapy2(
4047  float x, float y );
4048 
4049 double lapy2(
4050  double x, double y );
4051 
4052 // -----------------------------------------------------------------------------
4053 float lapy3(
4054  float x, float y, float z );
4055 
4056 double lapy3(
4057  double x, double y, double z );
4058 
4059 // -----------------------------------------------------------------------------
4060 void larf(
4061  lapack::Side side, int64_t m, int64_t n,
4062  float const* V, int64_t incv, float tau,
4063  float* C, int64_t ldc );
4064 
4065 void larf(
4066  lapack::Side side, int64_t m, int64_t n,
4067  double const* V, int64_t incv, double tau,
4068  double* C, int64_t ldc );
4069 
4070 void larf(
4071  lapack::Side side, int64_t m, int64_t n,
4072  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4073  std::complex<float>* C, int64_t ldc );
4074 
4075 void larf(
4076  lapack::Side side, int64_t m, int64_t n,
4077  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4078  std::complex<double>* C, int64_t ldc );
4079 
4080 // -----------------------------------------------------------------------------
4081 void larfb(
4082  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4083  float const* V, int64_t ldv,
4084  float const* T, int64_t ldt,
4085  float* C, int64_t ldc );
4086 
4087 void larfb(
4088  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4089  double const* V, int64_t ldv,
4090  double const* T, int64_t ldt,
4091  double* C, int64_t ldc );
4092 
4093 void larfb(
4094  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4095  std::complex<float> const* V, int64_t ldv,
4096  std::complex<float> const* T, int64_t ldt,
4097  std::complex<float>* C, int64_t ldc );
4098 
4099 void larfb(
4100  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4101  std::complex<double> const* V, int64_t ldv,
4102  std::complex<double> const* T, int64_t ldt,
4103  std::complex<double>* C, int64_t ldc );
4104 
4105 // -----------------------------------------------------------------------------
4106 void larfg(
4107  int64_t n,
4108  float* alpha,
4109  float* X, int64_t incx,
4110  float* tau );
4111 
4112 void larfg(
4113  int64_t n,
4114  double* alpha,
4115  double* X, int64_t incx,
4116  double* tau );
4117 
4118 void larfg(
4119  int64_t n,
4120  std::complex<float>* alpha,
4121  std::complex<float>* X, int64_t incx,
4122  std::complex<float>* tau );
4123 
4124 void larfg(
4125  int64_t n,
4126  std::complex<double>* alpha,
4127  std::complex<double>* X, int64_t incx,
4128  std::complex<double>* tau );
4129 
4130 // -----------------------------------------------------------------------------
4131 void larft(
4132  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4133  float const* V, int64_t ldv,
4134  float const* tau,
4135  float* T, int64_t ldt );
4136 
4137 void larft(
4138  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4139  double const* V, int64_t ldv,
4140  double const* tau,
4141  double* T, int64_t ldt );
4142 
4143 void larft(
4144  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4145  std::complex<float> const* V, int64_t ldv,
4146  std::complex<float> const* tau,
4147  std::complex<float>* T, int64_t ldt );
4148 
4149 void larft(
4150  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4151  std::complex<double> const* V, int64_t ldv,
4152  std::complex<double> const* tau,
4153  std::complex<double>* T, int64_t ldt );
4154 
4155 // -----------------------------------------------------------------------------
4156 void larfx(
4157  lapack::Side side, int64_t m, int64_t n,
4158  float const* V, float tau,
4159  float* C, int64_t ldc );
4160 
4161 void larfx(
4162  lapack::Side side, int64_t m, int64_t n,
4163  double const* V, double tau,
4164  double* C, int64_t ldc );
4165 
4166 void larfx(
4167  lapack::Side side, int64_t m, int64_t n,
4168  std::complex<float> const* V, std::complex<float> tau,
4169  std::complex<float>* C, int64_t ldc );
4170 
4171 void larfx(
4172  lapack::Side side, int64_t m, int64_t n,
4173  std::complex<double> const* V, std::complex<double> tau,
4174  std::complex<double>* C, int64_t ldc );
4175 
4176 // -----------------------------------------------------------------------------
4177 void larfy(
4178  lapack::Uplo uplo, int64_t n,
4179  float const* V, int64_t incv, float tau,
4180  float* C, int64_t ldc );
4181 
4182 void larfy(
4183  lapack::Uplo uplo, int64_t n,
4184  double const* V, int64_t incv, double tau,
4185  double* C, int64_t ldc );
4186 
4187 void larfy(
4188  lapack::Uplo uplo, int64_t n,
4189  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4190  std::complex<float>* C, int64_t ldc );
4191 
4192 void larfy(
4193  lapack::Uplo uplo, int64_t n,
4194  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4195  std::complex<double>* C, int64_t ldc );
4196 
4197 // -----------------------------------------------------------------------------
4198 void larnv(
4199  int64_t idist,
4200  int64_t* iseed, int64_t n,
4201  float* X );
4202 
4203 void larnv(
4204  int64_t idist,
4205  int64_t* iseed, int64_t n,
4206  double* X );
4207 
4208 void larnv(
4209  int64_t idist,
4210  int64_t* iseed, int64_t n,
4211  std::complex<float>* X );
4212 
4213 void larnv(
4214  int64_t idist,
4215  int64_t* iseed, int64_t n,
4216  std::complex<double>* X );
4217 
4218 // -----------------------------------------------------------------------------
4219 void lartgp(
4220  float f, float g,
4221  float* cs,
4222  float* sn,
4223  float* r );
4224 
4225 void lartgp(
4226  double f, double g,
4227  double* cs,
4228  double* sn,
4229  double* r );
4230 
4231 // -----------------------------------------------------------------------------
4232 void lartgs(
4233  float x, float y, float sigma,
4234  float* cs,
4235  float* sn );
4236 
4237 void lartgs(
4238  double x, double y, double sigma,
4239  double* cs,
4240  double* sn );
4241 
4242 // -----------------------------------------------------------------------------
4243 int64_t lascl(
4244  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4245  float* A, int64_t lda );
4246 
4247 int64_t lascl(
4248  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4249  double* A, int64_t lda );
4250 
4251 int64_t lascl(
4252  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4253  std::complex<float>* A, int64_t lda );
4254 
4255 int64_t lascl(
4256  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4257  std::complex<double>* A, int64_t lda );
4258 
4259 // -----------------------------------------------------------------------------
4260 void laset(
4261  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4262  float offdiag, float diag,
4263  float* A, int64_t lda );
4264 
4265 void laset(
4266  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4267  double offdiag, double diag,
4268  double* A, int64_t lda );
4269 
4270 void laset(
4271  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4272  std::complex<float> offdiag, std::complex<float> diag,
4273  std::complex<float>* A, int64_t lda );
4274 
4275 void laset(
4276  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4277  std::complex<double> offdiag, std::complex<double> diag,
4278  std::complex<double>* A, int64_t lda );
4279 
4280 // -----------------------------------------------------------------------------
4281 void lassq(
4282  int64_t n,
4283  float const* X, int64_t incx,
4284  float* scale,
4285  float* sumsq );
4286 
4287 void lassq(
4288  int64_t n,
4289  double const* X, int64_t incx,
4290  double* scale,
4291  double* sumsq );
4292 
4293 void lassq(
4294  int64_t n,
4295  std::complex<float> const* X, int64_t incx,
4296  float* scale,
4297  float* sumsq );
4298 
4299 void lassq(
4300  int64_t n,
4301  std::complex<double> const* X, int64_t incx,
4302  double* scale,
4303  double* sumsq );
4304 
4305 // -----------------------------------------------------------------------------
4306 void laswp(
4307  int64_t n,
4308  float* A, int64_t lda, int64_t k1, int64_t k2,
4309  int64_t const* ipiv, int64_t incx );
4310 
4311 void laswp(
4312  int64_t n,
4313  double* A, int64_t lda, int64_t k1, int64_t k2,
4314  int64_t const* ipiv, int64_t incx );
4315 
4316 void laswp(
4317  int64_t n,
4318  std::complex<float>* A, int64_t lda, int64_t k1, int64_t k2,
4319  int64_t const* ipiv, int64_t incx );
4320 
4321 void laswp(
4322  int64_t n,
4323  std::complex<double>* A, int64_t lda, int64_t k1, int64_t k2,
4324  int64_t const* ipiv, int64_t incx );
4325 
4326 // -----------------------------------------------------------------------------
4327 int64_t lauum(
4328  lapack::Uplo uplo, int64_t n,
4329  float* A, int64_t lda );
4330 
4331 int64_t lauum(
4332  lapack::Uplo uplo, int64_t n,
4333  double* A, int64_t lda );
4334 
4335 int64_t lauum(
4336  lapack::Uplo uplo, int64_t n,
4337  std::complex<float>* A, int64_t lda );
4338 
4339 int64_t lauum(
4340  lapack::Uplo uplo, int64_t n,
4341  std::complex<double>* A, int64_t lda );
4342 
4343 // -----------------------------------------------------------------------------
4344 int64_t opgtr(
4345  lapack::Uplo uplo, int64_t n,
4346  float const* AP,
4347  float const* tau,
4348  float* Q, int64_t ldq );
4349 
4350 // upgtr alias to opgtr
4351 inline int64_t upgtr(
4352  lapack::Uplo uplo, int64_t n,
4353  float const* AP,
4354  float const* tau,
4355  float* Q, int64_t ldq )
4356 {
4357  return opgtr( uplo, n, AP, tau, Q, ldq );
4358 }
4359 
4360 int64_t opgtr(
4361  lapack::Uplo uplo, int64_t n,
4362  double const* AP,
4363  double const* tau,
4364  double* Q, int64_t ldq );
4365 
4366 // upgtr alias to opgtr
4367 inline int64_t upgtr(
4368  lapack::Uplo uplo, int64_t n,
4369  double const* AP,
4370  double const* tau,
4371  double* Q, int64_t ldq )
4372 {
4373  return opgtr( uplo, n, AP, tau, Q, ldq );
4374 }
4375 
4376 // -----------------------------------------------------------------------------
4377 int64_t opmtr(
4378  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4379  float const* AP,
4380  float const* tau,
4381  float* C, int64_t ldc );
4382 
4383 // upmtr alias to opmtr
4384 inline int64_t upmtr(
4385  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4386  float const* AP,
4387  float const* tau,
4388  float* C, int64_t ldc )
4389 {
4390  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4391 }
4392 
4393 int64_t opmtr(
4394  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4395  double const* AP,
4396  double const* tau,
4397  double* C, int64_t ldc );
4398 
4399 // upmtr alias to opmtr
4400 inline int64_t upmtr(
4401  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4402  double const* AP,
4403  double const* tau,
4404  double* C, int64_t ldc )
4405 {
4406  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4407 }
4408 
4409 // -----------------------------------------------------------------------------
4410 int64_t orcsd2by1(
4411  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4412  float* X11, int64_t ldx11,
4413  float* X21, int64_t ldx21,
4414  float* theta,
4415  float* U1, int64_t ldu1,
4416  float* U2, int64_t ldu2,
4417  float* V1T, int64_t ldv1t );
4418 
4419 // uncsd2by1 alias to orcsd2by1
4420 inline int64_t uncsd2by1(
4421  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4422  float* X11, int64_t ldx11,
4423  float* X21, int64_t ldx21,
4424  float* theta,
4425  float* U1, int64_t ldu1,
4426  float* U2, int64_t ldu2,
4427  float* V1T, int64_t ldv1t )
4428 {
4429  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4430 }
4431 
4432 int64_t orcsd2by1(
4433  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4434  double* X11, int64_t ldx11,
4435  double* X21, int64_t ldx21,
4436  double* theta,
4437  double* U1, int64_t ldu1,
4438  double* U2, int64_t ldu2,
4439  double* V1T, int64_t ldv1t );
4440 
4441 // uncsd2by1 alias to orcsd2by1
4442 inline int64_t uncsd2by1(
4443  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4444  double* X11, int64_t ldx11,
4445  double* X21, int64_t ldx21,
4446  double* theta,
4447  double* U1, int64_t ldu1,
4448  double* U2, int64_t ldu2,
4449  double* V1T, int64_t ldv1t )
4450 {
4451  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4452 }
4453 
4454 // -----------------------------------------------------------------------------
4455 int64_t orgbr(
4456  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4457  float* A, int64_t lda,
4458  float const* tau );
4459 
4460 // ungbr alias to orgbr
4461 inline int64_t ungbr(
4462  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4463  float* A, int64_t lda,
4464  float const* tau )
4465 {
4466  return orgbr( vect, m, n, k, A, lda, tau );
4467 }
4468 
4469 int64_t orgbr(
4470  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4471  double* A, int64_t lda,
4472  double const* tau );
4473 
4474 // ungbr alias to orgbr
4475 inline int64_t ungbr(
4476  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4477  double* A, int64_t lda,
4478  double const* tau )
4479 {
4480  return orgbr( vect, m, n, k, A, lda, tau );
4481 }
4482 
4483 // -----------------------------------------------------------------------------
4484 int64_t orghr(
4485  int64_t n, int64_t ilo, int64_t ihi,
4486  float* A, int64_t lda,
4487  float const* tau );
4488 
4489 // unghr alias to orghr
4490 inline int64_t unghr(
4491  int64_t n, int64_t ilo, int64_t ihi,
4492  float* A, int64_t lda,
4493  float const* tau )
4494 {
4495  return orghr( n, ilo, ihi, A, lda, tau );
4496 }
4497 
4498 int64_t orghr(
4499  int64_t n, int64_t ilo, int64_t ihi,
4500  double* A, int64_t lda,
4501  double const* tau );
4502 
4503 // unghr alias to orghr
4504 inline int64_t unghr(
4505  int64_t n, int64_t ilo, int64_t ihi,
4506  double* A, int64_t lda,
4507  double const* tau )
4508 {
4509  return orghr( n, ilo, ihi, A, lda, tau );
4510 }
4511 
4512 // -----------------------------------------------------------------------------
4513 int64_t orglq(
4514  int64_t m, int64_t n, int64_t k,
4515  float* A, int64_t lda,
4516  float const* tau );
4517 
4518 // unglq alias to orglq
4519 inline int64_t unglq(
4520  int64_t m, int64_t n, int64_t k,
4521  float* A, int64_t lda,
4522  float const* tau )
4523 {
4524  return orglq( m, n, k, A, lda, tau );
4525 }
4526 
4527 int64_t orglq(
4528  int64_t m, int64_t n, int64_t k,
4529  double* A, int64_t lda,
4530  double const* tau );
4531 
4532 // unglq alias to orglq
4533 inline int64_t unglq(
4534  int64_t m, int64_t n, int64_t k,
4535  double* A, int64_t lda,
4536  double const* tau )
4537 {
4538  return orglq( m, n, k, A, lda, tau );
4539 }
4540 
4541 // -----------------------------------------------------------------------------
4542 int64_t orgql(
4543  int64_t m, int64_t n, int64_t k,
4544  float* A, int64_t lda,
4545  float const* tau );
4546 
4547 // ungql alias to orgql
4548 inline int64_t ungql(
4549  int64_t m, int64_t n, int64_t k,
4550  float* A, int64_t lda,
4551  float const* tau )
4552 {
4553  return orgql( m, n, k, A, lda, tau );
4554 }
4555 
4556 int64_t orgql(
4557  int64_t m, int64_t n, int64_t k,
4558  double* A, int64_t lda,
4559  double const* tau );
4560 
4561 // ungql alias to orgql
4562 inline int64_t ungql(
4563  int64_t m, int64_t n, int64_t k,
4564  double* A, int64_t lda,
4565  double const* tau )
4566 {
4567  return orgql( m, n, k, A, lda, tau );
4568 }
4569 
4570 // -----------------------------------------------------------------------------
4571 int64_t orgqr(
4572  int64_t m, int64_t n, int64_t k,
4573  float* A, int64_t lda,
4574  float const* tau );
4575 
4576 // ungqr alias to orgqr
4577 inline int64_t ungqr(
4578  int64_t m, int64_t n, int64_t k,
4579  float* A, int64_t lda,
4580  float const* tau )
4581 {
4582  return orgqr( m, n, k, A, lda, tau );
4583 }
4584 
4585 int64_t orgqr(
4586  int64_t m, int64_t n, int64_t k,
4587  double* A, int64_t lda,
4588  double const* tau );
4589 
4590 // ungqr alias to orgqr
4591 inline int64_t ungqr(
4592  int64_t m, int64_t n, int64_t k,
4593  double* A, int64_t lda,
4594  double const* tau )
4595 {
4596  return orgqr( m, n, k, A, lda, tau );
4597 }
4598 
4599 // -----------------------------------------------------------------------------
4600 int64_t orgrq(
4601  int64_t m, int64_t n, int64_t k,
4602  float* A, int64_t lda,
4603  float const* tau );
4604 
4605 // ungrq alias to orgrq
4606 inline int64_t ungrq(
4607  int64_t m, int64_t n, int64_t k,
4608  float* A, int64_t lda,
4609  float const* tau )
4610 {
4611  return orgrq( m, n, k, A, lda, tau );
4612 }
4613 
4614 int64_t orgrq(
4615  int64_t m, int64_t n, int64_t k,
4616  double* A, int64_t lda,
4617  double const* tau );
4618 
4619 // ungrq alias to orgrq
4620 inline int64_t ungrq(
4621  int64_t m, int64_t n, int64_t k,
4622  double* A, int64_t lda,
4623  double const* tau )
4624 {
4625  return orgrq( m, n, k, A, lda, tau );
4626 }
4627 
4628 // -----------------------------------------------------------------------------
4629 int64_t orgtr(
4630  lapack::Uplo uplo, int64_t n,
4631  float* A, int64_t lda,
4632  float const* tau );
4633 
4634 // ungtr alias to orgtr
4635 inline int64_t ungtr(
4636  lapack::Uplo uplo, int64_t n,
4637  float* A, int64_t lda,
4638  float const* tau )
4639 {
4640  return orgtr( uplo, n, A, lda, tau );
4641 }
4642 
4643 int64_t orgtr(
4644  lapack::Uplo uplo, int64_t n,
4645  double* A, int64_t lda,
4646  double const* tau );
4647 
4648 // ungtr alias to orgtr
4649 inline int64_t ungtr(
4650  lapack::Uplo uplo, int64_t n,
4651  double* A, int64_t lda,
4652  double const* tau )
4653 {
4654  return orgtr( uplo, n, A, lda, tau );
4655 }
4656 
4657 // -----------------------------------------------------------------------------
4658 int64_t ormbr(
4659  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4660  float const* A, int64_t lda,
4661  float const* tau,
4662  float* C, int64_t ldc );
4663 
4664 // unmbr alias to ormbr
4665 inline int64_t unmbr(
4666  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4667  float const* A, int64_t lda,
4668  float const* tau,
4669  float* C, int64_t ldc )
4670 {
4671  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4672 }
4673 
4674 int64_t ormbr(
4675  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4676  double const* A, int64_t lda,
4677  double const* tau,
4678  double* C, int64_t ldc );
4679 
4680 // unmbr alias to ormbr
4681 inline int64_t unmbr(
4682  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4683  double const* A, int64_t lda,
4684  double const* tau,
4685  double* C, int64_t ldc )
4686 {
4687  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4688 }
4689 
4690 // -----------------------------------------------------------------------------
4691 int64_t ormhr(
4692  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4693  float const* A, int64_t lda,
4694  float const* tau,
4695  float* C, int64_t ldc );
4696 
4697 // unmhr alias to ormhr
4698 inline int64_t unmhr(
4699  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4700  float const* A, int64_t lda,
4701  float const* tau,
4702  float* C, int64_t ldc )
4703 {
4704  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4705 }
4706 
4707 int64_t ormhr(
4708  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4709  double const* A, int64_t lda,
4710  double const* tau,
4711  double* C, int64_t ldc );
4712 
4713 // unmhr alias to ormhr
4714 inline int64_t unmhr(
4715  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4716  double const* A, int64_t lda,
4717  double const* tau,
4718  double* C, int64_t ldc )
4719 {
4720  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4721 }
4722 
4723 // -----------------------------------------------------------------------------
4724 int64_t ormlq(
4725  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4726  float const* A, int64_t lda,
4727  float const* tau,
4728  float* C, int64_t ldc );
4729 
4730 // unmlq alias to ormlq
4731 inline int64_t unmlq(
4732  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4733  float const* A, int64_t lda,
4734  float const* tau,
4735  float* C, int64_t ldc )
4736 {
4737  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4738 }
4739 
4740 int64_t ormlq(
4741  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4742  double const* A, int64_t lda,
4743  double const* tau,
4744  double* C, int64_t ldc );
4745 
4746 // unmlq alias to ormlq
4747 inline int64_t unmlq(
4748  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4749  double const* A, int64_t lda,
4750  double const* tau,
4751  double* C, int64_t ldc )
4752 {
4753  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4754 }
4755 
4756 // -----------------------------------------------------------------------------
4757 int64_t ormql(
4758  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4759  float const* A, int64_t lda,
4760  float const* tau,
4761  float* C, int64_t ldc );
4762 
4763 // unmql alias to ormql
4764 inline int64_t unmql(
4765  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4766  float const* A, int64_t lda,
4767  float const* tau,
4768  float* C, int64_t ldc )
4769 {
4770  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4771 }
4772 
4773 int64_t ormql(
4774  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4775  double const* A, int64_t lda,
4776  double const* tau,
4777  double* C, int64_t ldc );
4778 
4779 // unmql alias to ormql
4780 inline int64_t unmql(
4781  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4782  double const* A, int64_t lda,
4783  double const* tau,
4784  double* C, int64_t ldc )
4785 {
4786  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4787 }
4788 
4789 // -----------------------------------------------------------------------------
4790 int64_t ormqr(
4791  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4792  float const* A, int64_t lda,
4793  float const* tau,
4794  float* C, int64_t ldc );
4795 
4796 // unmqr alias to ormqr
4797 inline int64_t unmqr(
4798  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4799  float const* A, int64_t lda,
4800  float const* tau,
4801  float* C, int64_t ldc )
4802 {
4803  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4804 }
4805 
4806 int64_t ormqr(
4807  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4808  double const* A, int64_t lda,
4809  double const* tau,
4810  double* C, int64_t ldc );
4811 
4812 // unmqr alias to ormqr
4813 inline int64_t unmqr(
4814  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4815  double const* A, int64_t lda,
4816  double const* tau,
4817  double* C, int64_t ldc )
4818 {
4819  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4820 }
4821 
4822 // -----------------------------------------------------------------------------
4823 int64_t ormrq(
4824  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4825  float const* A, int64_t lda,
4826  float const* tau,
4827  float* C, int64_t ldc );
4828 
4829 // unmrq alias to ormrq
4830 inline int64_t unmrq(
4831  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4832  float const* A, int64_t lda,
4833  float const* tau,
4834  float* C, int64_t ldc )
4835 {
4836  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4837 }
4838 
4839 int64_t ormrq(
4840  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4841  double const* A, int64_t lda,
4842  double const* tau,
4843  double* C, int64_t ldc );
4844 
4845 // unmrq alias to ormrq
4846 inline int64_t unmrq(
4847  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4848  double const* A, int64_t lda,
4849  double const* tau,
4850  double* C, int64_t ldc )
4851 {
4852  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4853 }
4854 
4855 // -----------------------------------------------------------------------------
4856 int64_t ormrz(
4857  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4858  float const* A, int64_t lda,
4859  float const* tau,
4860  float* C, int64_t ldc );
4861 
4862 // unmrz alias to ormrz
4863 inline int64_t unmrz(
4864  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4865  float const* A, int64_t lda,
4866  float const* tau,
4867  float* C, int64_t ldc )
4868 {
4869  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4870 }
4871 
4872 int64_t ormrz(
4873  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4874  double const* A, int64_t lda,
4875  double const* tau,
4876  double* C, int64_t ldc );
4877 
4878 // unmrz alias to ormrz
4879 inline int64_t unmrz(
4880  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4881  double const* A, int64_t lda,
4882  double const* tau,
4883  double* C, int64_t ldc )
4884 {
4885  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4886 }
4887 
4888 // -----------------------------------------------------------------------------
4889 int64_t ormtr(
4890  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4891  float const* A, int64_t lda,
4892  float const* tau,
4893  float* C, int64_t ldc );
4894 
4895 // unmtr alias to ormtr
4896 inline int64_t unmtr(
4897  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4898  float const* A, int64_t lda,
4899  float const* tau,
4900  float* C, int64_t ldc )
4901 {
4902  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4903 }
4904 
4905 int64_t ormtr(
4906  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4907  double const* A, int64_t lda,
4908  double const* tau,
4909  double* C, int64_t ldc );
4910 
4911 // unmtr alias to ormtr
4912 inline int64_t unmtr(
4913  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4914  double const* A, int64_t lda,
4915  double const* tau,
4916  double* C, int64_t ldc )
4917 {
4918  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4919 }
4920 
4921 // -----------------------------------------------------------------------------
4922 int64_t pbcon(
4923  lapack::Uplo uplo, int64_t n, int64_t kd,
4924  float const* AB, int64_t ldab, float anorm,
4925  float* rcond );
4926 
4927 int64_t pbcon(
4928  lapack::Uplo uplo, int64_t n, int64_t kd,
4929  double const* AB, int64_t ldab, double anorm,
4930  double* rcond );
4931 
4932 int64_t pbcon(
4933  lapack::Uplo uplo, int64_t n, int64_t kd,
4934  std::complex<float> const* AB, int64_t ldab, float anorm,
4935  float* rcond );
4936 
4937 int64_t pbcon(
4938  lapack::Uplo uplo, int64_t n, int64_t kd,
4939  std::complex<double> const* AB, int64_t ldab, double anorm,
4940  double* rcond );
4941 
4942 // -----------------------------------------------------------------------------
4943 int64_t pbequ(
4944  lapack::Uplo uplo, int64_t n, int64_t kd,
4945  float const* AB, int64_t ldab,
4946  float* S,
4947  float* scond,
4948  float* amax );
4949 
4950 int64_t pbequ(
4951  lapack::Uplo uplo, int64_t n, int64_t kd,
4952  double const* AB, int64_t ldab,
4953  double* S,
4954  double* scond,
4955  double* amax );
4956 
4957 int64_t pbequ(
4958  lapack::Uplo uplo, int64_t n, int64_t kd,
4959  std::complex<float> const* AB, int64_t ldab,
4960  float* S,
4961  float* scond,
4962  float* amax );
4963 
4964 int64_t pbequ(
4965  lapack::Uplo uplo, int64_t n, int64_t kd,
4966  std::complex<double> const* AB, int64_t ldab,
4967  double* S,
4968  double* scond,
4969  double* amax );
4970 
4971 // -----------------------------------------------------------------------------
4972 int64_t pbrfs(
4973  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
4974  float const* AB, int64_t ldab,
4975  float const* AFB, int64_t ldafb,
4976  float const* B, int64_t ldb,
4977  float* X, int64_t ldx,
4978  float* ferr,
4979  float* berr );
4980 
4981 int64_t pbrfs(
4982  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
4983  double const* AB, int64_t ldab,
4984  double const* AFB, int64_t ldafb,
4985  double const* B, int64_t ldb,
4986  double* X, int64_t ldx,
4987  double* ferr,
4988  double* berr );
4989 
4990 int64_t pbrfs(
4991  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
4992  std::complex<float> const* AB, int64_t ldab,
4993  std::complex<float> const* AFB, int64_t ldafb,
4994  std::complex<float> const* B, int64_t ldb,
4995  std::complex<float>* X, int64_t ldx,
4996  float* ferr,
4997  float* berr );
4998 
4999 int64_t pbrfs(
5000  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5001  std::complex<double> const* AB, int64_t ldab,
5002  std::complex<double> const* AFB, int64_t ldafb,
5003  std::complex<double> const* B, int64_t ldb,
5004  std::complex<double>* X, int64_t ldx,
5005  double* ferr,
5006  double* berr );
5007 
5008 // -----------------------------------------------------------------------------
5009 int64_t pbstf(
5010  lapack::Uplo uplo, int64_t n, int64_t kd,
5011  float* AB, int64_t ldab );
5012 
5013 int64_t pbstf(
5014  lapack::Uplo uplo, int64_t n, int64_t kd,
5015  double* AB, int64_t ldab );
5016 
5017 int64_t pbstf(
5018  lapack::Uplo uplo, int64_t n, int64_t kd,
5019  std::complex<float>* AB, int64_t ldab );
5020 
5021 int64_t pbstf(
5022  lapack::Uplo uplo, int64_t n, int64_t kd,
5023  std::complex<double>* AB, int64_t ldab );
5024 
5025 // -----------------------------------------------------------------------------
5026 int64_t pbsv(
5027  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5028  float* AB, int64_t ldab,
5029  float* B, int64_t ldb );
5030 
5031 int64_t pbsv(
5032  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5033  double* AB, int64_t ldab,
5034  double* B, int64_t ldb );
5035 
5036 int64_t pbsv(
5037  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5038  std::complex<float>* AB, int64_t ldab,
5039  std::complex<float>* B, int64_t ldb );
5040 
5041 int64_t pbsv(
5042  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5043  std::complex<double>* AB, int64_t ldab,
5044  std::complex<double>* B, int64_t ldb );
5045 
5046 // -----------------------------------------------------------------------------
5047 int64_t pbsvx(
5048  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5049  float* AB, int64_t ldab,
5050  float* AFB, int64_t ldafb,
5051  lapack::Equed* equed,
5052  float* S,
5053  float* B, int64_t ldb,
5054  float* X, int64_t ldx,
5055  float* rcond,
5056  float* ferr,
5057  float* berr );
5058 
5059 int64_t pbsvx(
5060  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5061  double* AB, int64_t ldab,
5062  double* AFB, int64_t ldafb,
5063  lapack::Equed* equed,
5064  double* S,
5065  double* B, int64_t ldb,
5066  double* X, int64_t ldx,
5067  double* rcond,
5068  double* ferr,
5069  double* berr );
5070 
5071 int64_t pbsvx(
5072  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5073  std::complex<float>* AB, int64_t ldab,
5074  std::complex<float>* AFB, int64_t ldafb,
5075  lapack::Equed* equed,
5076  float* S,
5077  std::complex<float>* B, int64_t ldb,
5078  std::complex<float>* X, int64_t ldx,
5079  float* rcond,
5080  float* ferr,
5081  float* berr );
5082 
5083 int64_t pbsvx(
5084  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5085  std::complex<double>* AB, int64_t ldab,
5086  std::complex<double>* AFB, int64_t ldafb,
5087  lapack::Equed* equed,
5088  double* S,
5089  std::complex<double>* B, int64_t ldb,
5090  std::complex<double>* X, int64_t ldx,
5091  double* rcond,
5092  double* ferr,
5093  double* berr );
5094 
5095 // -----------------------------------------------------------------------------
5096 int64_t pbtrf(
5097  lapack::Uplo uplo, int64_t n, int64_t kd,
5098  float* AB, int64_t ldab );
5099 
5100 int64_t pbtrf(
5101  lapack::Uplo uplo, int64_t n, int64_t kd,
5102  double* AB, int64_t ldab );
5103 
5104 int64_t pbtrf(
5105  lapack::Uplo uplo, int64_t n, int64_t kd,
5106  std::complex<float>* AB, int64_t ldab );
5107 
5108 int64_t pbtrf(
5109  lapack::Uplo uplo, int64_t n, int64_t kd,
5110  std::complex<double>* AB, int64_t ldab );
5111 
5112 // -----------------------------------------------------------------------------
5113 int64_t pbtrs(
5114  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5115  float const* AB, int64_t ldab,
5116  float* B, int64_t ldb );
5117 
5118 int64_t pbtrs(
5119  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5120  double const* AB, int64_t ldab,
5121  double* B, int64_t ldb );
5122 
5123 int64_t pbtrs(
5124  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5125  std::complex<float> const* AB, int64_t ldab,
5126  std::complex<float>* B, int64_t ldb );
5127 
5128 int64_t pbtrs(
5129  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5130  std::complex<double> const* AB, int64_t ldab,
5131  std::complex<double>* B, int64_t ldb );
5132 
5133 // -----------------------------------------------------------------------------
5134 int64_t pftrf(
5135  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5136  float* A );
5137 
5138 int64_t pftrf(
5139  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5140  double* A );
5141 
5142 int64_t pftrf(
5143  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5144  std::complex<float>* A );
5145 
5146 int64_t pftrf(
5147  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5148  std::complex<double>* A );
5149 
5150 // -----------------------------------------------------------------------------
5151 int64_t pftri(
5152  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5153  float* A );
5154 
5155 int64_t pftri(
5156  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5157  double* A );
5158 
5159 int64_t pftri(
5160  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5161  std::complex<float>* A );
5162 
5163 int64_t pftri(
5164  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5165  std::complex<double>* A );
5166 
5167 // -----------------------------------------------------------------------------
5168 int64_t pftrs(
5169  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5170  float const* A,
5171  float* B, int64_t ldb );
5172 
5173 int64_t pftrs(
5174  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5175  double const* A,
5176  double* B, int64_t ldb );
5177 
5178 int64_t pftrs(
5179  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5180  std::complex<float> const* A,
5181  std::complex<float>* B, int64_t ldb );
5182 
5183 int64_t pftrs(
5184  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5185  std::complex<double> const* A,
5186  std::complex<double>* B, int64_t ldb );
5187 
5188 // -----------------------------------------------------------------------------
5189 int64_t pocon(
5190  lapack::Uplo uplo, int64_t n,
5191  float const* A, int64_t lda, float anorm,
5192  float* rcond );
5193 
5194 int64_t pocon(
5195  lapack::Uplo uplo, int64_t n,
5196  double const* A, int64_t lda, double anorm,
5197  double* rcond );
5198 
5199 int64_t pocon(
5200  lapack::Uplo uplo, int64_t n,
5201  std::complex<float> const* A, int64_t lda, float anorm,
5202  float* rcond );
5203 
5204 int64_t pocon(
5205  lapack::Uplo uplo, int64_t n,
5206  std::complex<double> const* A, int64_t lda, double anorm,
5207  double* rcond );
5208 
5209 // -----------------------------------------------------------------------------
5210 int64_t poequ(
5211  int64_t n,
5212  float const* A, int64_t lda,
5213  float* S,
5214  float* scond,
5215  float* amax );
5216 
5217 int64_t poequ(
5218  int64_t n,
5219  double const* A, int64_t lda,
5220  double* S,
5221  double* scond,
5222  double* amax );
5223 
5224 int64_t poequ(
5225  int64_t n,
5226  std::complex<float> const* A, int64_t lda,
5227  float* S,
5228  float* scond,
5229  float* amax );
5230 
5231 int64_t poequ(
5232  int64_t n,
5233  std::complex<double> const* A, int64_t lda,
5234  double* S,
5235  double* scond,
5236  double* amax );
5237 
5238 // -----------------------------------------------------------------------------
5239 int64_t poequb(
5240  int64_t n,
5241  float const* A, int64_t lda,
5242  float* S,
5243  float* scond,
5244  float* amax );
5245 
5246 int64_t poequb(
5247  int64_t n,
5248  double const* A, int64_t lda,
5249  double* S,
5250  double* scond,
5251  double* amax );
5252 
5253 int64_t poequb(
5254  int64_t n,
5255  std::complex<float> const* A, int64_t lda,
5256  float* S,
5257  float* scond,
5258  float* amax );
5259 
5260 int64_t poequb(
5261  int64_t n,
5262  std::complex<double> const* A, int64_t lda,
5263  double* S,
5264  double* scond,
5265  double* amax );
5266 
5267 // -----------------------------------------------------------------------------
5268 int64_t porfs(
5269  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5270  float const* A, int64_t lda,
5271  float const* AF, int64_t ldaf,
5272  float const* B, int64_t ldb,
5273  float* X, int64_t ldx,
5274  float* ferr,
5275  float* berr );
5276 
5277 int64_t porfs(
5278  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5279  double const* A, int64_t lda,
5280  double const* AF, int64_t ldaf,
5281  double const* B, int64_t ldb,
5282  double* X, int64_t ldx,
5283  double* ferr,
5284  double* berr );
5285 
5286 int64_t porfs(
5287  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5288  std::complex<float> const* A, int64_t lda,
5289  std::complex<float> const* AF, int64_t ldaf,
5290  std::complex<float> const* B, int64_t ldb,
5291  std::complex<float>* X, int64_t ldx,
5292  float* ferr,
5293  float* berr );
5294 
5295 int64_t porfs(
5296  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5297  std::complex<double> const* A, int64_t lda,
5298  std::complex<double> const* AF, int64_t ldaf,
5299  std::complex<double> const* B, int64_t ldb,
5300  std::complex<double>* X, int64_t ldx,
5301  double* ferr,
5302  double* berr );
5303 
5304 // -----------------------------------------------------------------------------
5305 int64_t porfsx(
5306  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5307  float const* A, int64_t lda,
5308  float const* AF, int64_t ldaf,
5309  float* S,
5310  float const* B, int64_t ldb,
5311  float* X, int64_t ldx,
5312  float* rcond,
5313  float* berr, int64_t n_err_bnds,
5314  float* err_bnds_norm,
5315  float* err_bnds_comp, int64_t nparams,
5316  float* params );
5317 
5318 int64_t porfsx(
5319  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5320  double const* A, int64_t lda,
5321  double const* AF, int64_t ldaf,
5322  double* S,
5323  double const* B, int64_t ldb,
5324  double* X, int64_t ldx,
5325  double* rcond,
5326  double* berr, int64_t n_err_bnds,
5327  double* err_bnds_norm,
5328  double* err_bnds_comp, int64_t nparams,
5329  double* params );
5330 
5331 int64_t porfsx(
5332  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5333  std::complex<float> const* A, int64_t lda,
5334  std::complex<float> const* AF, int64_t ldaf,
5335  float* S,
5336  std::complex<float> const* B, int64_t ldb,
5337  std::complex<float>* X, int64_t ldx,
5338  float* rcond,
5339  float* berr, int64_t n_err_bnds,
5340  float* err_bnds_norm,
5341  float* err_bnds_comp, int64_t nparams,
5342  float* params );
5343 
5344 int64_t porfsx(
5345  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5346  std::complex<double> const* A, int64_t lda,
5347  std::complex<double> const* AF, int64_t ldaf,
5348  double* S,
5349  std::complex<double> const* B, int64_t ldb,
5350  std::complex<double>* X, int64_t ldx,
5351  double* rcond,
5352  double* berr, int64_t n_err_bnds,
5353  double* err_bnds_norm,
5354  double* err_bnds_comp, int64_t nparams,
5355  double* params );
5356 
5357 // -----------------------------------------------------------------------------
5358 int64_t posv(
5359  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5360  float* A, int64_t lda,
5361  float* B, int64_t ldb );
5362 
5363 int64_t posv(
5364  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5365  double* A, int64_t lda,
5366  double* B, int64_t ldb );
5367 
5368 int64_t posv(
5369  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5370  std::complex<float>* A, int64_t lda,
5371  std::complex<float>* B, int64_t ldb );
5372 
5373 int64_t posv(
5374  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5375  std::complex<double>* A, int64_t lda,
5376  std::complex<double>* B, int64_t ldb );
5377 
5378 int64_t posv(
5379  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5380  double* A, int64_t lda,
5381  double const* B, int64_t ldb,
5382  double* X, int64_t ldx,
5383  int64_t* iter );
5384 
5385 int64_t posv(
5386  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5387  std::complex<double>* A, int64_t lda,
5388  std::complex<double> const* B, int64_t ldb,
5389  std::complex<double>* X, int64_t ldx,
5390  int64_t* iter );
5391 
5392 // -----------------------------------------------------------------------------
5393 int64_t posvx(
5394  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5395  float* A, int64_t lda,
5396  float* AF, int64_t ldaf,
5397  lapack::Equed* equed,
5398  float* S,
5399  float* B, int64_t ldb,
5400  float* X, int64_t ldx,
5401  float* rcond,
5402  float* ferr,
5403  float* berr );
5404 
5405 int64_t posvx(
5406  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5407  double* A, int64_t lda,
5408  double* AF, int64_t ldaf,
5409  lapack::Equed* equed,
5410  double* S,
5411  double* B, int64_t ldb,
5412  double* X, int64_t ldx,
5413  double* rcond,
5414  double* ferr,
5415  double* berr );
5416 
5417 int64_t posvx(
5418  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5419  std::complex<float>* A, int64_t lda,
5420  std::complex<float>* AF, int64_t ldaf,
5421  lapack::Equed* equed,
5422  float* S,
5423  std::complex<float>* B, int64_t ldb,
5424  std::complex<float>* X, int64_t ldx,
5425  float* rcond,
5426  float* ferr,
5427  float* berr );
5428 
5429 int64_t posvx(
5430  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5431  std::complex<double>* A, int64_t lda,
5432  std::complex<double>* AF, int64_t ldaf,
5433  lapack::Equed* equed,
5434  double* S,
5435  std::complex<double>* B, int64_t ldb,
5436  std::complex<double>* X, int64_t ldx,
5437  double* rcond,
5438  double* ferr,
5439  double* berr );
5440 
5441 // -----------------------------------------------------------------------------
5442 int64_t potf2(
5443  lapack::Uplo uplo, int64_t n,
5444  float* A, int64_t lda );
5445 
5446 int64_t potf2(
5447  lapack::Uplo uplo, int64_t n,
5448  double* A, int64_t lda );
5449 
5450 int64_t potf2(
5451  lapack::Uplo uplo, int64_t n,
5452  std::complex<float>* A, int64_t lda );
5453 
5454 int64_t potf2(
5455  lapack::Uplo uplo, int64_t n,
5456  std::complex<double>* A, int64_t lda );
5457 
5458 // -----------------------------------------------------------------------------
5459 int64_t potrf(
5460  lapack::Uplo uplo, int64_t n,
5461  float* A, int64_t lda );
5462 
5463 int64_t potrf(
5464  lapack::Uplo uplo, int64_t n,
5465  double* A, int64_t lda );
5466 
5467 int64_t potrf(
5468  lapack::Uplo uplo, int64_t n,
5469  std::complex<float>* A, int64_t lda );
5470 
5471 int64_t potrf(
5472  lapack::Uplo uplo, int64_t n,
5473  std::complex<double>* A, int64_t lda );
5474 
5475 // -----------------------------------------------------------------------------
5476 int64_t potrf2(
5477  lapack::Uplo uplo, int64_t n,
5478  float* A, int64_t lda );
5479 
5480 int64_t potrf2(
5481  lapack::Uplo uplo, int64_t n,
5482  double* A, int64_t lda );
5483 
5484 int64_t potrf2(
5485  lapack::Uplo uplo, int64_t n,
5486  std::complex<float>* A, int64_t lda );
5487 
5488 int64_t potrf2(
5489  lapack::Uplo uplo, int64_t n,
5490  std::complex<double>* A, int64_t lda );
5491 
5492 // -----------------------------------------------------------------------------
5493 int64_t potri(
5494  lapack::Uplo uplo, int64_t n,
5495  float* A, int64_t lda );
5496 
5497 int64_t potri(
5498  lapack::Uplo uplo, int64_t n,
5499  double* A, int64_t lda );
5500 
5501 int64_t potri(
5502  lapack::Uplo uplo, int64_t n,
5503  std::complex<float>* A, int64_t lda );
5504 
5505 int64_t potri(
5506  lapack::Uplo uplo, int64_t n,
5507  std::complex<double>* A, int64_t lda );
5508 
5509 // -----------------------------------------------------------------------------
5510 int64_t potrs(
5511  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5512  float const* A, int64_t lda,
5513  float* B, int64_t ldb );
5514 
5515 int64_t potrs(
5516  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5517  double const* A, int64_t lda,
5518  double* B, int64_t ldb );
5519 
5520 int64_t potrs(
5521  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5522  std::complex<float> const* A, int64_t lda,
5523  std::complex<float>* B, int64_t ldb );
5524 
5525 int64_t potrs(
5526  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5527  std::complex<double> const* A, int64_t lda,
5528  std::complex<double>* B, int64_t ldb );
5529 
5530 // -----------------------------------------------------------------------------
5531 int64_t ppcon(
5532  lapack::Uplo uplo, int64_t n,
5533  float const* AP, float anorm,
5534  float* rcond );
5535 
5536 int64_t ppcon(
5537  lapack::Uplo uplo, int64_t n,
5538  double const* AP, double anorm,
5539  double* rcond );
5540 
5541 int64_t ppcon(
5542  lapack::Uplo uplo, int64_t n,
5543  std::complex<float> const* AP, float anorm,
5544  float* rcond );
5545 
5546 int64_t ppcon(
5547  lapack::Uplo uplo, int64_t n,
5548  std::complex<double> const* AP, double anorm,
5549  double* rcond );
5550 
5551 // -----------------------------------------------------------------------------
5552 int64_t ppequ(
5553  lapack::Uplo uplo, int64_t n,
5554  float const* AP,
5555  float* S,
5556  float* scond,
5557  float* amax );
5558 
5559 int64_t ppequ(
5560  lapack::Uplo uplo, int64_t n,
5561  double const* AP,
5562  double* S,
5563  double* scond,
5564  double* amax );
5565 
5566 int64_t ppequ(
5567  lapack::Uplo uplo, int64_t n,
5568  std::complex<float> const* AP,
5569  float* S,
5570  float* scond,
5571  float* amax );
5572 
5573 int64_t ppequ(
5574  lapack::Uplo uplo, int64_t n,
5575  std::complex<double> const* AP,
5576  double* S,
5577  double* scond,
5578  double* amax );
5579 
5580 // -----------------------------------------------------------------------------
5581 int64_t pprfs(
5582  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5583  float const* AP,
5584  float const* AFP,
5585  float const* B, int64_t ldb,
5586  float* X, int64_t ldx,
5587  float* ferr,
5588  float* berr );
5589 
5590 int64_t pprfs(
5591  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5592  double const* AP,
5593  double const* AFP,
5594  double const* B, int64_t ldb,
5595  double* X, int64_t ldx,
5596  double* ferr,
5597  double* berr );
5598 
5599 int64_t pprfs(
5600  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5601  std::complex<float> const* AP,
5602  std::complex<float> const* AFP,
5603  std::complex<float> const* B, int64_t ldb,
5604  std::complex<float>* X, int64_t ldx,
5605  float* ferr,
5606  float* berr );
5607 
5608 int64_t pprfs(
5609  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5610  std::complex<double> const* AP,
5611  std::complex<double> const* AFP,
5612  std::complex<double> const* B, int64_t ldb,
5613  std::complex<double>* X, int64_t ldx,
5614  double* ferr,
5615  double* berr );
5616 
5617 // -----------------------------------------------------------------------------
5618 int64_t ppsv(
5619  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5620  float* AP,
5621  float* B, int64_t ldb );
5622 
5623 int64_t ppsv(
5624  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5625  double* AP,
5626  double* B, int64_t ldb );
5627 
5628 int64_t ppsv(
5629  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5630  std::complex<float>* AP,
5631  std::complex<float>* B, int64_t ldb );
5632 
5633 int64_t ppsv(
5634  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5635  std::complex<double>* AP,
5636  std::complex<double>* B, int64_t ldb );
5637 
5638 // -----------------------------------------------------------------------------
5639 int64_t ppsvx(
5640  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5641  float* AP,
5642  float* AFP,
5643  lapack::Equed* equed,
5644  float* S,
5645  float* B, int64_t ldb,
5646  float* X, int64_t ldx,
5647  float* rcond,
5648  float* ferr,
5649  float* berr );
5650 
5651 int64_t ppsvx(
5652  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5653  double* AP,
5654  double* AFP,
5655  lapack::Equed* equed,
5656  double* S,
5657  double* B, int64_t ldb,
5658  double* X, int64_t ldx,
5659  double* rcond,
5660  double* ferr,
5661  double* berr );
5662 
5663 int64_t ppsvx(
5664  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5665  std::complex<float>* AP,
5666  std::complex<float>* AFP,
5667  lapack::Equed* equed,
5668  float* S,
5669  std::complex<float>* B, int64_t ldb,
5670  std::complex<float>* X, int64_t ldx,
5671  float* rcond,
5672  float* ferr,
5673  float* berr );
5674 
5675 int64_t ppsvx(
5676  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5677  std::complex<double>* AP,
5678  std::complex<double>* AFP,
5679  lapack::Equed* equed,
5680  double* S,
5681  std::complex<double>* B, int64_t ldb,
5682  std::complex<double>* X, int64_t ldx,
5683  double* rcond,
5684  double* ferr,
5685  double* berr );
5686 
5687 // -----------------------------------------------------------------------------
5688 int64_t pptrf(
5689  lapack::Uplo uplo, int64_t n,
5690  float* AP );
5691 
5692 int64_t pptrf(
5693  lapack::Uplo uplo, int64_t n,
5694  double* AP );
5695 
5696 int64_t pptrf(
5697  lapack::Uplo uplo, int64_t n,
5698  std::complex<float>* AP );
5699 
5700 int64_t pptrf(
5701  lapack::Uplo uplo, int64_t n,
5702  std::complex<double>* AP );
5703 
5704 // -----------------------------------------------------------------------------
5705 int64_t pptri(
5706  lapack::Uplo uplo, int64_t n,
5707  float* AP );
5708 
5709 int64_t pptri(
5710  lapack::Uplo uplo, int64_t n,
5711  double* AP );
5712 
5713 int64_t pptri(
5714  lapack::Uplo uplo, int64_t n,
5715  std::complex<float>* AP );
5716 
5717 int64_t pptri(
5718  lapack::Uplo uplo, int64_t n,
5719  std::complex<double>* AP );
5720 
5721 // -----------------------------------------------------------------------------
5722 int64_t pptrs(
5723  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5724  float const* AP,
5725  float* B, int64_t ldb );
5726 
5727 int64_t pptrs(
5728  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5729  double const* AP,
5730  double* B, int64_t ldb );
5731 
5732 int64_t pptrs(
5733  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5734  std::complex<float> const* AP,
5735  std::complex<float>* B, int64_t ldb );
5736 
5737 int64_t pptrs(
5738  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5739  std::complex<double> const* AP,
5740  std::complex<double>* B, int64_t ldb );
5741 
5742 // -----------------------------------------------------------------------------
5743 int64_t pstrf(
5744  lapack::Uplo uplo, int64_t n,
5745  float* A, int64_t lda,
5746  int64_t* piv,
5747  int64_t* rank, float tol );
5748 
5749 int64_t pstrf(
5750  lapack::Uplo uplo, int64_t n,
5751  double* A, int64_t lda,
5752  int64_t* piv,
5753  int64_t* rank, double tol );
5754 
5755 int64_t pstrf(
5756  lapack::Uplo uplo, int64_t n,
5757  std::complex<float>* A, int64_t lda,
5758  int64_t* piv,
5759  int64_t* rank, float tol );
5760 
5761 int64_t pstrf(
5762  lapack::Uplo uplo, int64_t n,
5763  std::complex<double>* A, int64_t lda,
5764  int64_t* piv,
5765  int64_t* rank, double tol );
5766 
5767 // -----------------------------------------------------------------------------
5768 int64_t ptcon(
5769  int64_t n,
5770  float const* D,
5771  float const* E, float anorm,
5772  float* rcond );
5773 
5774 int64_t ptcon(
5775  int64_t n,
5776  double const* D,
5777  double const* E, double anorm,
5778  double* rcond );
5779 
5780 int64_t ptcon(
5781  int64_t n,
5782  float const* D,
5783  std::complex<float> const* E, float anorm,
5784  float* rcond );
5785 
5786 int64_t ptcon(
5787  int64_t n,
5788  double const* D,
5789  std::complex<double> const* E, double anorm,
5790  double* rcond );
5791 
5792 // -----------------------------------------------------------------------------
5793 int64_t pteqr(
5794  lapack::Job compz, int64_t n,
5795  float* D,
5796  float* E,
5797  float* Z, int64_t ldz );
5798 
5799 int64_t pteqr(
5800  lapack::Job compz, int64_t n,
5801  double* D,
5802  double* E,
5803  double* Z, int64_t ldz );
5804 
5805 int64_t pteqr(
5806  lapack::Job compz, int64_t n,
5807  float* D,
5808  float* E,
5809  std::complex<float>* Z, int64_t ldz );
5810 
5811 int64_t pteqr(
5812  lapack::Job compz, int64_t n,
5813  double* D,
5814  double* E,
5815  std::complex<double>* Z, int64_t ldz );
5816 
5817 // -----------------------------------------------------------------------------
5818 int64_t ptrfs(
5819  int64_t n, int64_t nrhs,
5820  float const* D,
5821  float const* E,
5822  float const* DF,
5823  float const* EF,
5824  float const* B, int64_t ldb,
5825  float* X, int64_t ldx,
5826  float* ferr,
5827  float* berr );
5828 
5829 // alias to match complex version (ignoring uplo)
5830 inline int64_t ptrfs(
5831  lapack::Uplo uplo,
5832  int64_t n, int64_t nrhs,
5833  float const* D,
5834  float const* E,
5835  float const* DF,
5836  float const* EF,
5837  float const* B, int64_t ldb,
5838  float* X, int64_t ldx,
5839  float* ferr,
5840  float* berr )
5841 {
5842  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5843 }
5844 
5845 int64_t ptrfs(
5846  int64_t n, int64_t nrhs,
5847  double const* D,
5848  double const* E,
5849  double const* DF,
5850  double const* EF,
5851  double const* B, int64_t ldb,
5852  double* X, int64_t ldx,
5853  double* ferr,
5854  double* berr );
5855 
5856 // alias to match complex version (ignoring uplo)
5857 inline int64_t ptrfs(
5858  lapack::Uplo uplo,
5859  int64_t n, int64_t nrhs,
5860  double const* D,
5861  double const* E,
5862  double const* DF,
5863  double const* EF,
5864  double const* B, int64_t ldb,
5865  double* X, int64_t ldx,
5866  double* ferr,
5867  double* berr )
5868 {
5869  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5870 }
5871 
5872 int64_t ptrfs(
5873  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5874  float const* D,
5875  std::complex<float> const* E,
5876  float const* DF,
5877  std::complex<float> const* EF,
5878  std::complex<float> const* B, int64_t ldb,
5879  std::complex<float>* X, int64_t ldx,
5880  float* ferr,
5881  float* berr );
5882 
5883 int64_t ptrfs(
5884  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5885  double const* D,
5886  std::complex<double> const* E,
5887  double const* DF,
5888  std::complex<double> const* EF,
5889  std::complex<double> const* B, int64_t ldb,
5890  std::complex<double>* X, int64_t ldx,
5891  double* ferr,
5892  double* berr );
5893 
5894 // -----------------------------------------------------------------------------
5895 int64_t ptsv(
5896  int64_t n, int64_t nrhs,
5897  float* D,
5898  float* E,
5899  float* B, int64_t ldb );
5900 
5901 int64_t ptsv(
5902  int64_t n, int64_t nrhs,
5903  double* D,
5904  double* E,
5905  double* B, int64_t ldb );
5906 
5907 int64_t ptsv(
5908  int64_t n, int64_t nrhs,
5909  float* D,
5910  std::complex<float>* E,
5911  std::complex<float>* B, int64_t ldb );
5912 
5913 int64_t ptsv(
5914  int64_t n, int64_t nrhs,
5915  double* D,
5916  std::complex<double>* E,
5917  std::complex<double>* B, int64_t ldb );
5918 
5919 // -----------------------------------------------------------------------------
5920 int64_t ptsvx(
5921  lapack::Factored fact, int64_t n, int64_t nrhs,
5922  float const* D,
5923  float const* E,
5924  float* DF,
5925  float* EF,
5926  float const* B, int64_t ldb,
5927  float* X, int64_t ldx,
5928  float* rcond,
5929  float* ferr,
5930  float* berr );
5931 
5932 int64_t ptsvx(
5933  lapack::Factored fact, int64_t n, int64_t nrhs,
5934  double const* D,
5935  double const* E,
5936  double* DF,
5937  double* EF,
5938  double const* B, int64_t ldb,
5939  double* X, int64_t ldx,
5940  double* rcond,
5941  double* ferr,
5942  double* berr );
5943 
5944 int64_t ptsvx(
5945  lapack::Factored fact, int64_t n, int64_t nrhs,
5946  float const* D,
5947  std::complex<float> const* E,
5948  float* DF,
5949  std::complex<float>* EF,
5950  std::complex<float> const* B, int64_t ldb,
5951  std::complex<float>* X, int64_t ldx,
5952  float* rcond,
5953  float* ferr,
5954  float* berr );
5955 
5956 int64_t ptsvx(
5957  lapack::Factored fact, int64_t n, int64_t nrhs,
5958  double const* D,
5959  std::complex<double> const* E,
5960  double* DF,
5961  std::complex<double>* EF,
5962  std::complex<double> const* B, int64_t ldb,
5963  std::complex<double>* X, int64_t ldx,
5964  double* rcond,
5965  double* ferr,
5966  double* berr );
5967 
5968 // -----------------------------------------------------------------------------
5969 int64_t pttrf(
5970  int64_t n,
5971  float* D,
5972  float* E );
5973 
5974 int64_t pttrf(
5975  int64_t n,
5976  double* D,
5977  double* E );
5978 
5979 int64_t pttrf(
5980  int64_t n,
5981  float* D,
5982  std::complex<float>* E );
5983 
5984 int64_t pttrf(
5985  int64_t n,
5986  double* D,
5987  std::complex<double>* E );
5988 
5989 // -----------------------------------------------------------------------------
5990 int64_t pttrs(
5991  int64_t n, int64_t nrhs,
5992  float const* D,
5993  float const* E,
5994  float* B, int64_t ldb );
5995 
5996 // alias with uplo to match complex (it is ignored)
5997 inline int64_t pttrs(
5998  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5999  float const* D,
6000  float const* E,
6001  float* B, int64_t ldb )
6002 {
6003  return pttrs( n, nrhs, D, E, B, ldb );
6004 }
6005 
6006 int64_t pttrs(
6007  int64_t n, int64_t nrhs,
6008  double const* D,
6009  double const* E,
6010  double* B, int64_t ldb );
6011 
6012 // alias with uplo to match complex (it is ignored)
6013 inline int64_t pttrs(
6014  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6015  double const* D,
6016  double const* E,
6017  double* B, int64_t ldb )
6018 {
6019  return pttrs( n, nrhs, D, E, B, ldb );
6020 }
6021 
6022 int64_t pttrs(
6023  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6024  float const* D,
6025  std::complex<float> const* E,
6026  std::complex<float>* B, int64_t ldb );
6027 
6028 int64_t pttrs(
6029  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6030  double const* D,
6031  std::complex<double> const* E,
6032  std::complex<double>* B, int64_t ldb );
6033 
6034 // -----------------------------------------------------------------------------
6035 int64_t sbev(
6036  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6037  float* AB, int64_t ldab,
6038  float* W,
6039  float* Z, int64_t ldz );
6040 
6041 // hbev alias to sbev
6042 inline int64_t hbev(
6043  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6044  float* AB, int64_t ldab,
6045  float* W,
6046  float* Z, int64_t ldz )
6047 {
6048  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6049 }
6050 
6051 int64_t sbev(
6052  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6053  double* AB, int64_t ldab,
6054  double* W,
6055  double* Z, int64_t ldz );
6056 
6057 // hbev alias to sbev
6058 inline int64_t hbev(
6059  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6060  double* AB, int64_t ldab,
6061  double* W,
6062  double* Z, int64_t ldz )
6063 {
6064  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6065 }
6066 
6067 // -----------------------------------------------------------------------------
6068 int64_t sbev_2stage(
6069  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6070  float* AB, int64_t ldab,
6071  float* W,
6072  float* Z, int64_t ldz );
6073 
6074 // hbev_2stage alias to sbev_2stage
6075 inline int64_t hbev_2stage(
6076  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6077  float* AB, int64_t ldab,
6078  float* W,
6079  float* Z, int64_t ldz )
6080 {
6081  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6082 }
6083 
6084 int64_t sbev_2stage(
6085  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6086  double* AB, int64_t ldab,
6087  double* W,
6088  double* Z, int64_t ldz );
6089 
6090 // hbev_2stage alias to sbev_2stage
6091 inline int64_t hbev_2stage(
6092  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6093  double* AB, int64_t ldab,
6094  double* W,
6095  double* Z, int64_t ldz )
6096 {
6097  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6098 }
6099 
6100 // -----------------------------------------------------------------------------
6101 int64_t sbevd(
6102  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6103  float* AB, int64_t ldab,
6104  float* W,
6105  float* Z, int64_t ldz );
6106 
6107 // hbevd alias to sbevd
6108 inline int64_t hbevd(
6109  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6110  float* AB, int64_t ldab,
6111  float* W,
6112  float* Z, int64_t ldz )
6113 {
6114  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6115 }
6116 
6117 int64_t sbevd(
6118  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6119  double* AB, int64_t ldab,
6120  double* W,
6121  double* Z, int64_t ldz );
6122 
6123 // hbevd alias to sbevd
6124 inline int64_t hbevd(
6125  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6126  double* AB, int64_t ldab,
6127  double* W,
6128  double* Z, int64_t ldz )
6129 {
6130  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6131 }
6132 
6133 // -----------------------------------------------------------------------------
6134 int64_t sbevd_2stage(
6135  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6136  float* AB, int64_t ldab,
6137  float* W,
6138  float* Z, int64_t ldz );
6139 
6140 // hbevd_2stage alias to sbevd_2stage
6141 inline int64_t hbevd_2stage(
6142  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6143  float* AB, int64_t ldab,
6144  float* W,
6145  float* Z, int64_t ldz )
6146 {
6147  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6148 }
6149 
6150 int64_t sbevd_2stage(
6151  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6152  double* AB, int64_t ldab,
6153  double* W,
6154  double* Z, int64_t ldz );
6155 
6156 // hbevd_2stage alias to sbevd_2stage
6157 inline int64_t hbevd_2stage(
6158  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6159  double* AB, int64_t ldab,
6160  double* W,
6161  double* Z, int64_t ldz )
6162 {
6163  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6164 }
6165 
6166 // -----------------------------------------------------------------------------
6167 int64_t sbevx(
6168  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6169  float* AB, int64_t ldab,
6170  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6171  int64_t* m,
6172  float* W,
6173  float* Z, int64_t ldz,
6174  int64_t* ifail );
6175 
6176 // hbevx alias to sbevx
6177 inline int64_t hbevx(
6178  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6179  float* AB, int64_t ldab,
6180  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6181  int64_t* m,
6182  float* W,
6183  float* Z, int64_t ldz,
6184  int64_t* ifail )
6185 {
6186  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6187 }
6188 
6189 int64_t sbevx(
6190  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6191  double* AB, int64_t ldab,
6192  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6193  int64_t* m,
6194  double* W,
6195  double* Z, int64_t ldz,
6196  int64_t* ifail );
6197 
6198 // hbevx alias to sbevx
6199 inline int64_t hbevx(
6200  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6201  double* AB, int64_t ldab,
6202  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6203  int64_t* m,
6204  double* W,
6205  double* Z, int64_t ldz,
6206  int64_t* ifail )
6207 {
6208  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6209 }
6210 
6211 // -----------------------------------------------------------------------------
6212 int64_t sbevx_2stage(
6213  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6214  float* AB, int64_t ldab,
6215  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6216  int64_t* m,
6217  float* W,
6218  float* Z, int64_t ldz,
6219  int64_t* ifail );
6220 
6221 // hbevx_2stage alias to sbevx_2stage
6222 inline int64_t hbevx_2stage(
6223  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6224  float* AB, int64_t ldab,
6225  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6226  int64_t* m,
6227  float* W,
6228  float* Z, int64_t ldz,
6229  int64_t* ifail )
6230 {
6231  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6232 }
6233 
6234 int64_t sbevx_2stage(
6235  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6236  double* AB, int64_t ldab,
6237  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6238  int64_t* m,
6239  double* W,
6240  double* Z, int64_t ldz,
6241  int64_t* ifail );
6242 
6243 // hbevx_2stage alias to sbevx_2stage
6244 inline int64_t hbevx_2stage(
6245  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6246  double* AB, int64_t ldab,
6247  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6248  int64_t* m,
6249  double* W,
6250  double* Z, int64_t ldz,
6251  int64_t* ifail )
6252 {
6253  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6254 }
6255 
6256 // -----------------------------------------------------------------------------
6257 int64_t sbgst(
6258  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6259  float* AB, int64_t ldab,
6260  float const* BB, int64_t ldbb,
6261  float* X, int64_t ldx );
6262 
6263 // hbgst alias to sbgst
6264 inline int64_t hbgst(
6265  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6266  float* AB, int64_t ldab,
6267  float const* BB, int64_t ldbb,
6268  float* X, int64_t ldx )
6269 {
6270  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6271 }
6272 
6273 int64_t sbgst(
6274  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6275  double* AB, int64_t ldab,
6276  double const* BB, int64_t ldbb,
6277  double* X, int64_t ldx );
6278 
6279 // hbgst alias to sbgst
6280 inline int64_t hbgst(
6281  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6282  double* AB, int64_t ldab,
6283  double const* BB, int64_t ldbb,
6284  double* X, int64_t ldx )
6285 {
6286  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6287 }
6288 
6289 // -----------------------------------------------------------------------------
6290 int64_t sbgv(
6291  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6292  float* AB, int64_t ldab,
6293  float* BB, int64_t ldbb,
6294  float* W,
6295  float* Z, int64_t ldz );
6296 
6297 // hbgv alias to sbgv
6298 inline int64_t hbgv(
6299  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6300  float* AB, int64_t ldab,
6301  float* BB, int64_t ldbb,
6302  float* W,
6303  float* Z, int64_t ldz )
6304 {
6305  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6306 }
6307 
6308 int64_t sbgv(
6309  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6310  double* AB, int64_t ldab,
6311  double* BB, int64_t ldbb,
6312  double* W,
6313  double* Z, int64_t ldz );
6314 
6315 // hbgv alias to sbgv
6316 inline int64_t hbgv(
6317  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6318  double* AB, int64_t ldab,
6319  double* BB, int64_t ldbb,
6320  double* W,
6321  double* Z, int64_t ldz )
6322 {
6323  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6324 }
6325 
6326 // -----------------------------------------------------------------------------
6327 int64_t sbgvd(
6328  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6329  float* AB, int64_t ldab,
6330  float* BB, int64_t ldbb,
6331  float* W,
6332  float* Z, int64_t ldz );
6333 
6334 // hbgvd alias to sbgvd
6335 inline int64_t hbgvd(
6336  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6337  float* AB, int64_t ldab,
6338  float* BB, int64_t ldbb,
6339  float* W,
6340  float* Z, int64_t ldz )
6341 {
6342  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6343 }
6344 
6345 int64_t sbgvd(
6346  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6347  double* AB, int64_t ldab,
6348  double* BB, int64_t ldbb,
6349  double* W,
6350  double* Z, int64_t ldz );
6351 
6352 // hbgvd alias to sbgvd
6353 inline int64_t hbgvd(
6354  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6355  double* AB, int64_t ldab,
6356  double* BB, int64_t ldbb,
6357  double* W,
6358  double* Z, int64_t ldz )
6359 {
6360  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6361 }
6362 
6363 // -----------------------------------------------------------------------------
6364 int64_t sbgvx(
6365  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6366  float* AB, int64_t ldab,
6367  float* BB, int64_t ldbb,
6368  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6369  int64_t* m,
6370  float* W,
6371  float* Z, int64_t ldz,
6372  int64_t* ifail );
6373 
6374 // hbgvx alias to sbgvx
6375 inline int64_t hbgvx(
6376  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6377  float* AB, int64_t ldab,
6378  float* BB, int64_t ldbb,
6379  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6380  int64_t* m,
6381  float* W,
6382  float* Z, int64_t ldz,
6383  int64_t* ifail )
6384 {
6385  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6386 }
6387 
6388 int64_t sbgvx(
6389  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6390  double* AB, int64_t ldab,
6391  double* BB, int64_t ldbb,
6392  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6393  int64_t* m,
6394  double* W,
6395  double* Z, int64_t ldz,
6396  int64_t* ifail );
6397 
6398 // hbgvx alias to sbgvx
6399 inline int64_t hbgvx(
6400  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6401  double* AB, int64_t ldab,
6402  double* BB, int64_t ldbb,
6403  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6404  int64_t* m,
6405  double* W,
6406  double* Z, int64_t ldz,
6407  int64_t* ifail )
6408 {
6409  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6410 }
6411 
6412 // -----------------------------------------------------------------------------
6413 int64_t sbtrd(
6414  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6415  float* AB, int64_t ldab,
6416  float* D,
6417  float* E,
6418  float* Q, int64_t ldq );
6419 
6420 // hbtrd alias to sbtrd
6421 inline int64_t hbtrd(
6422  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6423  float* AB, int64_t ldab,
6424  float* D,
6425  float* E,
6426  float* Q, int64_t ldq )
6427 {
6428  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6429 }
6430 
6431 int64_t sbtrd(
6432  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6433  double* AB, int64_t ldab,
6434  double* D,
6435  double* E,
6436  double* Q, int64_t ldq );
6437 
6438 // hbtrd alias to sbtrd
6439 inline int64_t hbtrd(
6440  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6441  double* AB, int64_t ldab,
6442  double* D,
6443  double* E,
6444  double* Q, int64_t ldq )
6445 {
6446  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6447 }
6448 
6449 // -----------------------------------------------------------------------------
6450 void sfrk(
6451  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, float alpha,
6452  float const* A, int64_t lda, float beta,
6453  float* C );
6454 
6455 void sfrk(
6456  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, double alpha,
6457  double const* A, int64_t lda, double beta,
6458  double* C );
6459 
6460 // -----------------------------------------------------------------------------
6461 int64_t spcon(
6462  lapack::Uplo uplo, int64_t n,
6463  float const* AP,
6464  int64_t const* ipiv, float anorm,
6465  float* rcond );
6466 
6467 // hpcon alias to spcon
6468 inline int64_t hpcon(
6469  lapack::Uplo uplo, int64_t n,
6470  float const* AP,
6471  int64_t const* ipiv, float anorm,
6472  float* rcond )
6473 {
6474  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6475 }
6476 
6477 int64_t spcon(
6478  lapack::Uplo uplo, int64_t n,
6479  double const* AP,
6480  int64_t const* ipiv, double anorm,
6481  double* rcond );
6482 
6483 // hpcon alias to spcon
6484 inline int64_t hpcon(
6485  lapack::Uplo uplo, int64_t n,
6486  double const* AP,
6487  int64_t const* ipiv, double anorm,
6488  double* rcond )
6489 {
6490  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6491 }
6492 
6493 int64_t spcon(
6494  lapack::Uplo uplo, int64_t n,
6495  std::complex<float> const* AP,
6496  int64_t const* ipiv, float anorm,
6497  float* rcond );
6498 
6499 int64_t spcon(
6500  lapack::Uplo uplo, int64_t n,
6501  std::complex<double> const* AP,
6502  int64_t const* ipiv, double anorm,
6503  double* rcond );
6504 
6505 // -----------------------------------------------------------------------------
6506 int64_t spev(
6507  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6508  float* AP,
6509  float* W,
6510  float* Z, int64_t ldz );
6511 
6512 // hpev alias to spev
6513 inline int64_t hpev(
6514  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6515  float* AP,
6516  float* W,
6517  float* Z, int64_t ldz )
6518 {
6519  return spev( jobz, uplo, n, AP, W, Z, ldz );
6520 }
6521 
6522 int64_t spev(
6523  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6524  double* AP,
6525  double* W,
6526  double* Z, int64_t ldz );
6527 
6528 // hpev alias to spev
6529 inline int64_t hpev(
6530  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6531  double* AP,
6532  double* W,
6533  double* Z, int64_t ldz )
6534 {
6535  return spev( jobz, uplo, n, AP, W, Z, ldz );
6536 }
6537 
6538 // -----------------------------------------------------------------------------
6539 int64_t spevd(
6540  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6541  float* AP,
6542  float* W,
6543  float* Z, int64_t ldz );
6544 
6545 // hpevd alias to spevd
6546 inline int64_t hpevd(
6547  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6548  float* AP,
6549  float* W,
6550  float* Z, int64_t ldz )
6551 {
6552  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6553 }
6554 
6555 int64_t spevd(
6556  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6557  double* AP,
6558  double* W,
6559  double* Z, int64_t ldz );
6560 
6561 // hpevd alias to spevd
6562 inline int64_t hpevd(
6563  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6564  double* AP,
6565  double* W,
6566  double* Z, int64_t ldz )
6567 {
6568  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6569 }
6570 
6571 // -----------------------------------------------------------------------------
6572 int64_t spevx(
6573  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6574  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6575  int64_t* m,
6576  float* W,
6577  float* Z, int64_t ldz,
6578  int64_t* ifail );
6579 
6580 // hpevx alias to spevx
6581 inline int64_t hpevx(
6582  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6583  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6584  int64_t* m,
6585  float* W,
6586  float* Z, int64_t ldz,
6587  int64_t* ifail )
6588 {
6589  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6590 }
6591 
6592 int64_t spevx(
6593  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6594  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6595  int64_t* m,
6596  double* W,
6597  double* Z, int64_t ldz,
6598  int64_t* ifail );
6599 
6600 // hpevx alias to spevx
6601 inline int64_t hpevx(
6602  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6603  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6604  int64_t* m,
6605  double* W,
6606  double* Z, int64_t ldz,
6607  int64_t* ifail )
6608 {
6609  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6610 }
6611 
6612 // -----------------------------------------------------------------------------
6613 int64_t spgst(
6614  int64_t itype, lapack::Uplo uplo, int64_t n,
6615  float* AP,
6616  float const* BP );
6617 
6618 // hpgst alias to spgst
6619 inline int64_t hpgst(
6620  int64_t itype, lapack::Uplo uplo, int64_t n,
6621  float* AP,
6622  float const* BP )
6623 {
6624  return spgst( itype, uplo, n, AP, BP );
6625 }
6626 
6627 int64_t spgst(
6628  int64_t itype, lapack::Uplo uplo, int64_t n,
6629  double* AP,
6630  double const* BP );
6631 
6632 // hpgst alias to spgst
6633 inline int64_t hpgst(
6634  int64_t itype, lapack::Uplo uplo, int64_t n,
6635  double* AP,
6636  double const* BP )
6637 {
6638  return spgst( itype, uplo, n, AP, BP );
6639 }
6640 
6641 // -----------------------------------------------------------------------------
6642 int64_t spgv(
6643  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6644  float* AP,
6645  float* BP,
6646  float* W,
6647  float* Z, int64_t ldz );
6648 
6649 // hpgv alias to spgv
6650 inline int64_t hpgv(
6651  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6652  float* AP,
6653  float* BP,
6654  float* W,
6655  float* Z, int64_t ldz )
6656 {
6657  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6658 }
6659 
6660 int64_t spgv(
6661  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6662  double* AP,
6663  double* BP,
6664  double* W,
6665  double* Z, int64_t ldz );
6666 
6667 // hpgv alias to spgv
6668 inline int64_t hpgv(
6669  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6670  double* AP,
6671  double* BP,
6672  double* W,
6673  double* Z, int64_t ldz )
6674 {
6675  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6676 }
6677 
6678 // -----------------------------------------------------------------------------
6679 int64_t spgvd(
6680  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6681  float* AP,
6682  float* BP,
6683  float* W,
6684  float* Z, int64_t ldz );
6685 
6686 // hpgvd alias to spgvd
6687 inline int64_t hpgvd(
6688  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6689  float* AP,
6690  float* BP,
6691  float* W,
6692  float* Z, int64_t ldz )
6693 {
6694  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6695 }
6696 
6697 int64_t spgvd(
6698  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6699  double* AP,
6700  double* BP,
6701  double* W,
6702  double* Z, int64_t ldz );
6703 
6704 // hpgvd alias to spgvd
6705 inline int64_t hpgvd(
6706  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6707  double* AP,
6708  double* BP,
6709  double* W,
6710  double* Z, int64_t ldz )
6711 {
6712  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6713 }
6714 
6715 // -----------------------------------------------------------------------------
6716 int64_t spgvx(
6717  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6718  float* AP,
6719  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6720  int64_t* m,
6721  float* W,
6722  float* Z, int64_t ldz,
6723  int64_t* ifail );
6724 
6725 // hpgvx alias to spgvx
6726 inline int64_t hpgvx(
6727  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6728  float* AP,
6729  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6730  int64_t* m,
6731  float* W,
6732  float* Z, int64_t ldz,
6733  int64_t* ifail )
6734 {
6735  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6736 }
6737 
6738 int64_t spgvx(
6739  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6740  double* AP,
6741  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6742  int64_t* m,
6743  double* W,
6744  double* Z, int64_t ldz,
6745  int64_t* ifail );
6746 
6747 // hpgvx alias to spgvx
6748 inline int64_t hpgvx(
6749  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6750  double* AP,
6751  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6752  int64_t* m,
6753  double* W,
6754  double* Z, int64_t ldz,
6755  int64_t* ifail )
6756 {
6757  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6758 }
6759 
6760 // -----------------------------------------------------------------------------
6761 int64_t sprfs(
6762  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6763  float const* AP,
6764  float const* AFP,
6765  int64_t const* ipiv,
6766  float const* B, int64_t ldb,
6767  float* X, int64_t ldx,
6768  float* ferr,
6769  float* berr );
6770 
6771 // hprfs alias to sprfs
6772 inline int64_t hprfs(
6773  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6774  float const* AP,
6775  float const* AFP,
6776  int64_t const* ipiv,
6777  float const* B, int64_t ldb,
6778  float* X, int64_t ldx,
6779  float* ferr,
6780  float* berr )
6781 {
6782  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6783 }
6784 
6785 int64_t sprfs(
6786  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6787  double const* AP,
6788  double const* AFP,
6789  int64_t const* ipiv,
6790  double const* B, int64_t ldb,
6791  double* X, int64_t ldx,
6792  double* ferr,
6793  double* berr );
6794 
6795 // hprfs alias to sprfs
6796 inline int64_t hprfs(
6797  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6798  double const* AP,
6799  double const* AFP,
6800  int64_t const* ipiv,
6801  double const* B, int64_t ldb,
6802  double* X, int64_t ldx,
6803  double* ferr,
6804  double* berr )
6805 {
6806  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6807 }
6808 
6809 int64_t sprfs(
6810  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6811  std::complex<float> const* AP,
6812  std::complex<float> const* AFP,
6813  int64_t const* ipiv,
6814  std::complex<float> const* B, int64_t ldb,
6815  std::complex<float>* X, int64_t ldx,
6816  float* ferr,
6817  float* berr );
6818 
6819 int64_t sprfs(
6820  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6821  std::complex<double> const* AP,
6822  std::complex<double> const* AFP,
6823  int64_t const* ipiv,
6824  std::complex<double> const* B, int64_t ldb,
6825  std::complex<double>* X, int64_t ldx,
6826  double* ferr,
6827  double* berr );
6828 
6829 // -----------------------------------------------------------------------------
6830 int64_t spsv(
6831  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6832  float* AP,
6833  int64_t* ipiv,
6834  float* B, int64_t ldb );
6835 
6836 // hpsv alias to spsv
6837 inline int64_t hpsv(
6838  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6839  float* AP,
6840  int64_t* ipiv,
6841  float* B, int64_t ldb )
6842 {
6843  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6844 }
6845 
6846 int64_t spsv(
6847  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6848  double* AP,
6849  int64_t* ipiv,
6850  double* B, int64_t ldb );
6851 
6852 // hpsv alias to spsv
6853 inline int64_t hpsv(
6854  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6855  double* AP,
6856  int64_t* ipiv,
6857  double* B, int64_t ldb )
6858 {
6859  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6860 }
6861 
6862 int64_t spsv(
6863  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6864  std::complex<float>* AP,
6865  int64_t* ipiv,
6866  std::complex<float>* B, int64_t ldb );
6867 
6868 int64_t spsv(
6869  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6870  std::complex<double>* AP,
6871  int64_t* ipiv,
6872  std::complex<double>* B, int64_t ldb );
6873 
6874 // -----------------------------------------------------------------------------
6875 int64_t spsvx(
6876  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6877  float const* AP,
6878  float* AFP,
6879  int64_t* ipiv,
6880  float const* B, int64_t ldb,
6881  float* X, int64_t ldx,
6882  float* rcond,
6883  float* ferr,
6884  float* berr );
6885 
6886 // hpsvx alias to spsvx
6887 inline int64_t hpsvx(
6888  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6889  float const* AP,
6890  float* AFP,
6891  int64_t* ipiv,
6892  float const* B, int64_t ldb,
6893  float* X, int64_t ldx,
6894  float* rcond,
6895  float* ferr,
6896  float* berr )
6897 {
6898  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6899 }
6900 
6901 int64_t spsvx(
6902  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6903  double const* AP,
6904  double* AFP,
6905  int64_t* ipiv,
6906  double const* B, int64_t ldb,
6907  double* X, int64_t ldx,
6908  double* rcond,
6909  double* ferr,
6910  double* berr );
6911 
6912 // hpsvx alias to spsvx
6913 inline int64_t hpsvx(
6914  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6915  double const* AP,
6916  double* AFP,
6917  int64_t* ipiv,
6918  double const* B, int64_t ldb,
6919  double* X, int64_t ldx,
6920  double* rcond,
6921  double* ferr,
6922  double* berr )
6923 {
6924  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6925 }
6926 
6927 int64_t spsvx(
6928  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6929  std::complex<float> const* AP,
6930  std::complex<float>* AFP,
6931  int64_t* ipiv,
6932  std::complex<float> const* B, int64_t ldb,
6933  std::complex<float>* X, int64_t ldx,
6934  float* rcond,
6935  float* ferr,
6936  float* berr );
6937 
6938 int64_t spsvx(
6939  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6940  std::complex<double> const* AP,
6941  std::complex<double>* AFP,
6942  int64_t* ipiv,
6943  std::complex<double> const* B, int64_t ldb,
6944  std::complex<double>* X, int64_t ldx,
6945  double* rcond,
6946  double* ferr,
6947  double* berr );
6948 
6949 // -----------------------------------------------------------------------------
6950 int64_t sptrd(
6951  lapack::Uplo uplo, int64_t n,
6952  float* AP,
6953  float* D,
6954  float* E,
6955  float* tau );
6956 
6957 // hptrd alias to sptrd
6958 inline int64_t hptrd(
6959  lapack::Uplo uplo, int64_t n,
6960  float* AP,
6961  float* D,
6962  float* E,
6963  float* tau )
6964 {
6965  return sptrd( uplo, n, AP, D, E, tau );
6966 }
6967 
6968 int64_t sptrd(
6969  lapack::Uplo uplo, int64_t n,
6970  double* AP,
6971  double* D,
6972  double* E,
6973  double* tau );
6974 
6975 // hptrd alias to sptrd
6976 inline int64_t hptrd(
6977  lapack::Uplo uplo, int64_t n,
6978  double* AP,
6979  double* D,
6980  double* E,
6981  double* tau )
6982 {
6983  return sptrd( uplo, n, AP, D, E, tau );
6984 }
6985 
6986 // -----------------------------------------------------------------------------
6987 int64_t sptrf(
6988  lapack::Uplo uplo, int64_t n,
6989  float* AP,
6990  int64_t* ipiv );
6991 
6992 // hptrf alias to sptrf
6993 inline int64_t hptrf(
6994  lapack::Uplo uplo, int64_t n,
6995  float* AP,
6996  int64_t* ipiv )
6997 {
6998  return sptrf( uplo, n, AP, ipiv );
6999 }
7000 
7001 int64_t sptrf(
7002  lapack::Uplo uplo, int64_t n,
7003  double* AP,
7004  int64_t* ipiv );
7005 
7006 // hptrf alias to sptrf
7007 inline int64_t hptrf(
7008  lapack::Uplo uplo, int64_t n,
7009  double* AP,
7010  int64_t* ipiv )
7011 {
7012  return sptrf( uplo, n, AP, ipiv );
7013 }
7014 
7015 int64_t sptrf(
7016  lapack::Uplo uplo, int64_t n,
7017  std::complex<float>* AP,
7018  int64_t* ipiv );
7019 
7020 int64_t sptrf(
7021  lapack::Uplo uplo, int64_t n,
7022  std::complex<double>* AP,
7023  int64_t* ipiv );
7024 
7025 // -----------------------------------------------------------------------------
7026 int64_t sptri(
7027  lapack::Uplo uplo, int64_t n,
7028  float* AP,
7029  int64_t const* ipiv );
7030 
7031 // hptri alias to sptri
7032 inline int64_t hptri(
7033  lapack::Uplo uplo, int64_t n,
7034  float* AP,
7035  int64_t const* ipiv )
7036 {
7037  return sptri( uplo, n, AP, ipiv );
7038 }
7039 
7040 int64_t sptri(
7041  lapack::Uplo uplo, int64_t n,
7042  double* AP,
7043  int64_t const* ipiv );
7044 
7045 // hptri alias to sptri
7046 inline int64_t hptri(
7047  lapack::Uplo uplo, int64_t n,
7048  double* AP,
7049  int64_t const* ipiv )
7050 {
7051  return sptri( uplo, n, AP, ipiv );
7052 }
7053 
7054 int64_t sptri(
7055  lapack::Uplo uplo, int64_t n,
7056  std::complex<float>* AP,
7057  int64_t const* ipiv );
7058 
7059 int64_t sptri(
7060  lapack::Uplo uplo, int64_t n,
7061  std::complex<double>* AP,
7062  int64_t const* ipiv );
7063 
7064 // -----------------------------------------------------------------------------
7065 int64_t sptrs(
7066  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7067  float const* AP,
7068  int64_t const* ipiv,
7069  float* B, int64_t ldb );
7070 
7071 // hptrs alias to sptrs
7072 inline int64_t hptrs(
7073  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7074  float const* AP,
7075  int64_t const* ipiv,
7076  float* B, int64_t ldb )
7077 {
7078  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7079 }
7080 
7081 int64_t sptrs(
7082  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7083  double const* AP,
7084  int64_t const* ipiv,
7085  double* B, int64_t ldb );
7086 
7087 // hptrs alias to sptrs
7088 inline int64_t hptrs(
7089  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7090  double const* AP,
7091  int64_t const* ipiv,
7092  double* B, int64_t ldb )
7093 {
7094  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7095 }
7096 
7097 int64_t sptrs(
7098  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7099  std::complex<float> const* AP,
7100  int64_t const* ipiv,
7101  std::complex<float>* B, int64_t ldb );
7102 
7103 int64_t sptrs(
7104  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7105  std::complex<double> const* AP,
7106  int64_t const* ipiv,
7107  std::complex<double>* B, int64_t ldb );
7108 
7109 // -----------------------------------------------------------------------------
7110 int64_t stedc(
7111  lapack::Job compz, int64_t n,
7112  float* D,
7113  float* E,
7114  float* Z, int64_t ldz );
7115 
7116 int64_t stedc(
7117  lapack::Job compz, int64_t n,
7118  double* D,
7119  double* E,
7120  double* Z, int64_t ldz );
7121 
7122 int64_t stedc(
7123  lapack::Job compz, int64_t n,
7124  float* D,
7125  float* E,
7126  std::complex<float>* Z, int64_t ldz );
7127 
7128 int64_t stedc(
7129  lapack::Job compz, int64_t n,
7130  double* D,
7131  double* E,
7132  std::complex<double>* Z, int64_t ldz );
7133 
7134 // -----------------------------------------------------------------------------
7135 int64_t stegr(
7136  lapack::Job jobz, lapack::Range range, int64_t n,
7137  float* D,
7138  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7139  int64_t* m,
7140  float* W,
7141  float* Z, int64_t ldz,
7142  int64_t* isuppz );
7143 
7144 int64_t stegr(
7145  lapack::Job jobz, lapack::Range range, int64_t n,
7146  double* D,
7147  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7148  int64_t* m,
7149  double* W,
7150  double* Z, int64_t ldz,
7151  int64_t* isuppz );
7152 
7153 int64_t stegr(
7154  lapack::Job jobz, lapack::Range range, int64_t n,
7155  float* D,
7156  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7157  int64_t* m,
7158  float* W,
7159  std::complex<float>* Z, int64_t ldz,
7160  int64_t* isuppz );
7161 
7162 int64_t stegr(
7163  lapack::Job jobz, lapack::Range range, int64_t n,
7164  double* D,
7165  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7166  int64_t* m,
7167  double* W,
7168  std::complex<double>* Z, int64_t ldz,
7169  int64_t* isuppz );
7170 
7171 // -----------------------------------------------------------------------------
7172 int64_t stein(
7173  int64_t n,
7174  float const* D,
7175  float const* E, int64_t m,
7176  float const* W,
7177  int64_t const* iblock,
7178  int64_t const* isplit,
7179  float* Z, int64_t ldz,
7180  int64_t* ifail );
7181 
7182 int64_t stein(
7183  int64_t n,
7184  double const* D,
7185  double const* E, int64_t m,
7186  double const* W,
7187  int64_t const* iblock,
7188  int64_t const* isplit,
7189  double* Z, int64_t ldz,
7190  int64_t* ifail );
7191 
7192 int64_t stein(
7193  int64_t n,
7194  float const* D,
7195  float const* E, int64_t m,
7196  float const* W,
7197  int64_t const* iblock,
7198  int64_t const* isplit,
7199  std::complex<float>* Z, int64_t ldz,
7200  int64_t* ifail );
7201 
7202 int64_t stein(
7203  int64_t n,
7204  double const* D,
7205  double const* E, int64_t m,
7206  double const* W,
7207  int64_t const* iblock,
7208  int64_t const* isplit,
7209  std::complex<double>* Z, int64_t ldz,
7210  int64_t* ifail );
7211 
7212 // -----------------------------------------------------------------------------
7213 int64_t stemr(
7214  lapack::Job jobz, lapack::Range range, int64_t n,
7215  float* D,
7216  float* E, float vl, float vu, int64_t il, int64_t iu,
7217  int64_t* m,
7218  float* W,
7219  float* Z, int64_t ldz, int64_t nzc,
7220  int64_t* isuppz,
7221  bool* tryrac );
7222 
7223 int64_t stemr(
7224  lapack::Job jobz, lapack::Range range, int64_t n,
7225  double* D,
7226  double* E, double vl, double vu, int64_t il, int64_t iu,
7227  int64_t* m,
7228  double* W,
7229  double* Z, int64_t ldz, int64_t nzc,
7230  int64_t* isuppz,
7231  bool* tryrac );
7232 
7233 int64_t stemr(
7234  lapack::Job jobz, lapack::Range range, int64_t n,
7235  float* D,
7236  float* E, float vl, float vu, int64_t il, int64_t iu,
7237  int64_t* m,
7238  float* W,
7239  std::complex<float>* Z, int64_t ldz, int64_t nzc,
7240  int64_t* isuppz,
7241  bool* tryrac );
7242 
7243 int64_t stemr(
7244  lapack::Job jobz, lapack::Range range, int64_t n,
7245  double* D,
7246  double* E, double vl, double vu, int64_t il, int64_t iu,
7247  int64_t* m,
7248  double* W,
7249  std::complex<double>* Z, int64_t ldz, int64_t nzc,
7250  int64_t* isuppz,
7251  bool* tryrac );
7252 
7253 // -----------------------------------------------------------------------------
7254 int64_t steqr(
7255  lapack::Job compz, int64_t n,
7256  float* D,
7257  float* E,
7258  float* Z, int64_t ldz );
7259 
7260 int64_t steqr(
7261  lapack::Job compz, int64_t n,
7262  double* D,
7263  double* E,
7264  double* Z, int64_t ldz );
7265 
7266 int64_t steqr(
7267  lapack::Job compz, int64_t n,
7268  float* D,
7269  float* E,
7270  std::complex<float>* Z, int64_t ldz );
7271 
7272 int64_t steqr(
7273  lapack::Job compz, int64_t n,
7274  double* D,
7275  double* E,
7276  std::complex<double>* Z, int64_t ldz );
7277 
7278 // -----------------------------------------------------------------------------
7279 int64_t sterf(
7280  int64_t n,
7281  float* D,
7282  float* E );
7283 
7284 int64_t sterf(
7285  int64_t n,
7286  double* D,
7287  double* E );
7288 
7289 // -----------------------------------------------------------------------------
7290 int64_t stev(
7291  lapack::Job jobz, int64_t n,
7292  float* D,
7293  float* E,
7294  float* Z, int64_t ldz );
7295 
7296 int64_t stev(
7297  lapack::Job jobz, int64_t n,
7298  double* D,
7299  double* E,
7300  double* Z, int64_t ldz );
7301 
7302 // -----------------------------------------------------------------------------
7303 int64_t stevd(
7304  lapack::Job jobz, int64_t n,
7305  float* D,
7306  float* E,
7307  float* Z, int64_t ldz );
7308 
7309 int64_t stevd(
7310  lapack::Job jobz, int64_t n,
7311  double* D,
7312  double* E,
7313  double* Z, int64_t ldz );
7314 
7315 // -----------------------------------------------------------------------------
7316 int64_t stevr(
7317  lapack::Job jobz, lapack::Range range, int64_t n,
7318  float* D,
7319  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7320  int64_t* m,
7321  float* W,
7322  float* Z, int64_t ldz,
7323  int64_t* isuppz );
7324 
7325 int64_t stevr(
7326  lapack::Job jobz, lapack::Range range, int64_t n,
7327  double* D,
7328  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7329  int64_t* m,
7330  double* W,
7331  double* Z, int64_t ldz,
7332  int64_t* isuppz );
7333 
7334 // -----------------------------------------------------------------------------
7335 int64_t stevx(
7336  lapack::Job jobz, lapack::Range range, int64_t n,
7337  float* D,
7338  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7339  int64_t* m,
7340  float* W,
7341  float* Z, int64_t ldz,
7342  int64_t* ifail );
7343 
7344 int64_t stevx(
7345  lapack::Job jobz, lapack::Range range, int64_t n,
7346  double* D,
7347  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7348  int64_t* m,
7349  double* W,
7350  double* Z, int64_t ldz,
7351  int64_t* ifail );
7352 
7353 // -----------------------------------------------------------------------------
7354 int64_t sycon(
7355  lapack::Uplo uplo, int64_t n,
7356  float const* A, int64_t lda,
7357  int64_t const* ipiv, float anorm,
7358  float* rcond );
7359 
7360 // hecon alias to sycon
7361 inline int64_t hecon(
7362  lapack::Uplo uplo, int64_t n,
7363  float const* A, int64_t lda,
7364  int64_t const* ipiv, float anorm,
7365  float* rcond )
7366 {
7367  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7368 }
7369 
7370 int64_t sycon(
7371  lapack::Uplo uplo, int64_t n,
7372  double const* A, int64_t lda,
7373  int64_t const* ipiv, double anorm,
7374  double* rcond );
7375 
7376 // hecon alias to sycon
7377 inline int64_t hecon(
7378  lapack::Uplo uplo, int64_t n,
7379  double const* A, int64_t lda,
7380  int64_t const* ipiv, double anorm,
7381  double* rcond )
7382 {
7383  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7384 }
7385 
7386 int64_t sycon(
7387  lapack::Uplo uplo, int64_t n,
7388  std::complex<float> const* A, int64_t lda,
7389  int64_t const* ipiv, float anorm,
7390  float* rcond );
7391 
7392 int64_t sycon(
7393  lapack::Uplo uplo, int64_t n,
7394  std::complex<double> const* A, int64_t lda,
7395  int64_t const* ipiv, double anorm,
7396  double* rcond );
7397 
7398 // -----------------------------------------------------------------------------
7399 // sycon_rk wraps sycon_3
7400 int64_t sycon_rk(
7401  lapack::Uplo uplo, int64_t n,
7402  float const* A, int64_t lda,
7403  float const* E,
7404  int64_t const* ipiv, float anorm,
7405  float* rcond );
7406 
7407 // hecon_rk alias to sycon_rk
7408 inline int64_t hecon_rk(
7409  lapack::Uplo uplo, int64_t n,
7410  float const* A, int64_t lda,
7411  float const* E,
7412  int64_t const* ipiv, float anorm,
7413  float* rcond )
7414 {
7415  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7416 }
7417 
7418 int64_t sycon_rk(
7419  lapack::Uplo uplo, int64_t n,
7420  double const* A, int64_t lda,
7421  double const* E,
7422  int64_t const* ipiv, double anorm,
7423  double* rcond );
7424 
7425 // hecon_rk alias to sycon_rk
7426 inline int64_t hecon_rk(
7427  lapack::Uplo uplo, int64_t n,
7428  double const* A, int64_t lda,
7429  double const* E,
7430  int64_t const* ipiv, double anorm,
7431  double* rcond )
7432 {
7433  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7434 }
7435 
7436 int64_t sycon_rk(
7437  lapack::Uplo uplo, int64_t n,
7438  std::complex<float> const* A, int64_t lda,
7439  std::complex<float> const* E,
7440  int64_t const* ipiv, float anorm,
7441  float* rcond );
7442 
7443 int64_t sycon_rk(
7444  lapack::Uplo uplo, int64_t n,
7445  std::complex<double> const* A, int64_t lda,
7446  std::complex<double> const* E,
7447  int64_t const* ipiv, double anorm,
7448  double* rcond );
7449 
7450 // -----------------------------------------------------------------------------
7451 int64_t syequb(
7452  lapack::Uplo uplo, int64_t n,
7453  float const* A, int64_t lda,
7454  float* S,
7455  float* scond,
7456  float* amax );
7457 
7458 // heequb alias to syequb
7459 inline int64_t heequb(
7460  lapack::Uplo uplo, int64_t n,
7461  float const* A, int64_t lda,
7462  float* S,
7463  float* scond,
7464  float* amax )
7465 {
7466  return syequb( uplo, n, A, lda, S, scond, amax );
7467 }
7468 
7469 int64_t syequb(
7470  lapack::Uplo uplo, int64_t n,
7471  double const* A, int64_t lda,
7472  double* S,
7473  double* scond,
7474  double* amax );
7475 
7476 // heequb alias to syequb
7477 inline int64_t heequb(
7478  lapack::Uplo uplo, int64_t n,
7479  double const* A, int64_t lda,
7480  double* S,
7481  double* scond,
7482  double* amax )
7483 {
7484  return syequb( uplo, n, A, lda, S, scond, amax );
7485 }
7486 
7487 int64_t syequb(
7488  lapack::Uplo uplo, int64_t n,
7489  std::complex<float> const* A, int64_t lda,
7490  float* S,
7491  float* scond,
7492  float* amax );
7493 
7494 int64_t syequb(
7495  lapack::Uplo uplo, int64_t n,
7496  std::complex<double> const* A, int64_t lda,
7497  double* S,
7498  double* scond,
7499  double* amax );
7500 
7501 // -----------------------------------------------------------------------------
7502 int64_t syev(
7503  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7504  float* A, int64_t lda,
7505  float* W );
7506 
7507 // heev alias to syev
7508 inline int64_t heev(
7509  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7510  float* A, int64_t lda,
7511  float* W )
7512 {
7513  return syev( jobz, uplo, n, A, lda, W );
7514 }
7515 
7516 int64_t syev(
7517  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7518  double* A, int64_t lda,
7519  double* W );
7520 
7521 // heev alias to syev
7522 inline int64_t heev(
7523  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7524  double* A, int64_t lda,
7525  double* W )
7526 {
7527  return syev( jobz, uplo, n, A, lda, W );
7528 }
7529 
7530 // -----------------------------------------------------------------------------
7531 int64_t syev_2stage(
7532  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7533  float* A, int64_t lda,
7534  float* W );
7535 
7536 // heev_2stage alias to syev_2stage
7537 inline int64_t heev_2stage(
7538  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7539  float* A, int64_t lda,
7540  float* W )
7541 {
7542  return syev_2stage( jobz, uplo, n, A, lda, W );
7543 }
7544 
7545 int64_t syev_2stage(
7546  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7547  double* A, int64_t lda,
7548  double* W );
7549 
7550 // heev_2stage alias to syev_2stage
7551 inline int64_t heev_2stage(
7552  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7553  double* A, int64_t lda,
7554  double* W )
7555 {
7556  return syev_2stage( jobz, uplo, n, A, lda, W );
7557 }
7558 
7559 // -----------------------------------------------------------------------------
7560 int64_t syevd(
7561  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7562  float* A, int64_t lda,
7563  float* W );
7564 
7565 // heevd alias to syevd
7566 inline int64_t heevd(
7567  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7568  float* A, int64_t lda,
7569  float* W )
7570 {
7571  return syevd( jobz, uplo, n, A, lda, W );
7572 }
7573 
7574 int64_t syevd(
7575  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7576  double* A, int64_t lda,
7577  double* W );
7578 
7579 // heevd alias to syevd
7580 inline int64_t heevd(
7581  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7582  double* A, int64_t lda,
7583  double* W )
7584 {
7585  return syevd( jobz, uplo, n, A, lda, W );
7586 }
7587 
7588 // -----------------------------------------------------------------------------
7589 int64_t syevd_2stage(
7590  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7591  float* A, int64_t lda,
7592  float* W );
7593 
7594 // heevd_2stage alias to syevd_2stage
7595 inline int64_t heevd_2stage(
7596  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7597  float* A, int64_t lda,
7598  float* W )
7599 {
7600  return syevd_2stage( jobz, uplo, n, A, lda, W );
7601 }
7602 
7603 int64_t syevd_2stage(
7604  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7605  double* A, int64_t lda,
7606  double* W );
7607 
7608 // heevd_2stage alias to syevd_2stage
7609 inline int64_t heevd_2stage(
7610  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7611  double* A, int64_t lda,
7612  double* W )
7613 {
7614  return syevd_2stage( jobz, uplo, n, A, lda, W );
7615 }
7616 
7617 // -----------------------------------------------------------------------------
7618 int64_t syevr(
7619  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7620  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7621  int64_t* m,
7622  float* W,
7623  float* Z, int64_t ldz,
7624  int64_t* isuppz );
7625 
7626 // heevr alias to syevr
7627 inline int64_t heevr(
7628  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7629  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7630  int64_t* m,
7631  float* W,
7632  float* Z, int64_t ldz,
7633  int64_t* isuppz )
7634 {
7635  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7636 }
7637 
7638 int64_t syevr(
7639  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7640  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7641  int64_t* m,
7642  double* W,
7643  double* Z, int64_t ldz,
7644  int64_t* isuppz );
7645 
7646 // heevr alias to syevr
7647 inline int64_t heevr(
7648  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7649  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7650  int64_t* m,
7651  double* W,
7652  double* Z, int64_t ldz,
7653  int64_t* isuppz )
7654 {
7655  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7656 }
7657 
7658 // -----------------------------------------------------------------------------
7659 int64_t syevr_2stage(
7660  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7661  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7662  int64_t* m,
7663  float* W,
7664  float* Z, int64_t ldz,
7665  int64_t* isuppz );
7666 
7667 // heevr_2stage alias to syevr_2stage
7668 inline int64_t heevr_2stage(
7669  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7670  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7671  int64_t* m,
7672  float* W,
7673  float* Z, int64_t ldz,
7674  int64_t* isuppz )
7675 {
7676  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7677 }
7678 
7679 int64_t syevr_2stage(
7680  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7681  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7682  int64_t* m,
7683  double* W,
7684  double* Z, int64_t ldz,
7685  int64_t* isuppz );
7686 
7687 // heevr_2stage alias to syevr_2stage
7688 inline int64_t heevr_2stage(
7689  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7690  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7691  int64_t* m,
7692  double* W,
7693  double* Z, int64_t ldz,
7694  int64_t* isuppz )
7695 {
7696  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7697 }
7698 
7699 // -----------------------------------------------------------------------------
7700 int64_t syevx(
7701  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7702  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7703  int64_t* m,
7704  float* W,
7705  float* Z, int64_t ldz,
7706  int64_t* ifail );
7707 
7708 // heevx alias to syevx
7709 inline int64_t heevx(
7710  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7711  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7712  int64_t* m,
7713  float* W,
7714  float* Z, int64_t ldz,
7715  int64_t* ifail )
7716 {
7717  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7718 }
7719 
7720 int64_t syevx(
7721  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7722  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7723  int64_t* m,
7724  double* W,
7725  double* Z, int64_t ldz,
7726  int64_t* ifail );
7727 
7728 // heevx alias to syevx
7729 inline int64_t heevx(
7730  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7731  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7732  int64_t* m,
7733  double* W,
7734  double* Z, int64_t ldz,
7735  int64_t* ifail )
7736 {
7737  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7738 }
7739 
7740 // -----------------------------------------------------------------------------
7741 int64_t syevx_2stage(
7742  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7743  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7744  int64_t* m,
7745  float* W,
7746  float* Z, int64_t ldz,
7747  int64_t* ifail );
7748 
7749 // heevx_2stage alias to syevx_2stage
7750 inline int64_t heevx_2stage(
7751  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7752  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7753  int64_t* m,
7754  float* W,
7755  float* Z, int64_t ldz,
7756  int64_t* ifail )
7757 {
7758  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7759 }
7760 
7761 int64_t syevx_2stage(
7762  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7763  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7764  int64_t* m,
7765  double* W,
7766  double* Z, int64_t ldz,
7767  int64_t* ifail );
7768 
7769 // heevx_2stage alias to syevx_2stage
7770 inline int64_t heevx_2stage(
7771  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7772  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7773  int64_t* m,
7774  double* W,
7775  double* Z, int64_t ldz,
7776  int64_t* ifail )
7777 {
7778  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7779 }
7780 
7781 // -----------------------------------------------------------------------------
7782 int64_t sygst(
7783  int64_t itype, lapack::Uplo uplo, int64_t n,
7784  float* A, int64_t lda,
7785  float const* B, int64_t ldb );
7786 
7787 // hegst alias to sygst
7788 inline int64_t hegst(
7789  int64_t itype, lapack::Uplo uplo, int64_t n,
7790  float* A, int64_t lda,
7791  float const* B, int64_t ldb )
7792 {
7793  return sygst( itype, uplo, n, A, lda, B, ldb );
7794 }
7795 
7796 int64_t sygst(
7797  int64_t itype, lapack::Uplo uplo, int64_t n,
7798  double* A, int64_t lda,
7799  double const* B, int64_t ldb );
7800 
7801 // hegst alias to sygst
7802 inline int64_t hegst(
7803  int64_t itype, lapack::Uplo uplo, int64_t n,
7804  double* A, int64_t lda,
7805  double const* B, int64_t ldb )
7806 {
7807  return sygst( itype, uplo, n, A, lda, B, ldb );
7808 }
7809 
7810 // -----------------------------------------------------------------------------
7811 int64_t sygv(
7812  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7813  float* A, int64_t lda,
7814  float* B, int64_t ldb,
7815  float* W );
7816 
7817 // hegv alias to sygv
7818 inline int64_t hegv(
7819  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7820  float* A, int64_t lda,
7821  float* B, int64_t ldb,
7822  float* W )
7823 {
7824  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7825 }
7826 
7827 int64_t sygv(
7828  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7829  double* A, int64_t lda,
7830  double* B, int64_t ldb,
7831  double* W );
7832 
7833 // hegv alias to sygv
7834 inline int64_t hegv(
7835  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7836  double* A, int64_t lda,
7837  double* B, int64_t ldb,
7838  double* W )
7839 {
7840  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7841 }
7842 
7843 // -----------------------------------------------------------------------------
7844 int64_t sygv_2stage(
7845  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7846  float* A, int64_t lda,
7847  float* B, int64_t ldb,
7848  float* W );
7849 
7850 // hegv_2stage alias to sygv_2stage
7851 inline int64_t hegv_2stage(
7852  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7853  float* A, int64_t lda,
7854  float* B, int64_t ldb,
7855  float* W )
7856 {
7857  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7858 }
7859 
7860 int64_t sygv_2stage(
7861  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7862  double* A, int64_t lda,
7863  double* B, int64_t ldb,
7864  double* W );
7865 
7866 // hegv_2stage alias to sygv_2stage
7867 inline int64_t hegv_2stage(
7868  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7869  double* A, int64_t lda,
7870  double* B, int64_t ldb,
7871  double* W )
7872 {
7873  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7874 }
7875 
7876 // -----------------------------------------------------------------------------
7877 int64_t sygvd(
7878  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7879  float* A, int64_t lda,
7880  float* B, int64_t ldb,
7881  float* W );
7882 
7883 // hegvd alias to sygvd
7884 inline int64_t hegvd(
7885  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7886  float* A, int64_t lda,
7887  float* B, int64_t ldb,
7888  float* W )
7889 {
7890  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7891 }
7892 
7893 int64_t sygvd(
7894  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7895  double* A, int64_t lda,
7896  double* B, int64_t ldb,
7897  double* W );
7898 
7899 // hegvd alias to sygvd
7900 inline int64_t hegvd(
7901  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7902  double* A, int64_t lda,
7903  double* B, int64_t ldb,
7904  double* W )
7905 {
7906  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7907 }
7908 
7909 // -----------------------------------------------------------------------------
7910 int64_t sygvx(
7911  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7912  float* A, int64_t lda,
7913  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7914  int64_t* m,
7915  float* W,
7916  float* Z, int64_t ldz,
7917  int64_t* ifail );
7918 
7919 // hegvx alias to sygvx
7920 inline int64_t hegvx(
7921  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7922  float* A, int64_t lda,
7923  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7924  int64_t* m,
7925  float* W,
7926  float* Z, int64_t ldz,
7927  int64_t* ifail )
7928 {
7929  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7930 }
7931 
7932 int64_t sygvx(
7933  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7934  double* A, int64_t lda,
7935  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7936  int64_t* m,
7937  double* W,
7938  double* Z, int64_t ldz,
7939  int64_t* ifail );
7940 
7941 // hegvx alias to sygvx
7942 inline int64_t hegvx(
7943  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7944  double* A, int64_t lda,
7945  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7946  int64_t* m,
7947  double* W,
7948  double* Z, int64_t ldz,
7949  int64_t* ifail )
7950 {
7951  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7952 }
7953 
7954 // -----------------------------------------------------------------------------
7955 } // end namespace lapack
7956 namespace blas {
7957 
7958 void syr(
7959  blas::Layout layout,
7960  blas::Uplo uplo, int64_t n, std::complex<float> alpha,
7961  std::complex<float> const* X, int64_t incx,
7962  std::complex<float>* A, int64_t lda );
7963 
7964 void syr(
7965  blas::Layout layout,
7966  blas::Uplo uplo, int64_t n, std::complex<double> alpha,
7967  std::complex<double> const* X, int64_t incx,
7968  std::complex<double>* A, int64_t lda );
7969 
7970 void symv(
7971  blas::Layout layout,
7972  blas::Uplo uplo,
7973  int64_t n,
7974  std::complex<float> alpha,
7975  std::complex<float> const *A, int64_t lda,
7976  std::complex<float> const *x, int64_t incx,
7977  std::complex<float> beta,
7978  std::complex<float> *y, int64_t incy );
7979 
7980 void symv(
7981  blas::Layout layout,
7982  blas::Uplo uplo,
7983  int64_t n,
7984  std::complex<double> alpha,
7985  std::complex<double> const*A, int64_t lda,
7986  std::complex<double> const *x, int64_t incx,
7987  std::complex<double> beta,
7988  std::complex<double> *y, int64_t incy );
7989 
7990 } // end namespace blas
7991 namespace lapack {
7992 
7993 // -----------------------------------------------------------------------------
7994 int64_t syrfs(
7995  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7996  float const* A, int64_t lda,
7997  float const* AF, int64_t ldaf,
7998  int64_t const* ipiv,
7999  float const* B, int64_t ldb,
8000  float* X, int64_t ldx,
8001  float* ferr,
8002  float* berr );
8003 
8004 // herfs alias to syrfs
8005 inline int64_t herfs(
8006  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8007  float const* A, int64_t lda,
8008  float const* AF, int64_t ldaf,
8009  int64_t const* ipiv,
8010  float const* B, int64_t ldb,
8011  float* X, int64_t ldx,
8012  float* ferr,
8013  float* berr )
8014 {
8015  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8016 }
8017 
8018 int64_t syrfs(
8019  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8020  double const* A, int64_t lda,
8021  double const* AF, int64_t ldaf,
8022  int64_t const* ipiv,
8023  double const* B, int64_t ldb,
8024  double* X, int64_t ldx,
8025  double* ferr,
8026  double* berr );
8027 
8028 // herfs alias to syrfs
8029 inline int64_t herfs(
8030  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8031  double const* A, int64_t lda,
8032  double const* AF, int64_t ldaf,
8033  int64_t const* ipiv,
8034  double const* B, int64_t ldb,
8035  double* X, int64_t ldx,
8036  double* ferr,
8037  double* berr )
8038 {
8039  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8040 }
8041 
8042 int64_t syrfs(
8043  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8044  std::complex<float> const* A, int64_t lda,
8045  std::complex<float> const* AF, int64_t ldaf,
8046  int64_t const* ipiv,
8047  std::complex<float> const* B, int64_t ldb,
8048  std::complex<float>* X, int64_t ldx,
8049  float* ferr,
8050  float* berr );
8051 
8052 int64_t syrfs(
8053  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8054  std::complex<double> const* A, int64_t lda,
8055  std::complex<double> const* AF, int64_t ldaf,
8056  int64_t const* ipiv,
8057  std::complex<double> const* B, int64_t ldb,
8058  std::complex<double>* X, int64_t ldx,
8059  double* ferr,
8060  double* berr );
8061 
8062 // -----------------------------------------------------------------------------
8063 int64_t syrfsx(
8064  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8065  float const* A, int64_t lda,
8066  float const* AF, int64_t ldaf,
8067  int64_t const* ipiv,
8068  float* S,
8069  float const* B, int64_t ldb,
8070  float* X, int64_t ldx,
8071  float* rcond,
8072  float* berr, int64_t n_err_bnds,
8073  float* err_bnds_norm,
8074  float* err_bnds_comp, int64_t nparams,
8075  float* params );
8076 
8077 // herfsx alias to syrfsx
8078 inline int64_t herfsx(
8079  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8080  float const* A, int64_t lda,
8081  float const* AF, int64_t ldaf,
8082  int64_t const* ipiv,
8083  float* S,
8084  float const* B, int64_t ldb,
8085  float* X, int64_t ldx,
8086  float* rcond,
8087  float* berr, int64_t n_err_bnds,
8088  float* err_bnds_norm,
8089  float* err_bnds_comp, int64_t nparams,
8090  float* params )
8091 {
8092  return syrfsx( uplo, equed, n, nrhs, A, lda, AF, ldaf, ipiv, S, B, ldb, X, ldx, rcond, berr, n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params );
8093 }
8094 
8095 int64_t syrfsx(
8096  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8097  double const* A, int64_t lda,
8098  double const* AF, int64_t ldaf,
8099  int64_t const* ipiv,
8100  double* S,
8101  double const* B, int64_t ldb,
8102  double* X, int64_t ldx,
8103  double* rcond,
8104  double* berr, int64_t n_err_bnds,
8105  double* err_bnds_norm,
8106  double* err_bnds_comp, int64_t nparams,
8107  double* params );
8108 
8109 // herfsx alias to syrfsx
8110 inline int64_t herfsx(
8111  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8112  double const* A, int64_t lda,
8113  double const* AF, int64_t ldaf,
8114  int64_t const* ipiv,
8115  double* S,
8116  double const* B, int64_t ldb,
8117  double* X, int64_t ldx,
8118  double* rcond,
8119  double* berr, int64_t n_err_bnds,
8120  double* err_bnds_norm,
8121  double* err_bnds_comp, int64_t nparams,
8122  double* params )
8123 {
8124  return syrfsx( uplo, equed, n, nrhs, A, lda, AF, ldaf, ipiv, S, B, ldb, X, ldx, rcond, berr, n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params );
8125 }
8126 
8127 int64_t syrfsx(
8128  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8129  std::complex<float> const* A, int64_t lda,
8130  std::complex<float> const* AF, int64_t ldaf,
8131  int64_t const* ipiv,
8132  float* S,
8133  std::complex<float> const* B, int64_t ldb,
8134  std::complex<float>* X, int64_t ldx,
8135  float* rcond,
8136  float* berr, int64_t n_err_bnds,
8137  float* err_bnds_norm,
8138  float* err_bnds_comp, int64_t nparams,
8139  float* params );
8140 
8141 int64_t syrfsx(
8142  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8143  std::complex<double> const* A, int64_t lda,
8144  std::complex<double> const* AF, int64_t ldaf,
8145  int64_t const* ipiv,
8146  double* S,
8147  std::complex<double> const* B, int64_t ldb,
8148  std::complex<double>* X, int64_t ldx,
8149  double* rcond,
8150  double* berr, int64_t n_err_bnds,
8151  double* err_bnds_norm,
8152  double* err_bnds_comp, int64_t nparams,
8153  double* params );
8154 
8155 // -----------------------------------------------------------------------------
8156 int64_t sysv(
8157  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8158  float* A, int64_t lda,
8159  int64_t* ipiv,
8160  float* B, int64_t ldb );
8161 
8162 // hesv alias to sysv
8163 inline int64_t hesv(
8164  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8165  float* A, int64_t lda,
8166  int64_t* ipiv,
8167  float* B, int64_t ldb )
8168 {
8169  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8170 }
8171 
8172 int64_t sysv(
8173  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8174  double* A, int64_t lda,
8175  int64_t* ipiv,
8176  double* B, int64_t ldb );
8177 
8178 // hesv alias to sysv
8179 inline int64_t hesv(
8180  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8181  double* A, int64_t lda,
8182  int64_t* ipiv,
8183  double* B, int64_t ldb )
8184 {
8185  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8186 }
8187 
8188 int64_t sysv(
8189  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8190  std::complex<float>* A, int64_t lda,
8191  int64_t* ipiv,
8192  std::complex<float>* B, int64_t ldb );
8193 
8194 int64_t sysv(
8195  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8196  std::complex<double>* A, int64_t lda,
8197  int64_t* ipiv,
8198  std::complex<double>* B, int64_t ldb );
8199 
8200 // -----------------------------------------------------------------------------
8201 int64_t sysv_aa(
8202  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8203  float* A, int64_t lda,
8204  int64_t* ipiv,
8205  float* B, int64_t ldb );
8206 
8207 // hesv_aa alias to sysv_aa
8208 inline int64_t hesv_aa(
8209  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8210  float* A, int64_t lda,
8211  int64_t* ipiv,
8212  float* B, int64_t ldb )
8213 {
8214  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8215 }
8216 
8217 int64_t sysv_aa(
8218  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8219  double* A, int64_t lda,
8220  int64_t* ipiv,
8221  double* B, int64_t ldb );
8222 
8223 // hesv_aa alias to sysv_aa
8224 inline int64_t hesv_aa(
8225  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8226  double* A, int64_t lda,
8227  int64_t* ipiv,
8228  double* B, int64_t ldb )
8229 {
8230  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8231 }
8232 
8233 int64_t sysv_aa(
8234  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8235  std::complex<float>* A, int64_t lda,
8236  int64_t* ipiv,
8237  std::complex<float>* B, int64_t ldb );
8238 
8239 int64_t sysv_aa(
8240  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8241  std::complex<double>* A, int64_t lda,
8242  int64_t* ipiv,
8243  std::complex<double>* B, int64_t ldb );
8244 
8245 // -----------------------------------------------------------------------------
8246 int64_t sysv_rk(
8247  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8248  float* A, int64_t lda,
8249  float* E,
8250  int64_t* ipiv,
8251  float* B, int64_t ldb );
8252 
8253 // hesv_rk alias to sysv_rk
8254 inline int64_t hesv_rk(
8255  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8256  float* A, int64_t lda,
8257  float* E,
8258  int64_t* ipiv,
8259  float* B, int64_t ldb )
8260 {
8261  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8262 }
8263 
8264 int64_t sysv_rk(
8265  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8266  double* A, int64_t lda,
8267  double* E,
8268  int64_t* ipiv,
8269  double* B, int64_t ldb );
8270 
8271 // hesv_rk alias to sysv_rk
8272 inline int64_t hesv_rk(
8273  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8274  double* A, int64_t lda,
8275  double* E,
8276  int64_t* ipiv,
8277  double* B, int64_t ldb )
8278 {
8279  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8280 }
8281 
8282 int64_t sysv_rk(
8283  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8284  std::complex<float>* A, int64_t lda,
8285  std::complex<float>* E,
8286  int64_t* ipiv,
8287  std::complex<float>* B, int64_t ldb );
8288 
8289 int64_t sysv_rk(
8290  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8291  std::complex<double>* A, int64_t lda,
8292  std::complex<double>* E,
8293  int64_t* ipiv,
8294  std::complex<double>* B, int64_t ldb );
8295 
8296 // -----------------------------------------------------------------------------
8297 int64_t sysv_rook(
8298  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8299  float* A, int64_t lda,
8300  int64_t* ipiv,
8301  float* B, int64_t ldb );
8302 
8303 // hesv_rook alias to sysv_rook
8304 inline int64_t hesv_rook(
8305  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8306  float* A, int64_t lda,
8307  int64_t* ipiv,
8308  float* B, int64_t ldb )
8309 {
8310  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8311 }
8312 
8313 int64_t sysv_rook(
8314  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8315  double* A, int64_t lda,
8316  int64_t* ipiv,
8317  double* B, int64_t ldb );
8318 
8319 // hesv_rook alias to sysv_rook
8320 inline int64_t hesv_rook(
8321  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8322  double* A, int64_t lda,
8323  int64_t* ipiv,
8324  double* B, int64_t ldb )
8325 {
8326  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8327 }
8328 
8329 int64_t sysv_rook(
8330  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8331  std::complex<float>* A, int64_t lda,
8332  int64_t* ipiv,
8333  std::complex<float>* B, int64_t ldb );
8334 
8335 int64_t sysv_rook(
8336  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8337  std::complex<double>* A, int64_t lda,
8338  int64_t* ipiv,
8339  std::complex<double>* B, int64_t ldb );
8340 
8341 // -----------------------------------------------------------------------------
8342 int64_t sysvx(
8343  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8344  float const* A, int64_t lda,
8345  float* AF, int64_t ldaf,
8346  int64_t* ipiv,
8347  float const* B, int64_t ldb,
8348  float* X, int64_t ldx,
8349  float* rcond,
8350  float* ferr,
8351  float* berr );
8352 
8353 // hesvx alias to sysvx
8354 inline int64_t hesvx(
8355  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8356  float const* A, int64_t lda,
8357  float* AF, int64_t ldaf,
8358  int64_t* ipiv,
8359  float const* B, int64_t ldb,
8360  float* X, int64_t ldx,
8361  float* rcond,
8362  float* ferr,
8363  float* berr )
8364 {
8365  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8366 }
8367 
8368 int64_t sysvx(
8369  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8370  double const* A, int64_t lda,
8371  double* AF, int64_t ldaf,
8372  int64_t* ipiv,
8373  double const* B, int64_t ldb,
8374  double* X, int64_t ldx,
8375  double* rcond,
8376  double* ferr,
8377  double* berr );
8378 
8379 // hesvx alias to sysvx
8380 inline int64_t hesvx(
8381  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8382  double const* A, int64_t lda,
8383  double* AF, int64_t ldaf,
8384  int64_t* ipiv,
8385  double const* B, int64_t ldb,
8386  double* X, int64_t ldx,
8387  double* rcond,
8388  double* ferr,
8389  double* berr )
8390 {
8391  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8392 }
8393 
8394 int64_t sysvx(
8395  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8396  std::complex<float> const* A, int64_t lda,
8397  std::complex<float>* AF, int64_t ldaf,
8398  int64_t* ipiv,
8399  std::complex<float> const* B, int64_t ldb,
8400  std::complex<float>* X, int64_t ldx,
8401  float* rcond,
8402  float* ferr,
8403  float* berr );
8404 
8405 int64_t sysvx(
8406  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8407  std::complex<double> const* A, int64_t lda,
8408  std::complex<double>* AF, int64_t ldaf,
8409  int64_t* ipiv,
8410  std::complex<double> const* B, int64_t ldb,
8411  std::complex<double>* X, int64_t ldx,
8412  double* rcond,
8413  double* ferr,
8414  double* berr );
8415 
8416 // -----------------------------------------------------------------------------
8417 void syswapr(
8418  lapack::Uplo uplo, int64_t n,
8419  float* A, int64_t lda, int64_t i1, int64_t i2 );
8420 
8421 // heswapr alias to syswapr
8422 inline void heswapr(
8423  lapack::Uplo uplo, int64_t n,
8424  float* A, int64_t lda, int64_t i1, int64_t i2 )
8425 {
8426  return syswapr( uplo, n, A, lda, i1, i2 );
8427 }
8428 
8429 void syswapr(
8430  lapack::Uplo uplo, int64_t n,
8431  double* A, int64_t lda, int64_t i1, int64_t i2 );
8432 
8433 // heswapr alias to syswapr
8434 inline void heswapr(
8435  lapack::Uplo uplo, int64_t n,
8436  double* A, int64_t lda, int64_t i1, int64_t i2 )
8437 {
8438  return syswapr( uplo, n, A, lda, i1, i2 );
8439 }
8440 
8441 void syswapr(
8442  lapack::Uplo uplo, int64_t n,
8443  std::complex<float>* A, int64_t lda, int64_t i1, int64_t i2 );
8444 
8445 void syswapr(
8446  lapack::Uplo uplo, int64_t n,
8447  std::complex<double>* A, int64_t lda, int64_t i1, int64_t i2 );
8448 
8449 // -----------------------------------------------------------------------------
8450 int64_t sytrd(
8451  lapack::Uplo uplo, int64_t n,
8452  float* A, int64_t lda,
8453  float* D,
8454  float* E,
8455  float* tau );
8456 
8457 // hetrd alias to sytrd
8458 inline int64_t hetrd(
8459  lapack::Uplo uplo, int64_t n,
8460  float* A, int64_t lda,
8461  float* D,
8462  float* E,
8463  float* tau )
8464 {
8465  return sytrd( uplo, n, A, lda, D, E, tau );
8466 }
8467 
8468 int64_t sytrd(
8469  lapack::Uplo uplo, int64_t n,
8470  double* A, int64_t lda,
8471  double* D,
8472  double* E,
8473  double* tau );
8474 
8475 // hetrd alias to sytrd
8476 inline int64_t hetrd(
8477  lapack::Uplo uplo, int64_t n,
8478  double* A, int64_t lda,
8479  double* D,
8480  double* E,
8481  double* tau )
8482 {
8483  return sytrd( uplo, n, A, lda, D, E, tau );
8484 }
8485 
8486 // -----------------------------------------------------------------------------
8487 int64_t sytrd_2stage(
8488  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8489  float* A, int64_t lda,
8490  float* D,
8491  float* E,
8492  float* tau,
8493  float* hous2, int64_t lhous2 );
8494 
8495 // hetrd_2stage alias to sytrd_2stage
8496 inline int64_t hetrd_2stage(
8497  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8498  float* A, int64_t lda,
8499  float* D,
8500  float* E,
8501  float* tau,
8502  float* hous2, int64_t lhous2 )
8503 {
8504  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8505 }
8506 
8507 int64_t sytrd_2stage(
8508  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8509  double* A, int64_t lda,
8510  double* D,
8511  double* E,
8512  double* tau,
8513  double* hous2, int64_t lhous2 );
8514 
8515 // hetrd_2stage alias to sytrd_2stage
8516 inline int64_t hetrd_2stage(
8517  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8518  double* A, int64_t lda,
8519  double* D,
8520  double* E,
8521  double* tau,
8522  double* hous2, int64_t lhous2 )
8523 {
8524  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8525 }
8526 
8527 // -----------------------------------------------------------------------------
8528 int64_t sytrf(
8529  lapack::Uplo uplo, int64_t n,
8530  float* A, int64_t lda,
8531  int64_t* ipiv );
8532 
8533 // hetrf alias to sytrf
8534 inline int64_t hetrf(
8535  lapack::Uplo uplo, int64_t n,
8536  float* A, int64_t lda,
8537  int64_t* ipiv )
8538 {
8539  return sytrf( uplo, n, A, lda, ipiv );
8540 }
8541 
8542 int64_t sytrf(
8543  lapack::Uplo uplo, int64_t n,
8544  double* A, int64_t lda,
8545  int64_t* ipiv );
8546 
8547 // hetrf alias to sytrf
8548 inline int64_t hetrf(
8549  lapack::Uplo uplo, int64_t n,
8550  double* A, int64_t lda,
8551  int64_t* ipiv )
8552 {
8553  return sytrf( uplo, n, A, lda, ipiv );
8554 }
8555 
8556 int64_t sytrf(
8557  lapack::Uplo uplo, int64_t n,
8558  std::complex<float>* A, int64_t lda,
8559  int64_t* ipiv );
8560 
8561 int64_t sytrf(
8562  lapack::Uplo uplo, int64_t n,
8563  std::complex<double>* A, int64_t lda,
8564  int64_t* ipiv );
8565 
8566 // -----------------------------------------------------------------------------
8567 int64_t sytrf_aa(
8568  lapack::Uplo uplo, int64_t n,
8569  float* A, int64_t lda,
8570  int64_t* ipiv );
8571 
8572 // hetrf_aa alias to sytrf_aa
8573 inline int64_t hetrf_aa(
8574  lapack::Uplo uplo, int64_t n,
8575  float* A, int64_t lda,
8576  int64_t* ipiv )
8577 {
8578  return sytrf_aa( uplo, n, A, lda, ipiv );
8579 }
8580 
8581 int64_t sytrf_aa(
8582  lapack::Uplo uplo, int64_t n,
8583  double* A, int64_t lda,
8584  int64_t* ipiv );
8585 
8586 // hetrf_aa alias to sytrf_aa
8587 inline int64_t hetrf_aa(
8588  lapack::Uplo uplo, int64_t n,
8589  double* A, int64_t lda,
8590  int64_t* ipiv )
8591 {
8592  return sytrf_aa( uplo, n, A, lda, ipiv );
8593 }
8594 
8595 int64_t sytrf_aa(
8596  lapack::Uplo uplo, int64_t n,
8597  std::complex<float>* A, int64_t lda,
8598  int64_t* ipiv );
8599 
8600 int64_t sytrf_aa(
8601  lapack::Uplo uplo, int64_t n,
8602  std::complex<double>* A, int64_t lda,
8603  int64_t* ipiv );
8604 
8605 // -----------------------------------------------------------------------------
8606 int64_t sytrf_rk(
8607  lapack::Uplo uplo, int64_t n,
8608  float* A, int64_t lda,
8609  float* E,
8610  int64_t* ipiv );
8611 
8612 // hetrf_rk alias to sytrf_rk
8613 inline int64_t hetrf_rk(
8614  lapack::Uplo uplo, int64_t n,
8615  float* A, int64_t lda,
8616  float* E,
8617  int64_t* ipiv )
8618 {
8619  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8620 }
8621 
8622 int64_t sytrf_rk(
8623  lapack::Uplo uplo, int64_t n,
8624  double* A, int64_t lda,
8625  double* E,
8626  int64_t* ipiv );
8627 
8628 // hetrf_rk alias to sytrf_rk
8629 inline int64_t hetrf_rk(
8630  lapack::Uplo uplo, int64_t n,
8631  double* A, int64_t lda,
8632  double* E,
8633  int64_t* ipiv )
8634 {
8635  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8636 }
8637 
8638 int64_t sytrf_rk(
8639  lapack::Uplo uplo, int64_t n,
8640  std::complex<float>* A, int64_t lda,
8641  std::complex<float>* E,
8642  int64_t* ipiv );
8643 
8644 int64_t sytrf_rk(
8645  lapack::Uplo uplo, int64_t n,
8646  std::complex<double>* A, int64_t lda,
8647  std::complex<double>* E,
8648  int64_t* ipiv );
8649 
8650 // -----------------------------------------------------------------------------
8651 int64_t sytrf_rook(
8652  lapack::Uplo uplo, int64_t n,
8653  float* A, int64_t lda,
8654  int64_t* ipiv );
8655 
8656 // hetrf_rook alias to sytrf_rook
8657 inline int64_t hetrf_rook(
8658  lapack::Uplo uplo, int64_t n,
8659  float* A, int64_t lda,
8660  int64_t* ipiv )
8661 {
8662  return sytrf_rook( uplo, n, A, lda, ipiv );
8663 }
8664 
8665 int64_t sytrf_rook(
8666  lapack::Uplo uplo, int64_t n,
8667  double* A, int64_t lda,
8668  int64_t* ipiv );
8669 
8670 // hetrf_rook alias to sytrf_rook
8671 inline int64_t hetrf_rook(
8672  lapack::Uplo uplo, int64_t n,
8673  double* A, int64_t lda,
8674  int64_t* ipiv )
8675 {
8676  return sytrf_rook( uplo, n, A, lda, ipiv );
8677 }
8678 
8679 int64_t sytrf_rook(
8680  lapack::Uplo uplo, int64_t n,
8681  std::complex<float>* A, int64_t lda,
8682  int64_t* ipiv );
8683 
8684 int64_t sytrf_rook(
8685  lapack::Uplo uplo, int64_t n,
8686  std::complex<double>* A, int64_t lda,
8687  int64_t* ipiv );
8688 
8689 // -----------------------------------------------------------------------------
8690 int64_t sytri(
8691  lapack::Uplo uplo, int64_t n,
8692  float* A, int64_t lda,
8693  int64_t const* ipiv );
8694 
8695 // hetri alias to sytri
8696 inline int64_t hetri(
8697  lapack::Uplo uplo, int64_t n,
8698  float* A, int64_t lda,
8699  int64_t const* ipiv )
8700 {
8701  return sytri( uplo, n, A, lda, ipiv );
8702 }
8703 
8704 int64_t sytri(
8705  lapack::Uplo uplo, int64_t n,
8706  double* A, int64_t lda,
8707  int64_t const* ipiv );
8708 
8709 // hetri alias to sytri
8710 inline int64_t hetri(
8711  lapack::Uplo uplo, int64_t n,
8712  double* A, int64_t lda,
8713  int64_t const* ipiv )
8714 {
8715  return sytri( uplo, n, A, lda, ipiv );
8716 }
8717 
8718 int64_t sytri(
8719  lapack::Uplo uplo, int64_t n,
8720  std::complex<float>* A, int64_t lda,
8721  int64_t const* ipiv );
8722 
8723 int64_t sytri(
8724  lapack::Uplo uplo, int64_t n,
8725  std::complex<double>* A, int64_t lda,
8726  int64_t const* ipiv );
8727 
8728 // -----------------------------------------------------------------------------
8729 int64_t sytri2(
8730  lapack::Uplo uplo, int64_t n,
8731  float* A, int64_t lda,
8732  int64_t const* ipiv );
8733 
8734 // hetri2 alias to sytri2
8735 inline int64_t hetri2(
8736  lapack::Uplo uplo, int64_t n,
8737  float* A, int64_t lda,
8738  int64_t const* ipiv )
8739 {
8740  return sytri2( uplo, n, A, lda, ipiv );
8741 }
8742 
8743 int64_t sytri2(
8744  lapack::Uplo uplo, int64_t n,
8745  double* A, int64_t lda,
8746  int64_t const* ipiv );
8747 
8748 // hetri2 alias to sytri2
8749 inline int64_t hetri2(
8750  lapack::Uplo uplo, int64_t n,
8751  double* A, int64_t lda,
8752  int64_t const* ipiv )
8753 {
8754  return sytri2( uplo, n, A, lda, ipiv );
8755 }
8756 
8757 int64_t sytri2(
8758  lapack::Uplo uplo, int64_t n,
8759  std::complex<float>* A, int64_t lda,
8760  int64_t const* ipiv );
8761 
8762 int64_t sytri2(
8763  lapack::Uplo uplo, int64_t n,
8764  std::complex<double>* A, int64_t lda,
8765  int64_t const* ipiv );
8766 
8767 // -----------------------------------------------------------------------------
8768 // sytri_rk wraps sytri_3
8769 int64_t sytri_rk(
8770  lapack::Uplo uplo, int64_t n,
8771  float* A, int64_t lda,
8772  float const* E,
8773  int64_t const* ipiv );
8774 
8775 // hetri_rk alias to sytri_rk
8776 inline int64_t hetri_rk(
8777  lapack::Uplo uplo, int64_t n,
8778  float* A, int64_t lda,
8779  float const* E,
8780  int64_t const* ipiv )
8781 {
8782  return sytri_rk( uplo, n, A, lda, E, ipiv );
8783 }
8784 
8785 int64_t sytri_rk(
8786  lapack::Uplo uplo, int64_t n,
8787  double* A, int64_t lda,
8788  double const* E,
8789  int64_t const* ipiv );
8790 
8791 // hetri_rk alias to sytri_rk
8792 inline int64_t hetri_rk(
8793  lapack::Uplo uplo, int64_t n,
8794  double* A, int64_t lda,
8795  double const* E,
8796  int64_t const* ipiv )
8797 {
8798  return sytri_rk( uplo, n, A, lda, E, ipiv );
8799 }
8800 
8801 int64_t sytri_rk(
8802  lapack::Uplo uplo, int64_t n,
8803  std::complex<float>* A, int64_t lda,
8804  std::complex<float> const* E,
8805  int64_t const* ipiv );
8806 
8807 int64_t sytri_rk(
8808  lapack::Uplo uplo, int64_t n,
8809  std::complex<double>* A, int64_t lda,
8810  std::complex<double> const* E,
8811  int64_t const* ipiv );
8812 
8813 // -----------------------------------------------------------------------------
8814 int64_t sytrs(
8815  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8816  float const* A, int64_t lda,
8817  int64_t const* ipiv,
8818  float* B, int64_t ldb );
8819 
8820 // hetrs alias to sytrs
8821 inline int64_t hetrs(
8822  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8823  float const* A, int64_t lda,
8824  int64_t const* ipiv,
8825  float* B, int64_t ldb )
8826 {
8827  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8828 }
8829 
8830 int64_t sytrs(
8831  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8832  double const* A, int64_t lda,
8833  int64_t const* ipiv,
8834  double* B, int64_t ldb );
8835 
8836 // hetrs alias to sytrs
8837 inline int64_t hetrs(
8838  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8839  double const* A, int64_t lda,
8840  int64_t const* ipiv,
8841  double* B, int64_t ldb )
8842 {
8843  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8844 }
8845 
8846 int64_t sytrs(
8847  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8848  std::complex<float> const* A, int64_t lda,
8849  int64_t const* ipiv,
8850  std::complex<float>* B, int64_t ldb );
8851 
8852 int64_t sytrs(
8853  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8854  std::complex<double> const* A, int64_t lda,
8855  int64_t const* ipiv,
8856  std::complex<double>* B, int64_t ldb );
8857 
8858 // -----------------------------------------------------------------------------
8859 int64_t sytrs2(
8860  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8861  float* A, int64_t lda,
8862  int64_t const* ipiv,
8863  float* B, int64_t ldb );
8864 
8865 // hetrs2 alias to sytrs2
8866 inline int64_t hetrs2(
8867  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8868  float* A, int64_t lda,
8869  int64_t const* ipiv,
8870  float* B, int64_t ldb )
8871 {
8872  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8873 }
8874 
8875 int64_t sytrs2(
8876  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8877  double* A, int64_t lda,
8878  int64_t const* ipiv,
8879  double* B, int64_t ldb );
8880 
8881 // hetrs2 alias to sytrs2
8882 inline int64_t hetrs2(
8883  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8884  double* A, int64_t lda,
8885  int64_t const* ipiv,
8886  double* B, int64_t ldb )
8887 {
8888  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8889 }
8890 
8891 int64_t sytrs2(
8892  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8893  std::complex<float>* A, int64_t lda,
8894  int64_t const* ipiv,
8895  std::complex<float>* B, int64_t ldb );
8896 
8897 int64_t sytrs2(
8898  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8899  std::complex<double>* A, int64_t lda,
8900  int64_t const* ipiv,
8901  std::complex<double>* B, int64_t ldb );
8902 
8903 // -----------------------------------------------------------------------------
8904 int64_t sytrs_aa(
8905  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8906  float const* A, int64_t lda,
8907  int64_t const* ipiv,
8908  float* B, int64_t ldb );
8909 
8910 // hetrs_aa alias to sytrs_aa
8911 inline int64_t hetrs_aa(
8912  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8913  float const* A, int64_t lda,
8914  int64_t const* ipiv,
8915  float* B, int64_t ldb )
8916 {
8917  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8918 }
8919 
8920 int64_t sytrs_aa(
8921  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8922  double const* A, int64_t lda,
8923  int64_t const* ipiv,
8924  double* B, int64_t ldb );
8925 
8926 // hetrs_aa alias to sytrs_aa
8927 inline int64_t hetrs_aa(
8928  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8929  double const* A, int64_t lda,
8930  int64_t const* ipiv,
8931  double* B, int64_t ldb )
8932 {
8933  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8934 }
8935 
8936 int64_t sytrs_aa(
8937  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8938  std::complex<float> const* A, int64_t lda,
8939  int64_t const* ipiv,
8940  std::complex<float>* B, int64_t ldb );
8941 
8942 int64_t sytrs_aa(
8943  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8944  std::complex<double> const* A, int64_t lda,
8945  int64_t const* ipiv,
8946  std::complex<double>* B, int64_t ldb );
8947 
8948 // -----------------------------------------------------------------------------
8949 // sytrs_rk wraps sytrs_3
8950 int64_t sytrs_rk(
8951  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8952  float const* A, int64_t lda,
8953  float const* E,
8954  int64_t const* ipiv,
8955  float* B, int64_t ldb );
8956 
8957 // hetrs_rk alias to sytrs_rk
8958 inline int64_t hetrs_rk(
8959  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8960  float const* A, int64_t lda,
8961  float const* E,
8962  int64_t const* ipiv,
8963  float* B, int64_t ldb )
8964 {
8965  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8966 }
8967 
8968 int64_t sytrs_rk(
8969  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8970  double const* A, int64_t lda,
8971  double const* E,
8972  int64_t const* ipiv,
8973  double* B, int64_t ldb );
8974 
8975 // hetrs_rk alias to sytrs_rk
8976 inline int64_t hetrs_rk(
8977  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8978  double const* A, int64_t lda,
8979  double const* E,
8980  int64_t const* ipiv,
8981  double* B, int64_t ldb )
8982 {
8983  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8984 }
8985 
8986 int64_t sytrs_rk(
8987  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8988  std::complex<float> const* A, int64_t lda,
8989  std::complex<float> const* E,
8990  int64_t const* ipiv,
8991  std::complex<float>* B, int64_t ldb );
8992 
8993 int64_t sytrs_rk(
8994  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8995  std::complex<double> const* A, int64_t lda,
8996  std::complex<double> const* E,
8997  int64_t const* ipiv,
8998  std::complex<double>* B, int64_t ldb );
8999 
9000 // -----------------------------------------------------------------------------
9001 int64_t sytrs_rook(
9002  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9003  float const* A, int64_t lda,
9004  int64_t const* ipiv,
9005  float* B, int64_t ldb );
9006 
9007 // hetrs_rook alias to sytrs_rook
9008 inline int64_t hetrs_rook(
9009  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9010  float const* A, int64_t lda,
9011  int64_t const* ipiv,
9012  float* B, int64_t ldb )
9013 {
9014  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9015 }
9016 
9017 int64_t sytrs_rook(
9018  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9019  double const* A, int64_t lda,
9020  int64_t const* ipiv,
9021  double* B, int64_t ldb );
9022 
9023 // hetrs_rook alias to sytrs_rook
9024 inline int64_t hetrs_rook(
9025  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9026  double const* A, int64_t lda,
9027  int64_t const* ipiv,
9028  double* B, int64_t ldb )
9029 {
9030  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9031 }
9032 
9033 int64_t sytrs_rook(
9034  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9035  std::complex<float> const* A, int64_t lda,
9036  int64_t const* ipiv,
9037  std::complex<float>* B, int64_t ldb );
9038 
9039 int64_t sytrs_rook(
9040  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9041  std::complex<double> const* A, int64_t lda,
9042  int64_t const* ipiv,
9043  std::complex<double>* B, int64_t ldb );
9044 
9045 // -----------------------------------------------------------------------------
9046 int64_t tbcon(
9047  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9048  float const* AB, int64_t ldab,
9049  float* rcond );
9050 
9051 int64_t tbcon(
9052  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9053  double const* AB, int64_t ldab,
9054  double* rcond );
9055 
9056 int64_t tbcon(
9057  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9058  std::complex<float> const* AB, int64_t ldab,
9059  float* rcond );
9060 
9061 int64_t tbcon(
9062  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9063  std::complex<double> const* AB, int64_t ldab,
9064  double* rcond );
9065 
9066 // -----------------------------------------------------------------------------
9067 int64_t tbrfs(
9068  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9069  float const* AB, int64_t ldab,
9070  float const* B, int64_t ldb,
9071  float const* X, int64_t ldx,
9072  float* ferr,
9073  float* berr );
9074 
9075 int64_t tbrfs(
9076  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9077  double const* AB, int64_t ldab,
9078  double const* B, int64_t ldb,
9079  double const* X, int64_t ldx,
9080  double* ferr,
9081  double* berr );
9082 
9083 int64_t tbrfs(
9084  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9085  std::complex<float> const* AB, int64_t ldab,
9086  std::complex<float> const* B, int64_t ldb,
9087  std::complex<float> const* X, int64_t ldx,
9088  float* ferr,
9089  float* berr );
9090 
9091 int64_t tbrfs(
9092  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9093  std::complex<double> const* AB, int64_t ldab,
9094  std::complex<double> const* B, int64_t ldb,
9095  std::complex<double> const* X, int64_t ldx,
9096  double* ferr,
9097  double* berr );
9098 
9099 // -----------------------------------------------------------------------------
9100 int64_t tbtrs(
9101  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9102  float const* AB, int64_t ldab,
9103  float* B, int64_t ldb );
9104 
9105 int64_t tbtrs(
9106  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9107  double const* AB, int64_t ldab,
9108  double* B, int64_t ldb );
9109 
9110 int64_t tbtrs(
9111  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9112  std::complex<float> const* AB, int64_t ldab,
9113  std::complex<float>* B, int64_t ldb );
9114 
9115 int64_t tbtrs(
9116  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9117  std::complex<double> const* AB, int64_t ldab,
9118  std::complex<double>* B, int64_t ldb );
9119 
9120 // -----------------------------------------------------------------------------
9121 void tfsm(
9122  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, float alpha,
9123  float const* A,
9124  float* B, int64_t ldb );
9125 
9126 void tfsm(
9127  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, double alpha,
9128  double const* A,
9129  double* B, int64_t ldb );
9130 
9131 void tfsm(
9132  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, std::complex<float> alpha,
9133  std::complex<float> const* A,
9134  std::complex<float>* B, int64_t ldb );
9135 
9136 void tfsm(
9137  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, std::complex<double> alpha,
9138  std::complex<double> const* A,
9139  std::complex<double>* B, int64_t ldb );
9140 
9141 // -----------------------------------------------------------------------------
9142 int64_t tftri(
9143  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9144  float* A );
9145 
9146 int64_t tftri(
9147  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9148  double* A );
9149 
9150 int64_t tftri(
9151  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9152  std::complex<float>* A );
9153 
9154 int64_t tftri(
9155  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9156  std::complex<double>* A );
9157 
9158 // -----------------------------------------------------------------------------
9159 int64_t tfttp(
9160  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9161  float const* ARF,
9162  float* AP );
9163 
9164 int64_t tfttp(
9165  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9166  double const* ARF,
9167  double* AP );
9168 
9169 int64_t tfttp(
9170  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9171  std::complex<float> const* ARF,
9172  std::complex<float>* AP );
9173 
9174 int64_t tfttp(
9175  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9176  std::complex<double> const* ARF,
9177  std::complex<double>* AP );
9178 
9179 // -----------------------------------------------------------------------------
9180 int64_t tfttr(
9181  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9182  float const* ARF,
9183  float* A, int64_t lda );
9184 
9185 int64_t tfttr(
9186  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9187  double const* ARF,
9188  double* A, int64_t lda );
9189 
9190 int64_t tfttr(
9191  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9192  std::complex<float> const* ARF,
9193  std::complex<float>* A, int64_t lda );
9194 
9195 int64_t tfttr(
9196  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9197  std::complex<double> const* ARF,
9198  std::complex<double>* A, int64_t lda );
9199 
9200 // -----------------------------------------------------------------------------
9201 int64_t tgsja(
9202  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9203  float* A, int64_t lda,
9204  float* B, int64_t ldb, float tola, float tolb,
9205  float* alpha,
9206  float* beta,
9207  float* U, int64_t ldu,
9208  float* V, int64_t ldv,
9209  float* Q, int64_t ldq,
9210  int64_t* ncycle );
9211 
9212 int64_t tgsja(
9213  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9214  double* A, int64_t lda,
9215  double* B, int64_t ldb, double tola, double tolb,
9216  double* alpha,
9217  double* beta,
9218  double* U, int64_t ldu,
9219  double* V, int64_t ldv,
9220  double* Q, int64_t ldq,
9221  int64_t* ncycle );
9222 
9223 int64_t tgsja(
9224  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9225  std::complex<float>* A, int64_t lda,
9226  std::complex<float>* B, int64_t ldb, float tola, float tolb,
9227  float* alpha,
9228  float* beta,
9229  std::complex<float>* U, int64_t ldu,
9230  std::complex<float>* V, int64_t ldv,
9231  std::complex<float>* Q, int64_t ldq,
9232  int64_t* ncycle );
9233 
9234 int64_t tgsja(
9235  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9236  std::complex<double>* A, int64_t lda,
9237  std::complex<double>* B, int64_t ldb, double tola, double tolb,
9238  double* alpha,
9239  double* beta,
9240  std::complex<double>* U, int64_t ldu,
9241  std::complex<double>* V, int64_t ldv,
9242  std::complex<double>* Q, int64_t ldq,
9243  int64_t* ncycle );
9244 
9245 // -----------------------------------------------------------------------------
9246 int64_t tgsyl(
9247  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9248  float const* A, int64_t lda,
9249  float const* B, int64_t ldb,
9250  float* C, int64_t ldc,
9251  float const* D, int64_t ldd,
9252  float const* E, int64_t lde,
9253  float* F, int64_t ldf,
9254  float* dif,
9255  float* scale );
9256 
9257 int64_t tgsyl(
9258  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9259  double const* A, int64_t lda,
9260  double const* B, int64_t ldb,
9261  double* C, int64_t ldc,
9262  double const* D, int64_t ldd,
9263  double const* E, int64_t lde,
9264  double* F, int64_t ldf,
9265  double* dif,
9266  double* scale );
9267 
9268 int64_t tgsyl(
9269  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9270  std::complex<float> const* A, int64_t lda,
9271  std::complex<float> const* B, int64_t ldb,
9272  std::complex<float>* C, int64_t ldc,
9273  std::complex<float> const* D, int64_t ldd,
9274  std::complex<float> const* E, int64_t lde,
9275  std::complex<float>* F, int64_t ldf,
9276  float* dif,
9277  float* scale );
9278 
9279 int64_t tgsyl(
9280  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9281  std::complex<double> const* A, int64_t lda,
9282  std::complex<double> const* B, int64_t ldb,
9283  std::complex<double>* C, int64_t ldc,
9284  std::complex<double> const* D, int64_t ldd,
9285  std::complex<double> const* E, int64_t lde,
9286  std::complex<double>* F, int64_t ldf,
9287  double* dif,
9288  double* scale );
9289 
9290 // -----------------------------------------------------------------------------
9291 int64_t tpcon(
9292  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9293  float const* AP,
9294  float* rcond );
9295 
9296 int64_t tpcon(
9297  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9298  double const* AP,
9299  double* rcond );
9300 
9301 int64_t tpcon(
9302  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9303  std::complex<float> const* AP,
9304  float* rcond );
9305 
9306 int64_t tpcon(
9307  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9308  std::complex<double> const* AP,
9309  double* rcond );
9310 
9311 // -----------------------------------------------------------------------------
9312 int64_t tplqt(
9313  int64_t m, int64_t n, int64_t l, int64_t mb,
9314  float* A, int64_t lda,
9315  float* B, int64_t ldb,
9316  float* T, int64_t ldt );
9317 
9318 int64_t tplqt(
9319  int64_t m, int64_t n, int64_t l, int64_t mb,
9320  double* A, int64_t lda,
9321  double* B, int64_t ldb,
9322  double* T, int64_t ldt );
9323 
9324 int64_t tplqt(
9325  int64_t m, int64_t n, int64_t l, int64_t mb,
9326  std::complex<float>* A, int64_t lda,
9327  std::complex<float>* B, int64_t ldb,
9328  std::complex<float>* T, int64_t ldt );
9329 
9330 int64_t tplqt(
9331  int64_t m, int64_t n, int64_t l, int64_t mb,
9332  std::complex<double>* A, int64_t lda,
9333  std::complex<double>* B, int64_t ldb,
9334  std::complex<double>* T, int64_t ldt );
9335 
9336 // -----------------------------------------------------------------------------
9337 int64_t tplqt2(
9338  int64_t m, int64_t n, int64_t l,
9339  float* A, int64_t lda,
9340  float* B, int64_t ldb,
9341  float* T, int64_t ldt );
9342 
9343 int64_t tplqt2(
9344  int64_t m, int64_t n, int64_t l,
9345  double* A, int64_t lda,
9346  double* B, int64_t ldb,
9347  double* T, int64_t ldt );
9348 
9349 int64_t tplqt2(
9350  int64_t m, int64_t n, int64_t l,
9351  std::complex<float>* A, int64_t lda,
9352  std::complex<float>* B, int64_t ldb,
9353  std::complex<float>* T, int64_t ldt );
9354 
9355 int64_t tplqt2(
9356  int64_t m, int64_t n, int64_t l,
9357  std::complex<double>* A, int64_t lda,
9358  std::complex<double>* B, int64_t ldb,
9359  std::complex<double>* T, int64_t ldt );
9360 
9361 // -----------------------------------------------------------------------------
9362 int64_t tpmlqt(
9363  lapack::Side side, lapack::Op trans,
9364  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9365  float const* V, int64_t ldv,
9366  float const* T, int64_t ldt,
9367  float* A, int64_t lda,
9368  float* B, int64_t ldb );
9369 
9370 int64_t tpmlqt(
9371  lapack::Side side, lapack::Op trans,
9372  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9373  double const* V, int64_t ldv,
9374  double const* T, int64_t ldt,
9375  double* A, int64_t lda,
9376  double* B, int64_t ldb );
9377 
9378 int64_t tpmlqt(
9379  lapack::Side side, lapack::Op trans,
9380  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9381  std::complex<float> const* V, int64_t ldv,
9382  std::complex<float> const* T, int64_t ldt,
9383  std::complex<float>* A, int64_t lda,
9384  std::complex<float>* B, int64_t ldb );
9385 
9386 int64_t tpmlqt(
9387  lapack::Side side, lapack::Op trans,
9388  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9389  std::complex<double> const* V, int64_t ldv,
9390  std::complex<double> const* T, int64_t ldt,
9391  std::complex<double>* A, int64_t lda,
9392  std::complex<double>* B, int64_t ldb );
9393 
9394 // -----------------------------------------------------------------------------
9395 int64_t tpmqrt(
9396  lapack::Side side, lapack::Op trans,
9397  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9398  float const* V, int64_t ldv,
9399  float const* T, int64_t ldt,
9400  float* A, int64_t lda,
9401  float* B, int64_t ldb );
9402 
9403 int64_t tpmqrt(
9404  lapack::Side side, lapack::Op trans,
9405  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9406  double const* V, int64_t ldv,
9407  double const* T, int64_t ldt,
9408  double* A, int64_t lda,
9409  double* B, int64_t ldb );
9410 
9411 int64_t tpmqrt(
9412  lapack::Side side, lapack::Op trans,
9413  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9414  std::complex<float> const* V, int64_t ldv,
9415  std::complex<float> const* T, int64_t ldt,
9416  std::complex<float>* A, int64_t lda,
9417  std::complex<float>* B, int64_t ldb );
9418 
9419 int64_t tpmqrt(
9420  lapack::Side side, lapack::Op trans,
9421  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9422  std::complex<double> const* V, int64_t ldv,
9423  std::complex<double> const* T, int64_t ldt,
9424  std::complex<double>* A, int64_t lda,
9425  std::complex<double>* B, int64_t ldb );
9426 
9427 // -----------------------------------------------------------------------------
9428 int64_t tpqrt(
9429  int64_t m, int64_t n, int64_t l, int64_t nb,
9430  float* A, int64_t lda,
9431  float* B, int64_t ldb,
9432  float* T, int64_t ldt );
9433 
9434 int64_t tpqrt(
9435  int64_t m, int64_t n, int64_t l, int64_t nb,
9436  double* A, int64_t lda,
9437  double* B, int64_t ldb,
9438  double* T, int64_t ldt );
9439 
9440 int64_t tpqrt(
9441  int64_t m, int64_t n, int64_t l, int64_t nb,
9442  std::complex<float>* A, int64_t lda,
9443  std::complex<float>* B, int64_t ldb,
9444  std::complex<float>* T, int64_t ldt );
9445 
9446 int64_t tpqrt(
9447  int64_t m, int64_t n, int64_t l, int64_t nb,
9448  std::complex<double>* A, int64_t lda,
9449  std::complex<double>* B, int64_t ldb,
9450  std::complex<double>* T, int64_t ldt );
9451 
9452 // -----------------------------------------------------------------------------
9453 int64_t tpqrt2(
9454  int64_t m, int64_t n, int64_t l,
9455  float* A, int64_t lda,
9456  float* B, int64_t ldb,
9457  float* T, int64_t ldt );
9458 
9459 int64_t tpqrt2(
9460  int64_t m, int64_t n, int64_t l,
9461  double* A, int64_t lda,
9462  double* B, int64_t ldb,
9463  double* T, int64_t ldt );
9464 
9465 int64_t tpqrt2(
9466  int64_t m, int64_t n, int64_t l,
9467  std::complex<float>* A, int64_t lda,
9468  std::complex<float>* B, int64_t ldb,
9469  std::complex<float>* T, int64_t ldt );
9470 
9471 int64_t tpqrt2(
9472  int64_t m, int64_t n, int64_t l,
9473  std::complex<double>* A, int64_t lda,
9474  std::complex<double>* B, int64_t ldb,
9475  std::complex<double>* T, int64_t ldt );
9476 
9477 // -----------------------------------------------------------------------------
9478 void tprfb(
9479  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9480  int64_t m, int64_t n, int64_t k, int64_t l,
9481  float const* V, int64_t ldv,
9482  float const* T, int64_t ldt,
9483  float* A, int64_t lda,
9484  float* B, int64_t ldb );
9485 
9486 void tprfb(
9487  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9488  int64_t m, int64_t n, int64_t k, int64_t l,
9489  double const* V, int64_t ldv,
9490  double const* T, int64_t ldt,
9491  double* A, int64_t lda,
9492  double* B, int64_t ldb );
9493 
9494 void tprfb(
9495  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9496  int64_t m, int64_t n, int64_t k, int64_t l,
9497  std::complex<float> const* V, int64_t ldv,
9498  std::complex<float> const* T, int64_t ldt,
9499  std::complex<float>* A, int64_t lda,
9500  std::complex<float>* B, int64_t ldb );
9501 
9502 void tprfb(
9503  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9504  int64_t m, int64_t n, int64_t k, int64_t l,
9505  std::complex<double> const* V, int64_t ldv,
9506  std::complex<double> const* T, int64_t ldt,
9507  std::complex<double>* A, int64_t lda,
9508  std::complex<double>* B, int64_t ldb );
9509 
9510 // -----------------------------------------------------------------------------
9511 int64_t tprfs(
9512  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9513  float const* AP,
9514  float const* B, int64_t ldb,
9515  float const* X, int64_t ldx,
9516  float* ferr,
9517  float* berr );
9518 
9519 int64_t tprfs(
9520  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9521  double const* AP,
9522  double const* B, int64_t ldb,
9523  double const* X, int64_t ldx,
9524  double* ferr,
9525  double* berr );
9526 
9527 int64_t tprfs(
9528  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9529  std::complex<float> const* AP,
9530  std::complex<float> const* B, int64_t ldb,
9531  std::complex<float> const* X, int64_t ldx,
9532  float* ferr,
9533  float* berr );
9534 
9535 int64_t tprfs(
9536  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9537  std::complex<double> const* AP,
9538  std::complex<double> const* B, int64_t ldb,
9539  std::complex<double> const* X, int64_t ldx,
9540  double* ferr,
9541  double* berr );
9542 
9543 // -----------------------------------------------------------------------------
9544 int64_t tptri(
9545  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9546  float* AP );
9547 
9548 int64_t tptri(
9549  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9550  double* AP );
9551 
9552 int64_t tptri(
9553  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9554  std::complex<float>* AP );
9555 
9556 int64_t tptri(
9557  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9558  std::complex<double>* AP );
9559 
9560 // -----------------------------------------------------------------------------
9561 int64_t tptrs(
9562  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9563  float const* AP,
9564  float* B, int64_t ldb );
9565 
9566 int64_t tptrs(
9567  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9568  double const* AP,
9569  double* B, int64_t ldb );
9570 
9571 int64_t tptrs(
9572  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9573  std::complex<float> const* AP,
9574  std::complex<float>* B, int64_t ldb );
9575 
9576 int64_t tptrs(
9577  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9578  std::complex<double> const* AP,
9579  std::complex<double>* B, int64_t ldb );
9580 
9581 // -----------------------------------------------------------------------------
9582 int64_t tpttf(
9583  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9584  float const* AP,
9585  float* ARF );
9586 
9587 int64_t tpttf(
9588  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9589  double const* AP,
9590  double* ARF );
9591 
9592 int64_t tpttf(
9593  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9594  std::complex<float> const* AP,
9595  std::complex<float>* ARF );
9596 
9597 int64_t tpttf(
9598  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9599  std::complex<double> const* AP,
9600  std::complex<double>* ARF );
9601 
9602 // -----------------------------------------------------------------------------
9603 int64_t tpttr(
9604  lapack::Uplo uplo, int64_t n,
9605  float const* AP,
9606  float* A, int64_t lda );
9607 
9608 int64_t tpttr(
9609  lapack::Uplo uplo, int64_t n,
9610  double const* AP,
9611  double* A, int64_t lda );
9612 
9613 int64_t tpttr(
9614  lapack::Uplo uplo, int64_t n,
9615  std::complex<float> const* AP,
9616  std::complex<float>* A, int64_t lda );
9617 
9618 int64_t tpttr(
9619  lapack::Uplo uplo, int64_t n,
9620  std::complex<double> const* AP,
9621  std::complex<double>* A, int64_t lda );
9622 
9623 // -----------------------------------------------------------------------------
9624 int64_t trcon(
9625  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9626  float const* A, int64_t lda,
9627  float* rcond );
9628 
9629 int64_t trcon(
9630  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9631  double const* A, int64_t lda,
9632  double* rcond );
9633 
9634 int64_t trcon(
9635  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9636  std::complex<float> const* A, int64_t lda,
9637  float* rcond );
9638 
9639 int64_t trcon(
9640  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9641  std::complex<double> const* A, int64_t lda,
9642  double* rcond );
9643 
9644 // -----------------------------------------------------------------------------
9645 int64_t trevc(
9646  lapack::Sides side, lapack::HowMany howmany,
9647  bool* select, int64_t n,
9648  float const* T, int64_t ldt,
9649  float* VL, int64_t ldvl,
9650  float* VR, int64_t ldvr,
9651  int64_t mm, int64_t* m );
9652 
9653 int64_t trevc(
9654  lapack::Sides side, lapack::HowMany howmany,
9655  bool* select, int64_t n,
9656  double const* T, int64_t ldt,
9657  double* VL, int64_t ldvl,
9658  double* VR, int64_t ldvr,
9659  int64_t mm, int64_t* m );
9660 
9661 int64_t trevc(
9662  lapack::Sides side, lapack::HowMany howmany,
9663  bool const* select, int64_t n,
9664  std::complex<float>* T, int64_t ldt,
9665  std::complex<float>* VL, int64_t ldvl,
9666  std::complex<float>* VR, int64_t ldvr,
9667  int64_t mm, int64_t* m );
9668 
9669 int64_t trevc(
9670  lapack::Sides side, lapack::HowMany howmany,
9671  bool const* select, int64_t n,
9672  std::complex<double>* T, int64_t ldt,
9673  std::complex<double>* VL, int64_t ldvl,
9674  std::complex<double>* VR, int64_t ldvr,
9675  int64_t mm, int64_t* m );
9676 
9677 // -----------------------------------------------------------------------------
9678 int64_t trevc3(
9679  lapack::Sides side, lapack::HowMany howmany,
9680  bool* select, int64_t n,
9681  float const* T, int64_t ldt,
9682  float* VL, int64_t ldvl,
9683  float* VR, int64_t ldvr,
9684  int64_t mm, int64_t* m );
9685 
9686 int64_t trevc3(
9687  lapack::Sides side, lapack::HowMany howmany,
9688  bool* select, int64_t n,
9689  double const* T, int64_t ldt,
9690  double* VL, int64_t ldvl,
9691  double* VR, int64_t ldvr,
9692  int64_t mm, int64_t* m );
9693 
9694 int64_t trevc3(
9695  lapack::Sides side, lapack::HowMany howmany,
9696  bool const* select, int64_t n,
9697  std::complex<float>* T, int64_t ldt,
9698  std::complex<float>* VL, int64_t ldvl,
9699  std::complex<float>* VR, int64_t ldvr,
9700  int64_t mm, int64_t* m );
9701 
9702 int64_t trevc3(
9703  lapack::Sides side, lapack::HowMany howmany,
9704  bool const* select, int64_t n,
9705  std::complex<double>* T, int64_t ldt,
9706  std::complex<double>* VL, int64_t ldvl,
9707  std::complex<double>* VR, int64_t ldvr,
9708  int64_t mm, int64_t* m );
9709 
9710 // -----------------------------------------------------------------------------
9711 int64_t trexc(
9712  lapack::Job compq, int64_t n,
9713  float* T, int64_t ldt,
9714  float* Q, int64_t ldq,
9715  int64_t* ifst,
9716  int64_t* ilst );
9717 
9718 int64_t trexc(
9719  lapack::Job compq, int64_t n,
9720  double* T, int64_t ldt,
9721  double* Q, int64_t ldq,
9722  int64_t* ifst,
9723  int64_t* ilst );
9724 
9725 int64_t trexc(
9726  lapack::Job compq, int64_t n,
9727  std::complex<float>* T, int64_t ldt,
9728  std::complex<float>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9729 
9730 int64_t trexc(
9731  lapack::Job compq, int64_t n,
9732  std::complex<double>* T, int64_t ldt,
9733  std::complex<double>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9734 
9735 // -----------------------------------------------------------------------------
9736 int64_t trrfs(
9737  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9738  float const* A, int64_t lda,
9739  float const* B, int64_t ldb,
9740  float const* X, int64_t ldx,
9741  float* ferr,
9742  float* berr );
9743 
9744 int64_t trrfs(
9745  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9746  double const* A, int64_t lda,
9747  double const* B, int64_t ldb,
9748  double const* X, int64_t ldx,
9749  double* ferr,
9750  double* berr );
9751 
9752 int64_t trrfs(
9753  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9754  std::complex<float> const* A, int64_t lda,
9755  std::complex<float> const* B, int64_t ldb,
9756  std::complex<float> const* X, int64_t ldx,
9757  float* ferr,
9758  float* berr );
9759 
9760 int64_t trrfs(
9761  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9762  std::complex<double> const* A, int64_t lda,
9763  std::complex<double> const* B, int64_t ldb,
9764  std::complex<double> const* X, int64_t ldx,
9765  double* ferr,
9766  double* berr );
9767 
9768 // -----------------------------------------------------------------------------
9769 int64_t trsen(
9770  lapack::Sense sense, lapack::Job compq,
9771  bool const* select, int64_t n,
9772  float* T, int64_t ldt,
9773  float* Q, int64_t ldq,
9774  std::complex<float>* W,
9775  int64_t* m,
9776  float* s,
9777  float* sep );
9778 
9779 int64_t trsen(
9780  lapack::Sense sense, lapack::Job compq,
9781  bool const* select, int64_t n,
9782  double* T, int64_t ldt,
9783  double* Q, int64_t ldq,
9784  std::complex<double>* W,
9785  int64_t* m,
9786  double* s,
9787  double* sep );
9788 
9789 int64_t trsen(
9790  lapack::Sense sense, lapack::Job compq,
9791  bool const* select, int64_t n,
9792  std::complex<float>* T, int64_t ldt,
9793  std::complex<float>* Q, int64_t ldq,
9794  std::complex<float>* W,
9795  int64_t* m,
9796  float* s,
9797  float* sep );
9798 
9799 int64_t trsen(
9800  lapack::Sense sense, lapack::Job compq,
9801  bool const* select, int64_t n,
9802  std::complex<double>* T, int64_t ldt,
9803  std::complex<double>* Q, int64_t ldq,
9804  std::complex<double>* W,
9805  int64_t* m,
9806  double* s,
9807  double* sep );
9808 
9809 // -----------------------------------------------------------------------------
9810 int64_t trtri(
9811  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9812  float* A, int64_t lda );
9813 
9814 int64_t trtri(
9815  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9816  double* A, int64_t lda );
9817 
9818 int64_t trtri(
9819  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9820  std::complex<float>* A, int64_t lda );
9821 
9822 int64_t trtri(
9823  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9824  std::complex<double>* A, int64_t lda );
9825 
9826 // -----------------------------------------------------------------------------
9827 int64_t trtrs(
9828  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9829  float const* A, int64_t lda,
9830  float* B, int64_t ldb );
9831 
9832 int64_t trtrs(
9833  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9834  double const* A, int64_t lda,
9835  double* B, int64_t ldb );
9836 
9837 int64_t trtrs(
9838  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9839  std::complex<float> const* A, int64_t lda,
9840  std::complex<float>* B, int64_t ldb );
9841 
9842 int64_t trtrs(
9843  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9844  std::complex<double> const* A, int64_t lda,
9845  std::complex<double>* B, int64_t ldb );
9846 
9847 // -----------------------------------------------------------------------------
9848 int64_t trttf(
9849  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9850  float const* A, int64_t lda,
9851  float* ARF );
9852 
9853 int64_t trttf(
9854  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9855  double const* A, int64_t lda,
9856  double* ARF );
9857 
9858 int64_t trttf(
9859  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9860  std::complex<float> const* A, int64_t lda,
9861  std::complex<float>* ARF );
9862 
9863 int64_t trttf(
9864  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9865  std::complex<double> const* A, int64_t lda,
9866  std::complex<double>* ARF );
9867 
9868 // -----------------------------------------------------------------------------
9869 int64_t trttp(
9870  lapack::Uplo uplo, int64_t n,
9871  float const* A, int64_t lda,
9872  float* AP );
9873 
9874 int64_t trttp(
9875  lapack::Uplo uplo, int64_t n,
9876  double const* A, int64_t lda,
9877  double* AP );
9878 
9879 int64_t trttp(
9880  lapack::Uplo uplo, int64_t n,
9881  std::complex<float> const* A, int64_t lda,
9882  std::complex<float>* AP );
9883 
9884 int64_t trttp(
9885  lapack::Uplo uplo, int64_t n,
9886  std::complex<double> const* A, int64_t lda,
9887  std::complex<double>* AP );
9888 
9889 // -----------------------------------------------------------------------------
9890 int64_t tzrzf(
9891  int64_t m, int64_t n,
9892  float* A, int64_t lda,
9893  float* tau );
9894 
9895 int64_t tzrzf(
9896  int64_t m, int64_t n,
9897  double* A, int64_t lda,
9898  double* tau );
9899 
9900 int64_t tzrzf(
9901  int64_t m, int64_t n,
9902  std::complex<float>* A, int64_t lda,
9903  std::complex<float>* tau );
9904 
9905 int64_t tzrzf(
9906  int64_t m, int64_t n,
9907  std::complex<double>* A, int64_t lda,
9908  std::complex<double>* tau );
9909 
9910 // -----------------------------------------------------------------------------
9911 int64_t ungbr(
9912  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9913  std::complex<float>* A, int64_t lda,
9914  std::complex<float> const* tau );
9915 
9916 int64_t ungbr(
9917  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9918  std::complex<double>* A, int64_t lda,
9919  std::complex<double> const* tau );
9920 
9921 // -----------------------------------------------------------------------------
9922 int64_t unghr(
9923  int64_t n, int64_t ilo, int64_t ihi,
9924  std::complex<float>* A, int64_t lda,
9925  std::complex<float> const* tau );
9926 
9927 int64_t unghr(
9928  int64_t n, int64_t ilo, int64_t ihi,
9929  std::complex<double>* A, int64_t lda,
9930  std::complex<double> const* tau );
9931 
9932 // -----------------------------------------------------------------------------
9933 int64_t unglq(
9934  int64_t m, int64_t n, int64_t k,
9935  std::complex<float>* A, int64_t lda,
9936  std::complex<float> const* tau );
9937 
9938 int64_t unglq(
9939  int64_t m, int64_t n, int64_t k,
9940  std::complex<double>* A, int64_t lda,
9941  std::complex<double> const* tau );
9942 
9943 // -----------------------------------------------------------------------------
9944 int64_t ungql(
9945  int64_t m, int64_t n, int64_t k,
9946  std::complex<float>* A, int64_t lda,
9947  std::complex<float> const* tau );
9948 
9949 int64_t ungql(
9950  int64_t m, int64_t n, int64_t k,
9951  std::complex<double>* A, int64_t lda,
9952  std::complex<double> const* tau );
9953 
9954 // -----------------------------------------------------------------------------
9955 int64_t ungqr(
9956  int64_t m, int64_t n, int64_t k,
9957  std::complex<float>* A, int64_t lda,
9958  std::complex<float> const* tau );
9959 
9960 int64_t ungqr(
9961  int64_t m, int64_t n, int64_t k,
9962  std::complex<double>* A, int64_t lda,
9963  std::complex<double> const* tau );
9964 
9965 // -----------------------------------------------------------------------------
9966 int64_t ungrq(
9967  int64_t m, int64_t n, int64_t k,
9968  std::complex<float>* A, int64_t lda,
9969  std::complex<float> const* tau );
9970 
9971 int64_t ungrq(
9972  int64_t m, int64_t n, int64_t k,
9973  std::complex<double>* A, int64_t lda,
9974  std::complex<double> const* tau );
9975 
9976 // -----------------------------------------------------------------------------
9977 int64_t ungtr(
9978  lapack::Uplo uplo, int64_t n,
9979  std::complex<float>* A, int64_t lda,
9980  std::complex<float> const* tau );
9981 
9982 int64_t ungtr(
9983  lapack::Uplo uplo, int64_t n,
9984  std::complex<double>* A, int64_t lda,
9985  std::complex<double> const* tau );
9986 
9987 // -----------------------------------------------------------------------------
9988 int64_t unmbr(
9989  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
9990  std::complex<float> const* A, int64_t lda,
9991  std::complex<float> const* tau,
9992  std::complex<float>* C, int64_t ldc );
9993 
9994 int64_t unmbr(
9995  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
9996  std::complex<double> const* A, int64_t lda,
9997  std::complex<double> const* tau,
9998  std::complex<double>* C, int64_t ldc );
9999 
10000 // -----------------------------------------------------------------------------
10001 int64_t unmhr(
10002  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10003  std::complex<float> const* A, int64_t lda,
10004  std::complex<float> const* tau,
10005  std::complex<float>* C, int64_t ldc );
10006 
10007 int64_t unmhr(
10008  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10009  std::complex<double> const* A, int64_t lda,
10010  std::complex<double> const* tau,
10011  std::complex<double>* C, int64_t ldc );
10012 
10013 // -----------------------------------------------------------------------------
10014 int64_t unmlq(
10015  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10016  std::complex<float> const* A, int64_t lda,
10017  std::complex<float> const* tau,
10018  std::complex<float>* C, int64_t ldc );
10019 
10020 int64_t unmlq(
10021  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10022  std::complex<double> const* A, int64_t lda,
10023  std::complex<double> const* tau,
10024  std::complex<double>* C, int64_t ldc );
10025 
10026 // -----------------------------------------------------------------------------
10027 int64_t unmql(
10028  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10029  std::complex<float> const* A, int64_t lda,
10030  std::complex<float> const* tau,
10031  std::complex<float>* C, int64_t ldc );
10032 
10033 int64_t unmql(
10034  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10035  std::complex<double> const* A, int64_t lda,
10036  std::complex<double> const* tau,
10037  std::complex<double>* C, int64_t ldc );
10038 
10039 // -----------------------------------------------------------------------------
10040 int64_t unmqr(
10041  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10042  std::complex<float> const* A, int64_t lda,
10043  std::complex<float> const* tau,
10044  std::complex<float>* C, int64_t ldc );
10045 
10046 int64_t unmqr(
10047  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10048  std::complex<double> const* A, int64_t lda,
10049  std::complex<double> const* tau,
10050  std::complex<double>* C, int64_t ldc );
10051 
10052 // -----------------------------------------------------------------------------
10053 int64_t unmrq(
10054  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10055  std::complex<float> const* A, int64_t lda,
10056  std::complex<float> const* tau,
10057  std::complex<float>* C, int64_t ldc );
10058 
10059 int64_t unmrq(
10060  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10061  std::complex<double> const* A, int64_t lda,
10062  std::complex<double> const* tau,
10063  std::complex<double>* C, int64_t ldc );
10064 
10065 // -----------------------------------------------------------------------------
10066 int64_t unmrz(
10067  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10068  std::complex<float> const* A, int64_t lda,
10069  std::complex<float> const* tau,
10070  std::complex<float>* C, int64_t ldc );
10071 
10072 int64_t unmrz(
10073  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10074  std::complex<double> const* A, int64_t lda,
10075  std::complex<double> const* tau,
10076  std::complex<double>* C, int64_t ldc );
10077 
10078 // -----------------------------------------------------------------------------
10079 int64_t unmtr(
10080  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10081  std::complex<float> const* A, int64_t lda,
10082  std::complex<float> const* tau,
10083  std::complex<float>* C, int64_t ldc );
10084 
10085 int64_t unmtr(
10086  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10087  std::complex<double> const* A, int64_t lda,
10088  std::complex<double> const* tau,
10089  std::complex<double>* C, int64_t ldc );
10090 
10091 // -----------------------------------------------------------------------------
10092 int64_t upgtr(
10093  lapack::Uplo uplo, int64_t n,
10094  std::complex<float> const* AP,
10095  std::complex<float> const* tau,
10096  std::complex<float>* Q, int64_t ldq );
10097 
10098 int64_t upgtr(
10099  lapack::Uplo uplo, int64_t n,
10100  std::complex<double> const* AP,
10101  std::complex<double> const* tau,
10102  std::complex<double>* Q, int64_t ldq );
10103 
10104 // -----------------------------------------------------------------------------
10105 int64_t upmtr(
10106  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10107  std::complex<float> const* AP,
10108  std::complex<float> const* tau,
10109  std::complex<float>* C, int64_t ldc );
10110 
10111 int64_t upmtr(
10112  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10113  std::complex<double> const* AP,
10114  std::complex<double> const* tau,
10115  std::complex<double>* C, int64_t ldc );
10116 
10117 } // namespace lapack
10118 
10119 #endif // LAPACK_WRAPPERS_HH
lapack::unmlq
int64_t unmlq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gelqf as follows:
Definition: unmlq.cc:147
lapack::sytrs_rook
int64_t sytrs_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Definition: sytrs_rook.cc:155
lapack::pbtrf
int64_t pbtrf(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > *AB, int64_t ldab)
Computes the Cholesky factorization of a Hermitian positive definite band matrix A.
Definition: pbtrf.cc:178
lapack::geequb
int64_t geequb(int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: geequb.cc:182
lapack::tpmqrt
int64_t tpmqrt(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex orthogonal matrix Q obtained from a "triangular-pentagonal" complex block reflector...
Definition: tpmqrt.cc:312
lapack::gesv
int64_t gesv(int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n matrix and X and B are n...
Definition: gesv.cc:194
lapack::getf2
int64_t getf2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getf2.cc:175
lapack::lauum
int64_t lauum(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the product or where the triangular factor U or L is stored in the upper or lower triangul...
Definition: lauum.cc:144
lapack::hetrs_rook
int64_t hetrs_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Definition: hetrs_rook.cc:67
lapack::gbbrd
int64_t gbbrd(lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku, std::complex< double > *AB, int64_t ldab, double *D, double *E, std::complex< double > *Q, int64_t ldq, std::complex< double > *PT, int64_t ldpt, std::complex< double > *C, int64_t ldc)
Reduces a general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: .
Definition: gbbrd.cc:277
lapack::porfs
int64_t porfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: porfs.cc:255
lapack::langb
double langb(lapack::Norm norm, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: langb.cc:158
lapack::unmql
int64_t unmql(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::geqlf as follows:
Definition: unmql.cc:148
lapack::unmbr
int64_t unmbr(lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by P or Q from lapack::gebrd as follows:
Definition: unmbr.cc:174
lapack::gelss
int64_t gelss(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, double *S, double rcond, int64_t *rank)
Computes the minimum norm solution to a complex linear least squares problem: minimize using the sin...
Definition: gelss.cc:255
lapack::gesvdx
int64_t gesvdx(lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, int64_t *ns, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesvdx.cc:386
lapack::lacpy
void lacpy(lapack::MatrixType matrixtype, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Copies all or part of a two-dimensional matrix A to another matrix B.
Definition: lacpy.cc:143
lapack::gbequ
int64_t gbequ(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n band matrix A and reduce its condi...
Definition: gbequ.cc:195
lapack::lapy2
double lapy2(double x, double y)
Returns taking care not to cause unnecessary overflow.
Definition: lapy2.cc:38
lapack::syev_2stage
int64_t syev_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syev_2stage.cc:75
lapack::geqrf
int64_t geqrf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QR factorization of an m-by-n matrix A: .
Definition: geqrf.cc:205
lapack::gbtrs
int64_t gbtrs(lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations.
Definition: gbtrs.cc:225
lapack::lassq
void lassq(int64_t n, std::complex< double > const *X, int64_t incx, double *scale, double *sumsq)
Compute sum-of-squares without unnecessary overflow.
Definition: lassq.cc:123
lapack::heevx_2stage
int64_t heevx_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *ifail)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage...
Definition: heevx_2stage.cc:266
lapack::hetrd
int64_t hetrd(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tau)
Reduces a Hermitian matrix A to real symmetric tridiagonal form T by a unitary similarity transformat...
Definition: hetrd.cc:183
lapack::pptrs
int64_t pptrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *AP, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite matrix A in packed storage us...
Definition: pptrs.cc:155
lapack::pptri
int64_t pptri(lapack::Uplo uplo, int64_t n, std::complex< double > *AP)
Computes the inverse of a Hermitian positive definite matrix A using the Cholesky factorization or ...
Definition: pptri.cc:130
lapack::ptsv
int64_t ptsv(int64_t n, int64_t nrhs, double *D, std::complex< double > *E, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations where A is an n-by-n Hermitian positive defini...
Definition: ptsv.cc:154
lapack::lanst
double lanst(lapack::Norm norm, int64_t n, double const *D, double const *E)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lanst.cc:68
lapack::laset
void laset(lapack::MatrixType matrixtype, int64_t m, int64_t n, std::complex< double > offdiag, std::complex< double > diag, std::complex< double > *A, int64_t lda)
Initializes a 2-D array A to diag on the diagonal and offdiag on the offdiagonals.
Definition: laset.cc:136
lapack::tpmlqt
int64_t tpmlqt(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex orthogonal matrix Q obtained from a "triangular-pentagonal" complex block reflector...
Definition: tpmlqt.cc:309
lapack::orgrq
int64_t orgrq(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgrq.cc:67
lapack::bbcsd
int64_t bbcsd(lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q, double *theta, double *phi, std::complex< double > *U1, int64_t ldu1, std::complex< double > *U2, int64_t ldu2, std::complex< double > *V1T, int64_t ldv1t, std::complex< double > *V2T, int64_t ldv2t, double *B11D, double *B11E, double *B12D, double *B12E, double *B21D, double *B21E, double *B22D, double *B22E)
Computes the CS decomposition of a unitary matrix in bidiagonal-block form,.
Definition: bbcsd.cc:512
lapack::syev
int64_t syev(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syev.cc:73
lapack::sysv
int64_t sysv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n symmetric matrix and X a...
Definition: sysv.cc:305
lapack::hesv
int64_t hesv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian matrix and X a...
Definition: hesv.cc:165
lapack::ormql
int64_t ormql(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormql.cc:86
lapack::gbrfs
int64_t gbrfs(lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > const *AFB, int64_t ldafb, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is banded,...
Definition: gbrfs.cc:303
lapack::syswapr
void syswapr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t i1, int64_t i2)
Applies an elementary permutation on the rows and the columns of a symmetric matrix.
Definition: syswapr.cc:135
lapack::gebrd
int64_t gebrd(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tauq, std::complex< double > *taup)
Reduces a general m-by-n matrix A to upper or lower bidiagonal form B by a unitary transformation: .
Definition: gebrd.cc:309
lapack::hesv_rk
int64_t hesv_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: hesv_rk.cc:206
lapack::ppequ
int64_t ppequ(lapack::Uplo uplo, int64_t n, std::complex< double > const *AP, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A in pa...
Definition: ppequ.cc:156
lapack::hetrf_aa
int64_t hetrf_aa(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a hermitian matrix A using the Aasen's algorithm.
Definition: hetrf_aa.cc:134
lapack::ungbr
int64_t ungbr(lapack::Vect vect, int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates one of the complex unitary matrices or determined by lapack::gebrd when reducing a comple...
Definition: ungbr.cc:139
lapack::getrs
int64_t getrs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations.
Definition: getrs.cc:207
lapack::larfy
void larfy(lapack::Uplo uplo, int64_t n, std::complex< double > const *V, int64_t incv, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C,...
Definition: larfy.cc:160
lapack::sysv_rook
int64_t sysv_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Definition: sysv_rook.cc:230
lapack::pbrfs
int64_t pbrfs(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > const *AFB, int64_t ldafb, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: pbrfs.cc:262
lapack::hseqr
int64_t hseqr(lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *H, int64_t ldh, std::complex< double > *W, std::complex< double > *Z, int64_t ldz)
Computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schu...
Definition: hseqr.cc:352
lapack::geev
int64_t geev(lapack::Job jobvl, lapack::Job jobvr, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *W, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr)
Computes for an n-by-n nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right ...
Definition: geev.cc:328
lapack::orgtr
int64_t orgtr(lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double const *tau)
Definition: orgtr.cc:72
lapack::lapy3
double lapy3(double x, double y, double z)
Returns taking care not to cause unnecessary overflow.
Definition: lapy3.cc:40
lapack::sycon_rk
int64_t sycon_rk(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a symmetric matrix A using the fa...
Definition: sycon_rk.cc:237
lapack::poequb
int64_t poequb(int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A and r...
Definition: poequb.cc:150
lapack::sycon
int64_t sycon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a symmetric matrix A using the fa...
Definition: sycon.cc:196
lapack::ptcon
int64_t ptcon(int64_t n, double const *D, std::complex< double > const *E, double anorm, double *rcond)
Computes the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite trid...
Definition: ptcon.cc:150
lapack::gerq2
int64_t gerq2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an RQ factorization of an m-by-n matrix A: .
Definition: gerq2.cc:170
lapack::hecon
int64_t hecon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian matrix A using the fa...
Definition: hecon.cc:106
lapack::gecon
int64_t gecon(lapack::Norm norm, int64_t n, std::complex< double > const *A, int64_t lda, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a general matrix A, in either the 1-norm or the i...
Definition: gecon.cc:165
lapack::pttrs
int64_t pttrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, std::complex< double > *B, int64_t ldb)
Solves a tridiagonal system of the form.
Definition: pttrs.cc:164
lapack::ungtr
int64_t ungtr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an n-by-n unitary matrix Q which is defined as the product of n-1 elementary reflectors of ...
Definition: ungtr.cc:107
lapack::heevd
int64_t heevd(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a.
Definition: heevd.cc:141
lapack::gelsy
int64_t gelsy(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, int64_t *jpvt, double rcond, int64_t *rank)
Computes the minimum-norm solution to a complex linear least squares problem: minimize using a compl...
Definition: gelsy.cc:317
lapack::ormbr
int64_t ormbr(lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormbr.cc:87
lapack::syevx
int64_t syevx(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *ifail)
Definition: syevx.cc:103
lapack::ungqr
int64_t ungqr(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal columns, which is defined as the first n columns of a p...
Definition: ungqr.cc:105
lapack::ungql
int64_t ungql(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal columns, which is defined as the last n columns of a pr...
Definition: ungql.cc:105
lapack::gerfs
int64_t gerfs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations and provides error bounds and backward...
Definition: gerfs.cc:279
lapack::heswapr
void heswapr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t i1, int64_t i2)
Applies an elementary permutation on the rows and the columns of a Hermitian matrix.
Definition: heswapr.cc:79
lapack::gels
int64_t gels(lapack::Op trans, int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Solves overdetermined or underdetermined complex linear systems involving an m-by-n matrix A,...
Definition: gels.cc:291
lapack::hesv_rook
int64_t hesv_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Definition: hesv_rook.cc:92
lapack::gbcon
int64_t gbcon(lapack::Norm norm, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a general band matrix A, in either the 1-norm or ...
Definition: gbcon.cc:218
lapack::syevx_2stage
int64_t syevx_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *ifail)
Definition: syevx_2stage.cc:105
lapack::ppcon
int64_t ppcon(lapack::Uplo uplo, int64_t n, std::complex< double > const *AP, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite pac...
Definition: ppcon.cc:158
lapack::sysv_rk
int64_t sysv_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: sysv_rk.cc:350
lapack::lansb
double lansb(lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansb.cc:162
lapack::heev_2stage
int64_t heev_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage tech...
Definition: heev_2stage.cc:155
lapack::geqlf
int64_t geqlf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QL factorization of an m-by-n matrix A: .
Definition: geqlf.cc:208
lapack::heevr
int64_t heevr(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *isuppz)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heevr.cc:301
lapack::gebak
int64_t gebak(lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi, double const *scale, int64_t m, std::complex< double > *V, int64_t ldv)
Forms the right or left eigenvectors of a complex general matrix by backward transformation on the co...
Definition: gebak.cc:182
lapack::getrf2
int64_t getrf2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getrf2.cc:205
lapack::hetri
int64_t hetri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization or computed by lapa...
Definition: hetri.cc:106
lapack::langt
double langt(lapack::Norm norm, int64_t n, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: langt.cc:127
lapack::hetrf_rook
int64_t hetrf_rook(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Definition: hetrf_rook.cc:85
lapack::pbequ
int64_t pbequ(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite band matrix A ...
Definition: pbequ.cc:176
lapack::ormrq
int64_t ormrq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormrq.cc:86
lapack::gebal
int64_t gebal(lapack::Balance balance, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ilo, int64_t *ihi, double *scale)
Balances a general complex matrix A.
Definition: gebal.cc:219
lapack::hecon_rk
int64_t hecon_rk(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian matrix A using the fa...
Definition: hecon_rk.cc:144
lapack::lange
double lange(lapack::Norm norm, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lange.cc:145
lapack::pocon
int64_t pocon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite mat...
Definition: pocon.cc:162
lapack::ggglm
int64_t ggglm(int64_t n, int64_t m, int64_t p, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *D, std::complex< double > *X, std::complex< double > *Y)
Solves a general Gauss-Markov linear model (GLM) problem:
Definition: ggglm.cc:277
lapack::ptsvx
int64_t ptsvx(lapack::Factored fact, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, double *DF, std::complex< double > *EF, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the factorization to compute the solution to a system of linear equations where A is an n-by-n...
Definition: ptsvx.cc:280
lapack::potri
int64_t potri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the inverse of a Hermitian positive definite matrix A using the Cholesky factorization or ...
Definition: potri.cc:135
lapack::geql2
int64_t geql2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QL factorization of an m-by-n matrix A: .
Definition: geql2.cc:169
lapack::heevr_2stage
int64_t heevr_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *isuppz)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage...
Definition: heevr_2stage.cc:333
lapack::sysv_aa
int64_t sysv_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n symmetric matrix and X a...
Definition: sysv_aa.cc:297
lapack::gbsv
int64_t gbsv(int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > *AB, int64_t ldab, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is a band matrix of order n with kl s...
Definition: gbsv.cc:239
lapack::laswp
void laswp(int64_t n, std::complex< double > *A, int64_t lda, int64_t k1, int64_t k2, int64_t const *ipiv, int64_t incx)
Performs a series of row interchanges on the matrix A.
Definition: laswp.cc:159
lapack::hetrs_aa
int64_t hetrs_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a hermitian matrix A using the factorization or computed ...
Definition: hetrs_aa.cc:113
lapack::unmqr
int64_t unmqr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::geqrf as follows:
Definition: unmqr.cc:149
lapack::posv
int64_t posv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian positive defin...
Definition: posv.cc:183
lapack::pbsvx
int64_t pbsvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *AFB, int64_t ldafb, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: pbsvx.cc:406
lapack::pbcon
int64_t pbcon(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite ban...
Definition: pbcon.cc:178
lapack::syrfs
int64_t syrfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
Definition: syrfs.cc:289
lapack::tplqt2
int64_t tplqt2(int64_t m, int64_t n, int64_t l, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *T, int64_t ldt)
Computes a LQ a factorization of a complex "triangular-pentagonal" matrix C, which is composed of a t...
Definition: tplqt2.cc:218
lapack::gtsv
int64_t gtsv(int64_t n, int64_t nrhs, std::complex< double > *DL, std::complex< double > *D, std::complex< double > *DU, std::complex< double > *B, int64_t ldb)
Solves the equation.
Definition: gtsv.cc:166
lapack::sytri2
int64_t sytri2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization or computed by lapa...
Definition: sytri2.cc:243
lapack::potrf2
int64_t potrf2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A using the recursive alg...
Definition: potrf2.cc:165
lapack::larft
void larft(lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k, std::complex< double > const *V, int64_t ldv, std::complex< double > const *tau, std::complex< double > *T, int64_t ldt)
Forms the triangular factor T of a complex block reflector H of order n, which is defined as a produc...
Definition: larft.cc:213
lapack::getrf
int64_t getrf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getrf.cc:175
lapack::hesv_aa
int64_t hesv_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian matrix and X a...
Definition: hesv_aa.cc:159
lapack::hesvx
int64_t hesvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the diagonal pivoting factorization to compute the solution to a system of linear equations ,...
Definition: hesvx.cc:244
lapack::ungrq
int64_t ungrq(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal rows, which is defined as the last m rows of a product ...
Definition: ungrq.cc:104
lapack::syevr
int64_t syevr(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *isuppz)
Definition: syevr.cc:104
lapack::lantr
double lantr(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantr.cc:195
lapack::orgql
int64_t orgql(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgql.cc:67
lapack::hetrs_rk
int64_t hetrs_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization computed by la...
Definition: hetrs_rk.cc:156
lapack::tplqt
int64_t tplqt(int64_t m, int64_t n, int64_t l, int64_t mb, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *T, int64_t ldt)
Computes a blocked LQ factorization of a complex "triangular-pentagonal" matrix C,...
Definition: tplqt.cc:243
lapack::syevr_2stage
int64_t syevr_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *isuppz)
Definition: syevr_2stage.cc:106
lapack::lascl
int64_t lascl(lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n, std::complex< double > *A, int64_t lda)
Multiplies the m-by-n complex matrix A by the real scalar cto / cfrom.
Definition: lascl.cc:197
lapack::gtrfs
int64_t gtrfs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DLF, std::complex< double > const *DF, std::complex< double > const *DUF, std::complex< double > const *DU2, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is tridiag...
Definition: gtrfs.cc:314
lapack::bdsdc
int64_t bdsdc(lapack::Uplo uplo, lapack::Job compq, int64_t n, double *D, double *E, double *U, int64_t ldu, double *VT, int64_t ldvt, double *Q, int64_t *IQ)
Computes the singular value decomposition (SVD) of a real n-by-n (upper or lower) bidiagonal matrix B...
Definition: bdsdc.cc:188
lapack::bdsqr
int64_t bdsqr(lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc, double *D, double *E, std::complex< double > *VT, int64_t ldvt, std::complex< double > *U, int64_t ldu, std::complex< double > *C, int64_t ldc)
Computes the singular values and, optionally, the right and/or left singular vectors from the singula...
Definition: bdsqr.cc:271
lapack::gttrs
int64_t gttrs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DU2, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves one of the systems of equations.
Definition: gttrs.cc:228
lapack::gglse
int64_t gglse(int64_t m, int64_t n, int64_t p, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *C, std::complex< double > *D, std::complex< double > *X)
Solves the linear equality-constrained least squares (LSE) problem:
Definition: gglse.cc:284
lapack::sytrf
int64_t sytrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the Bunch-Kaufman diagonal pivoting method.
Definition: sytrf.cc:314
lapack::orgbr
int64_t orgbr(lapack::Vect vect, int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgbr.cc:76
lapack::upmtr
int64_t upmtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, std::complex< double > const *AP, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::hptrd as follows:
Definition: upmtr.cc:126
lapack::trevc3
int64_t trevc3(lapack::Sides side, lapack::HowMany howmany, bool const *select, int64_t n, std::complex< double > *T, int64_t ldt, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr, int64_t mm, int64_t *m)
Computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T.
Definition: trevc3.cc:374
lapack::orgqr
int64_t orgqr(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgqr.cc:67
lapack::gtsvx
int64_t gtsvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > *DLF, std::complex< double > *DF, std::complex< double > *DUF, std::complex< double > *DU2, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the LU factorization to compute the solution to a complex system of linear equations.
Definition: gtsvx.cc:394
lapack::pbstf
int64_t pbstf(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > *AB, int64_t ldab)
Computes a split Cholesky factorization of a Hermitian positive definite band matrix A.
Definition: pbstf.cc:208
lapack::gbtrf
int64_t gbtrf(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > *AB, int64_t ldab, int64_t *ipiv)
Computes an LU factorization of an m-by-n band matrix A using partial pivoting with row interchanges.
Definition: gbtrf.cc:213
lapack::geqr2
int64_t geqr2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QR factorization of an m-by-n matrix A:
Definition: geqr2.cc:167
lapack::potrs
int64_t potrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite matrix A using the Cholesky f...
Definition: potrs.cc:160
lapack::syevd
int64_t syevd(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syevd.cc:78
lapack::sytrs
int64_t sytrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs.cc:198
lapack::gelsd
int64_t gelsd(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, double *S, double rcond, int64_t *rank)
Computes the minimum-norm solution to a real linear least squares problem: minimize using the singul...
Definition: gelsd.cc:285
lapack::larfx
void larfx(lapack::Side side, int64_t m, int64_t n, std::complex< double > const *V, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies a elementary reflector H to a m-by-n matrix C, from either the left or the right.
Definition: larfx.cc:165
lapack::gbequb
int64_t gbequb(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: gbequb.cc:202
lapack::hetri2
int64_t hetri2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization or computed by lapa...
Definition: hetri2.cc:126
lapack::lantp
double lantp(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, std::complex< double > const *AP)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantp.cc:151
lapack::unmhr
int64_t unmhr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gehrd as follows:
Definition: unmhr.cc:154
lapack::ptrfs
int64_t ptrfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, double const *DF, std::complex< double > const *EF, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: ptrfs.cc:240
lapack::gbsvx
int64_t gbsvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *AFB, int64_t ldafb, int64_t *ipiv, lapack::Equed *equed, double *R, double *C, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the LU factorization to compute the solution to a system of linear equations.
Definition: gbsvx.cc:477
lapack::gelqf
int64_t gelqf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an LQ factorization of an m-by-n matrix A: .
Definition: gelqf.cc:203
lapack::larf
void larf(lapack::Side side, int64_t m, int64_t n, std::complex< double > const *V, int64_t incv, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies a elementary reflector H to a m-by-n matrix C, from either the left or the right.
Definition: larf.cc:175
lapack::gttrf
int64_t gttrf(int64_t n, std::complex< double > *DL, std::complex< double > *D, std::complex< double > *DU, std::complex< double > *DU2, int64_t *ipiv)
Computes an LU factorization of a complex tridiagonal matrix A using elimination with partial pivotin...
Definition: gttrf.cc:195
lapack::sytrs_rk
int64_t sytrs_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization computed by la...
Definition: sytrs_rk.cc:243
lapack::hetrf
int64_t hetrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a Hermitian matrix A using the Bunch-Kaufman diagonal pivoting method.
Definition: hetrf.cc:190
lapack::herfs
int64_t herfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: herfs.cc:165
lapack::unmtr
int64_t unmtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::hetrd as follows:
Definition: unmtr.cc:146
lapack::pbtrs
int64_t pbtrs(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite band matrix A using the Chole...
Definition: pbtrs.cc:175
lapack::trevc
int64_t trevc(lapack::Sides side, lapack::HowMany howmany, bool const *select, int64_t n, std::complex< double > *T, int64_t ldt, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr, int64_t mm, int64_t *m)
Computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T.
Definition: trevc.cc:309
lapack::lantb
double lantb(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantb.cc:171
lapack::gerqf
int64_t gerqf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an RQ factorization of an m-by-n matrix A: .
Definition: gerqf.cc:209
lapack::ppsv
int64_t ppsv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *AP, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: ppsv.cc:191
lapack::heevx
int64_t heevx(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *ifail)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heevx.cc:234
lapack::syequb
int64_t syequb(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Eu...
Definition: syequb.cc:175
lapack::potf2
int64_t potf2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A.
Definition: potf2.cc:151
lapack::sytri_rk
int64_t sytri_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization computed by lapack::s...
Definition: sytri_rk.cc:293
lapack::sytrf_rook
int64_t sytrf_rook(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Definition: sytrf_rook.cc:209
lapack::syevd_2stage
int64_t syevd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syevd_2stage.cc:80
lapack::ppsvx
int64_t ppsvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *AP, std::complex< double > *AFP, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: ppsvx.cc:367
lapack::sytrf_rk
int64_t sytrf_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pi...
Definition: sytrf_rk.cc:373
lapack::gesdd
int64_t gesdd(lapack::Job jobz, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesdd.cc:346
lapack::getri
int64_t getri(int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a matrix using the LU factorization computed by lapack::getrf.
Definition: getri.cc:204
lapack::unghr
int64_t unghr(int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an n-by-n unitary matrix Q which is defined as the product of ihi-ilo elementary reflectors...
Definition: unghr.cc:105
lapack::unglq
int64_t unglq(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product...
Definition: unglq.cc:104
lapack::lansp
double lansp(lapack::Norm norm, lapack::Uplo uplo, int64_t n, std::complex< double > const *AP)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansp.cc:143
lapack::larfb
void larfb(lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *C, int64_t ldc)
Applies a block reflector or its transpose to a m-by-n matrix C, from either the left or the right.
Definition: larfb.cc:258
lapack::sysvx
int64_t sysvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the diagonal pivoting factorization to compute the solution to a system of linear equations ,...
Definition: sysvx.cc:427
lapack::hetrf_rk
int64_t hetrf_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv)
Computes the factorization of a Hermitian matrix A using the bounded Bunch-Kaufman (rook) diagonal pi...
Definition: hetrf_rk.cc:243
lapack::gesvx
int64_t gesvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, lapack::Equed *equed, double *R, double *C, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr, double *rpivotgrowth)
Uses the LU factorization to compute the solution to a system of linear equations.
Definition: gesvx.cc:461
lapack::pprfs
int64_t pprfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *AP, std::complex< double > const *AFP, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: pprfs.cc:234
lapack::tprfb
void tprfb(lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k, int64_t l, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex "triangular-pentagonal" block reflector H or its conjugate transpose to a complex ...
Definition: tprfb.cc:346
lapack::potrf
int64_t potrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A.
Definition: potrf.cc:151
lapack::sytri
int64_t sytri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization or computed by lapa...
Definition: sytri.cc:190
lapack::gtcon
int64_t gtcon(lapack::Norm norm, int64_t n, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DU2, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a complex tridiagonal matrix A using the LU facto...
Definition: gtcon.cc:220
lapack::larnv
void larnv(int64_t idist, int64_t *iseed, int64_t n, std::complex< double > *X)
Returns a vector of n random complex numbers from a uniform or normal distribution.
Definition: larnv.cc:148
lapack::heevd_2stage
int64_t heevd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage tech...
Definition: heevd_2stage.cc:173
lapack::lanhs
double lanhs(lapack::Norm norm, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lanhs.cc:138
lapack::ormqr
int64_t ormqr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormqr.cc:86
lapack::sytrs_aa
int64_t sytrs_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs_aa.cc:211
lapack::unmrq
int64_t unmrq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gerqf as follows:
Definition: unmrq.cc:147
lapack::ormlq
int64_t ormlq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormlq.cc:86
lapack::lacgv
void lacgv(int64_t n, std::complex< double > *X, int64_t incx)
Conjugates a complex vector of length n.
Definition: lacgv.cc:56
lapack::sytrf_aa
int64_t sytrf_aa(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the Aasen's algorithm.
Definition: sytrf_aa.cc:258
lapack::pttrf
int64_t pttrf(int64_t n, double *D, std::complex< double > *E)
Computes the factorization of a Hermitian positive definite tridiagonal matrix A.
Definition: pttrf.cc:121
lapack::gehrd
int64_t gehrd(int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Reduces a general matrix A to upper Hessenberg form H by an unitary similarity transformation: .
Definition: gehrd.cc:237
lapack::bdsvdx
int64_t bdsvdx(lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n, double const *D, double const *E, double vl, double vu, int64_t il, int64_t iu, int64_t *nfound, double *S, double *Z, int64_t ldz)
Computes the singular value decomposition (SVD) of a real n-by-n (upper or lower) bidiagonal matrix B...
Definition: bdsvdx.cc:199
lapack::sytrd
int64_t sytrd(lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *D, double *E, double *tau)
Definition: sytrd.cc:78
lapack::poequ
int64_t poequ(int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A and r...
Definition: poequ.cc:144
lapack::hetri_rk
int64_t hetri_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization computed by lapack::h...
Definition: hetri_rk.cc:170
lapack::ormtr
int64_t ormtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormtr.cc:85
lapack::pbsv
int64_t pbsv(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: pbsv.cc:218
lapack::heequb
int64_t heequb(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian matrix A (with respect to the Eu...
Definition: heequb.cc:101
lapack::gesvd
int64_t gesvd(lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesvd.cc:327
lapack::posvx
int64_t posvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: posvx.cc:371
lapack::sytrs2
int64_t sytrs2(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs2.cc:217
lapack::lansy
double lansy(lapack::Norm norm, lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansy.cc:157
lapack::geequ
int64_t geequ(int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: geequ.cc:175
lapack::hetrs2
int64_t hetrs2(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization or computed ...
Definition: hetrs2.cc:116
lapack::sytrd_2stage
int64_t sytrd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *D, double *E, double *tau, double *hous2, int64_t lhous2)
Definition: sytrd_2stage.cc:86
lapack::hetrd_2stage
int64_t hetrd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tau, std::complex< double > *hous2, int64_t lhous2)
Reduces a Hermitian matrix A to real symmetric tridiagonal form T by a unitary similarity transformat...
Definition: hetrd_2stage.cc:196
lapack::heev
int64_t heev(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heev.cc:123
lapack::hetrs
int64_t hetrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization or computed ...
Definition: hetrs.cc:110
lapack::orglq
int64_t orglq(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orglq.cc:67
lapack::pptrf
int64_t pptrf(lapack::Uplo uplo, int64_t n, std::complex< double > *AP)
Computes the Cholesky factorization of a Hermitian positive definite matrix A stored in packed format...
Definition: pptrf.cc:154
lapack::larfg
void larfg(int64_t n, std::complex< double > *alpha, std::complex< double > *X, int64_t incx, std::complex< double > *tau)
Generates a elementary reflector H of order n, such that:
Definition: larfg.cc:138
lapack::gelq2
int64_t gelq2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an LQ factorization of an m-by-n matrix A: .
Definition: gelq2.cc:164