LAPACK++  2022.07.00
LAPACK C++ API
wrappers.hh
1 // Copyright (c) 2017-2022, 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 laed4(
3617  int64_t n, int64_t i,
3618  float const* d,
3619  float const* z,
3620  float* delta,
3621  float rho,
3622  float* lambda );
3623 
3624 int64_t laed4(
3625  int64_t n, int64_t i,
3626  double const* d,
3627  double const* z,
3628  double* delta,
3629  double rho,
3630  double* lambda );
3631 
3632 // -----------------------------------------------------------------------------
3633 int64_t lag2c(
3634  int64_t m, int64_t n,
3635  std::complex<double> const* A, int64_t lda,
3636  std::complex<float>* SA, int64_t ldsa );
3637 
3638 // -----------------------------------------------------------------------------
3639 int64_t lag2d(
3640  int64_t m, int64_t n,
3641  float const* SA, int64_t ldsa,
3642  double* A, int64_t lda );
3643 
3644 // -----------------------------------------------------------------------------
3645 int64_t lag2s(
3646  int64_t m, int64_t n,
3647  double const* A, int64_t lda,
3648  float* SA, int64_t ldsa );
3649 
3650 // -----------------------------------------------------------------------------
3651 int64_t lag2z(
3652  int64_t m, int64_t n,
3653  std::complex<float> const* SA, int64_t ldsa,
3654  std::complex<double>* A, int64_t lda );
3655 
3656 // -----------------------------------------------------------------------------
3657 int64_t lagge(
3658  int64_t m, int64_t n, int64_t kl, int64_t ku,
3659  float const* D,
3660  float* A, int64_t lda,
3661  int64_t* iseed );
3662 
3663 int64_t lagge(
3664  int64_t m, int64_t n, int64_t kl, int64_t ku,
3665  double const* D,
3666  double* A, int64_t lda,
3667  int64_t* iseed );
3668 
3669 int64_t lagge(
3670  int64_t m, int64_t n, int64_t kl, int64_t ku,
3671  float const* D,
3672  std::complex<float>* A, int64_t lda,
3673  int64_t* iseed );
3674 
3675 int64_t lagge(
3676  int64_t m, int64_t n, int64_t kl, int64_t ku,
3677  double const* D,
3678  std::complex<double>* A, int64_t lda,
3679  int64_t* iseed );
3680 
3681 // -----------------------------------------------------------------------------
3682 int64_t laghe(
3683  int64_t n, int64_t k,
3684  float const* D,
3685  std::complex<float>* A, int64_t lda,
3686  int64_t* iseed );
3687 
3688 int64_t laghe(
3689  int64_t n, int64_t k,
3690  double const* D,
3691  std::complex<double>* A, int64_t lda,
3692  int64_t* iseed );
3693 
3694 // -----------------------------------------------------------------------------
3695 int64_t lagsy(
3696  int64_t n, int64_t k,
3697  float const* D,
3698  float* A, int64_t lda,
3699  int64_t* iseed );
3700 
3701 int64_t lagsy(
3702  int64_t n, int64_t k,
3703  double const* D,
3704  double* A, int64_t lda,
3705  int64_t* iseed );
3706 
3707 int64_t lagsy(
3708  int64_t n, int64_t k,
3709  float const* D,
3710  std::complex<float>* A, int64_t lda,
3711  int64_t* iseed );
3712 
3713 int64_t lagsy(
3714  int64_t n, int64_t k,
3715  double const* D,
3716  std::complex<double>* A, int64_t lda,
3717  int64_t* iseed );
3718 
3719 // -----------------------------------------------------------------------------
3720 float langb(
3721  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3722  float const* AB, int64_t ldab );
3723 
3724 double langb(
3725  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3726  double const* AB, int64_t ldab );
3727 
3728 float langb(
3729  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3730  std::complex<float> const* AB, int64_t ldab );
3731 
3732 double langb(
3733  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3734  std::complex<double> const* AB, int64_t ldab );
3735 
3736 // -----------------------------------------------------------------------------
3737 float lange(
3738  lapack::Norm norm, int64_t m, int64_t n,
3739  float const* A, int64_t lda );
3740 
3741 double lange(
3742  lapack::Norm norm, int64_t m, int64_t n,
3743  double const* A, int64_t lda );
3744 
3745 float lange(
3746  lapack::Norm norm, int64_t m, int64_t n,
3747  std::complex<float> const* A, int64_t lda );
3748 
3749 double lange(
3750  lapack::Norm norm, int64_t m, int64_t n,
3751  std::complex<double> const* A, int64_t lda );
3752 
3753 // -----------------------------------------------------------------------------
3754 float langt(
3755  lapack::Norm norm, int64_t n,
3756  float const* DL,
3757  float const* D,
3758  float const* DU );
3759 
3760 double langt(
3761  lapack::Norm norm, int64_t n,
3762  double const* DL,
3763  double const* D,
3764  double const* DU );
3765 
3766 float langt(
3767  lapack::Norm norm, int64_t n,
3768  std::complex<float> const* DL,
3769  std::complex<float> const* D,
3770  std::complex<float> const* DU );
3771 
3772 double langt(
3773  lapack::Norm norm, int64_t n,
3774  std::complex<double> const* DL,
3775  std::complex<double> const* D,
3776  std::complex<double> const* DU );
3777 
3778 // -----------------------------------------------------------------------------
3779 float lanhb(
3780  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3781  std::complex<float> const* AB, int64_t ldab );
3782 
3783 double lanhb(
3784  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3785  std::complex<double> const* AB, int64_t ldab );
3786 
3787 // -----------------------------------------------------------------------------
3788 float lanhe(
3789  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3790  std::complex<float> const* A, int64_t lda );
3791 
3792 double lanhe(
3793  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3794  std::complex<double> const* A, int64_t lda );
3795 
3796 // -----------------------------------------------------------------------------
3797 float lanhp(
3798  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3799  std::complex<float> const* AP );
3800 
3801 double lanhp(
3802  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3803  std::complex<double> const* AP );
3804 
3805 // -----------------------------------------------------------------------------
3806 float lanhs(
3807  lapack::Norm norm, int64_t n,
3808  float const* A, int64_t lda );
3809 
3810 double lanhs(
3811  lapack::Norm norm, int64_t n,
3812  double const* A, int64_t lda );
3813 
3814 float lanhs(
3815  lapack::Norm norm, int64_t n,
3816  std::complex<float> const* A, int64_t lda );
3817 
3818 double lanhs(
3819  lapack::Norm norm, int64_t n,
3820  std::complex<double> const* A, int64_t lda );
3821 
3822 // -----------------------------------------------------------------------------
3823 float lanht(
3824  lapack::Norm norm, int64_t n,
3825  float const* D,
3826  std::complex<float> const* E );
3827 
3828 double lanht(
3829  lapack::Norm norm, int64_t n,
3830  double const* D,
3831  std::complex<double> const* E );
3832 
3833 // -----------------------------------------------------------------------------
3834 float lansb(
3835  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3836  float const* AB, int64_t ldab );
3837 
3838 // lanhb alias to lansb
3840 inline float lanhb(
3841  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3842  float const* AB, int64_t ldab )
3843 {
3844  return lansb( norm, uplo, n, kd, AB, ldab );
3845 }
3846 
3847 double lansb(
3848  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3849  double const* AB, int64_t ldab );
3850 
3851 // lanhb alias to lansb
3853 inline double lanhb(
3854  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3855  double const* AB, int64_t ldab )
3856 {
3857  return lansb( norm, uplo, n, kd, AB, ldab );
3858 }
3859 
3860 float lansb(
3861  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3862  std::complex<float> const* AB, int64_t ldab );
3863 
3864 double lansb(
3865  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3866  std::complex<double> const* AB, int64_t ldab );
3867 
3868 // -----------------------------------------------------------------------------
3869 float lansp(
3870  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3871  float const* AP );
3872 
3873 // lanhp alias to lansp
3875 inline float lanhp(
3876  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3877  float const* AP )
3878 {
3879  return lansp( norm, uplo, n, AP );
3880 }
3881 
3882 double lansp(
3883  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3884  double const* AP );
3885 
3886 // lanhp alias to lansp
3888 inline double lanhp(
3889  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3890  double const* AP )
3891 {
3892  return lansp( norm, uplo, n, AP );
3893 }
3894 
3895 float lansp(
3896  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3897  std::complex<float> const* AP );
3898 
3899 double lansp(
3900  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3901  std::complex<double> const* AP );
3902 
3903 // -----------------------------------------------------------------------------
3904 float lanst(
3905  lapack::Norm norm, int64_t n,
3906  float const* D,
3907  float const* E );
3908 
3909 // lanht alias to lanst
3911 inline float lanht(
3912  lapack::Norm norm, int64_t n,
3913  float const* D,
3914  float const* E )
3915 {
3916  return lanst( norm, n, D, E );
3917 }
3918 
3919 double lanst(
3920  lapack::Norm norm, int64_t n,
3921  double const* D,
3922  double const* E );
3923 
3924 // lanht alias to lanst
3926 inline double lanht(
3927  lapack::Norm norm, int64_t n,
3928  double const* D,
3929  double const* E )
3930 {
3931  return lanst( norm, n, D, E );
3932 }
3933 
3934 // -----------------------------------------------------------------------------
3935 float lansy(
3936  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3937  float const* A, int64_t lda );
3938 
3939 // lanhe alias to lansy
3941 inline float lanhe(
3942  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3943  float const* A, int64_t lda )
3944 {
3945  return lansy( norm, uplo, n, A, lda );
3946 }
3947 
3948 double lansy(
3949  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3950  double const* A, int64_t lda );
3951 
3952 // lanhe alias to lansy
3954 inline double lanhe(
3955  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3956  double const* A, int64_t lda )
3957 {
3958  return lansy( norm, uplo, n, A, lda );
3959 }
3960 
3961 float lansy(
3962  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3963  std::complex<float> const* A, int64_t lda );
3964 
3965 double lansy(
3966  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3967  std::complex<double> const* A, int64_t lda );
3968 
3969 // -----------------------------------------------------------------------------
3970 float lantb(
3971  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3972  float const* AB, int64_t ldab );
3973 
3974 double lantb(
3975  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3976  double const* AB, int64_t ldab );
3977 
3978 float lantb(
3979  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3980  std::complex<float> const* AB, int64_t ldab );
3981 
3982 double lantb(
3983  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3984  std::complex<double> const* AB, int64_t ldab );
3985 
3986 // -----------------------------------------------------------------------------
3987 float lantp(
3988  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3989  float const* AP );
3990 
3991 double lantp(
3992  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3993  double const* AP );
3994 
3995 float lantp(
3996  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3997  std::complex<float> const* AP );
3998 
3999 double lantp(
4000  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
4001  std::complex<double> const* AP );
4002 
4003 // -----------------------------------------------------------------------------
4004 float lantr(
4005  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4006  float const* A, int64_t lda );
4007 
4008 double lantr(
4009  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4010  double const* A, int64_t lda );
4011 
4012 float lantr(
4013  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4014  std::complex<float> const* A, int64_t lda );
4015 
4016 double lantr(
4017  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4018  std::complex<double> const* A, int64_t lda );
4019 
4020 // -----------------------------------------------------------------------------
4021 void lapmr(
4022  bool forwrd, int64_t m, int64_t n,
4023  float* X, int64_t ldx,
4024  int64_t* K );
4025 
4026 void lapmr(
4027  bool forwrd, int64_t m, int64_t n,
4028  double* X, int64_t ldx,
4029  int64_t* K );
4030 
4031 void lapmr(
4032  bool forwrd, int64_t m, int64_t n,
4033  std::complex<float>* X, int64_t ldx,
4034  int64_t* K );
4035 
4036 void lapmr(
4037  bool forwrd, int64_t m, int64_t n,
4038  std::complex<double>* X, int64_t ldx,
4039  int64_t* K );
4040 
4041 // -----------------------------------------------------------------------------
4042 void lapmt(
4043  bool forwrd, int64_t m, int64_t n,
4044  float* X, int64_t ldx,
4045  int64_t* K );
4046 
4047 void lapmt(
4048  bool forwrd, int64_t m, int64_t n,
4049  double* X, int64_t ldx,
4050  int64_t* K );
4051 
4052 void lapmt(
4053  bool forwrd, int64_t m, int64_t n,
4054  std::complex<float>* X, int64_t ldx,
4055  int64_t* K );
4056 
4057 void lapmt(
4058  bool forwrd, int64_t m, int64_t n,
4059  std::complex<double>* X, int64_t ldx,
4060  int64_t* K );
4061 
4062 // -----------------------------------------------------------------------------
4063 float lapy2(
4064  float x, float y );
4065 
4066 double lapy2(
4067  double x, double y );
4068 
4069 // -----------------------------------------------------------------------------
4070 float lapy3(
4071  float x, float y, float z );
4072 
4073 double lapy3(
4074  double x, double y, double z );
4075 
4076 // -----------------------------------------------------------------------------
4077 void larf(
4078  lapack::Side side, int64_t m, int64_t n,
4079  float const* V, int64_t incv, float tau,
4080  float* C, int64_t ldc );
4081 
4082 void larf(
4083  lapack::Side side, int64_t m, int64_t n,
4084  double const* V, int64_t incv, double tau,
4085  double* C, int64_t ldc );
4086 
4087 void larf(
4088  lapack::Side side, int64_t m, int64_t n,
4089  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4090  std::complex<float>* C, int64_t ldc );
4091 
4092 void larf(
4093  lapack::Side side, int64_t m, int64_t n,
4094  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4095  std::complex<double>* C, int64_t ldc );
4096 
4097 // -----------------------------------------------------------------------------
4098 void larfb(
4099  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4100  float const* V, int64_t ldv,
4101  float const* T, int64_t ldt,
4102  float* C, int64_t ldc );
4103 
4104 void larfb(
4105  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4106  double const* V, int64_t ldv,
4107  double const* T, int64_t ldt,
4108  double* C, int64_t ldc );
4109 
4110 void larfb(
4111  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4112  std::complex<float> const* V, int64_t ldv,
4113  std::complex<float> const* T, int64_t ldt,
4114  std::complex<float>* C, int64_t ldc );
4115 
4116 void larfb(
4117  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4118  std::complex<double> const* V, int64_t ldv,
4119  std::complex<double> const* T, int64_t ldt,
4120  std::complex<double>* C, int64_t ldc );
4121 
4122 // -----------------------------------------------------------------------------
4123 void larfg(
4124  int64_t n,
4125  float* alpha,
4126  float* X, int64_t incx,
4127  float* tau );
4128 
4129 void larfg(
4130  int64_t n,
4131  double* alpha,
4132  double* X, int64_t incx,
4133  double* tau );
4134 
4135 void larfg(
4136  int64_t n,
4137  std::complex<float>* alpha,
4138  std::complex<float>* X, int64_t incx,
4139  std::complex<float>* tau );
4140 
4141 void larfg(
4142  int64_t n,
4143  std::complex<double>* alpha,
4144  std::complex<double>* X, int64_t incx,
4145  std::complex<double>* tau );
4146 
4147 // -----------------------------------------------------------------------------
4148 void larfgp(
4149  int64_t n,
4150  float* alpha,
4151  float* X, int64_t incx,
4152  float* tau );
4153 
4154 void larfgp(
4155  int64_t n,
4156  double* alpha,
4157  double* X, int64_t incx,
4158  double* tau );
4159 
4160 void larfgp(
4161  int64_t n,
4162  std::complex<float>* alpha,
4163  std::complex<float>* X, int64_t incx,
4164  std::complex<float>* tau );
4165 
4166 void larfgp(
4167  int64_t n,
4168  std::complex<double>* alpha,
4169  std::complex<double>* X, int64_t incx,
4170  std::complex<double>* tau );
4171 
4172 // -----------------------------------------------------------------------------
4173 void larft(
4174  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4175  float const* V, int64_t ldv,
4176  float const* tau,
4177  float* T, int64_t ldt );
4178 
4179 void larft(
4180  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4181  double const* V, int64_t ldv,
4182  double const* tau,
4183  double* T, int64_t ldt );
4184 
4185 void larft(
4186  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4187  std::complex<float> const* V, int64_t ldv,
4188  std::complex<float> const* tau,
4189  std::complex<float>* T, int64_t ldt );
4190 
4191 void larft(
4192  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4193  std::complex<double> const* V, int64_t ldv,
4194  std::complex<double> const* tau,
4195  std::complex<double>* T, int64_t ldt );
4196 
4197 // -----------------------------------------------------------------------------
4198 void larfx(
4199  lapack::Side side, int64_t m, int64_t n,
4200  float const* V, float tau,
4201  float* C, int64_t ldc );
4202 
4203 void larfx(
4204  lapack::Side side, int64_t m, int64_t n,
4205  double const* V, double tau,
4206  double* C, int64_t ldc );
4207 
4208 void larfx(
4209  lapack::Side side, int64_t m, int64_t n,
4210  std::complex<float> const* V, std::complex<float> tau,
4211  std::complex<float>* C, int64_t ldc );
4212 
4213 void larfx(
4214  lapack::Side side, int64_t m, int64_t n,
4215  std::complex<double> const* V, std::complex<double> tau,
4216  std::complex<double>* C, int64_t ldc );
4217 
4218 // -----------------------------------------------------------------------------
4219 void larfy(
4220  lapack::Uplo uplo, int64_t n,
4221  float const* V, int64_t incv, float tau,
4222  float* C, int64_t ldc );
4223 
4224 void larfy(
4225  lapack::Uplo uplo, int64_t n,
4226  double const* V, int64_t incv, double tau,
4227  double* C, int64_t ldc );
4228 
4229 void larfy(
4230  lapack::Uplo uplo, int64_t n,
4231  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4232  std::complex<float>* C, int64_t ldc );
4233 
4234 void larfy(
4235  lapack::Uplo uplo, int64_t n,
4236  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4237  std::complex<double>* C, int64_t ldc );
4238 
4239 // -----------------------------------------------------------------------------
4240 void larnv(
4241  int64_t idist,
4242  int64_t* iseed, int64_t n,
4243  float* X );
4244 
4245 void larnv(
4246  int64_t idist,
4247  int64_t* iseed, int64_t n,
4248  double* X );
4249 
4250 void larnv(
4251  int64_t idist,
4252  int64_t* iseed, int64_t n,
4253  std::complex<float>* X );
4254 
4255 void larnv(
4256  int64_t idist,
4257  int64_t* iseed, int64_t n,
4258  std::complex<double>* X );
4259 
4260 // -----------------------------------------------------------------------------
4261 void lartgp(
4262  float f, float g,
4263  float* cs,
4264  float* sn,
4265  float* r );
4266 
4267 void lartgp(
4268  double f, double g,
4269  double* cs,
4270  double* sn,
4271  double* r );
4272 
4273 // -----------------------------------------------------------------------------
4274 void lartgs(
4275  float x, float y, float sigma,
4276  float* cs,
4277  float* sn );
4278 
4279 void lartgs(
4280  double x, double y, double sigma,
4281  double* cs,
4282  double* sn );
4283 
4284 // -----------------------------------------------------------------------------
4285 int64_t lascl(
4286  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4287  float* A, int64_t lda );
4288 
4289 int64_t lascl(
4290  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4291  double* A, int64_t lda );
4292 
4293 int64_t lascl(
4294  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4295  std::complex<float>* A, int64_t lda );
4296 
4297 int64_t lascl(
4298  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4299  std::complex<double>* A, int64_t lda );
4300 
4301 // -----------------------------------------------------------------------------
4302 void laset(
4303  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4304  float offdiag, float diag,
4305  float* A, int64_t lda );
4306 
4307 void laset(
4308  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4309  double offdiag, double diag,
4310  double* A, int64_t lda );
4311 
4312 void laset(
4313  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4314  std::complex<float> offdiag, std::complex<float> diag,
4315  std::complex<float>* A, int64_t lda );
4316 
4317 void laset(
4318  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4319  std::complex<double> offdiag, std::complex<double> diag,
4320  std::complex<double>* A, int64_t lda );
4321 
4322 // -----------------------------------------------------------------------------
4323 void lassq(
4324  int64_t n,
4325  float const* X, int64_t incx,
4326  float* scale,
4327  float* sumsq );
4328 
4329 void lassq(
4330  int64_t n,
4331  double const* X, int64_t incx,
4332  double* scale,
4333  double* sumsq );
4334 
4335 void lassq(
4336  int64_t n,
4337  std::complex<float> const* X, int64_t incx,
4338  float* scale,
4339  float* sumsq );
4340 
4341 void lassq(
4342  int64_t n,
4343  std::complex<double> const* X, int64_t incx,
4344  double* scale,
4345  double* sumsq );
4346 
4347 // -----------------------------------------------------------------------------
4348 void laswp(
4349  int64_t n,
4350  float* A, int64_t lda, int64_t k1, int64_t k2,
4351  int64_t const* ipiv, int64_t incx );
4352 
4353 void laswp(
4354  int64_t n,
4355  double* A, int64_t lda, int64_t k1, int64_t k2,
4356  int64_t const* ipiv, int64_t incx );
4357 
4358 void laswp(
4359  int64_t n,
4360  std::complex<float>* A, int64_t lda, int64_t k1, int64_t k2,
4361  int64_t const* ipiv, int64_t incx );
4362 
4363 void laswp(
4364  int64_t n,
4365  std::complex<double>* A, int64_t lda, int64_t k1, int64_t k2,
4366  int64_t const* ipiv, int64_t incx );
4367 
4368 // -----------------------------------------------------------------------------
4369 int64_t lauum(
4370  lapack::Uplo uplo, int64_t n,
4371  float* A, int64_t lda );
4372 
4373 int64_t lauum(
4374  lapack::Uplo uplo, int64_t n,
4375  double* A, int64_t lda );
4376 
4377 int64_t lauum(
4378  lapack::Uplo uplo, int64_t n,
4379  std::complex<float>* A, int64_t lda );
4380 
4381 int64_t lauum(
4382  lapack::Uplo uplo, int64_t n,
4383  std::complex<double>* A, int64_t lda );
4384 
4385 // -----------------------------------------------------------------------------
4386 int64_t opgtr(
4387  lapack::Uplo uplo, int64_t n,
4388  float const* AP,
4389  float const* tau,
4390  float* Q, int64_t ldq );
4391 
4392 // upgtr alias to opgtr
4393 inline int64_t upgtr(
4394  lapack::Uplo uplo, int64_t n,
4395  float const* AP,
4396  float const* tau,
4397  float* Q, int64_t ldq )
4398 {
4399  return opgtr( uplo, n, AP, tau, Q, ldq );
4400 }
4401 
4402 int64_t opgtr(
4403  lapack::Uplo uplo, int64_t n,
4404  double const* AP,
4405  double const* tau,
4406  double* Q, int64_t ldq );
4407 
4408 // upgtr alias to opgtr
4409 inline int64_t upgtr(
4410  lapack::Uplo uplo, int64_t n,
4411  double const* AP,
4412  double const* tau,
4413  double* Q, int64_t ldq )
4414 {
4415  return opgtr( uplo, n, AP, tau, Q, ldq );
4416 }
4417 
4418 // -----------------------------------------------------------------------------
4419 int64_t opmtr(
4420  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4421  float const* AP,
4422  float const* tau,
4423  float* C, int64_t ldc );
4424 
4425 // upmtr alias to opmtr
4426 inline int64_t upmtr(
4427  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4428  float const* AP,
4429  float const* tau,
4430  float* C, int64_t ldc )
4431 {
4432  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4433 }
4434 
4435 int64_t opmtr(
4436  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4437  double const* AP,
4438  double const* tau,
4439  double* C, int64_t ldc );
4440 
4441 // upmtr alias to opmtr
4442 inline int64_t upmtr(
4443  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4444  double const* AP,
4445  double const* tau,
4446  double* C, int64_t ldc )
4447 {
4448  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4449 }
4450 
4451 // -----------------------------------------------------------------------------
4452 int64_t orcsd2by1(
4453  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4454  float* X11, int64_t ldx11,
4455  float* X21, int64_t ldx21,
4456  float* theta,
4457  float* U1, int64_t ldu1,
4458  float* U2, int64_t ldu2,
4459  float* V1T, int64_t ldv1t );
4460 
4461 // uncsd2by1 alias to orcsd2by1
4462 inline int64_t uncsd2by1(
4463  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4464  float* X11, int64_t ldx11,
4465  float* X21, int64_t ldx21,
4466  float* theta,
4467  float* U1, int64_t ldu1,
4468  float* U2, int64_t ldu2,
4469  float* V1T, int64_t ldv1t )
4470 {
4471  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4472 }
4473 
4474 int64_t orcsd2by1(
4475  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4476  double* X11, int64_t ldx11,
4477  double* X21, int64_t ldx21,
4478  double* theta,
4479  double* U1, int64_t ldu1,
4480  double* U2, int64_t ldu2,
4481  double* V1T, int64_t ldv1t );
4482 
4483 // uncsd2by1 alias to orcsd2by1
4484 inline int64_t uncsd2by1(
4485  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4486  double* X11, int64_t ldx11,
4487  double* X21, int64_t ldx21,
4488  double* theta,
4489  double* U1, int64_t ldu1,
4490  double* U2, int64_t ldu2,
4491  double* V1T, int64_t ldv1t )
4492 {
4493  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4494 }
4495 
4496 // -----------------------------------------------------------------------------
4497 int64_t orgbr(
4498  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4499  float* A, int64_t lda,
4500  float const* tau );
4501 
4502 // ungbr alias to orgbr
4503 inline int64_t ungbr(
4504  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4505  float* A, int64_t lda,
4506  float const* tau )
4507 {
4508  return orgbr( vect, m, n, k, A, lda, tau );
4509 }
4510 
4511 int64_t orgbr(
4512  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4513  double* A, int64_t lda,
4514  double const* tau );
4515 
4516 // ungbr alias to orgbr
4517 inline int64_t ungbr(
4518  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4519  double* A, int64_t lda,
4520  double const* tau )
4521 {
4522  return orgbr( vect, m, n, k, A, lda, tau );
4523 }
4524 
4525 // -----------------------------------------------------------------------------
4526 int64_t orghr(
4527  int64_t n, int64_t ilo, int64_t ihi,
4528  float* A, int64_t lda,
4529  float const* tau );
4530 
4531 // unghr alias to orghr
4532 inline int64_t unghr(
4533  int64_t n, int64_t ilo, int64_t ihi,
4534  float* A, int64_t lda,
4535  float const* tau )
4536 {
4537  return orghr( n, ilo, ihi, A, lda, tau );
4538 }
4539 
4540 int64_t orghr(
4541  int64_t n, int64_t ilo, int64_t ihi,
4542  double* A, int64_t lda,
4543  double const* tau );
4544 
4545 // unghr alias to orghr
4546 inline int64_t unghr(
4547  int64_t n, int64_t ilo, int64_t ihi,
4548  double* A, int64_t lda,
4549  double const* tau )
4550 {
4551  return orghr( n, ilo, ihi, A, lda, tau );
4552 }
4553 
4554 // -----------------------------------------------------------------------------
4555 int64_t orglq(
4556  int64_t m, int64_t n, int64_t k,
4557  float* A, int64_t lda,
4558  float const* tau );
4559 
4560 // unglq alias to orglq
4561 inline int64_t unglq(
4562  int64_t m, int64_t n, int64_t k,
4563  float* A, int64_t lda,
4564  float const* tau )
4565 {
4566  return orglq( m, n, k, A, lda, tau );
4567 }
4568 
4569 int64_t orglq(
4570  int64_t m, int64_t n, int64_t k,
4571  double* A, int64_t lda,
4572  double const* tau );
4573 
4574 // unglq alias to orglq
4575 inline int64_t unglq(
4576  int64_t m, int64_t n, int64_t k,
4577  double* A, int64_t lda,
4578  double const* tau )
4579 {
4580  return orglq( m, n, k, A, lda, tau );
4581 }
4582 
4583 // -----------------------------------------------------------------------------
4584 int64_t orgql(
4585  int64_t m, int64_t n, int64_t k,
4586  float* A, int64_t lda,
4587  float const* tau );
4588 
4589 // ungql alias to orgql
4590 inline int64_t ungql(
4591  int64_t m, int64_t n, int64_t k,
4592  float* A, int64_t lda,
4593  float const* tau )
4594 {
4595  return orgql( m, n, k, A, lda, tau );
4596 }
4597 
4598 int64_t orgql(
4599  int64_t m, int64_t n, int64_t k,
4600  double* A, int64_t lda,
4601  double const* tau );
4602 
4603 // ungql alias to orgql
4604 inline int64_t ungql(
4605  int64_t m, int64_t n, int64_t k,
4606  double* A, int64_t lda,
4607  double const* tau )
4608 {
4609  return orgql( m, n, k, A, lda, tau );
4610 }
4611 
4612 // -----------------------------------------------------------------------------
4613 int64_t orgqr(
4614  int64_t m, int64_t n, int64_t k,
4615  float* A, int64_t lda,
4616  float const* tau );
4617 
4618 // ungqr alias to orgqr
4619 inline int64_t ungqr(
4620  int64_t m, int64_t n, int64_t k,
4621  float* A, int64_t lda,
4622  float const* tau )
4623 {
4624  return orgqr( m, n, k, A, lda, tau );
4625 }
4626 
4627 int64_t orgqr(
4628  int64_t m, int64_t n, int64_t k,
4629  double* A, int64_t lda,
4630  double const* tau );
4631 
4632 // ungqr alias to orgqr
4633 inline int64_t ungqr(
4634  int64_t m, int64_t n, int64_t k,
4635  double* A, int64_t lda,
4636  double const* tau )
4637 {
4638  return orgqr( m, n, k, A, lda, tau );
4639 }
4640 
4641 // -----------------------------------------------------------------------------
4642 int64_t orgrq(
4643  int64_t m, int64_t n, int64_t k,
4644  float* A, int64_t lda,
4645  float const* tau );
4646 
4647 // ungrq alias to orgrq
4648 inline int64_t ungrq(
4649  int64_t m, int64_t n, int64_t k,
4650  float* A, int64_t lda,
4651  float const* tau )
4652 {
4653  return orgrq( m, n, k, A, lda, tau );
4654 }
4655 
4656 int64_t orgrq(
4657  int64_t m, int64_t n, int64_t k,
4658  double* A, int64_t lda,
4659  double const* tau );
4660 
4661 // ungrq alias to orgrq
4662 inline int64_t ungrq(
4663  int64_t m, int64_t n, int64_t k,
4664  double* A, int64_t lda,
4665  double const* tau )
4666 {
4667  return orgrq( m, n, k, A, lda, tau );
4668 }
4669 
4670 // -----------------------------------------------------------------------------
4671 int64_t orgtr(
4672  lapack::Uplo uplo, int64_t n,
4673  float* A, int64_t lda,
4674  float const* tau );
4675 
4676 // ungtr alias to orgtr
4677 inline int64_t ungtr(
4678  lapack::Uplo uplo, int64_t n,
4679  float* A, int64_t lda,
4680  float const* tau )
4681 {
4682  return orgtr( uplo, n, A, lda, tau );
4683 }
4684 
4685 int64_t orgtr(
4686  lapack::Uplo uplo, int64_t n,
4687  double* A, int64_t lda,
4688  double const* tau );
4689 
4690 // ungtr alias to orgtr
4691 inline int64_t ungtr(
4692  lapack::Uplo uplo, int64_t n,
4693  double* A, int64_t lda,
4694  double const* tau )
4695 {
4696  return orgtr( uplo, n, A, lda, tau );
4697 }
4698 
4699 // -----------------------------------------------------------------------------
4700 int64_t ormbr(
4701  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4702  float const* A, int64_t lda,
4703  float const* tau,
4704  float* C, int64_t ldc );
4705 
4706 // unmbr alias to ormbr
4707 inline int64_t unmbr(
4708  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4709  float const* A, int64_t lda,
4710  float const* tau,
4711  float* C, int64_t ldc )
4712 {
4713  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4714 }
4715 
4716 int64_t ormbr(
4717  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4718  double const* A, int64_t lda,
4719  double const* tau,
4720  double* C, int64_t ldc );
4721 
4722 // unmbr alias to ormbr
4723 inline int64_t unmbr(
4724  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4725  double const* A, int64_t lda,
4726  double const* tau,
4727  double* C, int64_t ldc )
4728 {
4729  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4730 }
4731 
4732 // -----------------------------------------------------------------------------
4733 int64_t ormhr(
4734  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4735  float const* A, int64_t lda,
4736  float const* tau,
4737  float* C, int64_t ldc );
4738 
4739 // unmhr alias to ormhr
4740 inline int64_t unmhr(
4741  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4742  float const* A, int64_t lda,
4743  float const* tau,
4744  float* C, int64_t ldc )
4745 {
4746  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4747 }
4748 
4749 int64_t ormhr(
4750  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4751  double const* A, int64_t lda,
4752  double const* tau,
4753  double* C, int64_t ldc );
4754 
4755 // unmhr alias to ormhr
4756 inline int64_t unmhr(
4757  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4758  double const* A, int64_t lda,
4759  double const* tau,
4760  double* C, int64_t ldc )
4761 {
4762  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4763 }
4764 
4765 // -----------------------------------------------------------------------------
4766 int64_t ormlq(
4767  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4768  float const* A, int64_t lda,
4769  float const* tau,
4770  float* C, int64_t ldc );
4771 
4772 // unmlq alias to ormlq
4773 inline int64_t unmlq(
4774  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4775  float const* A, int64_t lda,
4776  float const* tau,
4777  float* C, int64_t ldc )
4778 {
4779  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4780 }
4781 
4782 int64_t ormlq(
4783  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4784  double const* A, int64_t lda,
4785  double const* tau,
4786  double* C, int64_t ldc );
4787 
4788 // unmlq alias to ormlq
4789 inline int64_t unmlq(
4790  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4791  double const* A, int64_t lda,
4792  double const* tau,
4793  double* C, int64_t ldc )
4794 {
4795  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4796 }
4797 
4798 // -----------------------------------------------------------------------------
4799 int64_t ormql(
4800  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4801  float const* A, int64_t lda,
4802  float const* tau,
4803  float* C, int64_t ldc );
4804 
4805 // unmql alias to ormql
4806 inline int64_t unmql(
4807  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4808  float const* A, int64_t lda,
4809  float const* tau,
4810  float* C, int64_t ldc )
4811 {
4812  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4813 }
4814 
4815 int64_t ormql(
4816  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4817  double const* A, int64_t lda,
4818  double const* tau,
4819  double* C, int64_t ldc );
4820 
4821 // unmql alias to ormql
4822 inline int64_t unmql(
4823  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4824  double const* A, int64_t lda,
4825  double const* tau,
4826  double* C, int64_t ldc )
4827 {
4828  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4829 }
4830 
4831 // -----------------------------------------------------------------------------
4832 int64_t ormqr(
4833  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4834  float const* A, int64_t lda,
4835  float const* tau,
4836  float* C, int64_t ldc );
4837 
4838 // unmqr alias to ormqr
4839 inline int64_t unmqr(
4840  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4841  float const* A, int64_t lda,
4842  float const* tau,
4843  float* C, int64_t ldc )
4844 {
4845  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4846 }
4847 
4848 int64_t ormqr(
4849  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4850  double const* A, int64_t lda,
4851  double const* tau,
4852  double* C, int64_t ldc );
4853 
4854 // unmqr alias to ormqr
4855 inline int64_t unmqr(
4856  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4857  double const* A, int64_t lda,
4858  double const* tau,
4859  double* C, int64_t ldc )
4860 {
4861  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4862 }
4863 
4864 // -----------------------------------------------------------------------------
4865 int64_t ormrq(
4866  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4867  float const* A, int64_t lda,
4868  float const* tau,
4869  float* C, int64_t ldc );
4870 
4871 // unmrq alias to ormrq
4872 inline int64_t unmrq(
4873  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4874  float const* A, int64_t lda,
4875  float const* tau,
4876  float* C, int64_t ldc )
4877 {
4878  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4879 }
4880 
4881 int64_t ormrq(
4882  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4883  double const* A, int64_t lda,
4884  double const* tau,
4885  double* C, int64_t ldc );
4886 
4887 // unmrq alias to ormrq
4888 inline int64_t unmrq(
4889  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4890  double const* A, int64_t lda,
4891  double const* tau,
4892  double* C, int64_t ldc )
4893 {
4894  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4895 }
4896 
4897 // -----------------------------------------------------------------------------
4898 int64_t ormrz(
4899  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4900  float const* A, int64_t lda,
4901  float const* tau,
4902  float* C, int64_t ldc );
4903 
4904 // unmrz alias to ormrz
4905 inline int64_t unmrz(
4906  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4907  float const* A, int64_t lda,
4908  float const* tau,
4909  float* C, int64_t ldc )
4910 {
4911  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4912 }
4913 
4914 int64_t ormrz(
4915  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4916  double const* A, int64_t lda,
4917  double const* tau,
4918  double* C, int64_t ldc );
4919 
4920 // unmrz alias to ormrz
4921 inline int64_t unmrz(
4922  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4923  double const* A, int64_t lda,
4924  double const* tau,
4925  double* C, int64_t ldc )
4926 {
4927  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4928 }
4929 
4930 // -----------------------------------------------------------------------------
4931 int64_t ormtr(
4932  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4933  float const* A, int64_t lda,
4934  float const* tau,
4935  float* C, int64_t ldc );
4936 
4937 // unmtr alias to ormtr
4938 inline int64_t unmtr(
4939  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4940  float const* A, int64_t lda,
4941  float const* tau,
4942  float* C, int64_t ldc )
4943 {
4944  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4945 }
4946 
4947 int64_t ormtr(
4948  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4949  double const* A, int64_t lda,
4950  double const* tau,
4951  double* C, int64_t ldc );
4952 
4953 // unmtr alias to ormtr
4954 inline int64_t unmtr(
4955  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4956  double const* A, int64_t lda,
4957  double const* tau,
4958  double* C, int64_t ldc )
4959 {
4960  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4961 }
4962 
4963 // -----------------------------------------------------------------------------
4964 int64_t pbcon(
4965  lapack::Uplo uplo, int64_t n, int64_t kd,
4966  float const* AB, int64_t ldab, float anorm,
4967  float* rcond );
4968 
4969 int64_t pbcon(
4970  lapack::Uplo uplo, int64_t n, int64_t kd,
4971  double const* AB, int64_t ldab, double anorm,
4972  double* rcond );
4973 
4974 int64_t pbcon(
4975  lapack::Uplo uplo, int64_t n, int64_t kd,
4976  std::complex<float> const* AB, int64_t ldab, float anorm,
4977  float* rcond );
4978 
4979 int64_t pbcon(
4980  lapack::Uplo uplo, int64_t n, int64_t kd,
4981  std::complex<double> const* AB, int64_t ldab, double anorm,
4982  double* rcond );
4983 
4984 // -----------------------------------------------------------------------------
4985 int64_t pbequ(
4986  lapack::Uplo uplo, int64_t n, int64_t kd,
4987  float const* AB, int64_t ldab,
4988  float* S,
4989  float* scond,
4990  float* amax );
4991 
4992 int64_t pbequ(
4993  lapack::Uplo uplo, int64_t n, int64_t kd,
4994  double const* AB, int64_t ldab,
4995  double* S,
4996  double* scond,
4997  double* amax );
4998 
4999 int64_t pbequ(
5000  lapack::Uplo uplo, int64_t n, int64_t kd,
5001  std::complex<float> const* AB, int64_t ldab,
5002  float* S,
5003  float* scond,
5004  float* amax );
5005 
5006 int64_t pbequ(
5007  lapack::Uplo uplo, int64_t n, int64_t kd,
5008  std::complex<double> const* AB, int64_t ldab,
5009  double* S,
5010  double* scond,
5011  double* amax );
5012 
5013 // -----------------------------------------------------------------------------
5014 int64_t pbrfs(
5015  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5016  float const* AB, int64_t ldab,
5017  float const* AFB, int64_t ldafb,
5018  float const* B, int64_t ldb,
5019  float* X, int64_t ldx,
5020  float* ferr,
5021  float* berr );
5022 
5023 int64_t pbrfs(
5024  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5025  double const* AB, int64_t ldab,
5026  double const* AFB, int64_t ldafb,
5027  double const* B, int64_t ldb,
5028  double* X, int64_t ldx,
5029  double* ferr,
5030  double* berr );
5031 
5032 int64_t pbrfs(
5033  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5034  std::complex<float> const* AB, int64_t ldab,
5035  std::complex<float> const* AFB, int64_t ldafb,
5036  std::complex<float> const* B, int64_t ldb,
5037  std::complex<float>* X, int64_t ldx,
5038  float* ferr,
5039  float* berr );
5040 
5041 int64_t pbrfs(
5042  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5043  std::complex<double> const* AB, int64_t ldab,
5044  std::complex<double> const* AFB, int64_t ldafb,
5045  std::complex<double> const* B, int64_t ldb,
5046  std::complex<double>* X, int64_t ldx,
5047  double* ferr,
5048  double* berr );
5049 
5050 // -----------------------------------------------------------------------------
5051 int64_t pbstf(
5052  lapack::Uplo uplo, int64_t n, int64_t kd,
5053  float* AB, int64_t ldab );
5054 
5055 int64_t pbstf(
5056  lapack::Uplo uplo, int64_t n, int64_t kd,
5057  double* AB, int64_t ldab );
5058 
5059 int64_t pbstf(
5060  lapack::Uplo uplo, int64_t n, int64_t kd,
5061  std::complex<float>* AB, int64_t ldab );
5062 
5063 int64_t pbstf(
5064  lapack::Uplo uplo, int64_t n, int64_t kd,
5065  std::complex<double>* AB, int64_t ldab );
5066 
5067 // -----------------------------------------------------------------------------
5068 int64_t pbsv(
5069  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5070  float* AB, int64_t ldab,
5071  float* B, int64_t ldb );
5072 
5073 int64_t pbsv(
5074  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5075  double* AB, int64_t ldab,
5076  double* B, int64_t ldb );
5077 
5078 int64_t pbsv(
5079  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5080  std::complex<float>* AB, int64_t ldab,
5081  std::complex<float>* B, int64_t ldb );
5082 
5083 int64_t pbsv(
5084  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5085  std::complex<double>* AB, int64_t ldab,
5086  std::complex<double>* B, int64_t ldb );
5087 
5088 // -----------------------------------------------------------------------------
5089 int64_t pbsvx(
5090  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5091  float* AB, int64_t ldab,
5092  float* AFB, int64_t ldafb,
5093  lapack::Equed* equed,
5094  float* S,
5095  float* B, int64_t ldb,
5096  float* X, int64_t ldx,
5097  float* rcond,
5098  float* ferr,
5099  float* berr );
5100 
5101 int64_t pbsvx(
5102  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5103  double* AB, int64_t ldab,
5104  double* AFB, int64_t ldafb,
5105  lapack::Equed* equed,
5106  double* S,
5107  double* B, int64_t ldb,
5108  double* X, int64_t ldx,
5109  double* rcond,
5110  double* ferr,
5111  double* berr );
5112 
5113 int64_t pbsvx(
5114  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5115  std::complex<float>* AB, int64_t ldab,
5116  std::complex<float>* AFB, int64_t ldafb,
5117  lapack::Equed* equed,
5118  float* S,
5119  std::complex<float>* B, int64_t ldb,
5120  std::complex<float>* X, int64_t ldx,
5121  float* rcond,
5122  float* ferr,
5123  float* berr );
5124 
5125 int64_t pbsvx(
5126  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5127  std::complex<double>* AB, int64_t ldab,
5128  std::complex<double>* AFB, int64_t ldafb,
5129  lapack::Equed* equed,
5130  double* S,
5131  std::complex<double>* B, int64_t ldb,
5132  std::complex<double>* X, int64_t ldx,
5133  double* rcond,
5134  double* ferr,
5135  double* berr );
5136 
5137 // -----------------------------------------------------------------------------
5138 int64_t pbtrf(
5139  lapack::Uplo uplo, int64_t n, int64_t kd,
5140  float* AB, int64_t ldab );
5141 
5142 int64_t pbtrf(
5143  lapack::Uplo uplo, int64_t n, int64_t kd,
5144  double* AB, int64_t ldab );
5145 
5146 int64_t pbtrf(
5147  lapack::Uplo uplo, int64_t n, int64_t kd,
5148  std::complex<float>* AB, int64_t ldab );
5149 
5150 int64_t pbtrf(
5151  lapack::Uplo uplo, int64_t n, int64_t kd,
5152  std::complex<double>* AB, int64_t ldab );
5153 
5154 // -----------------------------------------------------------------------------
5155 int64_t pbtrs(
5156  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5157  float const* AB, int64_t ldab,
5158  float* B, int64_t ldb );
5159 
5160 int64_t pbtrs(
5161  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5162  double const* AB, int64_t ldab,
5163  double* B, int64_t ldb );
5164 
5165 int64_t pbtrs(
5166  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5167  std::complex<float> const* AB, int64_t ldab,
5168  std::complex<float>* B, int64_t ldb );
5169 
5170 int64_t pbtrs(
5171  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5172  std::complex<double> const* AB, int64_t ldab,
5173  std::complex<double>* B, int64_t ldb );
5174 
5175 // -----------------------------------------------------------------------------
5176 int64_t pftrf(
5177  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5178  float* A );
5179 
5180 int64_t pftrf(
5181  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5182  double* A );
5183 
5184 int64_t pftrf(
5185  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5186  std::complex<float>* A );
5187 
5188 int64_t pftrf(
5189  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5190  std::complex<double>* A );
5191 
5192 // -----------------------------------------------------------------------------
5193 int64_t pftri(
5194  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5195  float* A );
5196 
5197 int64_t pftri(
5198  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5199  double* A );
5200 
5201 int64_t pftri(
5202  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5203  std::complex<float>* A );
5204 
5205 int64_t pftri(
5206  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5207  std::complex<double>* A );
5208 
5209 // -----------------------------------------------------------------------------
5210 int64_t pftrs(
5211  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5212  float const* A,
5213  float* B, int64_t ldb );
5214 
5215 int64_t pftrs(
5216  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5217  double const* A,
5218  double* B, int64_t ldb );
5219 
5220 int64_t pftrs(
5221  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5222  std::complex<float> const* A,
5223  std::complex<float>* B, int64_t ldb );
5224 
5225 int64_t pftrs(
5226  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5227  std::complex<double> const* A,
5228  std::complex<double>* B, int64_t ldb );
5229 
5230 // -----------------------------------------------------------------------------
5231 int64_t pocon(
5232  lapack::Uplo uplo, int64_t n,
5233  float const* A, int64_t lda, float anorm,
5234  float* rcond );
5235 
5236 int64_t pocon(
5237  lapack::Uplo uplo, int64_t n,
5238  double const* A, int64_t lda, double anorm,
5239  double* rcond );
5240 
5241 int64_t pocon(
5242  lapack::Uplo uplo, int64_t n,
5243  std::complex<float> const* A, int64_t lda, float anorm,
5244  float* rcond );
5245 
5246 int64_t pocon(
5247  lapack::Uplo uplo, int64_t n,
5248  std::complex<double> const* A, int64_t lda, double anorm,
5249  double* rcond );
5250 
5251 // -----------------------------------------------------------------------------
5252 int64_t poequ(
5253  int64_t n,
5254  float const* A, int64_t lda,
5255  float* S,
5256  float* scond,
5257  float* amax );
5258 
5259 int64_t poequ(
5260  int64_t n,
5261  double const* A, int64_t lda,
5262  double* S,
5263  double* scond,
5264  double* amax );
5265 
5266 int64_t poequ(
5267  int64_t n,
5268  std::complex<float> const* A, int64_t lda,
5269  float* S,
5270  float* scond,
5271  float* amax );
5272 
5273 int64_t poequ(
5274  int64_t n,
5275  std::complex<double> const* A, int64_t lda,
5276  double* S,
5277  double* scond,
5278  double* amax );
5279 
5280 // -----------------------------------------------------------------------------
5281 int64_t poequb(
5282  int64_t n,
5283  float const* A, int64_t lda,
5284  float* S,
5285  float* scond,
5286  float* amax );
5287 
5288 int64_t poequb(
5289  int64_t n,
5290  double const* A, int64_t lda,
5291  double* S,
5292  double* scond,
5293  double* amax );
5294 
5295 int64_t poequb(
5296  int64_t n,
5297  std::complex<float> const* A, int64_t lda,
5298  float* S,
5299  float* scond,
5300  float* amax );
5301 
5302 int64_t poequb(
5303  int64_t n,
5304  std::complex<double> const* A, int64_t lda,
5305  double* S,
5306  double* scond,
5307  double* amax );
5308 
5309 // -----------------------------------------------------------------------------
5310 int64_t porfs(
5311  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5312  float const* A, int64_t lda,
5313  float const* AF, int64_t ldaf,
5314  float const* B, int64_t ldb,
5315  float* X, int64_t ldx,
5316  float* ferr,
5317  float* berr );
5318 
5319 int64_t porfs(
5320  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5321  double const* A, int64_t lda,
5322  double const* AF, int64_t ldaf,
5323  double const* B, int64_t ldb,
5324  double* X, int64_t ldx,
5325  double* ferr,
5326  double* berr );
5327 
5328 int64_t porfs(
5329  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5330  std::complex<float> const* A, int64_t lda,
5331  std::complex<float> const* AF, int64_t ldaf,
5332  std::complex<float> const* B, int64_t ldb,
5333  std::complex<float>* X, int64_t ldx,
5334  float* ferr,
5335  float* berr );
5336 
5337 int64_t porfs(
5338  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5339  std::complex<double> const* A, int64_t lda,
5340  std::complex<double> const* AF, int64_t ldaf,
5341  std::complex<double> const* B, int64_t ldb,
5342  std::complex<double>* X, int64_t ldx,
5343  double* ferr,
5344  double* berr );
5345 
5346 // -----------------------------------------------------------------------------
5347 int64_t porfsx(
5348  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5349  float const* A, int64_t lda,
5350  float const* AF, int64_t ldaf,
5351  float* S,
5352  float const* B, int64_t ldb,
5353  float* X, int64_t ldx,
5354  float* rcond,
5355  float* berr, int64_t n_err_bnds,
5356  float* err_bnds_norm,
5357  float* err_bnds_comp, int64_t nparams,
5358  float* params );
5359 
5360 int64_t porfsx(
5361  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5362  double const* A, int64_t lda,
5363  double const* AF, int64_t ldaf,
5364  double* S,
5365  double const* B, int64_t ldb,
5366  double* X, int64_t ldx,
5367  double* rcond,
5368  double* berr, int64_t n_err_bnds,
5369  double* err_bnds_norm,
5370  double* err_bnds_comp, int64_t nparams,
5371  double* params );
5372 
5373 int64_t porfsx(
5374  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5375  std::complex<float> const* A, int64_t lda,
5376  std::complex<float> const* AF, int64_t ldaf,
5377  float* S,
5378  std::complex<float> const* B, int64_t ldb,
5379  std::complex<float>* X, int64_t ldx,
5380  float* rcond,
5381  float* berr, int64_t n_err_bnds,
5382  float* err_bnds_norm,
5383  float* err_bnds_comp, int64_t nparams,
5384  float* params );
5385 
5386 int64_t porfsx(
5387  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5388  std::complex<double> const* A, int64_t lda,
5389  std::complex<double> const* AF, int64_t ldaf,
5390  double* S,
5391  std::complex<double> const* B, int64_t ldb,
5392  std::complex<double>* X, int64_t ldx,
5393  double* rcond,
5394  double* berr, int64_t n_err_bnds,
5395  double* err_bnds_norm,
5396  double* err_bnds_comp, int64_t nparams,
5397  double* params );
5398 
5399 // -----------------------------------------------------------------------------
5400 int64_t posv(
5401  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5402  float* A, int64_t lda,
5403  float* B, int64_t ldb );
5404 
5405 int64_t posv(
5406  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5407  double* A, int64_t lda,
5408  double* B, int64_t ldb );
5409 
5410 int64_t posv(
5411  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5412  std::complex<float>* A, int64_t lda,
5413  std::complex<float>* B, int64_t ldb );
5414 
5415 int64_t posv(
5416  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5417  std::complex<double>* A, int64_t lda,
5418  std::complex<double>* B, int64_t ldb );
5419 
5420 int64_t posv(
5421  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5422  double* A, int64_t lda,
5423  double const* B, int64_t ldb,
5424  double* X, int64_t ldx,
5425  int64_t* iter );
5426 
5427 int64_t posv(
5428  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5429  std::complex<double>* A, int64_t lda,
5430  std::complex<double> const* B, int64_t ldb,
5431  std::complex<double>* X, int64_t ldx,
5432  int64_t* iter );
5433 
5434 // -----------------------------------------------------------------------------
5435 int64_t posvx(
5436  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5437  float* A, int64_t lda,
5438  float* AF, int64_t ldaf,
5439  lapack::Equed* equed,
5440  float* S,
5441  float* B, int64_t ldb,
5442  float* X, int64_t ldx,
5443  float* rcond,
5444  float* ferr,
5445  float* berr );
5446 
5447 int64_t posvx(
5448  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5449  double* A, int64_t lda,
5450  double* AF, int64_t ldaf,
5451  lapack::Equed* equed,
5452  double* S,
5453  double* B, int64_t ldb,
5454  double* X, int64_t ldx,
5455  double* rcond,
5456  double* ferr,
5457  double* berr );
5458 
5459 int64_t posvx(
5460  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5461  std::complex<float>* A, int64_t lda,
5462  std::complex<float>* AF, int64_t ldaf,
5463  lapack::Equed* equed,
5464  float* S,
5465  std::complex<float>* B, int64_t ldb,
5466  std::complex<float>* X, int64_t ldx,
5467  float* rcond,
5468  float* ferr,
5469  float* berr );
5470 
5471 int64_t posvx(
5472  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5473  std::complex<double>* A, int64_t lda,
5474  std::complex<double>* AF, int64_t ldaf,
5475  lapack::Equed* equed,
5476  double* S,
5477  std::complex<double>* B, int64_t ldb,
5478  std::complex<double>* X, int64_t ldx,
5479  double* rcond,
5480  double* ferr,
5481  double* berr );
5482 
5483 // -----------------------------------------------------------------------------
5484 int64_t potf2(
5485  lapack::Uplo uplo, int64_t n,
5486  float* A, int64_t lda );
5487 
5488 int64_t potf2(
5489  lapack::Uplo uplo, int64_t n,
5490  double* A, int64_t lda );
5491 
5492 int64_t potf2(
5493  lapack::Uplo uplo, int64_t n,
5494  std::complex<float>* A, int64_t lda );
5495 
5496 int64_t potf2(
5497  lapack::Uplo uplo, int64_t n,
5498  std::complex<double>* A, int64_t lda );
5499 
5500 // -----------------------------------------------------------------------------
5501 int64_t potrf(
5502  lapack::Uplo uplo, int64_t n,
5503  float* A, int64_t lda );
5504 
5505 int64_t potrf(
5506  lapack::Uplo uplo, int64_t n,
5507  double* A, int64_t lda );
5508 
5509 int64_t potrf(
5510  lapack::Uplo uplo, int64_t n,
5511  std::complex<float>* A, int64_t lda );
5512 
5513 int64_t potrf(
5514  lapack::Uplo uplo, int64_t n,
5515  std::complex<double>* A, int64_t lda );
5516 
5517 // -----------------------------------------------------------------------------
5518 int64_t potrf2(
5519  lapack::Uplo uplo, int64_t n,
5520  float* A, int64_t lda );
5521 
5522 int64_t potrf2(
5523  lapack::Uplo uplo, int64_t n,
5524  double* A, int64_t lda );
5525 
5526 int64_t potrf2(
5527  lapack::Uplo uplo, int64_t n,
5528  std::complex<float>* A, int64_t lda );
5529 
5530 int64_t potrf2(
5531  lapack::Uplo uplo, int64_t n,
5532  std::complex<double>* A, int64_t lda );
5533 
5534 // -----------------------------------------------------------------------------
5535 int64_t potri(
5536  lapack::Uplo uplo, int64_t n,
5537  float* A, int64_t lda );
5538 
5539 int64_t potri(
5540  lapack::Uplo uplo, int64_t n,
5541  double* A, int64_t lda );
5542 
5543 int64_t potri(
5544  lapack::Uplo uplo, int64_t n,
5545  std::complex<float>* A, int64_t lda );
5546 
5547 int64_t potri(
5548  lapack::Uplo uplo, int64_t n,
5549  std::complex<double>* A, int64_t lda );
5550 
5551 // -----------------------------------------------------------------------------
5552 int64_t potrs(
5553  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5554  float const* A, int64_t lda,
5555  float* B, int64_t ldb );
5556 
5557 int64_t potrs(
5558  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5559  double const* A, int64_t lda,
5560  double* B, int64_t ldb );
5561 
5562 int64_t potrs(
5563  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5564  std::complex<float> const* A, int64_t lda,
5565  std::complex<float>* B, int64_t ldb );
5566 
5567 int64_t potrs(
5568  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5569  std::complex<double> const* A, int64_t lda,
5570  std::complex<double>* B, int64_t ldb );
5571 
5572 // -----------------------------------------------------------------------------
5573 int64_t ppcon(
5574  lapack::Uplo uplo, int64_t n,
5575  float const* AP, float anorm,
5576  float* rcond );
5577 
5578 int64_t ppcon(
5579  lapack::Uplo uplo, int64_t n,
5580  double const* AP, double anorm,
5581  double* rcond );
5582 
5583 int64_t ppcon(
5584  lapack::Uplo uplo, int64_t n,
5585  std::complex<float> const* AP, float anorm,
5586  float* rcond );
5587 
5588 int64_t ppcon(
5589  lapack::Uplo uplo, int64_t n,
5590  std::complex<double> const* AP, double anorm,
5591  double* rcond );
5592 
5593 // -----------------------------------------------------------------------------
5594 int64_t ppequ(
5595  lapack::Uplo uplo, int64_t n,
5596  float const* AP,
5597  float* S,
5598  float* scond,
5599  float* amax );
5600 
5601 int64_t ppequ(
5602  lapack::Uplo uplo, int64_t n,
5603  double const* AP,
5604  double* S,
5605  double* scond,
5606  double* amax );
5607 
5608 int64_t ppequ(
5609  lapack::Uplo uplo, int64_t n,
5610  std::complex<float> const* AP,
5611  float* S,
5612  float* scond,
5613  float* amax );
5614 
5615 int64_t ppequ(
5616  lapack::Uplo uplo, int64_t n,
5617  std::complex<double> const* AP,
5618  double* S,
5619  double* scond,
5620  double* amax );
5621 
5622 // -----------------------------------------------------------------------------
5623 int64_t pprfs(
5624  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5625  float const* AP,
5626  float const* AFP,
5627  float const* B, int64_t ldb,
5628  float* X, int64_t ldx,
5629  float* ferr,
5630  float* berr );
5631 
5632 int64_t pprfs(
5633  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5634  double const* AP,
5635  double const* AFP,
5636  double const* B, int64_t ldb,
5637  double* X, int64_t ldx,
5638  double* ferr,
5639  double* berr );
5640 
5641 int64_t pprfs(
5642  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5643  std::complex<float> const* AP,
5644  std::complex<float> const* AFP,
5645  std::complex<float> const* B, int64_t ldb,
5646  std::complex<float>* X, int64_t ldx,
5647  float* ferr,
5648  float* berr );
5649 
5650 int64_t pprfs(
5651  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5652  std::complex<double> const* AP,
5653  std::complex<double> const* AFP,
5654  std::complex<double> const* B, int64_t ldb,
5655  std::complex<double>* X, int64_t ldx,
5656  double* ferr,
5657  double* berr );
5658 
5659 // -----------------------------------------------------------------------------
5660 int64_t ppsv(
5661  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5662  float* AP,
5663  float* B, int64_t ldb );
5664 
5665 int64_t ppsv(
5666  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5667  double* AP,
5668  double* B, int64_t ldb );
5669 
5670 int64_t ppsv(
5671  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5672  std::complex<float>* AP,
5673  std::complex<float>* B, int64_t ldb );
5674 
5675 int64_t ppsv(
5676  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5677  std::complex<double>* AP,
5678  std::complex<double>* B, int64_t ldb );
5679 
5680 // -----------------------------------------------------------------------------
5681 int64_t ppsvx(
5682  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5683  float* AP,
5684  float* AFP,
5685  lapack::Equed* equed,
5686  float* S,
5687  float* B, int64_t ldb,
5688  float* X, int64_t ldx,
5689  float* rcond,
5690  float* ferr,
5691  float* berr );
5692 
5693 int64_t ppsvx(
5694  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5695  double* AP,
5696  double* AFP,
5697  lapack::Equed* equed,
5698  double* S,
5699  double* B, int64_t ldb,
5700  double* X, int64_t ldx,
5701  double* rcond,
5702  double* ferr,
5703  double* berr );
5704 
5705 int64_t ppsvx(
5706  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5707  std::complex<float>* AP,
5708  std::complex<float>* AFP,
5709  lapack::Equed* equed,
5710  float* S,
5711  std::complex<float>* B, int64_t ldb,
5712  std::complex<float>* X, int64_t ldx,
5713  float* rcond,
5714  float* ferr,
5715  float* berr );
5716 
5717 int64_t ppsvx(
5718  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5719  std::complex<double>* AP,
5720  std::complex<double>* AFP,
5721  lapack::Equed* equed,
5722  double* S,
5723  std::complex<double>* B, int64_t ldb,
5724  std::complex<double>* X, int64_t ldx,
5725  double* rcond,
5726  double* ferr,
5727  double* berr );
5728 
5729 // -----------------------------------------------------------------------------
5730 int64_t pptrf(
5731  lapack::Uplo uplo, int64_t n,
5732  float* AP );
5733 
5734 int64_t pptrf(
5735  lapack::Uplo uplo, int64_t n,
5736  double* AP );
5737 
5738 int64_t pptrf(
5739  lapack::Uplo uplo, int64_t n,
5740  std::complex<float>* AP );
5741 
5742 int64_t pptrf(
5743  lapack::Uplo uplo, int64_t n,
5744  std::complex<double>* AP );
5745 
5746 // -----------------------------------------------------------------------------
5747 int64_t pptri(
5748  lapack::Uplo uplo, int64_t n,
5749  float* AP );
5750 
5751 int64_t pptri(
5752  lapack::Uplo uplo, int64_t n,
5753  double* AP );
5754 
5755 int64_t pptri(
5756  lapack::Uplo uplo, int64_t n,
5757  std::complex<float>* AP );
5758 
5759 int64_t pptri(
5760  lapack::Uplo uplo, int64_t n,
5761  std::complex<double>* AP );
5762 
5763 // -----------------------------------------------------------------------------
5764 int64_t pptrs(
5765  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5766  float const* AP,
5767  float* B, int64_t ldb );
5768 
5769 int64_t pptrs(
5770  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5771  double const* AP,
5772  double* B, int64_t ldb );
5773 
5774 int64_t pptrs(
5775  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5776  std::complex<float> const* AP,
5777  std::complex<float>* B, int64_t ldb );
5778 
5779 int64_t pptrs(
5780  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5781  std::complex<double> const* AP,
5782  std::complex<double>* B, int64_t ldb );
5783 
5784 // -----------------------------------------------------------------------------
5785 int64_t pstrf(
5786  lapack::Uplo uplo, int64_t n,
5787  float* A, int64_t lda,
5788  int64_t* piv,
5789  int64_t* rank, float tol );
5790 
5791 int64_t pstrf(
5792  lapack::Uplo uplo, int64_t n,
5793  double* A, int64_t lda,
5794  int64_t* piv,
5795  int64_t* rank, double tol );
5796 
5797 int64_t pstrf(
5798  lapack::Uplo uplo, int64_t n,
5799  std::complex<float>* A, int64_t lda,
5800  int64_t* piv,
5801  int64_t* rank, float tol );
5802 
5803 int64_t pstrf(
5804  lapack::Uplo uplo, int64_t n,
5805  std::complex<double>* A, int64_t lda,
5806  int64_t* piv,
5807  int64_t* rank, double tol );
5808 
5809 // -----------------------------------------------------------------------------
5810 int64_t ptcon(
5811  int64_t n,
5812  float const* D,
5813  float const* E, float anorm,
5814  float* rcond );
5815 
5816 int64_t ptcon(
5817  int64_t n,
5818  double const* D,
5819  double const* E, double anorm,
5820  double* rcond );
5821 
5822 int64_t ptcon(
5823  int64_t n,
5824  float const* D,
5825  std::complex<float> const* E, float anorm,
5826  float* rcond );
5827 
5828 int64_t ptcon(
5829  int64_t n,
5830  double const* D,
5831  std::complex<double> const* E, double anorm,
5832  double* rcond );
5833 
5834 // -----------------------------------------------------------------------------
5835 int64_t pteqr(
5836  lapack::Job compz, int64_t n,
5837  float* D,
5838  float* E,
5839  float* Z, int64_t ldz );
5840 
5841 int64_t pteqr(
5842  lapack::Job compz, int64_t n,
5843  double* D,
5844  double* E,
5845  double* Z, int64_t ldz );
5846 
5847 int64_t pteqr(
5848  lapack::Job compz, int64_t n,
5849  float* D,
5850  float* E,
5851  std::complex<float>* Z, int64_t ldz );
5852 
5853 int64_t pteqr(
5854  lapack::Job compz, int64_t n,
5855  double* D,
5856  double* E,
5857  std::complex<double>* Z, int64_t ldz );
5858 
5859 // -----------------------------------------------------------------------------
5860 int64_t ptrfs(
5861  int64_t n, int64_t nrhs,
5862  float const* D,
5863  float const* E,
5864  float const* DF,
5865  float const* EF,
5866  float const* B, int64_t ldb,
5867  float* X, int64_t ldx,
5868  float* ferr,
5869  float* berr );
5870 
5871 // alias to match complex version (ignoring uplo)
5872 inline int64_t ptrfs(
5873  lapack::Uplo uplo,
5874  int64_t n, int64_t nrhs,
5875  float const* D,
5876  float const* E,
5877  float const* DF,
5878  float const* EF,
5879  float const* B, int64_t ldb,
5880  float* X, int64_t ldx,
5881  float* ferr,
5882  float* berr )
5883 {
5884  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5885 }
5886 
5887 int64_t ptrfs(
5888  int64_t n, int64_t nrhs,
5889  double const* D,
5890  double const* E,
5891  double const* DF,
5892  double const* EF,
5893  double const* B, int64_t ldb,
5894  double* X, int64_t ldx,
5895  double* ferr,
5896  double* berr );
5897 
5898 // alias to match complex version (ignoring uplo)
5899 inline int64_t ptrfs(
5900  lapack::Uplo uplo,
5901  int64_t n, int64_t nrhs,
5902  double const* D,
5903  double const* E,
5904  double const* DF,
5905  double const* EF,
5906  double const* B, int64_t ldb,
5907  double* X, int64_t ldx,
5908  double* ferr,
5909  double* berr )
5910 {
5911  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5912 }
5913 
5914 int64_t ptrfs(
5915  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5916  float const* D,
5917  std::complex<float> const* E,
5918  float const* DF,
5919  std::complex<float> const* EF,
5920  std::complex<float> const* B, int64_t ldb,
5921  std::complex<float>* X, int64_t ldx,
5922  float* ferr,
5923  float* berr );
5924 
5925 int64_t ptrfs(
5926  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5927  double const* D,
5928  std::complex<double> const* E,
5929  double const* DF,
5930  std::complex<double> const* EF,
5931  std::complex<double> const* B, int64_t ldb,
5932  std::complex<double>* X, int64_t ldx,
5933  double* ferr,
5934  double* berr );
5935 
5936 // -----------------------------------------------------------------------------
5937 int64_t ptsv(
5938  int64_t n, int64_t nrhs,
5939  float* D,
5940  float* E,
5941  float* B, int64_t ldb );
5942 
5943 int64_t ptsv(
5944  int64_t n, int64_t nrhs,
5945  double* D,
5946  double* E,
5947  double* B, int64_t ldb );
5948 
5949 int64_t ptsv(
5950  int64_t n, int64_t nrhs,
5951  float* D,
5952  std::complex<float>* E,
5953  std::complex<float>* B, int64_t ldb );
5954 
5955 int64_t ptsv(
5956  int64_t n, int64_t nrhs,
5957  double* D,
5958  std::complex<double>* E,
5959  std::complex<double>* B, int64_t ldb );
5960 
5961 // -----------------------------------------------------------------------------
5962 int64_t ptsvx(
5963  lapack::Factored fact, int64_t n, int64_t nrhs,
5964  float const* D,
5965  float const* E,
5966  float* DF,
5967  float* EF,
5968  float const* B, int64_t ldb,
5969  float* X, int64_t ldx,
5970  float* rcond,
5971  float* ferr,
5972  float* berr );
5973 
5974 int64_t ptsvx(
5975  lapack::Factored fact, int64_t n, int64_t nrhs,
5976  double const* D,
5977  double const* E,
5978  double* DF,
5979  double* EF,
5980  double const* B, int64_t ldb,
5981  double* X, int64_t ldx,
5982  double* rcond,
5983  double* ferr,
5984  double* berr );
5985 
5986 int64_t ptsvx(
5987  lapack::Factored fact, int64_t n, int64_t nrhs,
5988  float const* D,
5989  std::complex<float> const* E,
5990  float* DF,
5991  std::complex<float>* EF,
5992  std::complex<float> const* B, int64_t ldb,
5993  std::complex<float>* X, int64_t ldx,
5994  float* rcond,
5995  float* ferr,
5996  float* berr );
5997 
5998 int64_t ptsvx(
5999  lapack::Factored fact, int64_t n, int64_t nrhs,
6000  double const* D,
6001  std::complex<double> const* E,
6002  double* DF,
6003  std::complex<double>* EF,
6004  std::complex<double> const* B, int64_t ldb,
6005  std::complex<double>* X, int64_t ldx,
6006  double* rcond,
6007  double* ferr,
6008  double* berr );
6009 
6010 // -----------------------------------------------------------------------------
6011 int64_t pttrf(
6012  int64_t n,
6013  float* D,
6014  float* E );
6015 
6016 int64_t pttrf(
6017  int64_t n,
6018  double* D,
6019  double* E );
6020 
6021 int64_t pttrf(
6022  int64_t n,
6023  float* D,
6024  std::complex<float>* E );
6025 
6026 int64_t pttrf(
6027  int64_t n,
6028  double* D,
6029  std::complex<double>* E );
6030 
6031 // -----------------------------------------------------------------------------
6032 int64_t pttrs(
6033  int64_t n, int64_t nrhs,
6034  float const* D,
6035  float const* E,
6036  float* B, int64_t ldb );
6037 
6038 // alias with uplo to match complex (it is ignored)
6039 inline int64_t pttrs(
6040  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6041  float const* D,
6042  float const* E,
6043  float* B, int64_t ldb )
6044 {
6045  return pttrs( n, nrhs, D, E, B, ldb );
6046 }
6047 
6048 int64_t pttrs(
6049  int64_t n, int64_t nrhs,
6050  double const* D,
6051  double const* E,
6052  double* B, int64_t ldb );
6053 
6054 // alias with uplo to match complex (it is ignored)
6055 inline int64_t pttrs(
6056  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6057  double const* D,
6058  double const* E,
6059  double* B, int64_t ldb )
6060 {
6061  return pttrs( n, nrhs, D, E, B, ldb );
6062 }
6063 
6064 int64_t pttrs(
6065  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6066  float const* D,
6067  std::complex<float> const* E,
6068  std::complex<float>* B, int64_t ldb );
6069 
6070 int64_t pttrs(
6071  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6072  double const* D,
6073  std::complex<double> const* E,
6074  std::complex<double>* B, int64_t ldb );
6075 
6076 // -----------------------------------------------------------------------------
6077 int64_t sbev(
6078  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6079  float* AB, int64_t ldab,
6080  float* W,
6081  float* Z, int64_t ldz );
6082 
6083 // hbev alias to sbev
6084 inline int64_t hbev(
6085  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6086  float* AB, int64_t ldab,
6087  float* W,
6088  float* Z, int64_t ldz )
6089 {
6090  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6091 }
6092 
6093 int64_t sbev(
6094  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6095  double* AB, int64_t ldab,
6096  double* W,
6097  double* Z, int64_t ldz );
6098 
6099 // hbev alias to sbev
6100 inline int64_t hbev(
6101  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6102  double* AB, int64_t ldab,
6103  double* W,
6104  double* Z, int64_t ldz )
6105 {
6106  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6107 }
6108 
6109 // -----------------------------------------------------------------------------
6110 int64_t sbev_2stage(
6111  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6112  float* AB, int64_t ldab,
6113  float* W,
6114  float* Z, int64_t ldz );
6115 
6116 // hbev_2stage alias to sbev_2stage
6117 inline int64_t hbev_2stage(
6118  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6119  float* AB, int64_t ldab,
6120  float* W,
6121  float* Z, int64_t ldz )
6122 {
6123  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6124 }
6125 
6126 int64_t sbev_2stage(
6127  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6128  double* AB, int64_t ldab,
6129  double* W,
6130  double* Z, int64_t ldz );
6131 
6132 // hbev_2stage alias to sbev_2stage
6133 inline int64_t hbev_2stage(
6134  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6135  double* AB, int64_t ldab,
6136  double* W,
6137  double* Z, int64_t ldz )
6138 {
6139  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6140 }
6141 
6142 // -----------------------------------------------------------------------------
6143 int64_t sbevd(
6144  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6145  float* AB, int64_t ldab,
6146  float* W,
6147  float* Z, int64_t ldz );
6148 
6149 // hbevd alias to sbevd
6150 inline int64_t hbevd(
6151  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6152  float* AB, int64_t ldab,
6153  float* W,
6154  float* Z, int64_t ldz )
6155 {
6156  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6157 }
6158 
6159 int64_t sbevd(
6160  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6161  double* AB, int64_t ldab,
6162  double* W,
6163  double* Z, int64_t ldz );
6164 
6165 // hbevd alias to sbevd
6166 inline int64_t hbevd(
6167  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6168  double* AB, int64_t ldab,
6169  double* W,
6170  double* Z, int64_t ldz )
6171 {
6172  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6173 }
6174 
6175 // -----------------------------------------------------------------------------
6176 int64_t sbevd_2stage(
6177  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6178  float* AB, int64_t ldab,
6179  float* W,
6180  float* Z, int64_t ldz );
6181 
6182 // hbevd_2stage alias to sbevd_2stage
6183 inline int64_t hbevd_2stage(
6184  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6185  float* AB, int64_t ldab,
6186  float* W,
6187  float* Z, int64_t ldz )
6188 {
6189  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6190 }
6191 
6192 int64_t sbevd_2stage(
6193  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6194  double* AB, int64_t ldab,
6195  double* W,
6196  double* Z, int64_t ldz );
6197 
6198 // hbevd_2stage alias to sbevd_2stage
6199 inline int64_t hbevd_2stage(
6200  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6201  double* AB, int64_t ldab,
6202  double* W,
6203  double* Z, int64_t ldz )
6204 {
6205  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6206 }
6207 
6208 // -----------------------------------------------------------------------------
6209 int64_t sbevx(
6210  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6211  float* AB, int64_t ldab,
6212  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6213  int64_t* m,
6214  float* W,
6215  float* Z, int64_t ldz,
6216  int64_t* ifail );
6217 
6218 // hbevx alias to sbevx
6219 inline int64_t hbevx(
6220  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6221  float* AB, int64_t ldab,
6222  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6223  int64_t* m,
6224  float* W,
6225  float* Z, int64_t ldz,
6226  int64_t* ifail )
6227 {
6228  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6229 }
6230 
6231 int64_t sbevx(
6232  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6233  double* AB, int64_t ldab,
6234  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6235  int64_t* m,
6236  double* W,
6237  double* Z, int64_t ldz,
6238  int64_t* ifail );
6239 
6240 // hbevx alias to sbevx
6241 inline int64_t hbevx(
6242  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6243  double* AB, int64_t ldab,
6244  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6245  int64_t* m,
6246  double* W,
6247  double* Z, int64_t ldz,
6248  int64_t* ifail )
6249 {
6250  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6251 }
6252 
6253 // -----------------------------------------------------------------------------
6254 int64_t sbevx_2stage(
6255  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6256  float* AB, int64_t ldab,
6257  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6258  int64_t* m,
6259  float* W,
6260  float* Z, int64_t ldz,
6261  int64_t* ifail );
6262 
6263 // hbevx_2stage alias to sbevx_2stage
6264 inline int64_t hbevx_2stage(
6265  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6266  float* AB, int64_t ldab,
6267  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6268  int64_t* m,
6269  float* W,
6270  float* Z, int64_t ldz,
6271  int64_t* ifail )
6272 {
6273  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6274 }
6275 
6276 int64_t sbevx_2stage(
6277  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6278  double* AB, int64_t ldab,
6279  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6280  int64_t* m,
6281  double* W,
6282  double* Z, int64_t ldz,
6283  int64_t* ifail );
6284 
6285 // hbevx_2stage alias to sbevx_2stage
6286 inline int64_t hbevx_2stage(
6287  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6288  double* AB, int64_t ldab,
6289  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6290  int64_t* m,
6291  double* W,
6292  double* Z, int64_t ldz,
6293  int64_t* ifail )
6294 {
6295  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6296 }
6297 
6298 // -----------------------------------------------------------------------------
6299 int64_t sbgst(
6300  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6301  float* AB, int64_t ldab,
6302  float const* BB, int64_t ldbb,
6303  float* X, int64_t ldx );
6304 
6305 // hbgst alias to sbgst
6306 inline int64_t hbgst(
6307  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6308  float* AB, int64_t ldab,
6309  float const* BB, int64_t ldbb,
6310  float* X, int64_t ldx )
6311 {
6312  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6313 }
6314 
6315 int64_t sbgst(
6316  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6317  double* AB, int64_t ldab,
6318  double const* BB, int64_t ldbb,
6319  double* X, int64_t ldx );
6320 
6321 // hbgst alias to sbgst
6322 inline int64_t hbgst(
6323  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6324  double* AB, int64_t ldab,
6325  double const* BB, int64_t ldbb,
6326  double* X, int64_t ldx )
6327 {
6328  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6329 }
6330 
6331 // -----------------------------------------------------------------------------
6332 int64_t sbgv(
6333  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6334  float* AB, int64_t ldab,
6335  float* BB, int64_t ldbb,
6336  float* W,
6337  float* Z, int64_t ldz );
6338 
6339 // hbgv alias to sbgv
6340 inline int64_t hbgv(
6341  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6342  float* AB, int64_t ldab,
6343  float* BB, int64_t ldbb,
6344  float* W,
6345  float* Z, int64_t ldz )
6346 {
6347  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6348 }
6349 
6350 int64_t sbgv(
6351  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6352  double* AB, int64_t ldab,
6353  double* BB, int64_t ldbb,
6354  double* W,
6355  double* Z, int64_t ldz );
6356 
6357 // hbgv alias to sbgv
6358 inline int64_t hbgv(
6359  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6360  double* AB, int64_t ldab,
6361  double* BB, int64_t ldbb,
6362  double* W,
6363  double* Z, int64_t ldz )
6364 {
6365  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6366 }
6367 
6368 // -----------------------------------------------------------------------------
6369 int64_t sbgvd(
6370  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6371  float* AB, int64_t ldab,
6372  float* BB, int64_t ldbb,
6373  float* W,
6374  float* Z, int64_t ldz );
6375 
6376 // hbgvd alias to sbgvd
6377 inline int64_t hbgvd(
6378  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6379  float* AB, int64_t ldab,
6380  float* BB, int64_t ldbb,
6381  float* W,
6382  float* Z, int64_t ldz )
6383 {
6384  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6385 }
6386 
6387 int64_t sbgvd(
6388  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6389  double* AB, int64_t ldab,
6390  double* BB, int64_t ldbb,
6391  double* W,
6392  double* Z, int64_t ldz );
6393 
6394 // hbgvd alias to sbgvd
6395 inline int64_t hbgvd(
6396  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6397  double* AB, int64_t ldab,
6398  double* BB, int64_t ldbb,
6399  double* W,
6400  double* Z, int64_t ldz )
6401 {
6402  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6403 }
6404 
6405 // -----------------------------------------------------------------------------
6406 int64_t sbgvx(
6407  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6408  float* AB, int64_t ldab,
6409  float* BB, int64_t ldbb,
6410  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6411  int64_t* m,
6412  float* W,
6413  float* Z, int64_t ldz,
6414  int64_t* ifail );
6415 
6416 // hbgvx alias to sbgvx
6417 inline int64_t hbgvx(
6418  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6419  float* AB, int64_t ldab,
6420  float* BB, int64_t ldbb,
6421  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6422  int64_t* m,
6423  float* W,
6424  float* Z, int64_t ldz,
6425  int64_t* ifail )
6426 {
6427  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6428 }
6429 
6430 int64_t sbgvx(
6431  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6432  double* AB, int64_t ldab,
6433  double* BB, int64_t ldbb,
6434  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6435  int64_t* m,
6436  double* W,
6437  double* Z, int64_t ldz,
6438  int64_t* ifail );
6439 
6440 // hbgvx alias to sbgvx
6441 inline int64_t hbgvx(
6442  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6443  double* AB, int64_t ldab,
6444  double* BB, int64_t ldbb,
6445  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6446  int64_t* m,
6447  double* W,
6448  double* Z, int64_t ldz,
6449  int64_t* ifail )
6450 {
6451  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6452 }
6453 
6454 // -----------------------------------------------------------------------------
6455 int64_t sbtrd(
6456  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6457  float* AB, int64_t ldab,
6458  float* D,
6459  float* E,
6460  float* Q, int64_t ldq );
6461 
6462 // hbtrd alias to sbtrd
6463 inline int64_t hbtrd(
6464  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6465  float* AB, int64_t ldab,
6466  float* D,
6467  float* E,
6468  float* Q, int64_t ldq )
6469 {
6470  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6471 }
6472 
6473 int64_t sbtrd(
6474  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6475  double* AB, int64_t ldab,
6476  double* D,
6477  double* E,
6478  double* Q, int64_t ldq );
6479 
6480 // hbtrd alias to sbtrd
6481 inline int64_t hbtrd(
6482  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6483  double* AB, int64_t ldab,
6484  double* D,
6485  double* E,
6486  double* Q, int64_t ldq )
6487 {
6488  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6489 }
6490 
6491 // -----------------------------------------------------------------------------
6492 void sfrk(
6493  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, float alpha,
6494  float const* A, int64_t lda, float beta,
6495  float* C );
6496 
6497 void sfrk(
6498  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, double alpha,
6499  double const* A, int64_t lda, double beta,
6500  double* C );
6501 
6502 // -----------------------------------------------------------------------------
6503 int64_t spcon(
6504  lapack::Uplo uplo, int64_t n,
6505  float const* AP,
6506  int64_t const* ipiv, float anorm,
6507  float* rcond );
6508 
6509 // hpcon alias to spcon
6510 inline int64_t hpcon(
6511  lapack::Uplo uplo, int64_t n,
6512  float const* AP,
6513  int64_t const* ipiv, float anorm,
6514  float* rcond )
6515 {
6516  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6517 }
6518 
6519 int64_t spcon(
6520  lapack::Uplo uplo, int64_t n,
6521  double const* AP,
6522  int64_t const* ipiv, double anorm,
6523  double* rcond );
6524 
6525 // hpcon alias to spcon
6526 inline int64_t hpcon(
6527  lapack::Uplo uplo, int64_t n,
6528  double const* AP,
6529  int64_t const* ipiv, double anorm,
6530  double* rcond )
6531 {
6532  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6533 }
6534 
6535 int64_t spcon(
6536  lapack::Uplo uplo, int64_t n,
6537  std::complex<float> const* AP,
6538  int64_t const* ipiv, float anorm,
6539  float* rcond );
6540 
6541 int64_t spcon(
6542  lapack::Uplo uplo, int64_t n,
6543  std::complex<double> const* AP,
6544  int64_t const* ipiv, double anorm,
6545  double* rcond );
6546 
6547 // -----------------------------------------------------------------------------
6548 int64_t spev(
6549  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6550  float* AP,
6551  float* W,
6552  float* Z, int64_t ldz );
6553 
6554 // hpev alias to spev
6555 inline int64_t hpev(
6556  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6557  float* AP,
6558  float* W,
6559  float* Z, int64_t ldz )
6560 {
6561  return spev( jobz, uplo, n, AP, W, Z, ldz );
6562 }
6563 
6564 int64_t spev(
6565  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6566  double* AP,
6567  double* W,
6568  double* Z, int64_t ldz );
6569 
6570 // hpev alias to spev
6571 inline int64_t hpev(
6572  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6573  double* AP,
6574  double* W,
6575  double* Z, int64_t ldz )
6576 {
6577  return spev( jobz, uplo, n, AP, W, Z, ldz );
6578 }
6579 
6580 // -----------------------------------------------------------------------------
6581 int64_t spevd(
6582  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6583  float* AP,
6584  float* W,
6585  float* Z, int64_t ldz );
6586 
6587 // hpevd alias to spevd
6588 inline int64_t hpevd(
6589  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6590  float* AP,
6591  float* W,
6592  float* Z, int64_t ldz )
6593 {
6594  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6595 }
6596 
6597 int64_t spevd(
6598  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6599  double* AP,
6600  double* W,
6601  double* Z, int64_t ldz );
6602 
6603 // hpevd alias to spevd
6604 inline int64_t hpevd(
6605  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6606  double* AP,
6607  double* W,
6608  double* Z, int64_t ldz )
6609 {
6610  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6611 }
6612 
6613 // -----------------------------------------------------------------------------
6614 int64_t spevx(
6615  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6616  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6617  int64_t* m,
6618  float* W,
6619  float* Z, int64_t ldz,
6620  int64_t* ifail );
6621 
6622 // hpevx alias to spevx
6623 inline int64_t hpevx(
6624  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6625  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6626  int64_t* m,
6627  float* W,
6628  float* Z, int64_t ldz,
6629  int64_t* ifail )
6630 {
6631  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6632 }
6633 
6634 int64_t spevx(
6635  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6636  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6637  int64_t* m,
6638  double* W,
6639  double* Z, int64_t ldz,
6640  int64_t* ifail );
6641 
6642 // hpevx alias to spevx
6643 inline int64_t hpevx(
6644  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6645  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6646  int64_t* m,
6647  double* W,
6648  double* Z, int64_t ldz,
6649  int64_t* ifail )
6650 {
6651  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6652 }
6653 
6654 // -----------------------------------------------------------------------------
6655 int64_t spgst(
6656  int64_t itype, lapack::Uplo uplo, int64_t n,
6657  float* AP,
6658  float const* BP );
6659 
6660 // hpgst alias to spgst
6661 inline int64_t hpgst(
6662  int64_t itype, lapack::Uplo uplo, int64_t n,
6663  float* AP,
6664  float const* BP )
6665 {
6666  return spgst( itype, uplo, n, AP, BP );
6667 }
6668 
6669 int64_t spgst(
6670  int64_t itype, lapack::Uplo uplo, int64_t n,
6671  double* AP,
6672  double const* BP );
6673 
6674 // hpgst alias to spgst
6675 inline int64_t hpgst(
6676  int64_t itype, lapack::Uplo uplo, int64_t n,
6677  double* AP,
6678  double const* BP )
6679 {
6680  return spgst( itype, uplo, n, AP, BP );
6681 }
6682 
6683 // -----------------------------------------------------------------------------
6684 int64_t spgv(
6685  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6686  float* AP,
6687  float* BP,
6688  float* W,
6689  float* Z, int64_t ldz );
6690 
6691 // hpgv alias to spgv
6692 inline int64_t hpgv(
6693  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6694  float* AP,
6695  float* BP,
6696  float* W,
6697  float* Z, int64_t ldz )
6698 {
6699  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6700 }
6701 
6702 int64_t spgv(
6703  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6704  double* AP,
6705  double* BP,
6706  double* W,
6707  double* Z, int64_t ldz );
6708 
6709 // hpgv alias to spgv
6710 inline int64_t hpgv(
6711  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6712  double* AP,
6713  double* BP,
6714  double* W,
6715  double* Z, int64_t ldz )
6716 {
6717  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6718 }
6719 
6720 // -----------------------------------------------------------------------------
6721 int64_t spgvd(
6722  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6723  float* AP,
6724  float* BP,
6725  float* W,
6726  float* Z, int64_t ldz );
6727 
6728 // hpgvd alias to spgvd
6729 inline int64_t hpgvd(
6730  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6731  float* AP,
6732  float* BP,
6733  float* W,
6734  float* Z, int64_t ldz )
6735 {
6736  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6737 }
6738 
6739 int64_t spgvd(
6740  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6741  double* AP,
6742  double* BP,
6743  double* W,
6744  double* Z, int64_t ldz );
6745 
6746 // hpgvd alias to spgvd
6747 inline int64_t hpgvd(
6748  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6749  double* AP,
6750  double* BP,
6751  double* W,
6752  double* Z, int64_t ldz )
6753 {
6754  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6755 }
6756 
6757 // -----------------------------------------------------------------------------
6758 int64_t spgvx(
6759  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6760  float* AP,
6761  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6762  int64_t* m,
6763  float* W,
6764  float* Z, int64_t ldz,
6765  int64_t* ifail );
6766 
6767 // hpgvx alias to spgvx
6768 inline int64_t hpgvx(
6769  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6770  float* AP,
6771  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6772  int64_t* m,
6773  float* W,
6774  float* Z, int64_t ldz,
6775  int64_t* ifail )
6776 {
6777  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6778 }
6779 
6780 int64_t spgvx(
6781  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6782  double* AP,
6783  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6784  int64_t* m,
6785  double* W,
6786  double* Z, int64_t ldz,
6787  int64_t* ifail );
6788 
6789 // hpgvx alias to spgvx
6790 inline int64_t hpgvx(
6791  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6792  double* AP,
6793  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6794  int64_t* m,
6795  double* W,
6796  double* Z, int64_t ldz,
6797  int64_t* ifail )
6798 {
6799  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6800 }
6801 
6802 // -----------------------------------------------------------------------------
6803 int64_t sprfs(
6804  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6805  float const* AP,
6806  float const* AFP,
6807  int64_t const* ipiv,
6808  float const* B, int64_t ldb,
6809  float* X, int64_t ldx,
6810  float* ferr,
6811  float* berr );
6812 
6813 // hprfs alias to sprfs
6814 inline int64_t hprfs(
6815  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6816  float const* AP,
6817  float const* AFP,
6818  int64_t const* ipiv,
6819  float const* B, int64_t ldb,
6820  float* X, int64_t ldx,
6821  float* ferr,
6822  float* berr )
6823 {
6824  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6825 }
6826 
6827 int64_t sprfs(
6828  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6829  double const* AP,
6830  double const* AFP,
6831  int64_t const* ipiv,
6832  double const* B, int64_t ldb,
6833  double* X, int64_t ldx,
6834  double* ferr,
6835  double* berr );
6836 
6837 // hprfs alias to sprfs
6838 inline int64_t hprfs(
6839  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6840  double const* AP,
6841  double const* AFP,
6842  int64_t const* ipiv,
6843  double const* B, int64_t ldb,
6844  double* X, int64_t ldx,
6845  double* ferr,
6846  double* berr )
6847 {
6848  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6849 }
6850 
6851 int64_t sprfs(
6852  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6853  std::complex<float> const* AP,
6854  std::complex<float> const* AFP,
6855  int64_t const* ipiv,
6856  std::complex<float> const* B, int64_t ldb,
6857  std::complex<float>* X, int64_t ldx,
6858  float* ferr,
6859  float* berr );
6860 
6861 int64_t sprfs(
6862  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6863  std::complex<double> const* AP,
6864  std::complex<double> const* AFP,
6865  int64_t const* ipiv,
6866  std::complex<double> const* B, int64_t ldb,
6867  std::complex<double>* X, int64_t ldx,
6868  double* ferr,
6869  double* berr );
6870 
6871 // -----------------------------------------------------------------------------
6872 int64_t spsv(
6873  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6874  float* AP,
6875  int64_t* ipiv,
6876  float* B, int64_t ldb );
6877 
6878 // hpsv alias to spsv
6879 inline int64_t hpsv(
6880  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6881  float* AP,
6882  int64_t* ipiv,
6883  float* B, int64_t ldb )
6884 {
6885  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6886 }
6887 
6888 int64_t spsv(
6889  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6890  double* AP,
6891  int64_t* ipiv,
6892  double* B, int64_t ldb );
6893 
6894 // hpsv alias to spsv
6895 inline int64_t hpsv(
6896  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6897  double* AP,
6898  int64_t* ipiv,
6899  double* B, int64_t ldb )
6900 {
6901  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6902 }
6903 
6904 int64_t spsv(
6905  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6906  std::complex<float>* AP,
6907  int64_t* ipiv,
6908  std::complex<float>* B, int64_t ldb );
6909 
6910 int64_t spsv(
6911  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6912  std::complex<double>* AP,
6913  int64_t* ipiv,
6914  std::complex<double>* B, int64_t ldb );
6915 
6916 // -----------------------------------------------------------------------------
6917 int64_t spsvx(
6918  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6919  float const* AP,
6920  float* AFP,
6921  int64_t* ipiv,
6922  float const* B, int64_t ldb,
6923  float* X, int64_t ldx,
6924  float* rcond,
6925  float* ferr,
6926  float* berr );
6927 
6928 // hpsvx alias to spsvx
6929 inline int64_t hpsvx(
6930  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6931  float const* AP,
6932  float* AFP,
6933  int64_t* ipiv,
6934  float const* B, int64_t ldb,
6935  float* X, int64_t ldx,
6936  float* rcond,
6937  float* ferr,
6938  float* berr )
6939 {
6940  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6941 }
6942 
6943 int64_t spsvx(
6944  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6945  double const* AP,
6946  double* AFP,
6947  int64_t* ipiv,
6948  double const* B, int64_t ldb,
6949  double* X, int64_t ldx,
6950  double* rcond,
6951  double* ferr,
6952  double* berr );
6953 
6954 // hpsvx alias to spsvx
6955 inline int64_t hpsvx(
6956  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6957  double const* AP,
6958  double* AFP,
6959  int64_t* ipiv,
6960  double const* B, int64_t ldb,
6961  double* X, int64_t ldx,
6962  double* rcond,
6963  double* ferr,
6964  double* berr )
6965 {
6966  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6967 }
6968 
6969 int64_t spsvx(
6970  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6971  std::complex<float> const* AP,
6972  std::complex<float>* AFP,
6973  int64_t* ipiv,
6974  std::complex<float> const* B, int64_t ldb,
6975  std::complex<float>* X, int64_t ldx,
6976  float* rcond,
6977  float* ferr,
6978  float* berr );
6979 
6980 int64_t spsvx(
6981  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6982  std::complex<double> const* AP,
6983  std::complex<double>* AFP,
6984  int64_t* ipiv,
6985  std::complex<double> const* B, int64_t ldb,
6986  std::complex<double>* X, int64_t ldx,
6987  double* rcond,
6988  double* ferr,
6989  double* berr );
6990 
6991 // -----------------------------------------------------------------------------
6992 int64_t sptrd(
6993  lapack::Uplo uplo, int64_t n,
6994  float* AP,
6995  float* D,
6996  float* E,
6997  float* tau );
6998 
6999 // hptrd alias to sptrd
7000 inline int64_t hptrd(
7001  lapack::Uplo uplo, int64_t n,
7002  float* AP,
7003  float* D,
7004  float* E,
7005  float* tau )
7006 {
7007  return sptrd( uplo, n, AP, D, E, tau );
7008 }
7009 
7010 int64_t sptrd(
7011  lapack::Uplo uplo, int64_t n,
7012  double* AP,
7013  double* D,
7014  double* E,
7015  double* tau );
7016 
7017 // hptrd alias to sptrd
7018 inline int64_t hptrd(
7019  lapack::Uplo uplo, int64_t n,
7020  double* AP,
7021  double* D,
7022  double* E,
7023  double* tau )
7024 {
7025  return sptrd( uplo, n, AP, D, E, tau );
7026 }
7027 
7028 // -----------------------------------------------------------------------------
7029 int64_t sptrf(
7030  lapack::Uplo uplo, int64_t n,
7031  float* AP,
7032  int64_t* ipiv );
7033 
7034 // hptrf alias to sptrf
7035 inline int64_t hptrf(
7036  lapack::Uplo uplo, int64_t n,
7037  float* AP,
7038  int64_t* ipiv )
7039 {
7040  return sptrf( uplo, n, AP, ipiv );
7041 }
7042 
7043 int64_t sptrf(
7044  lapack::Uplo uplo, int64_t n,
7045  double* AP,
7046  int64_t* ipiv );
7047 
7048 // hptrf alias to sptrf
7049 inline int64_t hptrf(
7050  lapack::Uplo uplo, int64_t n,
7051  double* AP,
7052  int64_t* ipiv )
7053 {
7054  return sptrf( uplo, n, AP, ipiv );
7055 }
7056 
7057 int64_t sptrf(
7058  lapack::Uplo uplo, int64_t n,
7059  std::complex<float>* AP,
7060  int64_t* ipiv );
7061 
7062 int64_t sptrf(
7063  lapack::Uplo uplo, int64_t n,
7064  std::complex<double>* AP,
7065  int64_t* ipiv );
7066 
7067 // -----------------------------------------------------------------------------
7068 int64_t sptri(
7069  lapack::Uplo uplo, int64_t n,
7070  float* AP,
7071  int64_t const* ipiv );
7072 
7073 // hptri alias to sptri
7074 inline int64_t hptri(
7075  lapack::Uplo uplo, int64_t n,
7076  float* AP,
7077  int64_t const* ipiv )
7078 {
7079  return sptri( uplo, n, AP, ipiv );
7080 }
7081 
7082 int64_t sptri(
7083  lapack::Uplo uplo, int64_t n,
7084  double* AP,
7085  int64_t const* ipiv );
7086 
7087 // hptri alias to sptri
7088 inline int64_t hptri(
7089  lapack::Uplo uplo, int64_t n,
7090  double* AP,
7091  int64_t const* ipiv )
7092 {
7093  return sptri( uplo, n, AP, ipiv );
7094 }
7095 
7096 int64_t sptri(
7097  lapack::Uplo uplo, int64_t n,
7098  std::complex<float>* AP,
7099  int64_t const* ipiv );
7100 
7101 int64_t sptri(
7102  lapack::Uplo uplo, int64_t n,
7103  std::complex<double>* AP,
7104  int64_t const* ipiv );
7105 
7106 // -----------------------------------------------------------------------------
7107 int64_t sptrs(
7108  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7109  float const* AP,
7110  int64_t const* ipiv,
7111  float* B, int64_t ldb );
7112 
7113 // hptrs alias to sptrs
7114 inline int64_t hptrs(
7115  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7116  float const* AP,
7117  int64_t const* ipiv,
7118  float* B, int64_t ldb )
7119 {
7120  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7121 }
7122 
7123 int64_t sptrs(
7124  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7125  double const* AP,
7126  int64_t const* ipiv,
7127  double* B, int64_t ldb );
7128 
7129 // hptrs alias to sptrs
7130 inline int64_t hptrs(
7131  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7132  double const* AP,
7133  int64_t const* ipiv,
7134  double* B, int64_t ldb )
7135 {
7136  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7137 }
7138 
7139 int64_t sptrs(
7140  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7141  std::complex<float> const* AP,
7142  int64_t const* ipiv,
7143  std::complex<float>* B, int64_t ldb );
7144 
7145 int64_t sptrs(
7146  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7147  std::complex<double> const* AP,
7148  int64_t const* ipiv,
7149  std::complex<double>* B, int64_t ldb );
7150 
7151 // -----------------------------------------------------------------------------
7152 int64_t stedc(
7153  lapack::Job compz, int64_t n,
7154  float* D,
7155  float* E,
7156  float* Z, int64_t ldz );
7157 
7158 int64_t stedc(
7159  lapack::Job compz, int64_t n,
7160  double* D,
7161  double* E,
7162  double* Z, int64_t ldz );
7163 
7164 int64_t stedc(
7165  lapack::Job compz, int64_t n,
7166  float* D,
7167  float* E,
7168  std::complex<float>* Z, int64_t ldz );
7169 
7170 int64_t stedc(
7171  lapack::Job compz, int64_t n,
7172  double* D,
7173  double* E,
7174  std::complex<double>* Z, int64_t ldz );
7175 
7176 // -----------------------------------------------------------------------------
7177 int64_t stegr(
7178  lapack::Job jobz, lapack::Range range, int64_t n,
7179  float* D,
7180  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7181  int64_t* m,
7182  float* W,
7183  float* Z, int64_t ldz,
7184  int64_t* isuppz );
7185 
7186 int64_t stegr(
7187  lapack::Job jobz, lapack::Range range, int64_t n,
7188  double* D,
7189  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7190  int64_t* m,
7191  double* W,
7192  double* Z, int64_t ldz,
7193  int64_t* isuppz );
7194 
7195 int64_t stegr(
7196  lapack::Job jobz, lapack::Range range, int64_t n,
7197  float* D,
7198  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7199  int64_t* m,
7200  float* W,
7201  std::complex<float>* Z, int64_t ldz,
7202  int64_t* isuppz );
7203 
7204 int64_t stegr(
7205  lapack::Job jobz, lapack::Range range, int64_t n,
7206  double* D,
7207  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7208  int64_t* m,
7209  double* W,
7210  std::complex<double>* Z, int64_t ldz,
7211  int64_t* isuppz );
7212 
7213 // -----------------------------------------------------------------------------
7214 int64_t stein(
7215  int64_t n,
7216  float const* D,
7217  float const* E, int64_t m,
7218  float const* W,
7219  int64_t const* iblock,
7220  int64_t const* isplit,
7221  float* Z, int64_t ldz,
7222  int64_t* ifail );
7223 
7224 int64_t stein(
7225  int64_t n,
7226  double const* D,
7227  double const* E, int64_t m,
7228  double const* W,
7229  int64_t const* iblock,
7230  int64_t const* isplit,
7231  double* Z, int64_t ldz,
7232  int64_t* ifail );
7233 
7234 int64_t stein(
7235  int64_t n,
7236  float const* D,
7237  float const* E, int64_t m,
7238  float const* W,
7239  int64_t const* iblock,
7240  int64_t const* isplit,
7241  std::complex<float>* Z, int64_t ldz,
7242  int64_t* ifail );
7243 
7244 int64_t stein(
7245  int64_t n,
7246  double const* D,
7247  double const* E, int64_t m,
7248  double const* W,
7249  int64_t const* iblock,
7250  int64_t const* isplit,
7251  std::complex<double>* Z, int64_t ldz,
7252  int64_t* ifail );
7253 
7254 // -----------------------------------------------------------------------------
7255 int64_t stemr(
7256  lapack::Job jobz, lapack::Range range, int64_t n,
7257  float* D,
7258  float* E, float vl, float vu, int64_t il, int64_t iu,
7259  int64_t* m,
7260  float* W,
7261  float* Z, int64_t ldz, int64_t nzc,
7262  int64_t* isuppz,
7263  bool* tryrac );
7264 
7265 int64_t stemr(
7266  lapack::Job jobz, lapack::Range range, int64_t n,
7267  double* D,
7268  double* E, double vl, double vu, int64_t il, int64_t iu,
7269  int64_t* m,
7270  double* W,
7271  double* Z, int64_t ldz, int64_t nzc,
7272  int64_t* isuppz,
7273  bool* tryrac );
7274 
7275 int64_t stemr(
7276  lapack::Job jobz, lapack::Range range, int64_t n,
7277  float* D,
7278  float* E, float vl, float vu, int64_t il, int64_t iu,
7279  int64_t* m,
7280  float* W,
7281  std::complex<float>* Z, int64_t ldz, int64_t nzc,
7282  int64_t* isuppz,
7283  bool* tryrac );
7284 
7285 int64_t stemr(
7286  lapack::Job jobz, lapack::Range range, int64_t n,
7287  double* D,
7288  double* E, double vl, double vu, int64_t il, int64_t iu,
7289  int64_t* m,
7290  double* W,
7291  std::complex<double>* Z, int64_t ldz, int64_t nzc,
7292  int64_t* isuppz,
7293  bool* tryrac );
7294 
7295 // -----------------------------------------------------------------------------
7296 int64_t steqr(
7297  lapack::Job compz, int64_t n,
7298  float* D,
7299  float* E,
7300  float* Z, int64_t ldz );
7301 
7302 int64_t steqr(
7303  lapack::Job compz, int64_t n,
7304  double* D,
7305  double* E,
7306  double* Z, int64_t ldz );
7307 
7308 int64_t steqr(
7309  lapack::Job compz, int64_t n,
7310  float* D,
7311  float* E,
7312  std::complex<float>* Z, int64_t ldz );
7313 
7314 int64_t steqr(
7315  lapack::Job compz, int64_t n,
7316  double* D,
7317  double* E,
7318  std::complex<double>* Z, int64_t ldz );
7319 
7320 // -----------------------------------------------------------------------------
7321 int64_t sterf(
7322  int64_t n,
7323  float* D,
7324  float* E );
7325 
7326 int64_t sterf(
7327  int64_t n,
7328  double* D,
7329  double* E );
7330 
7331 // -----------------------------------------------------------------------------
7332 int64_t stev(
7333  lapack::Job jobz, int64_t n,
7334  float* D,
7335  float* E,
7336  float* Z, int64_t ldz );
7337 
7338 int64_t stev(
7339  lapack::Job jobz, int64_t n,
7340  double* D,
7341  double* E,
7342  double* Z, int64_t ldz );
7343 
7344 // -----------------------------------------------------------------------------
7345 int64_t stevd(
7346  lapack::Job jobz, int64_t n,
7347  float* D,
7348  float* E,
7349  float* Z, int64_t ldz );
7350 
7351 int64_t stevd(
7352  lapack::Job jobz, int64_t n,
7353  double* D,
7354  double* E,
7355  double* Z, int64_t ldz );
7356 
7357 // -----------------------------------------------------------------------------
7358 int64_t stevr(
7359  lapack::Job jobz, lapack::Range range, int64_t n,
7360  float* D,
7361  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7362  int64_t* m,
7363  float* W,
7364  float* Z, int64_t ldz,
7365  int64_t* isuppz );
7366 
7367 int64_t stevr(
7368  lapack::Job jobz, lapack::Range range, int64_t n,
7369  double* D,
7370  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7371  int64_t* m,
7372  double* W,
7373  double* Z, int64_t ldz,
7374  int64_t* isuppz );
7375 
7376 // -----------------------------------------------------------------------------
7377 int64_t stevx(
7378  lapack::Job jobz, lapack::Range range, int64_t n,
7379  float* D,
7380  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7381  int64_t* m,
7382  float* W,
7383  float* Z, int64_t ldz,
7384  int64_t* ifail );
7385 
7386 int64_t stevx(
7387  lapack::Job jobz, lapack::Range range, int64_t n,
7388  double* D,
7389  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7390  int64_t* m,
7391  double* W,
7392  double* Z, int64_t ldz,
7393  int64_t* ifail );
7394 
7395 // -----------------------------------------------------------------------------
7396 template <typename scalar_t>
7397 int64_t sturm(
7398  int64_t n, scalar_t const* diag,
7399  scalar_t const* offd, scalar_t u);
7400 
7401 // -----------------------------------------------------------------------------
7402 int64_t sycon(
7403  lapack::Uplo uplo, int64_t n,
7404  float const* A, int64_t lda,
7405  int64_t const* ipiv, float anorm,
7406  float* rcond );
7407 
7408 // hecon alias to sycon
7409 inline int64_t hecon(
7410  lapack::Uplo uplo, int64_t n,
7411  float const* A, int64_t lda,
7412  int64_t const* ipiv, float anorm,
7413  float* rcond )
7414 {
7415  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7416 }
7417 
7418 int64_t sycon(
7419  lapack::Uplo uplo, int64_t n,
7420  double const* A, int64_t lda,
7421  int64_t const* ipiv, double anorm,
7422  double* rcond );
7423 
7424 // hecon alias to sycon
7425 inline int64_t hecon(
7426  lapack::Uplo uplo, int64_t n,
7427  double const* A, int64_t lda,
7428  int64_t const* ipiv, double anorm,
7429  double* rcond )
7430 {
7431  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7432 }
7433 
7434 int64_t sycon(
7435  lapack::Uplo uplo, int64_t n,
7436  std::complex<float> const* A, int64_t lda,
7437  int64_t const* ipiv, float anorm,
7438  float* rcond );
7439 
7440 int64_t sycon(
7441  lapack::Uplo uplo, int64_t n,
7442  std::complex<double> const* A, int64_t lda,
7443  int64_t const* ipiv, double anorm,
7444  double* rcond );
7445 
7446 // -----------------------------------------------------------------------------
7447 // sycon_rk wraps sycon_3
7448 int64_t sycon_rk(
7449  lapack::Uplo uplo, int64_t n,
7450  float const* A, int64_t lda,
7451  float const* E,
7452  int64_t const* ipiv, float anorm,
7453  float* rcond );
7454 
7455 // hecon_rk alias to sycon_rk
7456 inline int64_t hecon_rk(
7457  lapack::Uplo uplo, int64_t n,
7458  float const* A, int64_t lda,
7459  float const* E,
7460  int64_t const* ipiv, float anorm,
7461  float* rcond )
7462 {
7463  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7464 }
7465 
7466 int64_t sycon_rk(
7467  lapack::Uplo uplo, int64_t n,
7468  double const* A, int64_t lda,
7469  double const* E,
7470  int64_t const* ipiv, double anorm,
7471  double* rcond );
7472 
7473 // hecon_rk alias to sycon_rk
7474 inline int64_t hecon_rk(
7475  lapack::Uplo uplo, int64_t n,
7476  double const* A, int64_t lda,
7477  double const* E,
7478  int64_t const* ipiv, double anorm,
7479  double* rcond )
7480 {
7481  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7482 }
7483 
7484 int64_t sycon_rk(
7485  lapack::Uplo uplo, int64_t n,
7486  std::complex<float> const* A, int64_t lda,
7487  std::complex<float> const* E,
7488  int64_t const* ipiv, float anorm,
7489  float* rcond );
7490 
7491 int64_t sycon_rk(
7492  lapack::Uplo uplo, int64_t n,
7493  std::complex<double> const* A, int64_t lda,
7494  std::complex<double> const* E,
7495  int64_t const* ipiv, double anorm,
7496  double* rcond );
7497 
7498 // -----------------------------------------------------------------------------
7499 int64_t syequb(
7500  lapack::Uplo uplo, int64_t n,
7501  float const* A, int64_t lda,
7502  float* S,
7503  float* scond,
7504  float* amax );
7505 
7506 // heequb alias to syequb
7507 inline int64_t heequb(
7508  lapack::Uplo uplo, int64_t n,
7509  float const* A, int64_t lda,
7510  float* S,
7511  float* scond,
7512  float* amax )
7513 {
7514  return syequb( uplo, n, A, lda, S, scond, amax );
7515 }
7516 
7517 int64_t syequb(
7518  lapack::Uplo uplo, int64_t n,
7519  double const* A, int64_t lda,
7520  double* S,
7521  double* scond,
7522  double* amax );
7523 
7524 // heequb alias to syequb
7525 inline int64_t heequb(
7526  lapack::Uplo uplo, int64_t n,
7527  double const* A, int64_t lda,
7528  double* S,
7529  double* scond,
7530  double* amax )
7531 {
7532  return syequb( uplo, n, A, lda, S, scond, amax );
7533 }
7534 
7535 int64_t syequb(
7536  lapack::Uplo uplo, int64_t n,
7537  std::complex<float> const* A, int64_t lda,
7538  float* S,
7539  float* scond,
7540  float* amax );
7541 
7542 int64_t syequb(
7543  lapack::Uplo uplo, int64_t n,
7544  std::complex<double> const* A, int64_t lda,
7545  double* S,
7546  double* scond,
7547  double* amax );
7548 
7549 // -----------------------------------------------------------------------------
7550 int64_t syev(
7551  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7552  float* A, int64_t lda,
7553  float* W );
7554 
7555 // heev alias to syev
7556 inline int64_t heev(
7557  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7558  float* A, int64_t lda,
7559  float* W )
7560 {
7561  return syev( jobz, uplo, n, A, lda, W );
7562 }
7563 
7564 int64_t syev(
7565  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7566  double* A, int64_t lda,
7567  double* W );
7568 
7569 // heev alias to syev
7570 inline int64_t heev(
7571  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7572  double* A, int64_t lda,
7573  double* W )
7574 {
7575  return syev( jobz, uplo, n, A, lda, W );
7576 }
7577 
7578 // -----------------------------------------------------------------------------
7579 int64_t syev_2stage(
7580  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7581  float* A, int64_t lda,
7582  float* W );
7583 
7584 // heev_2stage alias to syev_2stage
7585 inline int64_t heev_2stage(
7586  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7587  float* A, int64_t lda,
7588  float* W )
7589 {
7590  return syev_2stage( jobz, uplo, n, A, lda, W );
7591 }
7592 
7593 int64_t syev_2stage(
7594  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7595  double* A, int64_t lda,
7596  double* W );
7597 
7598 // heev_2stage alias to syev_2stage
7599 inline int64_t heev_2stage(
7600  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7601  double* A, int64_t lda,
7602  double* W )
7603 {
7604  return syev_2stage( jobz, uplo, n, A, lda, W );
7605 }
7606 
7607 // -----------------------------------------------------------------------------
7608 int64_t syevd(
7609  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7610  float* A, int64_t lda,
7611  float* W );
7612 
7613 // heevd alias to syevd
7614 inline int64_t heevd(
7615  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7616  float* A, int64_t lda,
7617  float* W )
7618 {
7619  return syevd( jobz, uplo, n, A, lda, W );
7620 }
7621 
7622 int64_t syevd(
7623  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7624  double* A, int64_t lda,
7625  double* W );
7626 
7627 // heevd alias to syevd
7628 inline int64_t heevd(
7629  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7630  double* A, int64_t lda,
7631  double* W )
7632 {
7633  return syevd( jobz, uplo, n, A, lda, W );
7634 }
7635 
7636 // -----------------------------------------------------------------------------
7637 int64_t syevd_2stage(
7638  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7639  float* A, int64_t lda,
7640  float* W );
7641 
7642 // heevd_2stage alias to syevd_2stage
7643 inline int64_t heevd_2stage(
7644  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7645  float* A, int64_t lda,
7646  float* W )
7647 {
7648  return syevd_2stage( jobz, uplo, n, A, lda, W );
7649 }
7650 
7651 int64_t syevd_2stage(
7652  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7653  double* A, int64_t lda,
7654  double* W );
7655 
7656 // heevd_2stage alias to syevd_2stage
7657 inline int64_t heevd_2stage(
7658  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7659  double* A, int64_t lda,
7660  double* W )
7661 {
7662  return syevd_2stage( jobz, uplo, n, A, lda, W );
7663 }
7664 
7665 // -----------------------------------------------------------------------------
7666 int64_t syevr(
7667  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7668  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7669  int64_t* m,
7670  float* W,
7671  float* Z, int64_t ldz,
7672  int64_t* isuppz );
7673 
7674 // heevr alias to syevr
7675 inline int64_t heevr(
7676  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7677  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7678  int64_t* m,
7679  float* W,
7680  float* Z, int64_t ldz,
7681  int64_t* isuppz )
7682 {
7683  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7684 }
7685 
7686 int64_t syevr(
7687  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7688  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7689  int64_t* m,
7690  double* W,
7691  double* Z, int64_t ldz,
7692  int64_t* isuppz );
7693 
7694 // heevr alias to syevr
7695 inline int64_t heevr(
7696  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7697  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7698  int64_t* m,
7699  double* W,
7700  double* Z, int64_t ldz,
7701  int64_t* isuppz )
7702 {
7703  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7704 }
7705 
7706 // -----------------------------------------------------------------------------
7707 int64_t syevr_2stage(
7708  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7709  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7710  int64_t* m,
7711  float* W,
7712  float* Z, int64_t ldz,
7713  int64_t* isuppz );
7714 
7715 // heevr_2stage alias to syevr_2stage
7716 inline int64_t heevr_2stage(
7717  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7718  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7719  int64_t* m,
7720  float* W,
7721  float* Z, int64_t ldz,
7722  int64_t* isuppz )
7723 {
7724  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7725 }
7726 
7727 int64_t syevr_2stage(
7728  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7729  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7730  int64_t* m,
7731  double* W,
7732  double* Z, int64_t ldz,
7733  int64_t* isuppz );
7734 
7735 // heevr_2stage alias to syevr_2stage
7736 inline int64_t heevr_2stage(
7737  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7738  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7739  int64_t* m,
7740  double* W,
7741  double* Z, int64_t ldz,
7742  int64_t* isuppz )
7743 {
7744  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7745 }
7746 
7747 // -----------------------------------------------------------------------------
7748 int64_t syevx(
7749  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7750  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7751  int64_t* m,
7752  float* W,
7753  float* Z, int64_t ldz,
7754  int64_t* ifail );
7755 
7756 // heevx alias to syevx
7757 inline int64_t heevx(
7758  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7759  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7760  int64_t* m,
7761  float* W,
7762  float* Z, int64_t ldz,
7763  int64_t* ifail )
7764 {
7765  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7766 }
7767 
7768 int64_t syevx(
7769  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7770  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7771  int64_t* m,
7772  double* W,
7773  double* Z, int64_t ldz,
7774  int64_t* ifail );
7775 
7776 // heevx alias to syevx
7777 inline int64_t heevx(
7778  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7779  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7780  int64_t* m,
7781  double* W,
7782  double* Z, int64_t ldz,
7783  int64_t* ifail )
7784 {
7785  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7786 }
7787 
7788 // -----------------------------------------------------------------------------
7789 int64_t syevx_2stage(
7790  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7791  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7792  int64_t* m,
7793  float* W,
7794  float* Z, int64_t ldz,
7795  int64_t* ifail );
7796 
7797 // heevx_2stage alias to syevx_2stage
7798 inline int64_t heevx_2stage(
7799  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7800  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7801  int64_t* m,
7802  float* W,
7803  float* Z, int64_t ldz,
7804  int64_t* ifail )
7805 {
7806  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7807 }
7808 
7809 int64_t syevx_2stage(
7810  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7811  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7812  int64_t* m,
7813  double* W,
7814  double* Z, int64_t ldz,
7815  int64_t* ifail );
7816 
7817 // heevx_2stage alias to syevx_2stage
7818 inline int64_t heevx_2stage(
7819  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7820  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7821  int64_t* m,
7822  double* W,
7823  double* Z, int64_t ldz,
7824  int64_t* ifail )
7825 {
7826  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7827 }
7828 
7829 // -----------------------------------------------------------------------------
7830 int64_t sygst(
7831  int64_t itype, lapack::Uplo uplo, int64_t n,
7832  float* A, int64_t lda,
7833  float const* B, int64_t ldb );
7834 
7835 // hegst alias to sygst
7836 inline int64_t hegst(
7837  int64_t itype, lapack::Uplo uplo, int64_t n,
7838  float* A, int64_t lda,
7839  float const* B, int64_t ldb )
7840 {
7841  return sygst( itype, uplo, n, A, lda, B, ldb );
7842 }
7843 
7844 int64_t sygst(
7845  int64_t itype, lapack::Uplo uplo, int64_t n,
7846  double* A, int64_t lda,
7847  double const* B, int64_t ldb );
7848 
7849 // hegst alias to sygst
7850 inline int64_t hegst(
7851  int64_t itype, lapack::Uplo uplo, int64_t n,
7852  double* A, int64_t lda,
7853  double const* B, int64_t ldb )
7854 {
7855  return sygst( itype, uplo, n, A, lda, B, ldb );
7856 }
7857 
7858 // -----------------------------------------------------------------------------
7859 int64_t sygv(
7860  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7861  float* A, int64_t lda,
7862  float* B, int64_t ldb,
7863  float* W );
7864 
7865 // hegv alias to sygv
7866 inline int64_t hegv(
7867  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7868  float* A, int64_t lda,
7869  float* B, int64_t ldb,
7870  float* W )
7871 {
7872  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7873 }
7874 
7875 int64_t sygv(
7876  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7877  double* A, int64_t lda,
7878  double* B, int64_t ldb,
7879  double* W );
7880 
7881 // hegv alias to sygv
7882 inline int64_t hegv(
7883  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7884  double* A, int64_t lda,
7885  double* B, int64_t ldb,
7886  double* W )
7887 {
7888  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7889 }
7890 
7891 // -----------------------------------------------------------------------------
7892 int64_t sygv_2stage(
7893  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7894  float* A, int64_t lda,
7895  float* B, int64_t ldb,
7896  float* W );
7897 
7898 // hegv_2stage alias to sygv_2stage
7899 inline int64_t hegv_2stage(
7900  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7901  float* A, int64_t lda,
7902  float* B, int64_t ldb,
7903  float* W )
7904 {
7905  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7906 }
7907 
7908 int64_t sygv_2stage(
7909  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7910  double* A, int64_t lda,
7911  double* B, int64_t ldb,
7912  double* W );
7913 
7914 // hegv_2stage alias to sygv_2stage
7915 inline int64_t hegv_2stage(
7916  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7917  double* A, int64_t lda,
7918  double* B, int64_t ldb,
7919  double* W )
7920 {
7921  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7922 }
7923 
7924 // -----------------------------------------------------------------------------
7925 int64_t sygvd(
7926  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7927  float* A, int64_t lda,
7928  float* B, int64_t ldb,
7929  float* W );
7930 
7931 // hegvd alias to sygvd
7932 inline int64_t hegvd(
7933  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7934  float* A, int64_t lda,
7935  float* B, int64_t ldb,
7936  float* W )
7937 {
7938  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7939 }
7940 
7941 int64_t sygvd(
7942  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7943  double* A, int64_t lda,
7944  double* B, int64_t ldb,
7945  double* W );
7946 
7947 // hegvd alias to sygvd
7948 inline int64_t hegvd(
7949  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7950  double* A, int64_t lda,
7951  double* B, int64_t ldb,
7952  double* W )
7953 {
7954  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7955 }
7956 
7957 // -----------------------------------------------------------------------------
7958 int64_t sygvx(
7959  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7960  float* A, int64_t lda,
7961  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7962  int64_t* m,
7963  float* W,
7964  float* Z, int64_t ldz,
7965  int64_t* ifail );
7966 
7967 // hegvx alias to sygvx
7968 inline int64_t hegvx(
7969  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7970  float* A, int64_t lda,
7971  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7972  int64_t* m,
7973  float* W,
7974  float* Z, int64_t ldz,
7975  int64_t* ifail )
7976 {
7977  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7978 }
7979 
7980 int64_t sygvx(
7981  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7982  double* A, int64_t lda,
7983  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7984  int64_t* m,
7985  double* W,
7986  double* Z, int64_t ldz,
7987  int64_t* ifail );
7988 
7989 // hegvx alias to sygvx
7990 inline int64_t hegvx(
7991  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7992  double* A, int64_t lda,
7993  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7994  int64_t* m,
7995  double* W,
7996  double* Z, int64_t ldz,
7997  int64_t* ifail )
7998 {
7999  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
8000 }
8001 
8002 // -----------------------------------------------------------------------------
8003 } // end namespace lapack
8004 namespace blas {
8005 
8006 void syr(
8007  blas::Layout layout,
8008  blas::Uplo uplo, int64_t n, std::complex<float> alpha,
8009  std::complex<float> const* X, int64_t incx,
8010  std::complex<float>* A, int64_t lda );
8011 
8012 void syr(
8013  blas::Layout layout,
8014  blas::Uplo uplo, int64_t n, std::complex<double> alpha,
8015  std::complex<double> const* X, int64_t incx,
8016  std::complex<double>* A, int64_t lda );
8017 
8018 void symv(
8019  blas::Layout layout,
8020  blas::Uplo uplo,
8021  int64_t n,
8022  std::complex<float> alpha,
8023  std::complex<float> const *A, int64_t lda,
8024  std::complex<float> const *x, int64_t incx,
8025  std::complex<float> beta,
8026  std::complex<float> *y, int64_t incy );
8027 
8028 void symv(
8029  blas::Layout layout,
8030  blas::Uplo uplo,
8031  int64_t n,
8032  std::complex<double> alpha,
8033  std::complex<double> const*A, int64_t lda,
8034  std::complex<double> const *x, int64_t incx,
8035  std::complex<double> beta,
8036  std::complex<double> *y, int64_t incy );
8037 
8038 } // end namespace blas
8039 namespace lapack {
8040 
8041 // -----------------------------------------------------------------------------
8042 int64_t syrfs(
8043  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8044  float const* A, int64_t lda,
8045  float const* AF, int64_t ldaf,
8046  int64_t const* ipiv,
8047  float const* B, int64_t ldb,
8048  float* X, int64_t ldx,
8049  float* ferr,
8050  float* berr );
8051 
8052 // herfs alias to syrfs
8053 inline int64_t herfs(
8054  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8055  float const* A, int64_t lda,
8056  float const* AF, int64_t ldaf,
8057  int64_t const* ipiv,
8058  float const* B, int64_t ldb,
8059  float* X, int64_t ldx,
8060  float* ferr,
8061  float* berr )
8062 {
8063  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8064 }
8065 
8066 int64_t syrfs(
8067  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8068  double const* A, int64_t lda,
8069  double const* AF, int64_t ldaf,
8070  int64_t const* ipiv,
8071  double const* B, int64_t ldb,
8072  double* X, int64_t ldx,
8073  double* ferr,
8074  double* berr );
8075 
8076 // herfs alias to syrfs
8077 inline int64_t herfs(
8078  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8079  double const* A, int64_t lda,
8080  double const* AF, int64_t ldaf,
8081  int64_t const* ipiv,
8082  double const* B, int64_t ldb,
8083  double* X, int64_t ldx,
8084  double* ferr,
8085  double* berr )
8086 {
8087  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8088 }
8089 
8090 int64_t syrfs(
8091  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8092  std::complex<float> const* A, int64_t lda,
8093  std::complex<float> const* AF, int64_t ldaf,
8094  int64_t const* ipiv,
8095  std::complex<float> const* B, int64_t ldb,
8096  std::complex<float>* X, int64_t ldx,
8097  float* ferr,
8098  float* berr );
8099 
8100 int64_t syrfs(
8101  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8102  std::complex<double> const* A, int64_t lda,
8103  std::complex<double> const* AF, int64_t ldaf,
8104  int64_t const* ipiv,
8105  std::complex<double> const* B, int64_t ldb,
8106  std::complex<double>* X, int64_t ldx,
8107  double* ferr,
8108  double* berr );
8109 
8110 // -----------------------------------------------------------------------------
8111 int64_t syrfsx(
8112  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8113  float const* A, int64_t lda,
8114  float const* AF, int64_t ldaf,
8115  int64_t const* ipiv,
8116  float* S,
8117  float const* B, int64_t ldb,
8118  float* X, int64_t ldx,
8119  float* rcond,
8120  float* berr, int64_t n_err_bnds,
8121  float* err_bnds_norm,
8122  float* err_bnds_comp, int64_t nparams,
8123  float* params );
8124 
8125 // herfsx alias to syrfsx
8126 inline int64_t herfsx(
8127  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8128  float const* A, int64_t lda,
8129  float const* AF, int64_t ldaf,
8130  int64_t const* ipiv,
8131  float* S,
8132  float const* B, int64_t ldb,
8133  float* X, int64_t ldx,
8134  float* rcond,
8135  float* berr, int64_t n_err_bnds,
8136  float* err_bnds_norm,
8137  float* err_bnds_comp, int64_t nparams,
8138  float* params )
8139 {
8140  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 );
8141 }
8142 
8143 int64_t syrfsx(
8144  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8145  double const* A, int64_t lda,
8146  double const* AF, int64_t ldaf,
8147  int64_t const* ipiv,
8148  double* S,
8149  double const* B, int64_t ldb,
8150  double* X, int64_t ldx,
8151  double* rcond,
8152  double* berr, int64_t n_err_bnds,
8153  double* err_bnds_norm,
8154  double* err_bnds_comp, int64_t nparams,
8155  double* params );
8156 
8157 // herfsx alias to syrfsx
8158 inline int64_t herfsx(
8159  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8160  double const* A, int64_t lda,
8161  double const* AF, int64_t ldaf,
8162  int64_t const* ipiv,
8163  double* S,
8164  double const* B, int64_t ldb,
8165  double* X, int64_t ldx,
8166  double* rcond,
8167  double* berr, int64_t n_err_bnds,
8168  double* err_bnds_norm,
8169  double* err_bnds_comp, int64_t nparams,
8170  double* params )
8171 {
8172  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 );
8173 }
8174 
8175 int64_t syrfsx(
8176  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8177  std::complex<float> const* A, int64_t lda,
8178  std::complex<float> const* AF, int64_t ldaf,
8179  int64_t const* ipiv,
8180  float* S,
8181  std::complex<float> const* B, int64_t ldb,
8182  std::complex<float>* X, int64_t ldx,
8183  float* rcond,
8184  float* berr, int64_t n_err_bnds,
8185  float* err_bnds_norm,
8186  float* err_bnds_comp, int64_t nparams,
8187  float* params );
8188 
8189 int64_t syrfsx(
8190  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8191  std::complex<double> const* A, int64_t lda,
8192  std::complex<double> const* AF, int64_t ldaf,
8193  int64_t const* ipiv,
8194  double* S,
8195  std::complex<double> const* B, int64_t ldb,
8196  std::complex<double>* X, int64_t ldx,
8197  double* rcond,
8198  double* berr, int64_t n_err_bnds,
8199  double* err_bnds_norm,
8200  double* err_bnds_comp, int64_t nparams,
8201  double* params );
8202 
8203 // -----------------------------------------------------------------------------
8204 int64_t sysv(
8205  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8206  float* A, int64_t lda,
8207  int64_t* ipiv,
8208  float* B, int64_t ldb );
8209 
8210 // hesv alias to sysv
8211 inline int64_t hesv(
8212  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8213  float* A, int64_t lda,
8214  int64_t* ipiv,
8215  float* B, int64_t ldb )
8216 {
8217  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8218 }
8219 
8220 int64_t sysv(
8221  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8222  double* A, int64_t lda,
8223  int64_t* ipiv,
8224  double* B, int64_t ldb );
8225 
8226 // hesv alias to sysv
8227 inline int64_t hesv(
8228  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8229  double* A, int64_t lda,
8230  int64_t* ipiv,
8231  double* B, int64_t ldb )
8232 {
8233  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8234 }
8235 
8236 int64_t sysv(
8237  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8238  std::complex<float>* A, int64_t lda,
8239  int64_t* ipiv,
8240  std::complex<float>* B, int64_t ldb );
8241 
8242 int64_t sysv(
8243  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8244  std::complex<double>* A, int64_t lda,
8245  int64_t* ipiv,
8246  std::complex<double>* B, int64_t ldb );
8247 
8248 // -----------------------------------------------------------------------------
8249 int64_t sysv_aa(
8250  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8251  float* A, int64_t lda,
8252  int64_t* ipiv,
8253  float* B, int64_t ldb );
8254 
8255 // hesv_aa alias to sysv_aa
8256 inline int64_t hesv_aa(
8257  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8258  float* A, int64_t lda,
8259  int64_t* ipiv,
8260  float* B, int64_t ldb )
8261 {
8262  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8263 }
8264 
8265 int64_t sysv_aa(
8266  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8267  double* A, int64_t lda,
8268  int64_t* ipiv,
8269  double* B, int64_t ldb );
8270 
8271 // hesv_aa alias to sysv_aa
8272 inline int64_t hesv_aa(
8273  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8274  double* A, int64_t lda,
8275  int64_t* ipiv,
8276  double* B, int64_t ldb )
8277 {
8278  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8279 }
8280 
8281 int64_t sysv_aa(
8282  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8283  std::complex<float>* A, int64_t lda,
8284  int64_t* ipiv,
8285  std::complex<float>* B, int64_t ldb );
8286 
8287 int64_t sysv_aa(
8288  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8289  std::complex<double>* A, int64_t lda,
8290  int64_t* ipiv,
8291  std::complex<double>* B, int64_t ldb );
8292 
8293 // -----------------------------------------------------------------------------
8294 int64_t sysv_rk(
8295  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8296  float* A, int64_t lda,
8297  float* E,
8298  int64_t* ipiv,
8299  float* B, int64_t ldb );
8300 
8301 // hesv_rk alias to sysv_rk
8302 inline int64_t hesv_rk(
8303  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8304  float* A, int64_t lda,
8305  float* E,
8306  int64_t* ipiv,
8307  float* B, int64_t ldb )
8308 {
8309  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8310 }
8311 
8312 int64_t sysv_rk(
8313  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8314  double* A, int64_t lda,
8315  double* E,
8316  int64_t* ipiv,
8317  double* B, int64_t ldb );
8318 
8319 // hesv_rk alias to sysv_rk
8320 inline int64_t hesv_rk(
8321  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8322  double* A, int64_t lda,
8323  double* E,
8324  int64_t* ipiv,
8325  double* B, int64_t ldb )
8326 {
8327  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8328 }
8329 
8330 int64_t sysv_rk(
8331  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8332  std::complex<float>* A, int64_t lda,
8333  std::complex<float>* E,
8334  int64_t* ipiv,
8335  std::complex<float>* B, int64_t ldb );
8336 
8337 int64_t sysv_rk(
8338  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8339  std::complex<double>* A, int64_t lda,
8340  std::complex<double>* E,
8341  int64_t* ipiv,
8342  std::complex<double>* B, int64_t ldb );
8343 
8344 // -----------------------------------------------------------------------------
8345 int64_t sysv_rook(
8346  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8347  float* A, int64_t lda,
8348  int64_t* ipiv,
8349  float* B, int64_t ldb );
8350 
8351 // hesv_rook alias to sysv_rook
8352 inline int64_t hesv_rook(
8353  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8354  float* A, int64_t lda,
8355  int64_t* ipiv,
8356  float* B, int64_t ldb )
8357 {
8358  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8359 }
8360 
8361 int64_t sysv_rook(
8362  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8363  double* A, int64_t lda,
8364  int64_t* ipiv,
8365  double* B, int64_t ldb );
8366 
8367 // hesv_rook alias to sysv_rook
8368 inline int64_t hesv_rook(
8369  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8370  double* A, int64_t lda,
8371  int64_t* ipiv,
8372  double* B, int64_t ldb )
8373 {
8374  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8375 }
8376 
8377 int64_t sysv_rook(
8378  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8379  std::complex<float>* A, int64_t lda,
8380  int64_t* ipiv,
8381  std::complex<float>* B, int64_t ldb );
8382 
8383 int64_t sysv_rook(
8384  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8385  std::complex<double>* A, int64_t lda,
8386  int64_t* ipiv,
8387  std::complex<double>* B, int64_t ldb );
8388 
8389 // -----------------------------------------------------------------------------
8390 int64_t sysvx(
8391  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8392  float const* A, int64_t lda,
8393  float* AF, int64_t ldaf,
8394  int64_t* ipiv,
8395  float const* B, int64_t ldb,
8396  float* X, int64_t ldx,
8397  float* rcond,
8398  float* ferr,
8399  float* berr );
8400 
8401 // hesvx alias to sysvx
8402 inline int64_t hesvx(
8403  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8404  float const* A, int64_t lda,
8405  float* AF, int64_t ldaf,
8406  int64_t* ipiv,
8407  float const* B, int64_t ldb,
8408  float* X, int64_t ldx,
8409  float* rcond,
8410  float* ferr,
8411  float* berr )
8412 {
8413  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8414 }
8415 
8416 int64_t sysvx(
8417  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8418  double const* A, int64_t lda,
8419  double* AF, int64_t ldaf,
8420  int64_t* ipiv,
8421  double const* B, int64_t ldb,
8422  double* X, int64_t ldx,
8423  double* rcond,
8424  double* ferr,
8425  double* berr );
8426 
8427 // hesvx alias to sysvx
8428 inline int64_t hesvx(
8429  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8430  double const* A, int64_t lda,
8431  double* AF, int64_t ldaf,
8432  int64_t* ipiv,
8433  double const* B, int64_t ldb,
8434  double* X, int64_t ldx,
8435  double* rcond,
8436  double* ferr,
8437  double* berr )
8438 {
8439  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8440 }
8441 
8442 int64_t sysvx(
8443  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8444  std::complex<float> const* A, int64_t lda,
8445  std::complex<float>* AF, int64_t ldaf,
8446  int64_t* ipiv,
8447  std::complex<float> const* B, int64_t ldb,
8448  std::complex<float>* X, int64_t ldx,
8449  float* rcond,
8450  float* ferr,
8451  float* berr );
8452 
8453 int64_t sysvx(
8454  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8455  std::complex<double> const* A, int64_t lda,
8456  std::complex<double>* AF, int64_t ldaf,
8457  int64_t* ipiv,
8458  std::complex<double> const* B, int64_t ldb,
8459  std::complex<double>* X, int64_t ldx,
8460  double* rcond,
8461  double* ferr,
8462  double* berr );
8463 
8464 // -----------------------------------------------------------------------------
8465 void syswapr(
8466  lapack::Uplo uplo, int64_t n,
8467  float* A, int64_t lda, int64_t i1, int64_t i2 );
8468 
8469 // heswapr alias to syswapr
8470 inline void heswapr(
8471  lapack::Uplo uplo, int64_t n,
8472  float* A, int64_t lda, int64_t i1, int64_t i2 )
8473 {
8474  return syswapr( uplo, n, A, lda, i1, i2 );
8475 }
8476 
8477 void syswapr(
8478  lapack::Uplo uplo, int64_t n,
8479  double* A, int64_t lda, int64_t i1, int64_t i2 );
8480 
8481 // heswapr alias to syswapr
8482 inline void heswapr(
8483  lapack::Uplo uplo, int64_t n,
8484  double* A, int64_t lda, int64_t i1, int64_t i2 )
8485 {
8486  return syswapr( uplo, n, A, lda, i1, i2 );
8487 }
8488 
8489 void syswapr(
8490  lapack::Uplo uplo, int64_t n,
8491  std::complex<float>* A, int64_t lda, int64_t i1, int64_t i2 );
8492 
8493 void syswapr(
8494  lapack::Uplo uplo, int64_t n,
8495  std::complex<double>* A, int64_t lda, int64_t i1, int64_t i2 );
8496 
8497 // -----------------------------------------------------------------------------
8498 int64_t sytrd(
8499  lapack::Uplo uplo, int64_t n,
8500  float* A, int64_t lda,
8501  float* D,
8502  float* E,
8503  float* tau );
8504 
8505 // hetrd alias to sytrd
8506 inline int64_t hetrd(
8507  lapack::Uplo uplo, int64_t n,
8508  float* A, int64_t lda,
8509  float* D,
8510  float* E,
8511  float* tau )
8512 {
8513  return sytrd( uplo, n, A, lda, D, E, tau );
8514 }
8515 
8516 int64_t sytrd(
8517  lapack::Uplo uplo, int64_t n,
8518  double* A, int64_t lda,
8519  double* D,
8520  double* E,
8521  double* tau );
8522 
8523 // hetrd alias to sytrd
8524 inline int64_t hetrd(
8525  lapack::Uplo uplo, int64_t n,
8526  double* A, int64_t lda,
8527  double* D,
8528  double* E,
8529  double* tau )
8530 {
8531  return sytrd( uplo, n, A, lda, D, E, tau );
8532 }
8533 
8534 // -----------------------------------------------------------------------------
8535 int64_t sytrd_2stage(
8536  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8537  float* A, int64_t lda,
8538  float* D,
8539  float* E,
8540  float* tau,
8541  float* hous2, int64_t lhous2 );
8542 
8543 // hetrd_2stage alias to sytrd_2stage
8544 inline int64_t hetrd_2stage(
8545  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8546  float* A, int64_t lda,
8547  float* D,
8548  float* E,
8549  float* tau,
8550  float* hous2, int64_t lhous2 )
8551 {
8552  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8553 }
8554 
8555 int64_t sytrd_2stage(
8556  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8557  double* A, int64_t lda,
8558  double* D,
8559  double* E,
8560  double* tau,
8561  double* hous2, int64_t lhous2 );
8562 
8563 // hetrd_2stage alias to sytrd_2stage
8564 inline int64_t hetrd_2stage(
8565  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8566  double* A, int64_t lda,
8567  double* D,
8568  double* E,
8569  double* tau,
8570  double* hous2, int64_t lhous2 )
8571 {
8572  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8573 }
8574 
8575 // -----------------------------------------------------------------------------
8576 int64_t sytrf(
8577  lapack::Uplo uplo, int64_t n,
8578  float* A, int64_t lda,
8579  int64_t* ipiv );
8580 
8581 // hetrf alias to sytrf
8582 inline int64_t hetrf(
8583  lapack::Uplo uplo, int64_t n,
8584  float* A, int64_t lda,
8585  int64_t* ipiv )
8586 {
8587  return sytrf( uplo, n, A, lda, ipiv );
8588 }
8589 
8590 int64_t sytrf(
8591  lapack::Uplo uplo, int64_t n,
8592  double* A, int64_t lda,
8593  int64_t* ipiv );
8594 
8595 // hetrf alias to sytrf
8596 inline int64_t hetrf(
8597  lapack::Uplo uplo, int64_t n,
8598  double* A, int64_t lda,
8599  int64_t* ipiv )
8600 {
8601  return sytrf( uplo, n, A, lda, ipiv );
8602 }
8603 
8604 int64_t sytrf(
8605  lapack::Uplo uplo, int64_t n,
8606  std::complex<float>* A, int64_t lda,
8607  int64_t* ipiv );
8608 
8609 int64_t sytrf(
8610  lapack::Uplo uplo, int64_t n,
8611  std::complex<double>* A, int64_t lda,
8612  int64_t* ipiv );
8613 
8614 // -----------------------------------------------------------------------------
8615 int64_t sytrf_aa(
8616  lapack::Uplo uplo, int64_t n,
8617  float* A, int64_t lda,
8618  int64_t* ipiv );
8619 
8620 // hetrf_aa alias to sytrf_aa
8621 inline int64_t hetrf_aa(
8622  lapack::Uplo uplo, int64_t n,
8623  float* A, int64_t lda,
8624  int64_t* ipiv )
8625 {
8626  return sytrf_aa( uplo, n, A, lda, ipiv );
8627 }
8628 
8629 int64_t sytrf_aa(
8630  lapack::Uplo uplo, int64_t n,
8631  double* A, int64_t lda,
8632  int64_t* ipiv );
8633 
8634 // hetrf_aa alias to sytrf_aa
8635 inline int64_t hetrf_aa(
8636  lapack::Uplo uplo, int64_t n,
8637  double* A, int64_t lda,
8638  int64_t* ipiv )
8639 {
8640  return sytrf_aa( uplo, n, A, lda, ipiv );
8641 }
8642 
8643 int64_t sytrf_aa(
8644  lapack::Uplo uplo, int64_t n,
8645  std::complex<float>* A, int64_t lda,
8646  int64_t* ipiv );
8647 
8648 int64_t sytrf_aa(
8649  lapack::Uplo uplo, int64_t n,
8650  std::complex<double>* A, int64_t lda,
8651  int64_t* ipiv );
8652 
8653 // -----------------------------------------------------------------------------
8654 int64_t sytrf_rk(
8655  lapack::Uplo uplo, int64_t n,
8656  float* A, int64_t lda,
8657  float* E,
8658  int64_t* ipiv );
8659 
8660 // hetrf_rk alias to sytrf_rk
8661 inline int64_t hetrf_rk(
8662  lapack::Uplo uplo, int64_t n,
8663  float* A, int64_t lda,
8664  float* E,
8665  int64_t* ipiv )
8666 {
8667  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8668 }
8669 
8670 int64_t sytrf_rk(
8671  lapack::Uplo uplo, int64_t n,
8672  double* A, int64_t lda,
8673  double* E,
8674  int64_t* ipiv );
8675 
8676 // hetrf_rk alias to sytrf_rk
8677 inline int64_t hetrf_rk(
8678  lapack::Uplo uplo, int64_t n,
8679  double* A, int64_t lda,
8680  double* E,
8681  int64_t* ipiv )
8682 {
8683  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8684 }
8685 
8686 int64_t sytrf_rk(
8687  lapack::Uplo uplo, int64_t n,
8688  std::complex<float>* A, int64_t lda,
8689  std::complex<float>* E,
8690  int64_t* ipiv );
8691 
8692 int64_t sytrf_rk(
8693  lapack::Uplo uplo, int64_t n,
8694  std::complex<double>* A, int64_t lda,
8695  std::complex<double>* E,
8696  int64_t* ipiv );
8697 
8698 // -----------------------------------------------------------------------------
8699 int64_t sytrf_rook(
8700  lapack::Uplo uplo, int64_t n,
8701  float* A, int64_t lda,
8702  int64_t* ipiv );
8703 
8704 // hetrf_rook alias to sytrf_rook
8705 inline int64_t hetrf_rook(
8706  lapack::Uplo uplo, int64_t n,
8707  float* A, int64_t lda,
8708  int64_t* ipiv )
8709 {
8710  return sytrf_rook( uplo, n, A, lda, ipiv );
8711 }
8712 
8713 int64_t sytrf_rook(
8714  lapack::Uplo uplo, int64_t n,
8715  double* A, int64_t lda,
8716  int64_t* ipiv );
8717 
8718 // hetrf_rook alias to sytrf_rook
8719 inline int64_t hetrf_rook(
8720  lapack::Uplo uplo, int64_t n,
8721  double* A, int64_t lda,
8722  int64_t* ipiv )
8723 {
8724  return sytrf_rook( uplo, n, A, lda, ipiv );
8725 }
8726 
8727 int64_t sytrf_rook(
8728  lapack::Uplo uplo, int64_t n,
8729  std::complex<float>* A, int64_t lda,
8730  int64_t* ipiv );
8731 
8732 int64_t sytrf_rook(
8733  lapack::Uplo uplo, int64_t n,
8734  std::complex<double>* A, int64_t lda,
8735  int64_t* ipiv );
8736 
8737 // -----------------------------------------------------------------------------
8738 int64_t sytri(
8739  lapack::Uplo uplo, int64_t n,
8740  float* A, int64_t lda,
8741  int64_t const* ipiv );
8742 
8743 // hetri alias to sytri
8744 inline int64_t hetri(
8745  lapack::Uplo uplo, int64_t n,
8746  float* A, int64_t lda,
8747  int64_t const* ipiv )
8748 {
8749  return sytri( uplo, n, A, lda, ipiv );
8750 }
8751 
8752 int64_t sytri(
8753  lapack::Uplo uplo, int64_t n,
8754  double* A, int64_t lda,
8755  int64_t const* ipiv );
8756 
8757 // hetri alias to sytri
8758 inline int64_t hetri(
8759  lapack::Uplo uplo, int64_t n,
8760  double* A, int64_t lda,
8761  int64_t const* ipiv )
8762 {
8763  return sytri( uplo, n, A, lda, ipiv );
8764 }
8765 
8766 int64_t sytri(
8767  lapack::Uplo uplo, int64_t n,
8768  std::complex<float>* A, int64_t lda,
8769  int64_t const* ipiv );
8770 
8771 int64_t sytri(
8772  lapack::Uplo uplo, int64_t n,
8773  std::complex<double>* A, int64_t lda,
8774  int64_t const* ipiv );
8775 
8776 // -----------------------------------------------------------------------------
8777 int64_t sytri2(
8778  lapack::Uplo uplo, int64_t n,
8779  float* A, int64_t lda,
8780  int64_t const* ipiv );
8781 
8782 // hetri2 alias to sytri2
8783 inline int64_t hetri2(
8784  lapack::Uplo uplo, int64_t n,
8785  float* A, int64_t lda,
8786  int64_t const* ipiv )
8787 {
8788  return sytri2( uplo, n, A, lda, ipiv );
8789 }
8790 
8791 int64_t sytri2(
8792  lapack::Uplo uplo, int64_t n,
8793  double* A, int64_t lda,
8794  int64_t const* ipiv );
8795 
8796 // hetri2 alias to sytri2
8797 inline int64_t hetri2(
8798  lapack::Uplo uplo, int64_t n,
8799  double* A, int64_t lda,
8800  int64_t const* ipiv )
8801 {
8802  return sytri2( uplo, n, A, lda, ipiv );
8803 }
8804 
8805 int64_t sytri2(
8806  lapack::Uplo uplo, int64_t n,
8807  std::complex<float>* A, int64_t lda,
8808  int64_t const* ipiv );
8809 
8810 int64_t sytri2(
8811  lapack::Uplo uplo, int64_t n,
8812  std::complex<double>* A, int64_t lda,
8813  int64_t const* ipiv );
8814 
8815 // -----------------------------------------------------------------------------
8816 // sytri_rk wraps sytri_3
8817 int64_t sytri_rk(
8818  lapack::Uplo uplo, int64_t n,
8819  float* A, int64_t lda,
8820  float const* E,
8821  int64_t const* ipiv );
8822 
8823 // hetri_rk alias to sytri_rk
8824 inline int64_t hetri_rk(
8825  lapack::Uplo uplo, int64_t n,
8826  float* A, int64_t lda,
8827  float const* E,
8828  int64_t const* ipiv )
8829 {
8830  return sytri_rk( uplo, n, A, lda, E, ipiv );
8831 }
8832 
8833 int64_t sytri_rk(
8834  lapack::Uplo uplo, int64_t n,
8835  double* A, int64_t lda,
8836  double const* E,
8837  int64_t const* ipiv );
8838 
8839 // hetri_rk alias to sytri_rk
8840 inline int64_t hetri_rk(
8841  lapack::Uplo uplo, int64_t n,
8842  double* A, int64_t lda,
8843  double const* E,
8844  int64_t const* ipiv )
8845 {
8846  return sytri_rk( uplo, n, A, lda, E, ipiv );
8847 }
8848 
8849 int64_t sytri_rk(
8850  lapack::Uplo uplo, int64_t n,
8851  std::complex<float>* A, int64_t lda,
8852  std::complex<float> const* E,
8853  int64_t const* ipiv );
8854 
8855 int64_t sytri_rk(
8856  lapack::Uplo uplo, int64_t n,
8857  std::complex<double>* A, int64_t lda,
8858  std::complex<double> const* E,
8859  int64_t const* ipiv );
8860 
8861 // -----------------------------------------------------------------------------
8862 int64_t sytrs(
8863  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8864  float const* A, int64_t lda,
8865  int64_t const* ipiv,
8866  float* B, int64_t ldb );
8867 
8868 // hetrs alias to sytrs
8869 inline int64_t hetrs(
8870  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8871  float const* A, int64_t lda,
8872  int64_t const* ipiv,
8873  float* B, int64_t ldb )
8874 {
8875  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8876 }
8877 
8878 int64_t sytrs(
8879  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8880  double const* A, int64_t lda,
8881  int64_t const* ipiv,
8882  double* B, int64_t ldb );
8883 
8884 // hetrs alias to sytrs
8885 inline int64_t hetrs(
8886  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8887  double const* A, int64_t lda,
8888  int64_t const* ipiv,
8889  double* B, int64_t ldb )
8890 {
8891  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8892 }
8893 
8894 int64_t sytrs(
8895  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8896  std::complex<float> const* A, int64_t lda,
8897  int64_t const* ipiv,
8898  std::complex<float>* B, int64_t ldb );
8899 
8900 int64_t sytrs(
8901  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8902  std::complex<double> const* A, int64_t lda,
8903  int64_t const* ipiv,
8904  std::complex<double>* B, int64_t ldb );
8905 
8906 // -----------------------------------------------------------------------------
8907 int64_t sytrs2(
8908  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8909  float* A, int64_t lda,
8910  int64_t const* ipiv,
8911  float* B, int64_t ldb );
8912 
8913 // hetrs2 alias to sytrs2
8914 inline int64_t hetrs2(
8915  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8916  float* A, int64_t lda,
8917  int64_t const* ipiv,
8918  float* B, int64_t ldb )
8919 {
8920  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8921 }
8922 
8923 int64_t sytrs2(
8924  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8925  double* A, int64_t lda,
8926  int64_t const* ipiv,
8927  double* B, int64_t ldb );
8928 
8929 // hetrs2 alias to sytrs2
8930 inline int64_t hetrs2(
8931  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8932  double* A, int64_t lda,
8933  int64_t const* ipiv,
8934  double* B, int64_t ldb )
8935 {
8936  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8937 }
8938 
8939 int64_t sytrs2(
8940  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8941  std::complex<float>* A, int64_t lda,
8942  int64_t const* ipiv,
8943  std::complex<float>* B, int64_t ldb );
8944 
8945 int64_t sytrs2(
8946  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8947  std::complex<double>* A, int64_t lda,
8948  int64_t const* ipiv,
8949  std::complex<double>* B, int64_t ldb );
8950 
8951 // -----------------------------------------------------------------------------
8952 int64_t sytrs_aa(
8953  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8954  float const* A, int64_t lda,
8955  int64_t const* ipiv,
8956  float* B, int64_t ldb );
8957 
8958 // hetrs_aa alias to sytrs_aa
8959 inline int64_t hetrs_aa(
8960  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8961  float const* A, int64_t lda,
8962  int64_t const* ipiv,
8963  float* B, int64_t ldb )
8964 {
8965  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8966 }
8967 
8968 int64_t sytrs_aa(
8969  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8970  double const* A, int64_t lda,
8971  int64_t const* ipiv,
8972  double* B, int64_t ldb );
8973 
8974 // hetrs_aa alias to sytrs_aa
8975 inline int64_t hetrs_aa(
8976  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8977  double const* A, int64_t lda,
8978  int64_t const* ipiv,
8979  double* B, int64_t ldb )
8980 {
8981  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8982 }
8983 
8984 int64_t sytrs_aa(
8985  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8986  std::complex<float> const* A, int64_t lda,
8987  int64_t const* ipiv,
8988  std::complex<float>* B, int64_t ldb );
8989 
8990 int64_t sytrs_aa(
8991  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8992  std::complex<double> const* A, int64_t lda,
8993  int64_t const* ipiv,
8994  std::complex<double>* B, int64_t ldb );
8995 
8996 // -----------------------------------------------------------------------------
8997 // sytrs_rk wraps sytrs_3
8998 int64_t sytrs_rk(
8999  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9000  float const* A, int64_t lda,
9001  float const* E,
9002  int64_t const* ipiv,
9003  float* B, int64_t ldb );
9004 
9005 // hetrs_rk alias to sytrs_rk
9006 inline int64_t hetrs_rk(
9007  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9008  float const* A, int64_t lda,
9009  float const* E,
9010  int64_t const* ipiv,
9011  float* B, int64_t ldb )
9012 {
9013  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
9014 }
9015 
9016 int64_t sytrs_rk(
9017  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9018  double const* A, int64_t lda,
9019  double const* E,
9020  int64_t const* ipiv,
9021  double* B, int64_t ldb );
9022 
9023 // hetrs_rk alias to sytrs_rk
9024 inline int64_t hetrs_rk(
9025  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9026  double const* A, int64_t lda,
9027  double const* E,
9028  int64_t const* ipiv,
9029  double* B, int64_t ldb )
9030 {
9031  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
9032 }
9033 
9034 int64_t sytrs_rk(
9035  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9036  std::complex<float> const* A, int64_t lda,
9037  std::complex<float> const* E,
9038  int64_t const* ipiv,
9039  std::complex<float>* B, int64_t ldb );
9040 
9041 int64_t sytrs_rk(
9042  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9043  std::complex<double> const* A, int64_t lda,
9044  std::complex<double> const* E,
9045  int64_t const* ipiv,
9046  std::complex<double>* B, int64_t ldb );
9047 
9048 // -----------------------------------------------------------------------------
9049 int64_t sytrs_rook(
9050  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9051  float const* A, int64_t lda,
9052  int64_t const* ipiv,
9053  float* B, int64_t ldb );
9054 
9055 // hetrs_rook alias to sytrs_rook
9056 inline int64_t hetrs_rook(
9057  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9058  float const* A, int64_t lda,
9059  int64_t const* ipiv,
9060  float* B, int64_t ldb )
9061 {
9062  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9063 }
9064 
9065 int64_t sytrs_rook(
9066  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9067  double const* A, int64_t lda,
9068  int64_t const* ipiv,
9069  double* B, int64_t ldb );
9070 
9071 // hetrs_rook alias to sytrs_rook
9072 inline int64_t hetrs_rook(
9073  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9074  double const* A, int64_t lda,
9075  int64_t const* ipiv,
9076  double* B, int64_t ldb )
9077 {
9078  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9079 }
9080 
9081 int64_t sytrs_rook(
9082  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9083  std::complex<float> const* A, int64_t lda,
9084  int64_t const* ipiv,
9085  std::complex<float>* B, int64_t ldb );
9086 
9087 int64_t sytrs_rook(
9088  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9089  std::complex<double> const* A, int64_t lda,
9090  int64_t const* ipiv,
9091  std::complex<double>* B, int64_t ldb );
9092 
9093 // -----------------------------------------------------------------------------
9094 int64_t tbcon(
9095  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9096  float const* AB, int64_t ldab,
9097  float* rcond );
9098 
9099 int64_t tbcon(
9100  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9101  double const* AB, int64_t ldab,
9102  double* rcond );
9103 
9104 int64_t tbcon(
9105  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9106  std::complex<float> const* AB, int64_t ldab,
9107  float* rcond );
9108 
9109 int64_t tbcon(
9110  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9111  std::complex<double> const* AB, int64_t ldab,
9112  double* rcond );
9113 
9114 // -----------------------------------------------------------------------------
9115 int64_t tbrfs(
9116  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9117  float const* AB, int64_t ldab,
9118  float const* B, int64_t ldb,
9119  float const* X, int64_t ldx,
9120  float* ferr,
9121  float* berr );
9122 
9123 int64_t tbrfs(
9124  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9125  double const* AB, int64_t ldab,
9126  double const* B, int64_t ldb,
9127  double const* X, int64_t ldx,
9128  double* ferr,
9129  double* berr );
9130 
9131 int64_t tbrfs(
9132  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9133  std::complex<float> const* AB, int64_t ldab,
9134  std::complex<float> const* B, int64_t ldb,
9135  std::complex<float> const* X, int64_t ldx,
9136  float* ferr,
9137  float* berr );
9138 
9139 int64_t tbrfs(
9140  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9141  std::complex<double> const* AB, int64_t ldab,
9142  std::complex<double> const* B, int64_t ldb,
9143  std::complex<double> const* X, int64_t ldx,
9144  double* ferr,
9145  double* berr );
9146 
9147 // -----------------------------------------------------------------------------
9148 int64_t tbtrs(
9149  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9150  float const* AB, int64_t ldab,
9151  float* B, int64_t ldb );
9152 
9153 int64_t tbtrs(
9154  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9155  double const* AB, int64_t ldab,
9156  double* B, int64_t ldb );
9157 
9158 int64_t tbtrs(
9159  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9160  std::complex<float> const* AB, int64_t ldab,
9161  std::complex<float>* B, int64_t ldb );
9162 
9163 int64_t tbtrs(
9164  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9165  std::complex<double> const* AB, int64_t ldab,
9166  std::complex<double>* B, int64_t ldb );
9167 
9168 // -----------------------------------------------------------------------------
9169 void tfsm(
9170  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, float alpha,
9171  float const* A,
9172  float* B, int64_t ldb );
9173 
9174 void tfsm(
9175  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, double alpha,
9176  double const* A,
9177  double* B, int64_t ldb );
9178 
9179 void tfsm(
9180  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,
9181  std::complex<float> const* A,
9182  std::complex<float>* B, int64_t ldb );
9183 
9184 void tfsm(
9185  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,
9186  std::complex<double> const* A,
9187  std::complex<double>* B, int64_t ldb );
9188 
9189 // -----------------------------------------------------------------------------
9190 int64_t tftri(
9191  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9192  float* A );
9193 
9194 int64_t tftri(
9195  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9196  double* A );
9197 
9198 int64_t tftri(
9199  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9200  std::complex<float>* A );
9201 
9202 int64_t tftri(
9203  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9204  std::complex<double>* A );
9205 
9206 // -----------------------------------------------------------------------------
9207 int64_t tfttp(
9208  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9209  float const* ARF,
9210  float* AP );
9211 
9212 int64_t tfttp(
9213  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9214  double const* ARF,
9215  double* AP );
9216 
9217 int64_t tfttp(
9218  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9219  std::complex<float> const* ARF,
9220  std::complex<float>* AP );
9221 
9222 int64_t tfttp(
9223  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9224  std::complex<double> const* ARF,
9225  std::complex<double>* AP );
9226 
9227 // -----------------------------------------------------------------------------
9228 int64_t tfttr(
9229  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9230  float const* ARF,
9231  float* A, int64_t lda );
9232 
9233 int64_t tfttr(
9234  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9235  double const* ARF,
9236  double* A, int64_t lda );
9237 
9238 int64_t tfttr(
9239  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9240  std::complex<float> const* ARF,
9241  std::complex<float>* A, int64_t lda );
9242 
9243 int64_t tfttr(
9244  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9245  std::complex<double> const* ARF,
9246  std::complex<double>* A, int64_t lda );
9247 
9248 // -----------------------------------------------------------------------------
9249 int64_t tgsja(
9250  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9251  float* A, int64_t lda,
9252  float* B, int64_t ldb, float tola, float tolb,
9253  float* alpha,
9254  float* beta,
9255  float* U, int64_t ldu,
9256  float* V, int64_t ldv,
9257  float* Q, int64_t ldq,
9258  int64_t* ncycle );
9259 
9260 int64_t tgsja(
9261  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9262  double* A, int64_t lda,
9263  double* B, int64_t ldb, double tola, double tolb,
9264  double* alpha,
9265  double* beta,
9266  double* U, int64_t ldu,
9267  double* V, int64_t ldv,
9268  double* Q, int64_t ldq,
9269  int64_t* ncycle );
9270 
9271 int64_t tgsja(
9272  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9273  std::complex<float>* A, int64_t lda,
9274  std::complex<float>* B, int64_t ldb, float tola, float tolb,
9275  float* alpha,
9276  float* beta,
9277  std::complex<float>* U, int64_t ldu,
9278  std::complex<float>* V, int64_t ldv,
9279  std::complex<float>* Q, int64_t ldq,
9280  int64_t* ncycle );
9281 
9282 int64_t tgsja(
9283  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9284  std::complex<double>* A, int64_t lda,
9285  std::complex<double>* B, int64_t ldb, double tola, double tolb,
9286  double* alpha,
9287  double* beta,
9288  std::complex<double>* U, int64_t ldu,
9289  std::complex<double>* V, int64_t ldv,
9290  std::complex<double>* Q, int64_t ldq,
9291  int64_t* ncycle );
9292 
9293 // -----------------------------------------------------------------------------
9294 int64_t tgsyl(
9295  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9296  float const* A, int64_t lda,
9297  float const* B, int64_t ldb,
9298  float* C, int64_t ldc,
9299  float const* D, int64_t ldd,
9300  float const* E, int64_t lde,
9301  float* F, int64_t ldf,
9302  float* dif,
9303  float* scale );
9304 
9305 int64_t tgsyl(
9306  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9307  double const* A, int64_t lda,
9308  double const* B, int64_t ldb,
9309  double* C, int64_t ldc,
9310  double const* D, int64_t ldd,
9311  double const* E, int64_t lde,
9312  double* F, int64_t ldf,
9313  double* dif,
9314  double* scale );
9315 
9316 int64_t tgsyl(
9317  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9318  std::complex<float> const* A, int64_t lda,
9319  std::complex<float> const* B, int64_t ldb,
9320  std::complex<float>* C, int64_t ldc,
9321  std::complex<float> const* D, int64_t ldd,
9322  std::complex<float> const* E, int64_t lde,
9323  std::complex<float>* F, int64_t ldf,
9324  float* dif,
9325  float* scale );
9326 
9327 int64_t tgsyl(
9328  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9329  std::complex<double> const* A, int64_t lda,
9330  std::complex<double> const* B, int64_t ldb,
9331  std::complex<double>* C, int64_t ldc,
9332  std::complex<double> const* D, int64_t ldd,
9333  std::complex<double> const* E, int64_t lde,
9334  std::complex<double>* F, int64_t ldf,
9335  double* dif,
9336  double* scale );
9337 
9338 // -----------------------------------------------------------------------------
9339 int64_t tpcon(
9340  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9341  float const* AP,
9342  float* rcond );
9343 
9344 int64_t tpcon(
9345  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9346  double const* AP,
9347  double* rcond );
9348 
9349 int64_t tpcon(
9350  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9351  std::complex<float> const* AP,
9352  float* rcond );
9353 
9354 int64_t tpcon(
9355  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9356  std::complex<double> const* AP,
9357  double* rcond );
9358 
9359 // -----------------------------------------------------------------------------
9360 int64_t tplqt(
9361  int64_t m, int64_t n, int64_t l, int64_t mb,
9362  float* A, int64_t lda,
9363  float* B, int64_t ldb,
9364  float* T, int64_t ldt );
9365 
9366 int64_t tplqt(
9367  int64_t m, int64_t n, int64_t l, int64_t mb,
9368  double* A, int64_t lda,
9369  double* B, int64_t ldb,
9370  double* T, int64_t ldt );
9371 
9372 int64_t tplqt(
9373  int64_t m, int64_t n, int64_t l, int64_t mb,
9374  std::complex<float>* A, int64_t lda,
9375  std::complex<float>* B, int64_t ldb,
9376  std::complex<float>* T, int64_t ldt );
9377 
9378 int64_t tplqt(
9379  int64_t m, int64_t n, int64_t l, int64_t mb,
9380  std::complex<double>* A, int64_t lda,
9381  std::complex<double>* B, int64_t ldb,
9382  std::complex<double>* T, int64_t ldt );
9383 
9384 // -----------------------------------------------------------------------------
9385 int64_t tplqt2(
9386  int64_t m, int64_t n, int64_t l,
9387  float* A, int64_t lda,
9388  float* B, int64_t ldb,
9389  float* T, int64_t ldt );
9390 
9391 int64_t tplqt2(
9392  int64_t m, int64_t n, int64_t l,
9393  double* A, int64_t lda,
9394  double* B, int64_t ldb,
9395  double* T, int64_t ldt );
9396 
9397 int64_t tplqt2(
9398  int64_t m, int64_t n, int64_t l,
9399  std::complex<float>* A, int64_t lda,
9400  std::complex<float>* B, int64_t ldb,
9401  std::complex<float>* T, int64_t ldt );
9402 
9403 int64_t tplqt2(
9404  int64_t m, int64_t n, int64_t l,
9405  std::complex<double>* A, int64_t lda,
9406  std::complex<double>* B, int64_t ldb,
9407  std::complex<double>* T, int64_t ldt );
9408 
9409 // -----------------------------------------------------------------------------
9410 int64_t tpmlqt(
9411  lapack::Side side, lapack::Op trans,
9412  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9413  float const* V, int64_t ldv,
9414  float const* T, int64_t ldt,
9415  float* A, int64_t lda,
9416  float* B, int64_t ldb );
9417 
9418 int64_t tpmlqt(
9419  lapack::Side side, lapack::Op trans,
9420  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9421  double const* V, int64_t ldv,
9422  double const* T, int64_t ldt,
9423  double* A, int64_t lda,
9424  double* B, int64_t ldb );
9425 
9426 int64_t tpmlqt(
9427  lapack::Side side, lapack::Op trans,
9428  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9429  std::complex<float> const* V, int64_t ldv,
9430  std::complex<float> const* T, int64_t ldt,
9431  std::complex<float>* A, int64_t lda,
9432  std::complex<float>* B, int64_t ldb );
9433 
9434 int64_t tpmlqt(
9435  lapack::Side side, lapack::Op trans,
9436  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9437  std::complex<double> const* V, int64_t ldv,
9438  std::complex<double> const* T, int64_t ldt,
9439  std::complex<double>* A, int64_t lda,
9440  std::complex<double>* B, int64_t ldb );
9441 
9442 // -----------------------------------------------------------------------------
9443 int64_t tpmqrt(
9444  lapack::Side side, lapack::Op trans,
9445  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9446  float const* V, int64_t ldv,
9447  float const* T, int64_t ldt,
9448  float* A, int64_t lda,
9449  float* B, int64_t ldb );
9450 
9451 int64_t tpmqrt(
9452  lapack::Side side, lapack::Op trans,
9453  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9454  double const* V, int64_t ldv,
9455  double const* T, int64_t ldt,
9456  double* A, int64_t lda,
9457  double* B, int64_t ldb );
9458 
9459 int64_t tpmqrt(
9460  lapack::Side side, lapack::Op trans,
9461  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9462  std::complex<float> const* V, int64_t ldv,
9463  std::complex<float> const* T, int64_t ldt,
9464  std::complex<float>* A, int64_t lda,
9465  std::complex<float>* B, int64_t ldb );
9466 
9467 int64_t tpmqrt(
9468  lapack::Side side, lapack::Op trans,
9469  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9470  std::complex<double> const* V, int64_t ldv,
9471  std::complex<double> const* T, int64_t ldt,
9472  std::complex<double>* A, int64_t lda,
9473  std::complex<double>* B, int64_t ldb );
9474 
9475 // -----------------------------------------------------------------------------
9476 int64_t tpqrt(
9477  int64_t m, int64_t n, int64_t l, int64_t nb,
9478  float* A, int64_t lda,
9479  float* B, int64_t ldb,
9480  float* T, int64_t ldt );
9481 
9482 int64_t tpqrt(
9483  int64_t m, int64_t n, int64_t l, int64_t nb,
9484  double* A, int64_t lda,
9485  double* B, int64_t ldb,
9486  double* T, int64_t ldt );
9487 
9488 int64_t tpqrt(
9489  int64_t m, int64_t n, int64_t l, int64_t nb,
9490  std::complex<float>* A, int64_t lda,
9491  std::complex<float>* B, int64_t ldb,
9492  std::complex<float>* T, int64_t ldt );
9493 
9494 int64_t tpqrt(
9495  int64_t m, int64_t n, int64_t l, int64_t nb,
9496  std::complex<double>* A, int64_t lda,
9497  std::complex<double>* B, int64_t ldb,
9498  std::complex<double>* T, int64_t ldt );
9499 
9500 // -----------------------------------------------------------------------------
9501 int64_t tpqrt2(
9502  int64_t m, int64_t n, int64_t l,
9503  float* A, int64_t lda,
9504  float* B, int64_t ldb,
9505  float* T, int64_t ldt );
9506 
9507 int64_t tpqrt2(
9508  int64_t m, int64_t n, int64_t l,
9509  double* A, int64_t lda,
9510  double* B, int64_t ldb,
9511  double* T, int64_t ldt );
9512 
9513 int64_t tpqrt2(
9514  int64_t m, int64_t n, int64_t l,
9515  std::complex<float>* A, int64_t lda,
9516  std::complex<float>* B, int64_t ldb,
9517  std::complex<float>* T, int64_t ldt );
9518 
9519 int64_t tpqrt2(
9520  int64_t m, int64_t n, int64_t l,
9521  std::complex<double>* A, int64_t lda,
9522  std::complex<double>* B, int64_t ldb,
9523  std::complex<double>* T, int64_t ldt );
9524 
9525 // -----------------------------------------------------------------------------
9526 void tprfb(
9527  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9528  int64_t m, int64_t n, int64_t k, int64_t l,
9529  float const* V, int64_t ldv,
9530  float const* T, int64_t ldt,
9531  float* A, int64_t lda,
9532  float* B, int64_t ldb );
9533 
9534 void tprfb(
9535  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9536  int64_t m, int64_t n, int64_t k, int64_t l,
9537  double const* V, int64_t ldv,
9538  double const* T, int64_t ldt,
9539  double* A, int64_t lda,
9540  double* B, int64_t ldb );
9541 
9542 void tprfb(
9543  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9544  int64_t m, int64_t n, int64_t k, int64_t l,
9545  std::complex<float> const* V, int64_t ldv,
9546  std::complex<float> const* T, int64_t ldt,
9547  std::complex<float>* A, int64_t lda,
9548  std::complex<float>* B, int64_t ldb );
9549 
9550 void tprfb(
9551  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9552  int64_t m, int64_t n, int64_t k, int64_t l,
9553  std::complex<double> const* V, int64_t ldv,
9554  std::complex<double> const* T, int64_t ldt,
9555  std::complex<double>* A, int64_t lda,
9556  std::complex<double>* B, int64_t ldb );
9557 
9558 // -----------------------------------------------------------------------------
9559 int64_t tprfs(
9560  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9561  float const* AP,
9562  float const* B, int64_t ldb,
9563  float const* X, int64_t ldx,
9564  float* ferr,
9565  float* berr );
9566 
9567 int64_t tprfs(
9568  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9569  double const* AP,
9570  double const* B, int64_t ldb,
9571  double const* X, int64_t ldx,
9572  double* ferr,
9573  double* berr );
9574 
9575 int64_t tprfs(
9576  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9577  std::complex<float> const* AP,
9578  std::complex<float> const* B, int64_t ldb,
9579  std::complex<float> const* X, int64_t ldx,
9580  float* ferr,
9581  float* berr );
9582 
9583 int64_t tprfs(
9584  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9585  std::complex<double> const* AP,
9586  std::complex<double> const* B, int64_t ldb,
9587  std::complex<double> const* X, int64_t ldx,
9588  double* ferr,
9589  double* berr );
9590 
9591 // -----------------------------------------------------------------------------
9592 int64_t tptri(
9593  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9594  float* AP );
9595 
9596 int64_t tptri(
9597  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9598  double* AP );
9599 
9600 int64_t tptri(
9601  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9602  std::complex<float>* AP );
9603 
9604 int64_t tptri(
9605  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9606  std::complex<double>* AP );
9607 
9608 // -----------------------------------------------------------------------------
9609 int64_t tptrs(
9610  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9611  float const* AP,
9612  float* B, int64_t ldb );
9613 
9614 int64_t tptrs(
9615  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9616  double const* AP,
9617  double* B, int64_t ldb );
9618 
9619 int64_t tptrs(
9620  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9621  std::complex<float> const* AP,
9622  std::complex<float>* B, int64_t ldb );
9623 
9624 int64_t tptrs(
9625  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9626  std::complex<double> const* AP,
9627  std::complex<double>* B, int64_t ldb );
9628 
9629 // -----------------------------------------------------------------------------
9630 int64_t tpttf(
9631  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9632  float const* AP,
9633  float* ARF );
9634 
9635 int64_t tpttf(
9636  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9637  double const* AP,
9638  double* ARF );
9639 
9640 int64_t tpttf(
9641  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9642  std::complex<float> const* AP,
9643  std::complex<float>* ARF );
9644 
9645 int64_t tpttf(
9646  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9647  std::complex<double> const* AP,
9648  std::complex<double>* ARF );
9649 
9650 // -----------------------------------------------------------------------------
9651 int64_t tpttr(
9652  lapack::Uplo uplo, int64_t n,
9653  float const* AP,
9654  float* A, int64_t lda );
9655 
9656 int64_t tpttr(
9657  lapack::Uplo uplo, int64_t n,
9658  double const* AP,
9659  double* A, int64_t lda );
9660 
9661 int64_t tpttr(
9662  lapack::Uplo uplo, int64_t n,
9663  std::complex<float> const* AP,
9664  std::complex<float>* A, int64_t lda );
9665 
9666 int64_t tpttr(
9667  lapack::Uplo uplo, int64_t n,
9668  std::complex<double> const* AP,
9669  std::complex<double>* A, int64_t lda );
9670 
9671 // -----------------------------------------------------------------------------
9672 int64_t trcon(
9673  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9674  float const* A, int64_t lda,
9675  float* rcond );
9676 
9677 int64_t trcon(
9678  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9679  double const* A, int64_t lda,
9680  double* rcond );
9681 
9682 int64_t trcon(
9683  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9684  std::complex<float> const* A, int64_t lda,
9685  float* rcond );
9686 
9687 int64_t trcon(
9688  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9689  std::complex<double> const* A, int64_t lda,
9690  double* rcond );
9691 
9692 // -----------------------------------------------------------------------------
9693 int64_t trevc(
9694  lapack::Sides side, lapack::HowMany howmany,
9695  bool* select, int64_t n,
9696  float const* T, int64_t ldt,
9697  float* VL, int64_t ldvl,
9698  float* VR, int64_t ldvr,
9699  int64_t mm, int64_t* m );
9700 
9701 int64_t trevc(
9702  lapack::Sides side, lapack::HowMany howmany,
9703  bool* select, int64_t n,
9704  double const* T, int64_t ldt,
9705  double* VL, int64_t ldvl,
9706  double* VR, int64_t ldvr,
9707  int64_t mm, int64_t* m );
9708 
9709 int64_t trevc(
9710  lapack::Sides side, lapack::HowMany howmany,
9711  bool const* select, int64_t n,
9712  std::complex<float>* T, int64_t ldt,
9713  std::complex<float>* VL, int64_t ldvl,
9714  std::complex<float>* VR, int64_t ldvr,
9715  int64_t mm, int64_t* m );
9716 
9717 int64_t trevc(
9718  lapack::Sides side, lapack::HowMany howmany,
9719  bool const* select, int64_t n,
9720  std::complex<double>* T, int64_t ldt,
9721  std::complex<double>* VL, int64_t ldvl,
9722  std::complex<double>* VR, int64_t ldvr,
9723  int64_t mm, int64_t* m );
9724 
9725 // -----------------------------------------------------------------------------
9726 int64_t trevc3(
9727  lapack::Sides side, lapack::HowMany howmany,
9728  bool* select, int64_t n,
9729  float const* T, int64_t ldt,
9730  float* VL, int64_t ldvl,
9731  float* VR, int64_t ldvr,
9732  int64_t mm, int64_t* m );
9733 
9734 int64_t trevc3(
9735  lapack::Sides side, lapack::HowMany howmany,
9736  bool* select, int64_t n,
9737  double const* T, int64_t ldt,
9738  double* VL, int64_t ldvl,
9739  double* VR, int64_t ldvr,
9740  int64_t mm, int64_t* m );
9741 
9742 int64_t trevc3(
9743  lapack::Sides side, lapack::HowMany howmany,
9744  bool const* select, int64_t n,
9745  std::complex<float>* T, int64_t ldt,
9746  std::complex<float>* VL, int64_t ldvl,
9747  std::complex<float>* VR, int64_t ldvr,
9748  int64_t mm, int64_t* m );
9749 
9750 int64_t trevc3(
9751  lapack::Sides side, lapack::HowMany howmany,
9752  bool const* select, int64_t n,
9753  std::complex<double>* T, int64_t ldt,
9754  std::complex<double>* VL, int64_t ldvl,
9755  std::complex<double>* VR, int64_t ldvr,
9756  int64_t mm, int64_t* m );
9757 
9758 // -----------------------------------------------------------------------------
9759 int64_t trexc(
9760  lapack::Job compq, int64_t n,
9761  float* T, int64_t ldt,
9762  float* Q, int64_t ldq,
9763  int64_t* ifst,
9764  int64_t* ilst );
9765 
9766 int64_t trexc(
9767  lapack::Job compq, int64_t n,
9768  double* T, int64_t ldt,
9769  double* Q, int64_t ldq,
9770  int64_t* ifst,
9771  int64_t* ilst );
9772 
9773 int64_t trexc(
9774  lapack::Job compq, int64_t n,
9775  std::complex<float>* T, int64_t ldt,
9776  std::complex<float>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9777 
9778 int64_t trexc(
9779  lapack::Job compq, int64_t n,
9780  std::complex<double>* T, int64_t ldt,
9781  std::complex<double>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9782 
9783 // -----------------------------------------------------------------------------
9784 int64_t trrfs(
9785  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9786  float const* A, int64_t lda,
9787  float const* B, int64_t ldb,
9788  float const* X, int64_t ldx,
9789  float* ferr,
9790  float* berr );
9791 
9792 int64_t trrfs(
9793  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9794  double const* A, int64_t lda,
9795  double const* B, int64_t ldb,
9796  double const* X, int64_t ldx,
9797  double* ferr,
9798  double* berr );
9799 
9800 int64_t trrfs(
9801  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9802  std::complex<float> const* A, int64_t lda,
9803  std::complex<float> const* B, int64_t ldb,
9804  std::complex<float> const* X, int64_t ldx,
9805  float* ferr,
9806  float* berr );
9807 
9808 int64_t trrfs(
9809  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9810  std::complex<double> const* A, int64_t lda,
9811  std::complex<double> const* B, int64_t ldb,
9812  std::complex<double> const* X, int64_t ldx,
9813  double* ferr,
9814  double* berr );
9815 
9816 // -----------------------------------------------------------------------------
9817 int64_t trsen(
9818  lapack::Sense sense, lapack::Job compq,
9819  bool const* select, int64_t n,
9820  float* T, int64_t ldt,
9821  float* Q, int64_t ldq,
9822  std::complex<float>* W,
9823  int64_t* m,
9824  float* s,
9825  float* sep );
9826 
9827 int64_t trsen(
9828  lapack::Sense sense, lapack::Job compq,
9829  bool const* select, int64_t n,
9830  double* T, int64_t ldt,
9831  double* Q, int64_t ldq,
9832  std::complex<double>* W,
9833  int64_t* m,
9834  double* s,
9835  double* sep );
9836 
9837 int64_t trsen(
9838  lapack::Sense sense, lapack::Job compq,
9839  bool const* select, int64_t n,
9840  std::complex<float>* T, int64_t ldt,
9841  std::complex<float>* Q, int64_t ldq,
9842  std::complex<float>* W,
9843  int64_t* m,
9844  float* s,
9845  float* sep );
9846 
9847 int64_t trsen(
9848  lapack::Sense sense, lapack::Job compq,
9849  bool const* select, int64_t n,
9850  std::complex<double>* T, int64_t ldt,
9851  std::complex<double>* Q, int64_t ldq,
9852  std::complex<double>* W,
9853  int64_t* m,
9854  double* s,
9855  double* sep );
9856 
9857 // -----------------------------------------------------------------------------
9858 int64_t trtri(
9859  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9860  float* A, int64_t lda );
9861 
9862 int64_t trtri(
9863  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9864  double* A, int64_t lda );
9865 
9866 int64_t trtri(
9867  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9868  std::complex<float>* A, int64_t lda );
9869 
9870 int64_t trtri(
9871  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9872  std::complex<double>* A, int64_t lda );
9873 
9874 // -----------------------------------------------------------------------------
9875 int64_t trtrs(
9876  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9877  float const* A, int64_t lda,
9878  float* B, int64_t ldb );
9879 
9880 int64_t trtrs(
9881  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9882  double const* A, int64_t lda,
9883  double* B, int64_t ldb );
9884 
9885 int64_t trtrs(
9886  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9887  std::complex<float> const* A, int64_t lda,
9888  std::complex<float>* B, int64_t ldb );
9889 
9890 int64_t trtrs(
9891  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9892  std::complex<double> const* A, int64_t lda,
9893  std::complex<double>* B, int64_t ldb );
9894 
9895 // -----------------------------------------------------------------------------
9896 int64_t trttf(
9897  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9898  float const* A, int64_t lda,
9899  float* ARF );
9900 
9901 int64_t trttf(
9902  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9903  double const* A, int64_t lda,
9904  double* ARF );
9905 
9906 int64_t trttf(
9907  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9908  std::complex<float> const* A, int64_t lda,
9909  std::complex<float>* ARF );
9910 
9911 int64_t trttf(
9912  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9913  std::complex<double> const* A, int64_t lda,
9914  std::complex<double>* ARF );
9915 
9916 // -----------------------------------------------------------------------------
9917 int64_t trttp(
9918  lapack::Uplo uplo, int64_t n,
9919  float const* A, int64_t lda,
9920  float* AP );
9921 
9922 int64_t trttp(
9923  lapack::Uplo uplo, int64_t n,
9924  double const* A, int64_t lda,
9925  double* AP );
9926 
9927 int64_t trttp(
9928  lapack::Uplo uplo, int64_t n,
9929  std::complex<float> const* A, int64_t lda,
9930  std::complex<float>* AP );
9931 
9932 int64_t trttp(
9933  lapack::Uplo uplo, int64_t n,
9934  std::complex<double> const* A, int64_t lda,
9935  std::complex<double>* AP );
9936 
9937 // -----------------------------------------------------------------------------
9938 int64_t tzrzf(
9939  int64_t m, int64_t n,
9940  float* A, int64_t lda,
9941  float* tau );
9942 
9943 int64_t tzrzf(
9944  int64_t m, int64_t n,
9945  double* A, int64_t lda,
9946  double* tau );
9947 
9948 int64_t tzrzf(
9949  int64_t m, int64_t n,
9950  std::complex<float>* A, int64_t lda,
9951  std::complex<float>* tau );
9952 
9953 int64_t tzrzf(
9954  int64_t m, int64_t n,
9955  std::complex<double>* A, int64_t lda,
9956  std::complex<double>* tau );
9957 
9958 // -----------------------------------------------------------------------------
9959 int64_t ungbr(
9960  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9961  std::complex<float>* A, int64_t lda,
9962  std::complex<float> const* tau );
9963 
9964 int64_t ungbr(
9965  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9966  std::complex<double>* A, int64_t lda,
9967  std::complex<double> const* tau );
9968 
9969 // -----------------------------------------------------------------------------
9970 int64_t unghr(
9971  int64_t n, int64_t ilo, int64_t ihi,
9972  std::complex<float>* A, int64_t lda,
9973  std::complex<float> const* tau );
9974 
9975 int64_t unghr(
9976  int64_t n, int64_t ilo, int64_t ihi,
9977  std::complex<double>* A, int64_t lda,
9978  std::complex<double> const* tau );
9979 
9980 // -----------------------------------------------------------------------------
9981 int64_t unglq(
9982  int64_t m, int64_t n, int64_t k,
9983  std::complex<float>* A, int64_t lda,
9984  std::complex<float> const* tau );
9985 
9986 int64_t unglq(
9987  int64_t m, int64_t n, int64_t k,
9988  std::complex<double>* A, int64_t lda,
9989  std::complex<double> const* tau );
9990 
9991 // -----------------------------------------------------------------------------
9992 int64_t ungql(
9993  int64_t m, int64_t n, int64_t k,
9994  std::complex<float>* A, int64_t lda,
9995  std::complex<float> const* tau );
9996 
9997 int64_t ungql(
9998  int64_t m, int64_t n, int64_t k,
9999  std::complex<double>* A, int64_t lda,
10000  std::complex<double> const* tau );
10001 
10002 // -----------------------------------------------------------------------------
10003 int64_t ungqr(
10004  int64_t m, int64_t n, int64_t k,
10005  std::complex<float>* A, int64_t lda,
10006  std::complex<float> const* tau );
10007 
10008 int64_t ungqr(
10009  int64_t m, int64_t n, int64_t k,
10010  std::complex<double>* A, int64_t lda,
10011  std::complex<double> const* tau );
10012 
10013 // -----------------------------------------------------------------------------
10014 int64_t ungrq(
10015  int64_t m, int64_t n, int64_t k,
10016  std::complex<float>* A, int64_t lda,
10017  std::complex<float> const* tau );
10018 
10019 int64_t ungrq(
10020  int64_t m, int64_t n, int64_t k,
10021  std::complex<double>* A, int64_t lda,
10022  std::complex<double> const* tau );
10023 
10024 // -----------------------------------------------------------------------------
10025 int64_t ungtr(
10026  lapack::Uplo uplo, int64_t n,
10027  std::complex<float>* A, int64_t lda,
10028  std::complex<float> const* tau );
10029 
10030 int64_t ungtr(
10031  lapack::Uplo uplo, int64_t n,
10032  std::complex<double>* A, int64_t lda,
10033  std::complex<double> const* tau );
10034 
10035 // -----------------------------------------------------------------------------
10036 int64_t unmbr(
10037  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10038  std::complex<float> const* A, int64_t lda,
10039  std::complex<float> const* tau,
10040  std::complex<float>* C, int64_t ldc );
10041 
10042 int64_t unmbr(
10043  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10044  std::complex<double> const* A, int64_t lda,
10045  std::complex<double> const* tau,
10046  std::complex<double>* C, int64_t ldc );
10047 
10048 // -----------------------------------------------------------------------------
10049 int64_t unmhr(
10050  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10051  std::complex<float> const* A, int64_t lda,
10052  std::complex<float> const* tau,
10053  std::complex<float>* C, int64_t ldc );
10054 
10055 int64_t unmhr(
10056  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10057  std::complex<double> const* A, int64_t lda,
10058  std::complex<double> const* tau,
10059  std::complex<double>* C, int64_t ldc );
10060 
10061 // -----------------------------------------------------------------------------
10062 int64_t unmlq(
10063  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10064  std::complex<float> const* A, int64_t lda,
10065  std::complex<float> const* tau,
10066  std::complex<float>* C, int64_t ldc );
10067 
10068 int64_t unmlq(
10069  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10070  std::complex<double> const* A, int64_t lda,
10071  std::complex<double> const* tau,
10072  std::complex<double>* C, int64_t ldc );
10073 
10074 // -----------------------------------------------------------------------------
10075 int64_t unmql(
10076  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10077  std::complex<float> const* A, int64_t lda,
10078  std::complex<float> const* tau,
10079  std::complex<float>* C, int64_t ldc );
10080 
10081 int64_t unmql(
10082  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10083  std::complex<double> const* A, int64_t lda,
10084  std::complex<double> const* tau,
10085  std::complex<double>* C, int64_t ldc );
10086 
10087 // -----------------------------------------------------------------------------
10088 int64_t unmqr(
10089  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10090  std::complex<float> const* A, int64_t lda,
10091  std::complex<float> const* tau,
10092  std::complex<float>* C, int64_t ldc );
10093 
10094 int64_t unmqr(
10095  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10096  std::complex<double> const* A, int64_t lda,
10097  std::complex<double> const* tau,
10098  std::complex<double>* C, int64_t ldc );
10099 
10100 // -----------------------------------------------------------------------------
10101 int64_t unmrq(
10102  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10103  std::complex<float> const* A, int64_t lda,
10104  std::complex<float> const* tau,
10105  std::complex<float>* C, int64_t ldc );
10106 
10107 int64_t unmrq(
10108  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10109  std::complex<double> const* A, int64_t lda,
10110  std::complex<double> const* tau,
10111  std::complex<double>* C, int64_t ldc );
10112 
10113 // -----------------------------------------------------------------------------
10114 int64_t unmrz(
10115  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10116  std::complex<float> const* A, int64_t lda,
10117  std::complex<float> const* tau,
10118  std::complex<float>* C, int64_t ldc );
10119 
10120 int64_t unmrz(
10121  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10122  std::complex<double> const* A, int64_t lda,
10123  std::complex<double> const* tau,
10124  std::complex<double>* C, int64_t ldc );
10125 
10126 // -----------------------------------------------------------------------------
10127 int64_t unmtr(
10128  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10129  std::complex<float> const* A, int64_t lda,
10130  std::complex<float> const* tau,
10131  std::complex<float>* C, int64_t ldc );
10132 
10133 int64_t unmtr(
10134  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10135  std::complex<double> const* A, int64_t lda,
10136  std::complex<double> const* tau,
10137  std::complex<double>* C, int64_t ldc );
10138 
10139 // -----------------------------------------------------------------------------
10140 int64_t upgtr(
10141  lapack::Uplo uplo, int64_t n,
10142  std::complex<float> const* AP,
10143  std::complex<float> const* tau,
10144  std::complex<float>* Q, int64_t ldq );
10145 
10146 int64_t upgtr(
10147  lapack::Uplo uplo, int64_t n,
10148  std::complex<double> const* AP,
10149  std::complex<double> const* tau,
10150  std::complex<double>* Q, int64_t ldq );
10151 
10152 // -----------------------------------------------------------------------------
10153 int64_t upmtr(
10154  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10155  std::complex<float> const* AP,
10156  std::complex<float> const* tau,
10157  std::complex<float>* C, int64_t ldc );
10158 
10159 int64_t upmtr(
10160  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10161  std::complex<double> const* AP,
10162  std::complex<double> const* tau,
10163  std::complex<double>* C, int64_t ldc );
10164 
10165 } // namespace lapack
10166 
10167 #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:148
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:156
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:313
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:195
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:176
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:68
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:278
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:256
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:159
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:149
lapack::larfgp
void larfgp(int64_t n, std::complex< double > *alpha, std::complex< double > *X, int64_t incx, std::complex< double > *tau)
Generates an elementary reflector H of order n, such that:
Definition: larfgp.cc:140
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:175
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:256
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:387
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:76
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:206
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:226
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:269
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:184
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:310
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:68
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:513
lapack::syev
int64_t syev(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syev.cc:74
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:306
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:166
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:87
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:304
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:310
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:207
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:135
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:140
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:208
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:161
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:231
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:263
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:353
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:329
lapack::orgtr
int64_t orgtr(lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double const *tau)
Definition: orgtr.cc:73
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:238
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:197
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:151
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:171
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:107
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:166
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:108
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:142
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:318
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:88
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:106
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:106
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:106
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:280
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:292
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:93
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:219
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:108
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:159
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:351
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:163
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:156
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:209
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:302
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:206
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:107
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:86
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:87
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:145
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:146
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:163
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:278
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:281
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:170
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:334
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:395
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:240
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:160
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:114
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:150
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:184
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:407
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:179
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:290
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:244
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:176
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:160
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:245
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:105
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:105
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:206
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:68
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:157
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:244
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:107
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:315
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:189
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:272
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:229
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:285
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:315
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:77
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:127
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:375
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:68
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:395
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:214
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:168
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:79
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:199
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:286
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:166
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:127
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:152
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:155
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:241
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:478
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:204
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:176
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:196
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:244
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:191
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:166
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:147
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:310
lapack::geqr
int64_t geqr(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *T, int64_t tsize)
Computes a QR factorization of an m-by-n matrix A:
Definition: geqr.cc:264
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:172
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:210
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:237
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:176
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:294
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:210
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:81
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:368
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:374
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:347
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:205
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:106
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:105
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:144
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:259
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:428
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:244
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:462
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:235
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:347
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:191
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:221
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:174
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:139
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:87
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:212
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:148
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:87
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:259
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:238
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:200
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:79
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:171
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:86
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:102
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:328
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:372
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:218
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:158
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:117
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:87
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:197
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:124
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:111
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:68
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 an elementary reflector H of order n, such that:
Definition: larfg.cc:138
lapack::sturm
int64_t sturm(int64_t n, scalar_t const *diag, scalar_t const *offd, scalar_t u)
Definition: sturm.cc:100
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:165