LAPACK++  2021.04.00
LAPACK C++ API
wrappers.hh
1 // Copyright (c) 2017-2020, University of Tennessee. All rights reserved.
2 // SPDX-License-Identifier: BSD-3-Clause
3 // This program is free software: you can redistribute it and/or modify it under
4 // the terms of the BSD 3-Clause license. See the accompanying LICENSE file.
5 
6 #ifndef LAPACK_WRAPPERS_HH
7 #define LAPACK_WRAPPERS_HH
8 
9 #include "lapack/util.hh"
10 
11 namespace lapack {
12 
13 // This is in alphabetical order.
14 
15 // -----------------------------------------------------------------------------
16 int64_t bbcsd(
17  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
18  float* theta,
19  float* phi,
20  float* U1, int64_t ldu1,
21  float* U2, int64_t ldu2,
22  float* V1T, int64_t ldv1t,
23  float* V2T, int64_t ldv2t,
24  float* B11D,
25  float* B11E,
26  float* B12D,
27  float* B12E,
28  float* B21D,
29  float* B21E,
30  float* B22D,
31  float* B22E );
32 
33 int64_t bbcsd(
34  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
35  double* theta,
36  double* phi,
37  double* U1, int64_t ldu1,
38  double* U2, int64_t ldu2,
39  double* V1T, int64_t ldv1t,
40  double* V2T, int64_t ldv2t,
41  double* B11D,
42  double* B11E,
43  double* B12D,
44  double* B12E,
45  double* B21D,
46  double* B21E,
47  double* B22D,
48  double* B22E );
49 
50 int64_t bbcsd(
51  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
52  float* theta,
53  float* phi,
54  std::complex<float>* U1, int64_t ldu1,
55  std::complex<float>* U2, int64_t ldu2,
56  std::complex<float>* V1T, int64_t ldv1t,
57  std::complex<float>* V2T, int64_t ldv2t,
58  float* B11D,
59  float* B11E,
60  float* B12D,
61  float* B12E,
62  float* B21D,
63  float* B21E,
64  float* B22D,
65  float* B22E );
66 
67 int64_t bbcsd(
68  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q,
69  double* theta,
70  double* phi,
71  std::complex<double>* U1, int64_t ldu1,
72  std::complex<double>* U2, int64_t ldu2,
73  std::complex<double>* V1T, int64_t ldv1t,
74  std::complex<double>* V2T, int64_t ldv2t,
75  double* B11D,
76  double* B11E,
77  double* B12D,
78  double* B12E,
79  double* B21D,
80  double* B21E,
81  double* B22D,
82  double* B22E );
83 
84 // -----------------------------------------------------------------------------
85 int64_t bdsdc(
86  lapack::Uplo uplo, lapack::Job compq, int64_t n,
87  float* D,
88  float* E,
89  float* U, int64_t ldu,
90  float* VT, int64_t ldvt,
91  float* Q,
92  int64_t* IQ );
93 
94 int64_t bdsdc(
95  lapack::Uplo uplo, lapack::Job compq, int64_t n,
96  double* D,
97  double* E,
98  double* U, int64_t ldu,
99  double* VT, int64_t ldvt,
100  double* Q,
101  int64_t* IQ );
102 
103 // -----------------------------------------------------------------------------
104 int64_t bdsqr(
105  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
106  float* D,
107  float* E,
108  float* VT, int64_t ldvt,
109  float* U, int64_t ldu,
110  float* C, int64_t ldc );
111 
112 int64_t bdsqr(
113  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
114  double* D,
115  double* E,
116  double* VT, int64_t ldvt,
117  double* U, int64_t ldu,
118  double* C, int64_t ldc );
119 
120 int64_t bdsqr(
121  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
122  float* D,
123  float* E,
124  std::complex<float>* VT, int64_t ldvt,
125  std::complex<float>* U, int64_t ldu,
126  std::complex<float>* C, int64_t ldc );
127 
128 int64_t bdsqr(
129  lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc,
130  double* D,
131  double* E,
132  std::complex<double>* VT, int64_t ldvt,
133  std::complex<double>* U, int64_t ldu,
134  std::complex<double>* C, int64_t ldc );
135 
136 // -----------------------------------------------------------------------------
137 int64_t bdsvdx(
138  lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n,
139  float const* D,
140  float const* E, float vl, float vu, int64_t il, int64_t iu,
141  int64_t* nfound,
142  float* S,
143  float* Z, int64_t ldz );
144 
145 int64_t bdsvdx(
146  lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n,
147  double const* D,
148  double const* E, double vl, double vu, int64_t il, int64_t iu,
149  int64_t* nfound,
150  double* S,
151  double* Z, int64_t ldz );
152 
153 // -----------------------------------------------------------------------------
154 int64_t disna(
155  lapack::JobCond jobcond, int64_t m, int64_t n,
156  float const* D,
157  float* SEP );
158 
159 int64_t disna(
160  lapack::JobCond jobcond, int64_t m, int64_t n,
161  double const* D,
162  double* SEP );
163 
164 // -----------------------------------------------------------------------------
165 int64_t gbbrd(
166  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
167  float* AB, int64_t ldab,
168  float* D,
169  float* E,
170  float* Q, int64_t ldq,
171  float* PT, int64_t ldpt,
172  float* C, int64_t ldc );
173 
174 int64_t gbbrd(
175  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
176  double* AB, int64_t ldab,
177  double* D,
178  double* E,
179  double* Q, int64_t ldq,
180  double* PT, int64_t ldpt,
181  double* C, int64_t ldc );
182 
183 int64_t gbbrd(
184  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
185  std::complex<float>* AB, int64_t ldab,
186  float* D,
187  float* E,
188  std::complex<float>* Q, int64_t ldq,
189  std::complex<float>* PT, int64_t ldpt,
190  std::complex<float>* C, int64_t ldc );
191 
192 int64_t gbbrd(
193  lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku,
194  std::complex<double>* AB, int64_t ldab,
195  double* D,
196  double* E,
197  std::complex<double>* Q, int64_t ldq,
198  std::complex<double>* PT, int64_t ldpt,
199  std::complex<double>* C, int64_t ldc );
200 
201 // -----------------------------------------------------------------------------
202 int64_t gbcon(
203  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
204  float const* AB, int64_t ldab,
205  int64_t const* ipiv, float anorm,
206  float* rcond );
207 
208 int64_t gbcon(
209  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
210  double const* AB, int64_t ldab,
211  int64_t const* ipiv, double anorm,
212  double* rcond );
213 
214 int64_t gbcon(
215  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
216  std::complex<float> const* AB, int64_t ldab,
217  int64_t const* ipiv, float anorm,
218  float* rcond );
219 
220 int64_t gbcon(
221  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
222  std::complex<double> const* AB, int64_t ldab,
223  int64_t const* ipiv, double anorm,
224  double* rcond );
225 
226 // -----------------------------------------------------------------------------
227 int64_t gbequ(
228  int64_t m, int64_t n, int64_t kl, int64_t ku,
229  float const* AB, int64_t ldab,
230  float* R,
231  float* C,
232  float* rowcnd,
233  float* colcnd,
234  float* amax );
235 
236 int64_t gbequ(
237  int64_t m, int64_t n, int64_t kl, int64_t ku,
238  double const* AB, int64_t ldab,
239  double* R,
240  double* C,
241  double* rowcnd,
242  double* colcnd,
243  double* amax );
244 
245 int64_t gbequ(
246  int64_t m, int64_t n, int64_t kl, int64_t ku,
247  std::complex<float> const* AB, int64_t ldab,
248  float* R,
249  float* C,
250  float* rowcnd,
251  float* colcnd,
252  float* amax );
253 
254 int64_t gbequ(
255  int64_t m, int64_t n, int64_t kl, int64_t ku,
256  std::complex<double> const* AB, int64_t ldab,
257  double* R,
258  double* C,
259  double* rowcnd,
260  double* colcnd,
261  double* amax );
262 
263 // -----------------------------------------------------------------------------
264 int64_t gbequb(
265  int64_t m, int64_t n, int64_t kl, int64_t ku,
266  float const* AB, int64_t ldab,
267  float* R,
268  float* C,
269  float* rowcnd,
270  float* colcnd,
271  float* amax );
272 
273 int64_t gbequb(
274  int64_t m, int64_t n, int64_t kl, int64_t ku,
275  double const* AB, int64_t ldab,
276  double* R,
277  double* C,
278  double* rowcnd,
279  double* colcnd,
280  double* amax );
281 
282 int64_t gbequb(
283  int64_t m, int64_t n, int64_t kl, int64_t ku,
284  std::complex<float> const* AB, int64_t ldab,
285  float* R,
286  float* C,
287  float* rowcnd,
288  float* colcnd,
289  float* amax );
290 
291 int64_t gbequb(
292  int64_t m, int64_t n, int64_t kl, int64_t ku,
293  std::complex<double> const* AB, int64_t ldab,
294  double* R,
295  double* C,
296  double* rowcnd,
297  double* colcnd,
298  double* amax );
299 
300 // -----------------------------------------------------------------------------
301 int64_t gbrfs(
302  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
303  float const* AB, int64_t ldab,
304  float const* AFB, int64_t ldafb,
305  int64_t const* ipiv,
306  float const* B, int64_t ldb,
307  float* X, int64_t ldx,
308  float* ferr,
309  float* berr );
310 
311 int64_t gbrfs(
312  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
313  double const* AB, int64_t ldab,
314  double const* AFB, int64_t ldafb,
315  int64_t const* ipiv,
316  double const* B, int64_t ldb,
317  double* X, int64_t ldx,
318  double* ferr,
319  double* berr );
320 
321 int64_t gbrfs(
322  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
323  std::complex<float> const* AB, int64_t ldab,
324  std::complex<float> const* AFB, int64_t ldafb,
325  int64_t const* ipiv,
326  std::complex<float> const* B, int64_t ldb,
327  std::complex<float>* X, int64_t ldx,
328  float* ferr,
329  float* berr );
330 
331 int64_t gbrfs(
332  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
333  std::complex<double> const* AB, int64_t ldab,
334  std::complex<double> const* AFB, int64_t ldafb,
335  int64_t const* ipiv,
336  std::complex<double> const* B, int64_t ldb,
337  std::complex<double>* X, int64_t ldx,
338  double* ferr,
339  double* berr );
340 
341 // -----------------------------------------------------------------------------
342 int64_t gbrfsx(
343  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
344  float const* AB, int64_t ldab,
345  float const* AFB, int64_t ldafb,
346  int64_t const* ipiv,
347  float* R,
348  float* C,
349  float const* B, int64_t ldb,
350  float* X, int64_t ldx,
351  float* rcond,
352  float* berr, int64_t n_err_bnds,
353  float* err_bnds_norm,
354  float* err_bnds_comp, int64_t nparams,
355  float* params );
356 
357 int64_t gbrfsx(
358  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
359  double const* AB, int64_t ldab,
360  double const* AFB, int64_t ldafb,
361  int64_t const* ipiv,
362  double* R,
363  double* C,
364  double const* B, int64_t ldb,
365  double* X, int64_t ldx,
366  double* rcond,
367  double* berr, int64_t n_err_bnds,
368  double* err_bnds_norm,
369  double* err_bnds_comp, int64_t nparams,
370  double* params );
371 
372 int64_t gbrfsx(
373  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
374  std::complex<float> const* AB, int64_t ldab,
375  std::complex<float> const* AFB, int64_t ldafb,
376  int64_t const* ipiv,
377  float* R,
378  float* C,
379  std::complex<float> const* B, int64_t ldb,
380  std::complex<float>* X, int64_t ldx,
381  float* rcond,
382  float* berr, int64_t n_err_bnds,
383  float* err_bnds_norm,
384  float* err_bnds_comp, int64_t nparams,
385  float* params );
386 
387 int64_t gbrfsx(
388  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
389  std::complex<double> const* AB, int64_t ldab,
390  std::complex<double> const* AFB, int64_t ldafb,
391  int64_t const* ipiv,
392  double* R,
393  double* C,
394  std::complex<double> const* B, int64_t ldb,
395  std::complex<double>* X, int64_t ldx,
396  double* rcond,
397  double* berr, int64_t n_err_bnds,
398  double* err_bnds_norm,
399  double* err_bnds_comp, int64_t nparams,
400  double* params );
401 
402 // -----------------------------------------------------------------------------
403 int64_t gbsv(
404  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
405  float* AB, int64_t ldab,
406  int64_t* ipiv,
407  float* B, int64_t ldb );
408 
409 int64_t gbsv(
410  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
411  double* AB, int64_t ldab,
412  int64_t* ipiv,
413  double* B, int64_t ldb );
414 
415 int64_t gbsv(
416  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
417  std::complex<float>* AB, int64_t ldab,
418  int64_t* ipiv,
419  std::complex<float>* B, int64_t ldb );
420 
421 int64_t gbsv(
422  int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
423  std::complex<double>* AB, int64_t ldab,
424  int64_t* ipiv,
425  std::complex<double>* B, int64_t ldb );
426 
427 // -----------------------------------------------------------------------------
428 int64_t gbsvx(
429  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
430  float* AB, int64_t ldab,
431  float* AFB, int64_t ldafb,
432  int64_t* ipiv,
433  lapack::Equed* equed,
434  float* R,
435  float* C,
436  float* B, int64_t ldb,
437  float* X, int64_t ldx,
438  float* rcond,
439  float* ferr,
440  float* berr );
441 
442 int64_t gbsvx(
443  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
444  double* AB, int64_t ldab,
445  double* AFB, int64_t ldafb,
446  int64_t* ipiv,
447  lapack::Equed* equed,
448  double* R,
449  double* C,
450  double* B, int64_t ldb,
451  double* X, int64_t ldx,
452  double* rcond,
453  double* ferr,
454  double* berr );
455 
456 int64_t gbsvx(
457  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
458  std::complex<float>* AB, int64_t ldab,
459  std::complex<float>* AFB, int64_t ldafb,
460  int64_t* ipiv,
461  lapack::Equed* equed,
462  float* R,
463  float* C,
464  std::complex<float>* B, int64_t ldb,
465  std::complex<float>* X, int64_t ldx,
466  float* rcond,
467  float* ferr,
468  float* berr );
469 
470 int64_t gbsvx(
471  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
472  std::complex<double>* AB, int64_t ldab,
473  std::complex<double>* AFB, int64_t ldafb,
474  int64_t* ipiv,
475  lapack::Equed* equed,
476  double* R,
477  double* C,
478  std::complex<double>* B, int64_t ldb,
479  std::complex<double>* X, int64_t ldx,
480  double* rcond,
481  double* ferr,
482  double* berr );
483 
484 // -----------------------------------------------------------------------------
485 int64_t gbtrf(
486  int64_t m, int64_t n, int64_t kl, int64_t ku,
487  float* AB, int64_t ldab,
488  int64_t* ipiv );
489 
490 int64_t gbtrf(
491  int64_t m, int64_t n, int64_t kl, int64_t ku,
492  double* AB, int64_t ldab,
493  int64_t* ipiv );
494 
495 int64_t gbtrf(
496  int64_t m, int64_t n, int64_t kl, int64_t ku,
497  std::complex<float>* AB, int64_t ldab,
498  int64_t* ipiv );
499 
500 int64_t gbtrf(
501  int64_t m, int64_t n, int64_t kl, int64_t ku,
502  std::complex<double>* AB, int64_t ldab,
503  int64_t* ipiv );
504 
505 // -----------------------------------------------------------------------------
506 int64_t gbtrs(
507  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
508  float const* AB, int64_t ldab,
509  int64_t const* ipiv,
510  float* B, int64_t ldb );
511 
512 int64_t gbtrs(
513  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
514  double const* AB, int64_t ldab,
515  int64_t const* ipiv,
516  double* B, int64_t ldb );
517 
518 int64_t gbtrs(
519  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
520  std::complex<float> const* AB, int64_t ldab,
521  int64_t const* ipiv,
522  std::complex<float>* B, int64_t ldb );
523 
524 int64_t gbtrs(
525  lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs,
526  std::complex<double> const* AB, int64_t ldab,
527  int64_t const* ipiv,
528  std::complex<double>* B, int64_t ldb );
529 
530 // -----------------------------------------------------------------------------
531 int64_t gebak(
532  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
533  float const* scale, int64_t m,
534  float* V, int64_t ldv );
535 
536 int64_t gebak(
537  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
538  double const* scale, int64_t m,
539  double* V, int64_t ldv );
540 
541 int64_t gebak(
542  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
543  float const* scale, int64_t m,
544  std::complex<float>* V, int64_t ldv );
545 
546 int64_t gebak(
547  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
548  double const* scale, int64_t m,
549  std::complex<double>* V, int64_t ldv );
550 
551 // -----------------------------------------------------------------------------
552 int64_t gebal(
553  lapack::Balance balance, int64_t n,
554  float* A, int64_t lda,
555  int64_t* ilo,
556  int64_t* ihi,
557  float* scale );
558 
559 int64_t gebal(
560  lapack::Balance balance, int64_t n,
561  double* A, int64_t lda,
562  int64_t* ilo,
563  int64_t* ihi,
564  double* scale );
565 
566 int64_t gebal(
567  lapack::Balance balance, int64_t n,
568  std::complex<float>* A, int64_t lda,
569  int64_t* ilo,
570  int64_t* ihi,
571  float* scale );
572 
573 int64_t gebal(
574  lapack::Balance balance, int64_t n,
575  std::complex<double>* A, int64_t lda,
576  int64_t* ilo,
577  int64_t* ihi,
578  double* scale );
579 
580 // -----------------------------------------------------------------------------
581 int64_t gebrd(
582  int64_t m, int64_t n,
583  float* A, int64_t lda,
584  float* D,
585  float* E,
586  float* tauq,
587  float* taup );
588 
589 int64_t gebrd(
590  int64_t m, int64_t n,
591  double* A, int64_t lda,
592  double* D,
593  double* E,
594  double* tauq,
595  double* taup );
596 
597 int64_t gebrd(
598  int64_t m, int64_t n,
599  std::complex<float>* A, int64_t lda,
600  float* D,
601  float* E,
602  std::complex<float>* tauq,
603  std::complex<float>* taup );
604 
605 int64_t gebrd(
606  int64_t m, int64_t n,
607  std::complex<double>* A, int64_t lda,
608  double* D,
609  double* E,
610  std::complex<double>* tauq,
611  std::complex<double>* taup );
612 
613 // -----------------------------------------------------------------------------
614 int64_t gecon(
615  lapack::Norm norm, int64_t n,
616  float const* A, int64_t lda,
617  float anorm, float* rcond );
618 
619 int64_t gecon(
620  lapack::Norm norm, int64_t n,
621  double const* A, int64_t lda,
622  double anorm, double* rcond );
623 
624 int64_t gecon(
625  lapack::Norm norm, int64_t n,
626  std::complex<float> const* A, int64_t lda,
627  float anorm, float* rcond );
628 
629 int64_t gecon(
630  lapack::Norm norm, int64_t n,
631  std::complex<double> const* A, int64_t lda,
632  double anorm, double* rcond );
633 
634 // -----------------------------------------------------------------------------
635 int64_t geequ(
636  int64_t m, int64_t n,
637  float const* A, int64_t lda,
638  float* R,
639  float* C,
640  float* rowcnd,
641  float* colcnd,
642  float* amax );
643 
644 int64_t geequ(
645  int64_t m, int64_t n,
646  double const* A, int64_t lda,
647  double* R,
648  double* C,
649  double* rowcnd,
650  double* colcnd,
651  double* amax );
652 
653 int64_t geequ(
654  int64_t m, int64_t n,
655  std::complex<float> const* A, int64_t lda,
656  float* R,
657  float* C,
658  float* rowcnd,
659  float* colcnd,
660  float* amax );
661 
662 int64_t geequ(
663  int64_t m, int64_t n,
664  std::complex<double> const* A, int64_t lda,
665  double* R,
666  double* C,
667  double* rowcnd,
668  double* colcnd,
669  double* amax );
670 
671 // -----------------------------------------------------------------------------
672 int64_t geequb(
673  int64_t m, int64_t n,
674  float const* A, int64_t lda,
675  float* R,
676  float* C,
677  float* rowcnd,
678  float* colcnd,
679  float* amax );
680 
681 int64_t geequb(
682  int64_t m, int64_t n,
683  double const* A, int64_t lda,
684  double* R,
685  double* C,
686  double* rowcnd,
687  double* colcnd,
688  double* amax );
689 
690 int64_t geequb(
691  int64_t m, int64_t n,
692  std::complex<float> const* A, int64_t lda,
693  float* R,
694  float* C,
695  float* rowcnd,
696  float* colcnd,
697  float* amax );
698 
699 int64_t geequb(
700  int64_t m, int64_t n,
701  std::complex<double> const* A, int64_t lda,
702  double* R,
703  double* C,
704  double* rowcnd,
705  double* colcnd,
706  double* amax );
707 
708 // -----------------------------------------------------------------------------
709 int64_t gees(
710  lapack::Job jobvs, lapack::Sort sort, lapack_s_select2 select, int64_t n,
711  float* A, int64_t lda,
712  int64_t* sdim,
713  std::complex<float>* W,
714  float* VS, int64_t ldvs );
715 
716 int64_t gees(
717  lapack::Job jobvs, lapack::Sort sort, lapack_d_select2 select, int64_t n,
718  double* A, int64_t lda,
719  int64_t* sdim,
720  std::complex<double>* W,
721  double* VS, int64_t ldvs );
722 
723 int64_t gees(
724  lapack::Job jobvs, lapack::Sort sort, lapack_c_select1 select, int64_t n,
725  std::complex<float>* A, int64_t lda,
726  int64_t* sdim,
727  std::complex<float>* W,
728  std::complex<float>* VS, int64_t ldvs );
729 
730 int64_t gees(
731  lapack::Job jobvs, lapack::Sort sort, lapack_z_select1 select, int64_t n,
732  std::complex<double>* A, int64_t lda,
733  int64_t* sdim,
734  std::complex<double>* W,
735  std::complex<double>* VS, int64_t ldvs );
736 
737 // -----------------------------------------------------------------------------
738 int64_t geesx(
739  lapack::Job jobvs, lapack::Sort sort, lapack_s_select2 select, lapack::Sense sense, int64_t n,
740  float* A, int64_t lda,
741  int64_t* sdim,
742  std::complex<float>* W,
743  float* VS, int64_t ldvs,
744  float* rconde,
745  float* rcondv );
746 
747 int64_t geesx(
748  lapack::Job jobvs, lapack::Sort sort, lapack_d_select2 select, lapack::Sense sense, int64_t n,
749  double* A, int64_t lda,
750  int64_t* sdim,
751  std::complex<double>* W,
752  double* VS, int64_t ldvs,
753  double* rconde,
754  double* rcondv );
755 
756 int64_t geesx(
757  lapack::Job jobvs, lapack::Sort sort, lapack_c_select1 select, lapack::Sense sense, int64_t n,
758  std::complex<float>* A, int64_t lda,
759  int64_t* sdim,
760  std::complex<float>* W,
761  std::complex<float>* VS, int64_t ldvs,
762  float* rconde,
763  float* rcondv );
764 
765 int64_t geesx(
766  lapack::Job jobvs, lapack::Sort sort, lapack_z_select1 select, lapack::Sense sense, int64_t n,
767  std::complex<double>* A, int64_t lda,
768  int64_t* sdim,
769  std::complex<double>* W,
770  std::complex<double>* VS, int64_t ldvs,
771  double* rconde,
772  double* rcondv );
773 
774 // -----------------------------------------------------------------------------
775 int64_t geev(
776  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
777  float* A, int64_t lda,
778  std::complex<float>* W,
779  float* VL, int64_t ldvl,
780  float* VR, int64_t ldvr );
781 
782 int64_t geev(
783  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
784  double* A, int64_t lda,
785  std::complex<double>* W,
786  double* VL, int64_t ldvl,
787  double* VR, int64_t ldvr );
788 
789 int64_t geev(
790  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
791  std::complex<float>* A, int64_t lda,
792  std::complex<float>* W,
793  std::complex<float>* VL, int64_t ldvl,
794  std::complex<float>* VR, int64_t ldvr );
795 
796 int64_t geev(
797  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
798  std::complex<double>* A, int64_t lda,
799  std::complex<double>* W,
800  std::complex<double>* VL, int64_t ldvl,
801  std::complex<double>* VR, int64_t ldvr );
802 
803 // -----------------------------------------------------------------------------
804 int64_t geevx(
805  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
806  float* A, int64_t lda,
807  std::complex<float>* W,
808  float* VL, int64_t ldvl,
809  float* VR, int64_t ldvr,
810  int64_t* ilo,
811  int64_t* ihi,
812  float* scale,
813  float* abnrm,
814  float* rconde,
815  float* rcondv );
816 
817 int64_t geevx(
818  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
819  double* A, int64_t lda,
820  std::complex<double>* W,
821  double* VL, int64_t ldvl,
822  double* VR, int64_t ldvr,
823  int64_t* ilo,
824  int64_t* ihi,
825  double* scale,
826  double* abnrm,
827  double* rconde,
828  double* rcondv );
829 
830 int64_t geevx(
831  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
832  std::complex<float>* A, int64_t lda,
833  std::complex<float>* W,
834  std::complex<float>* VL, int64_t ldvl,
835  std::complex<float>* VR, int64_t ldvr,
836  int64_t* ilo,
837  int64_t* ihi,
838  float* scale,
839  float* abnrm,
840  float* rconde,
841  float* rcondv );
842 
843 int64_t geevx(
844  lapack::Balance balance, lapack::Job jobvl, lapack::Job jobvr, lapack::Sense sense, int64_t n,
845  std::complex<double>* A, int64_t lda,
846  std::complex<double>* W,
847  std::complex<double>* VL, int64_t ldvl,
848  std::complex<double>* VR, int64_t ldvr,
849  int64_t* ilo,
850  int64_t* ihi,
851  double* scale,
852  double* abnrm,
853  double* rconde,
854  double* rcondv );
855 
856 // -----------------------------------------------------------------------------
857 int64_t gehrd(
858  int64_t n, int64_t ilo, int64_t ihi,
859  float* A, int64_t lda,
860  float* tau );
861 
862 int64_t gehrd(
863  int64_t n, int64_t ilo, int64_t ihi,
864  double* A, int64_t lda,
865  double* tau );
866 
867 int64_t gehrd(
868  int64_t n, int64_t ilo, int64_t ihi,
869  std::complex<float>* A, int64_t lda,
870  std::complex<float>* tau );
871 
872 int64_t gehrd(
873  int64_t n, int64_t ilo, int64_t ihi,
874  std::complex<double>* A, int64_t lda,
875  std::complex<double>* tau );
876 
877 // -----------------------------------------------------------------------------
878 int64_t gelq(
879  int64_t m, int64_t n,
880  float* A, int64_t lda,
881  float* T, int64_t tsize );
882 
883 int64_t gelq(
884  int64_t m, int64_t n,
885  double* A, int64_t lda,
886  double* T, int64_t tsize );
887 
888 int64_t gelq(
889  int64_t m, int64_t n,
890  std::complex<float>* A, int64_t lda,
891  std::complex<float>* T, int64_t tsize );
892 
893 int64_t gelq(
894  int64_t m, int64_t n,
895  std::complex<double>* A, int64_t lda,
896  std::complex<double>* T, int64_t tsize );
897 
898 // -----------------------------------------------------------------------------
899 int64_t gelq2(
900  int64_t m, int64_t n,
901  float* A, int64_t lda,
902  float* tau );
903 
904 int64_t gelq2(
905  int64_t m, int64_t n,
906  double* A, int64_t lda,
907  double* tau );
908 
909 int64_t gelq2(
910  int64_t m, int64_t n,
911  std::complex<float>* A, int64_t lda,
912  std::complex<float>* tau );
913 
914 int64_t gelq2(
915  int64_t m, int64_t n,
916  std::complex<double>* A, int64_t lda,
917  std::complex<double>* tau );
918 
919 // -----------------------------------------------------------------------------
920 int64_t gelqf(
921  int64_t m, int64_t n,
922  float* A, int64_t lda,
923  float* tau );
924 
925 int64_t gelqf(
926  int64_t m, int64_t n,
927  double* A, int64_t lda,
928  double* tau );
929 
930 int64_t gelqf(
931  int64_t m, int64_t n,
932  std::complex<float>* A, int64_t lda,
933  std::complex<float>* tau );
934 
935 int64_t gelqf(
936  int64_t m, int64_t n,
937  std::complex<double>* A, int64_t lda,
938  std::complex<double>* tau );
939 
940 // -----------------------------------------------------------------------------
941 int64_t gels(
942  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
943  float* A, int64_t lda,
944  float* B, int64_t ldb );
945 
946 int64_t gels(
947  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
948  double* A, int64_t lda,
949  double* B, int64_t ldb );
950 
951 int64_t gels(
952  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
953  std::complex<float>* A, int64_t lda,
954  std::complex<float>* B, int64_t ldb );
955 
956 int64_t gels(
957  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
958  std::complex<double>* A, int64_t lda,
959  std::complex<double>* B, int64_t ldb );
960 
961 // -----------------------------------------------------------------------------
962 int64_t gelsd(
963  int64_t m, int64_t n, int64_t nrhs,
964  float* A, int64_t lda,
965  float* B, int64_t ldb,
966  float* S, float rcond,
967  int64_t* rank );
968 
969 int64_t gelsd(
970  int64_t m, int64_t n, int64_t nrhs,
971  double* A, int64_t lda,
972  double* B, int64_t ldb,
973  double* S, double rcond,
974  int64_t* rank );
975 
976 int64_t gelsd(
977  int64_t m, int64_t n, int64_t nrhs,
978  std::complex<float>* A, int64_t lda,
979  std::complex<float>* B, int64_t ldb,
980  float* S, float rcond,
981  int64_t* rank );
982 
983 int64_t gelsd(
984  int64_t m, int64_t n, int64_t nrhs,
985  std::complex<double>* A, int64_t lda,
986  std::complex<double>* B, int64_t ldb,
987  double* S, double rcond,
988  int64_t* rank );
989 
990 // -----------------------------------------------------------------------------
991 int64_t gelss(
992  int64_t m, int64_t n, int64_t nrhs,
993  float* A, int64_t lda,
994  float* B, int64_t ldb,
995  float* S, float rcond,
996  int64_t* rank );
997 
998 int64_t gelss(
999  int64_t m, int64_t n, int64_t nrhs,
1000  double* A, int64_t lda,
1001  double* B, int64_t ldb,
1002  double* S, double rcond,
1003  int64_t* rank );
1004 
1005 int64_t gelss(
1006  int64_t m, int64_t n, int64_t nrhs,
1007  std::complex<float>* A, int64_t lda,
1008  std::complex<float>* B, int64_t ldb,
1009  float* S, float rcond,
1010  int64_t* rank );
1011 
1012 int64_t gelss(
1013  int64_t m, int64_t n, int64_t nrhs,
1014  std::complex<double>* A, int64_t lda,
1015  std::complex<double>* B, int64_t ldb,
1016  double* S, double rcond,
1017  int64_t* rank );
1018 
1019 // -----------------------------------------------------------------------------
1020 int64_t gelsy(
1021  int64_t m, int64_t n, int64_t nrhs,
1022  float* A, int64_t lda,
1023  float* B, int64_t ldb,
1024  int64_t* jpvt, float rcond,
1025  int64_t* rank );
1026 
1027 int64_t gelsy(
1028  int64_t m, int64_t n, int64_t nrhs,
1029  double* A, int64_t lda,
1030  double* B, int64_t ldb,
1031  int64_t* jpvt, double rcond,
1032  int64_t* rank );
1033 
1034 int64_t gelsy(
1035  int64_t m, int64_t n, int64_t nrhs,
1036  std::complex<float>* A, int64_t lda,
1037  std::complex<float>* B, int64_t ldb,
1038  int64_t* jpvt, float rcond,
1039  int64_t* rank );
1040 
1041 int64_t gelsy(
1042  int64_t m, int64_t n, int64_t nrhs,
1043  std::complex<double>* A, int64_t lda,
1044  std::complex<double>* B, int64_t ldb,
1045  int64_t* jpvt, double rcond,
1046  int64_t* rank );
1047 
1048 // -----------------------------------------------------------------------------
1049 int64_t gemlq(
1050  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1051  float const* A, int64_t lda,
1052  float const* T, int64_t tsize,
1053  float* C, int64_t ldc );
1054 
1055 int64_t gemlq(
1056  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1057  double const* A, int64_t lda,
1058  double const* T, int64_t tsize,
1059  double* C, int64_t ldc );
1060 
1061 int64_t gemlq(
1062  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1063  std::complex<float> const* A, int64_t lda,
1064  std::complex<float> const* T, int64_t tsize,
1065  std::complex<float>* C, int64_t ldc );
1066 
1067 int64_t gemlq(
1068  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1069  std::complex<double> const* A, int64_t lda,
1070  std::complex<double> const* T, int64_t tsize,
1071  std::complex<double>* C, int64_t ldc );
1072 
1073 // -----------------------------------------------------------------------------
1074 int64_t gemqr(
1075  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1076  float const* A, int64_t lda,
1077  float const* T, int64_t tsize,
1078  float* C, int64_t ldc );
1079 
1080 int64_t gemqr(
1081  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1082  double const* A, int64_t lda,
1083  double const* T, int64_t tsize,
1084  double* C, int64_t ldc );
1085 
1086 int64_t gemqr(
1087  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1088  std::complex<float> const* A, int64_t lda,
1089  std::complex<float> const* T, int64_t tsize,
1090  std::complex<float>* C, int64_t ldc );
1091 
1092 int64_t gemqr(
1093  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
1094  std::complex<double> const* A, int64_t lda,
1095  std::complex<double> const* T, int64_t tsize,
1096  std::complex<double>* C, int64_t ldc );
1097 
1098 // -----------------------------------------------------------------------------
1099 int64_t geql2(
1100  int64_t m, int64_t n,
1101  float* A, int64_t lda,
1102  float* tau );
1103 
1104 int64_t geql2(
1105  int64_t m, int64_t n,
1106  double* A, int64_t lda,
1107  double* tau );
1108 
1109 int64_t geql2(
1110  int64_t m, int64_t n,
1111  std::complex<float>* A, int64_t lda,
1112  std::complex<float>* tau );
1113 
1114 int64_t geql2(
1115  int64_t m, int64_t n,
1116  std::complex<double>* A, int64_t lda,
1117  std::complex<double>* tau );
1118 
1119 // -----------------------------------------------------------------------------
1120 int64_t geqlf(
1121  int64_t m, int64_t n,
1122  float* A, int64_t lda,
1123  float* tau );
1124 
1125 int64_t geqlf(
1126  int64_t m, int64_t n,
1127  double* A, int64_t lda,
1128  double* tau );
1129 
1130 int64_t geqlf(
1131  int64_t m, int64_t n,
1132  std::complex<float>* A, int64_t lda,
1133  std::complex<float>* tau );
1134 
1135 int64_t geqlf(
1136  int64_t m, int64_t n,
1137  std::complex<double>* A, int64_t lda,
1138  std::complex<double>* tau );
1139 
1140 // -----------------------------------------------------------------------------
1141 int64_t geqp3(
1142  int64_t m, int64_t n,
1143  float* A, int64_t lda,
1144  int64_t* jpvt,
1145  float* tau );
1146 
1147 int64_t geqp3(
1148  int64_t m, int64_t n,
1149  double* A, int64_t lda,
1150  int64_t* jpvt,
1151  double* tau );
1152 
1153 int64_t geqp3(
1154  int64_t m, int64_t n,
1155  std::complex<float>* A, int64_t lda,
1156  int64_t* jpvt,
1157  std::complex<float>* tau );
1158 
1159 int64_t geqp3(
1160  int64_t m, int64_t n,
1161  std::complex<double>* A, int64_t lda,
1162  int64_t* jpvt,
1163  std::complex<double>* tau );
1164 
1165 // -----------------------------------------------------------------------------
1166 int64_t geqr(
1167  int64_t m, int64_t n,
1168  float* A, int64_t lda,
1169  float* T, int64_t tsize );
1170 
1171 int64_t geqr(
1172  int64_t m, int64_t n,
1173  double* A, int64_t lda,
1174  double* T, int64_t tsize );
1175 
1176 int64_t geqr(
1177  int64_t m, int64_t n,
1178  std::complex<float>* A, int64_t lda,
1179  std::complex<float>* T, int64_t tsize );
1180 
1181 int64_t geqr(
1182  int64_t m, int64_t n,
1183  std::complex<double>* A, int64_t lda,
1184  std::complex<double>* T, int64_t tsize );
1185 
1186 // -----------------------------------------------------------------------------
1187 int64_t geqr2(
1188  int64_t m, int64_t n,
1189  float* A, int64_t lda,
1190  float* tau );
1191 
1192 int64_t geqr2(
1193  int64_t m, int64_t n,
1194  double* A, int64_t lda,
1195  double* tau );
1196 
1197 int64_t geqr2(
1198  int64_t m, int64_t n,
1199  std::complex<float>* A, int64_t lda,
1200  std::complex<float>* tau );
1201 
1202 int64_t geqr2(
1203  int64_t m, int64_t n,
1204  std::complex<double>* A, int64_t lda,
1205  std::complex<double>* tau );
1206 
1207 // -----------------------------------------------------------------------------
1208 int64_t geqrf(
1209  int64_t m, int64_t n,
1210  float* A, int64_t lda,
1211  float* tau );
1212 
1213 int64_t geqrf(
1214  int64_t m, int64_t n,
1215  double* A, int64_t lda,
1216  double* tau );
1217 
1218 int64_t geqrf(
1219  int64_t m, int64_t n,
1220  std::complex<float>* A, int64_t lda,
1221  std::complex<float>* tau );
1222 
1223 int64_t geqrf(
1224  int64_t m, int64_t n,
1225  std::complex<double>* A, int64_t lda,
1226  std::complex<double>* tau );
1227 
1228 // -----------------------------------------------------------------------------
1229 int64_t geqrfp(
1230  int64_t m, int64_t n,
1231  float* A, int64_t lda,
1232  float* tau );
1233 
1234 int64_t geqrfp(
1235  int64_t m, int64_t n,
1236  double* A, int64_t lda,
1237  double* tau );
1238 
1239 int64_t geqrfp(
1240  int64_t m, int64_t n,
1241  std::complex<float>* A, int64_t lda,
1242  std::complex<float>* tau );
1243 
1244 int64_t geqrfp(
1245  int64_t m, int64_t n,
1246  std::complex<double>* A, int64_t lda,
1247  std::complex<double>* tau );
1248 
1249 // -----------------------------------------------------------------------------
1250 int64_t geqrt(
1251  int64_t m, int64_t n, int64_t nb,
1252  float* A, int64_t lda,
1253  float* T, int64_t ldt );
1254 
1255 int64_t geqrt(
1256  int64_t m, int64_t n, int64_t nb,
1257  double* A, int64_t lda,
1258  double* T, int64_t ldt );
1259 
1260 int64_t geqrt(
1261  int64_t m, int64_t n, int64_t nb,
1262  std::complex<float>* A, int64_t lda,
1263  std::complex<float>* T, int64_t ldt );
1264 
1265 int64_t geqrt(
1266  int64_t m, int64_t n, int64_t nb,
1267  std::complex<double>* A, int64_t lda,
1268  std::complex<double>* T, int64_t ldt );
1269 
1270 // -----------------------------------------------------------------------------
1271 int64_t geqrt2(
1272  int64_t m, int64_t n,
1273  float* A, int64_t lda,
1274  float* T, int64_t ldt );
1275 
1276 int64_t geqrt2(
1277  int64_t m, int64_t n,
1278  double* A, int64_t lda,
1279  double* T, int64_t ldt );
1280 
1281 int64_t geqrt2(
1282  int64_t m, int64_t n,
1283  std::complex<float>* A, int64_t lda,
1284  std::complex<float>* T, int64_t ldt );
1285 
1286 int64_t geqrt2(
1287  int64_t m, int64_t n,
1288  std::complex<double>* A, int64_t lda,
1289  std::complex<double>* T, int64_t ldt );
1290 
1291 // -----------------------------------------------------------------------------
1292 int64_t geqrt3(
1293  int64_t m, int64_t n,
1294  float* A, int64_t lda,
1295  float* T, int64_t ldt );
1296 
1297 int64_t geqrt3(
1298  int64_t m, int64_t n,
1299  double* A, int64_t lda,
1300  double* T, int64_t ldt );
1301 
1302 int64_t geqrt3(
1303  int64_t m, int64_t n,
1304  std::complex<float>* A, int64_t lda,
1305  std::complex<float>* T, int64_t ldt );
1306 
1307 int64_t geqrt3(
1308  int64_t m, int64_t n,
1309  std::complex<double>* A, int64_t lda,
1310  std::complex<double>* T, int64_t ldt );
1311 
1312 // -----------------------------------------------------------------------------
1313 int64_t gerfs(
1314  lapack::Op trans, int64_t n, int64_t nrhs,
1315  float const* A, int64_t lda,
1316  float const* AF, int64_t ldaf,
1317  int64_t const* ipiv,
1318  float const* B, int64_t ldb,
1319  float* X, int64_t ldx,
1320  float* ferr,
1321  float* berr );
1322 
1323 int64_t gerfs(
1324  lapack::Op trans, int64_t n, int64_t nrhs,
1325  double const* A, int64_t lda,
1326  double const* AF, int64_t ldaf,
1327  int64_t const* ipiv,
1328  double const* B, int64_t ldb,
1329  double* X, int64_t ldx,
1330  double* ferr,
1331  double* berr );
1332 
1333 int64_t gerfs(
1334  lapack::Op trans, int64_t n, int64_t nrhs,
1335  std::complex<float> const* A, int64_t lda,
1336  std::complex<float> const* AF, int64_t ldaf,
1337  int64_t const* ipiv,
1338  std::complex<float> const* B, int64_t ldb,
1339  std::complex<float>* X, int64_t ldx,
1340  float* ferr,
1341  float* berr );
1342 
1343 int64_t gerfs(
1344  lapack::Op trans, int64_t n, int64_t nrhs,
1345  std::complex<double> const* A, int64_t lda,
1346  std::complex<double> const* AF, int64_t ldaf,
1347  int64_t const* ipiv,
1348  std::complex<double> const* B, int64_t ldb,
1349  std::complex<double>* X, int64_t ldx,
1350  double* ferr,
1351  double* berr );
1352 
1353 // -----------------------------------------------------------------------------
1354 int64_t gerfsx(
1355  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1356  float const* A, int64_t lda,
1357  float const* AF, int64_t ldaf,
1358  int64_t const* ipiv,
1359  float const* R,
1360  float const* C,
1361  float const* B, int64_t ldb,
1362  float* X, int64_t ldx,
1363  float* rcond,
1364  float* berr, int64_t n_err_bnds,
1365  float* err_bnds_norm,
1366  float* err_bnds_comp, int64_t nparams,
1367  float* params );
1368 
1369 int64_t gerfsx(
1370  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1371  double const* A, int64_t lda,
1372  double const* AF, int64_t ldaf,
1373  int64_t const* ipiv,
1374  double const* R,
1375  double const* C,
1376  double const* B, int64_t ldb,
1377  double* X, int64_t ldx,
1378  double* rcond,
1379  double* berr, int64_t n_err_bnds,
1380  double* err_bnds_norm,
1381  double* err_bnds_comp, int64_t nparams,
1382  double* params );
1383 
1384 int64_t gerfsx(
1385  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1386  std::complex<float> const* A, int64_t lda,
1387  std::complex<float> const* AF, int64_t ldaf,
1388  int64_t const* ipiv,
1389  float const* R,
1390  float const* C,
1391  std::complex<float> const* B, int64_t ldb,
1392  std::complex<float>* X, int64_t ldx,
1393  float* rcond,
1394  float* berr, int64_t n_err_bnds,
1395  float* err_bnds_norm,
1396  float* err_bnds_comp, int64_t nparams,
1397  float* params );
1398 
1399 int64_t gerfsx(
1400  lapack::Op trans, lapack::Equed equed, int64_t n, int64_t nrhs,
1401  std::complex<double> const* A, int64_t lda,
1402  std::complex<double> const* AF, int64_t ldaf,
1403  int64_t const* ipiv,
1404  double const* R,
1405  double const* C,
1406  std::complex<double> const* B, int64_t ldb,
1407  std::complex<double>* X, int64_t ldx,
1408  double* rcond,
1409  double* berr, int64_t n_err_bnds,
1410  double* err_bnds_norm,
1411  double* err_bnds_comp, int64_t nparams,
1412  double* params );
1413 
1414 // -----------------------------------------------------------------------------
1415 int64_t gerq2(
1416  int64_t m, int64_t n,
1417  float* A, int64_t lda,
1418  float* tau );
1419 
1420 int64_t gerq2(
1421  int64_t m, int64_t n,
1422  double* A, int64_t lda,
1423  double* tau );
1424 
1425 int64_t gerq2(
1426  int64_t m, int64_t n,
1427  std::complex<float>* A, int64_t lda,
1428  std::complex<float>* tau );
1429 
1430 int64_t gerq2(
1431  int64_t m, int64_t n,
1432  std::complex<double>* A, int64_t lda,
1433  std::complex<double>* tau );
1434 
1435 // -----------------------------------------------------------------------------
1436 int64_t gerqf(
1437  int64_t m, int64_t n,
1438  float* A, int64_t lda,
1439  float* tau );
1440 
1441 int64_t gerqf(
1442  int64_t m, int64_t n,
1443  double* A, int64_t lda,
1444  double* tau );
1445 
1446 int64_t gerqf(
1447  int64_t m, int64_t n,
1448  std::complex<float>* A, int64_t lda,
1449  std::complex<float>* tau );
1450 
1451 int64_t gerqf(
1452  int64_t m, int64_t n,
1453  std::complex<double>* A, int64_t lda,
1454  std::complex<double>* tau );
1455 
1456 // -----------------------------------------------------------------------------
1457 int64_t gesdd(
1458  lapack::Job jobz, int64_t m, int64_t n,
1459  float* A, int64_t lda,
1460  float* S,
1461  float* U, int64_t ldu,
1462  float* VT, int64_t ldvt );
1463 
1464 int64_t gesdd(
1465  lapack::Job jobz, int64_t m, int64_t n,
1466  double* A, int64_t lda,
1467  double* S,
1468  double* U, int64_t ldu,
1469  double* VT, int64_t ldvt );
1470 
1471 int64_t gesdd(
1472  lapack::Job jobz, int64_t m, int64_t n,
1473  std::complex<float>* A, int64_t lda,
1474  float* S,
1475  std::complex<float>* U, int64_t ldu,
1476  std::complex<float>* VT, int64_t ldvt );
1477 
1478 int64_t gesdd(
1479  lapack::Job jobz, int64_t m, int64_t n,
1480  std::complex<double>* A, int64_t lda,
1481  double* S,
1482  std::complex<double>* U, int64_t ldu,
1483  std::complex<double>* VT, int64_t ldvt );
1484 
1485 // -----------------------------------------------------------------------------
1486 int64_t gesv(
1487  int64_t n, int64_t nrhs,
1488  float* A, int64_t lda,
1489  int64_t* ipiv,
1490  float* B, int64_t ldb );
1491 
1492 int64_t gesv(
1493  int64_t n, int64_t nrhs,
1494  double* A, int64_t lda,
1495  int64_t* ipiv,
1496  double* B, int64_t ldb );
1497 
1498 int64_t gesv(
1499  int64_t n, int64_t nrhs,
1500  std::complex<float>* A, int64_t lda,
1501  int64_t* ipiv,
1502  std::complex<float>* B, int64_t ldb );
1503 
1504 int64_t gesv(
1505  int64_t n, int64_t nrhs,
1506  std::complex<double>* A, int64_t lda,
1507  int64_t* ipiv,
1508  std::complex<double>* B, int64_t ldb );
1509 
1510 int64_t gesv(
1511  int64_t n, int64_t nrhs,
1512  double* A, int64_t lda,
1513  int64_t* ipiv,
1514  double const* B, int64_t ldb,
1515  double* X, int64_t ldx,
1516  int64_t* iter );
1517 
1518 int64_t gesv(
1519  int64_t n, int64_t nrhs,
1520  std::complex<double>* A, int64_t lda,
1521  int64_t* ipiv,
1522  std::complex<double> const* B, int64_t ldb,
1523  std::complex<double>* X, int64_t ldx,
1524  int64_t* iter );
1525 
1526 // -----------------------------------------------------------------------------
1527 int64_t gesvx(
1528  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1529  float* A, int64_t lda,
1530  float* AF, int64_t ldaf,
1531  int64_t* ipiv,
1532  lapack::Equed* equed,
1533  float* R,
1534  float* C,
1535  float* B, int64_t ldb,
1536  float* X, int64_t ldx,
1537  float* rcond,
1538  float* ferr,
1539  float* berr,
1540  float* rpivotgrowth );
1541 
1542 int64_t gesvx(
1543  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1544  double* A, int64_t lda,
1545  double* AF, int64_t ldaf,
1546  int64_t* ipiv,
1547  lapack::Equed* equed,
1548  double* R,
1549  double* C,
1550  double* B, int64_t ldb,
1551  double* X, int64_t ldx,
1552  double* rcond,
1553  double* ferr,
1554  double* berr,
1555  double* rpivotgrowth );
1556 
1557 int64_t gesvx(
1558  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1559  std::complex<float>* A, int64_t lda,
1560  std::complex<float>* AF, int64_t ldaf,
1561  int64_t* ipiv,
1562  lapack::Equed* equed,
1563  float* R,
1564  float* C,
1565  std::complex<float>* B, int64_t ldb,
1566  std::complex<float>* X, int64_t ldx,
1567  float* rcond,
1568  float* ferr,
1569  float* berr,
1570  float* rpivotgrowth );
1571 
1572 int64_t gesvx(
1573  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
1574  std::complex<double>* A, int64_t lda,
1575  std::complex<double>* AF, int64_t ldaf,
1576  int64_t* ipiv,
1577  lapack::Equed* equed,
1578  double* R,
1579  double* C,
1580  std::complex<double>* B, int64_t ldb,
1581  std::complex<double>* X, int64_t ldx,
1582  double* rcond,
1583  double* ferr,
1584  double* berr,
1585  double* rpivotgrowth );
1586 
1587 // -----------------------------------------------------------------------------
1588 int64_t gesvd(
1589  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1590  float* A, int64_t lda,
1591  float* S,
1592  float* U, int64_t ldu,
1593  float* VT, int64_t ldvt );
1594 
1595 int64_t gesvd(
1596  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1597  double* A, int64_t lda,
1598  double* S,
1599  double* U, int64_t ldu,
1600  double* VT, int64_t ldvt );
1601 
1602 int64_t gesvd(
1603  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1604  std::complex<float>* A, int64_t lda,
1605  float* S,
1606  std::complex<float>* U, int64_t ldu,
1607  std::complex<float>* VT, int64_t ldvt );
1608 
1609 int64_t gesvd(
1610  lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n,
1611  std::complex<double>* A, int64_t lda,
1612  double* S,
1613  std::complex<double>* U, int64_t ldu,
1614  std::complex<double>* VT, int64_t ldvt );
1615 
1616 // -----------------------------------------------------------------------------
1617 int64_t gesvdx(
1618  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1619  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu,
1620  int64_t* ns,
1621  float* S,
1622  float* U, int64_t ldu,
1623  float* VT, int64_t ldvt );
1624 
1625 int64_t gesvdx(
1626  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1627  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu,
1628  int64_t* ns,
1629  double* S,
1630  double* U, int64_t ldu,
1631  double* VT, int64_t ldvt );
1632 
1633 int64_t gesvdx(
1634  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1635  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu,
1636  int64_t* ns,
1637  float* S,
1638  std::complex<float>* U, int64_t ldu,
1639  std::complex<float>* VT, int64_t ldvt );
1640 
1641 int64_t gesvdx(
1642  lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n,
1643  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu,
1644  int64_t* ns,
1645  double* S,
1646  std::complex<double>* U, int64_t ldu,
1647  std::complex<double>* VT, int64_t ldvt );
1648 
1649 // -----------------------------------------------------------------------------
1650 int64_t getf2(
1651  int64_t m, int64_t n,
1652  float* A, int64_t lda,
1653  int64_t* ipiv );
1654 
1655 int64_t getf2(
1656  int64_t m, int64_t n,
1657  double* A, int64_t lda,
1658  int64_t* ipiv );
1659 
1660 int64_t getf2(
1661  int64_t m, int64_t n,
1662  std::complex<float>* A, int64_t lda,
1663  int64_t* ipiv );
1664 
1665 int64_t getf2(
1666  int64_t m, int64_t n,
1667  std::complex<double>* A, int64_t lda,
1668  int64_t* ipiv );
1669 
1670 // -----------------------------------------------------------------------------
1671 int64_t getrf(
1672  int64_t m, int64_t n,
1673  float* A, int64_t lda,
1674  int64_t* ipiv );
1675 
1676 int64_t getrf(
1677  int64_t m, int64_t n,
1678  double* A, int64_t lda,
1679  int64_t* ipiv );
1680 
1681 int64_t getrf(
1682  int64_t m, int64_t n,
1683  std::complex<float>* A, int64_t lda,
1684  int64_t* ipiv );
1685 
1686 int64_t getrf(
1687  int64_t m, int64_t n,
1688  std::complex<double>* A, int64_t lda,
1689  int64_t* ipiv );
1690 
1691 // -----------------------------------------------------------------------------
1692 int64_t getrf2(
1693  int64_t m, int64_t n,
1694  float* A, int64_t lda,
1695  int64_t* ipiv );
1696 
1697 int64_t getrf2(
1698  int64_t m, int64_t n,
1699  double* A, int64_t lda,
1700  int64_t* ipiv );
1701 
1702 int64_t getrf2(
1703  int64_t m, int64_t n,
1704  std::complex<float>* A, int64_t lda,
1705  int64_t* ipiv );
1706 
1707 int64_t getrf2(
1708  int64_t m, int64_t n,
1709  std::complex<double>* A, int64_t lda,
1710  int64_t* ipiv );
1711 
1712 // -----------------------------------------------------------------------------
1713 int64_t getri(
1714  int64_t n,
1715  float* A, int64_t lda,
1716  int64_t const* ipiv );
1717 
1718 int64_t getri(
1719  int64_t n,
1720  double* A, int64_t lda,
1721  int64_t const* ipiv );
1722 
1723 int64_t getri(
1724  int64_t n,
1725  std::complex<float>* A, int64_t lda,
1726  int64_t const* ipiv );
1727 
1728 int64_t getri(
1729  int64_t n,
1730  std::complex<double>* A, int64_t lda,
1731  int64_t const* ipiv );
1732 
1733 // -----------------------------------------------------------------------------
1734 int64_t getrs(
1735  lapack::Op trans, int64_t n, int64_t nrhs,
1736  float const* A, int64_t lda,
1737  int64_t const* ipiv,
1738  float* B, int64_t ldb );
1739 
1740 int64_t getrs(
1741  lapack::Op trans, int64_t n, int64_t nrhs,
1742  double const* A, int64_t lda,
1743  int64_t const* ipiv,
1744  double* B, int64_t ldb );
1745 
1746 int64_t getrs(
1747  lapack::Op trans, int64_t n, int64_t nrhs,
1748  std::complex<float> const* A, int64_t lda,
1749  int64_t const* ipiv,
1750  std::complex<float>* B, int64_t ldb );
1751 
1752 int64_t getrs(
1753  lapack::Op trans, int64_t n, int64_t nrhs,
1754  std::complex<double> const* A, int64_t lda,
1755  int64_t const* ipiv,
1756  std::complex<double>* B, int64_t ldb );
1757 
1758 // -----------------------------------------------------------------------------
1759 int64_t getsls(
1760  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1761  float* A, int64_t lda,
1762  float* B, int64_t ldb );
1763 
1764 int64_t getsls(
1765  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1766  double* A, int64_t lda,
1767  double* B, int64_t ldb );
1768 
1769 int64_t getsls(
1770  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1771  std::complex<float>* A, int64_t lda,
1772  std::complex<float>* B, int64_t ldb );
1773 
1774 int64_t getsls(
1775  lapack::Op trans, int64_t m, int64_t n, int64_t nrhs,
1776  std::complex<double>* A, int64_t lda,
1777  std::complex<double>* B, int64_t ldb );
1778 
1779 // -----------------------------------------------------------------------------
1780 int64_t ggbak(
1781  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1782  float const* lscale,
1783  float const* rscale, int64_t m,
1784  float* V, int64_t ldv );
1785 
1786 int64_t ggbak(
1787  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1788  double const* lscale,
1789  double const* rscale, int64_t m,
1790  double* V, int64_t ldv );
1791 
1792 int64_t ggbak(
1793  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1794  float const* lscale,
1795  float const* rscale, int64_t m,
1796  std::complex<float>* V, int64_t ldv );
1797 
1798 int64_t ggbak(
1799  lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi,
1800  double const* lscale,
1801  double const* rscale, int64_t m,
1802  std::complex<double>* V, int64_t ldv );
1803 
1804 // -----------------------------------------------------------------------------
1805 int64_t ggbal(
1806  lapack::Balance balance, int64_t n,
1807  float* A, int64_t lda,
1808  float* B, int64_t ldb,
1809  int64_t* ilo,
1810  int64_t* ihi,
1811  float* lscale,
1812  float* rscale );
1813 
1814 int64_t ggbal(
1815  lapack::Balance balance, int64_t n,
1816  double* A, int64_t lda,
1817  double* B, int64_t ldb,
1818  int64_t* ilo,
1819  int64_t* ihi,
1820  double* lscale,
1821  double* rscale );
1822 
1823 int64_t ggbal(
1824  lapack::Balance balance, int64_t n,
1825  std::complex<float>* A, int64_t lda,
1826  std::complex<float>* B, int64_t ldb,
1827  int64_t* ilo,
1828  int64_t* ihi,
1829  float* lscale,
1830  float* rscale );
1831 
1832 int64_t ggbal(
1833  lapack::Balance balance, int64_t n,
1834  std::complex<double>* A, int64_t lda,
1835  std::complex<double>* B, int64_t ldb,
1836  int64_t* ilo,
1837  int64_t* ihi,
1838  double* lscale,
1839  double* rscale );
1840 
1841 // -----------------------------------------------------------------------------
1842 int64_t gges(
1843  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, int64_t n,
1844  float* A, int64_t lda,
1845  float* B, int64_t ldb,
1846  int64_t* sdim,
1847  std::complex<float>* alpha,
1848  float* beta,
1849  float* VSL, int64_t ldvsl,
1850  float* VSR, int64_t ldvsr );
1851 
1852 int64_t gges(
1853  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, int64_t n,
1854  double* A, int64_t lda,
1855  double* B, int64_t ldb,
1856  int64_t* sdim,
1857  std::complex<double>* alpha,
1858  double* beta,
1859  double* VSL, int64_t ldvsl,
1860  double* VSR, int64_t ldvsr );
1861 
1862 int64_t gges(
1863  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, int64_t n,
1864  std::complex<float>* A, int64_t lda,
1865  std::complex<float>* B, int64_t ldb,
1866  int64_t* sdim,
1867  std::complex<float>* alpha,
1868  std::complex<float>* beta,
1869  std::complex<float>* VSL, int64_t ldvsl,
1870  std::complex<float>* VSR, int64_t ldvsr );
1871 
1872 int64_t gges(
1873  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, int64_t n,
1874  std::complex<double>* A, int64_t lda,
1875  std::complex<double>* B, int64_t ldb,
1876  int64_t* sdim,
1877  std::complex<double>* alpha,
1878  std::complex<double>* beta,
1879  std::complex<double>* VSL, int64_t ldvsl,
1880  std::complex<double>* VSR, int64_t ldvsr );
1881 
1882 // -----------------------------------------------------------------------------
1883 int64_t gges3(
1884  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, int64_t n,
1885  float* A, int64_t lda,
1886  float* B, int64_t ldb,
1887  int64_t* sdim,
1888  std::complex<float>* alpha,
1889  float* beta,
1890  float* VSL, int64_t ldvsl,
1891  float* VSR, int64_t ldvsr );
1892 
1893 int64_t gges3(
1894  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, int64_t n,
1895  double* A, int64_t lda,
1896  double* B, int64_t ldb,
1897  int64_t* sdim,
1898  std::complex<double>* alpha,
1899  double* beta,
1900  double* VSL, int64_t ldvsl,
1901  double* VSR, int64_t ldvsr );
1902 
1903 int64_t gges3(
1904  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, int64_t n,
1905  std::complex<float>* A, int64_t lda,
1906  std::complex<float>* B, int64_t ldb,
1907  int64_t* sdim,
1908  std::complex<float>* alpha,
1909  std::complex<float>* beta,
1910  std::complex<float>* VSL, int64_t ldvsl,
1911  std::complex<float>* VSR, int64_t ldvsr );
1912 
1913 int64_t gges3(
1914  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, int64_t n,
1915  std::complex<double>* A, int64_t lda,
1916  std::complex<double>* B, int64_t ldb,
1917  int64_t* sdim,
1918  std::complex<double>* alpha,
1919  std::complex<double>* beta,
1920  std::complex<double>* VSL, int64_t ldvsl,
1921  std::complex<double>* VSR, int64_t ldvsr );
1922 
1923 // -----------------------------------------------------------------------------
1924 int64_t ggesx(
1925  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_s_select3 select, lapack::Sense sense, int64_t n,
1926  float* A, int64_t lda,
1927  float* B, int64_t ldb,
1928  int64_t* sdim,
1929  std::complex<float>* alpha,
1930  float* beta,
1931  float* VSL, int64_t ldvsl,
1932  float* VSR, int64_t ldvsr,
1933  float* rconde,
1934  float* rcondv );
1935 
1936 int64_t ggesx(
1937  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_d_select3 select, lapack::Sense sense, int64_t n,
1938  double* A, int64_t lda,
1939  double* B, int64_t ldb,
1940  int64_t* sdim,
1941  std::complex<double>* alpha,
1942  double* beta,
1943  double* VSL, int64_t ldvsl,
1944  double* VSR, int64_t ldvsr,
1945  double* rconde,
1946  double* rcondv );
1947 
1948 int64_t ggesx(
1949  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_c_select2 select, lapack::Sense sense, int64_t n,
1950  std::complex<float>* A, int64_t lda,
1951  std::complex<float>* B, int64_t ldb,
1952  int64_t* sdim,
1953  std::complex<float>* alpha,
1954  std::complex<float>* beta,
1955  std::complex<float>* VSL, int64_t ldvsl,
1956  std::complex<float>* VSR, int64_t ldvsr,
1957  float* rconde,
1958  float* rcondv );
1959 
1960 int64_t ggesx(
1961  lapack::Job jobvsl, lapack::Job jobvsr, lapack::Sort sort, lapack_z_select2 select, lapack::Sense sense, int64_t n,
1962  std::complex<double>* A, int64_t lda,
1963  std::complex<double>* B, int64_t ldb,
1964  int64_t* sdim,
1965  std::complex<double>* alpha,
1966  std::complex<double>* beta,
1967  std::complex<double>* VSL, int64_t ldvsl,
1968  std::complex<double>* VSR, int64_t ldvsr,
1969  double* rconde,
1970  double* rcondv );
1971 
1972 // -----------------------------------------------------------------------------
1973 int64_t ggev(
1974  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1975  float* A, int64_t lda,
1976  float* B, int64_t ldb,
1977  std::complex<float>* alpha,
1978  float* beta,
1979  float* VL, int64_t ldvl,
1980  float* VR, int64_t ldvr );
1981 
1982 int64_t ggev(
1983  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1984  double* A, int64_t lda,
1985  double* B, int64_t ldb,
1986  std::complex<double>* alpha,
1987  double* beta,
1988  double* VL, int64_t ldvl,
1989  double* VR, int64_t ldvr );
1990 
1991 int64_t ggev(
1992  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
1993  std::complex<float>* A, int64_t lda,
1994  std::complex<float>* B, int64_t ldb,
1995  std::complex<float>* alpha,
1996  std::complex<float>* beta,
1997  std::complex<float>* VL, int64_t ldvl,
1998  std::complex<float>* VR, int64_t ldvr );
1999 
2000 int64_t ggev(
2001  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2002  std::complex<double>* A, int64_t lda,
2003  std::complex<double>* B, int64_t ldb,
2004  std::complex<double>* alpha,
2005  std::complex<double>* beta,
2006  std::complex<double>* VL, int64_t ldvl,
2007  std::complex<double>* VR, int64_t ldvr );
2008 
2009 // -----------------------------------------------------------------------------
2010 int64_t ggev3(
2011  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2012  float* A, int64_t lda,
2013  float* B, int64_t ldb,
2014  std::complex<float>* alpha,
2015  float* beta,
2016  float* VL, int64_t ldvl,
2017  float* VR, int64_t ldvr );
2018 
2019 int64_t ggev3(
2020  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2021  double* A, int64_t lda,
2022  double* B, int64_t ldb,
2023  std::complex<double>* alpha,
2024  double* beta,
2025  double* VL, int64_t ldvl,
2026  double* VR, int64_t ldvr );
2027 
2028 int64_t ggev3(
2029  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2030  std::complex<float>* A, int64_t lda,
2031  std::complex<float>* B, int64_t ldb,
2032  std::complex<float>* alpha,
2033  std::complex<float>* beta,
2034  std::complex<float>* VL, int64_t ldvl,
2035  std::complex<float>* VR, int64_t ldvr );
2036 
2037 int64_t ggev3(
2038  lapack::Job jobvl, lapack::Job jobvr, int64_t n,
2039  std::complex<double>* A, int64_t lda,
2040  std::complex<double>* B, int64_t ldb,
2041  std::complex<double>* alpha,
2042  std::complex<double>* beta,
2043  std::complex<double>* VL, int64_t ldvl,
2044  std::complex<double>* VR, int64_t ldvr );
2045 
2046 // -----------------------------------------------------------------------------
2047 int64_t ggglm(
2048  int64_t n, int64_t m, int64_t p,
2049  float* A, int64_t lda,
2050  float* B, int64_t ldb,
2051  float* D,
2052  float* X,
2053  float* Y );
2054 
2055 int64_t ggglm(
2056  int64_t n, int64_t m, int64_t p,
2057  double* A, int64_t lda,
2058  double* B, int64_t ldb,
2059  double* D,
2060  double* X,
2061  double* Y );
2062 
2063 int64_t ggglm(
2064  int64_t n, int64_t m, int64_t p,
2065  std::complex<float>* A, int64_t lda,
2066  std::complex<float>* B, int64_t ldb,
2067  std::complex<float>* D,
2068  std::complex<float>* X,
2069  std::complex<float>* Y );
2070 
2071 int64_t ggglm(
2072  int64_t n, int64_t m, int64_t p,
2073  std::complex<double>* A, int64_t lda,
2074  std::complex<double>* B, int64_t ldb,
2075  std::complex<double>* D,
2076  std::complex<double>* X,
2077  std::complex<double>* Y );
2078 
2079 // -----------------------------------------------------------------------------
2080 int64_t gghrd(
2081  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2082  float* A, int64_t lda,
2083  float* B, int64_t ldb,
2084  float* Q, int64_t ldq,
2085  float* Z, int64_t ldz );
2086 
2087 int64_t gghrd(
2088  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2089  double* A, int64_t lda,
2090  double* B, int64_t ldb,
2091  double* Q, int64_t ldq,
2092  double* Z, int64_t ldz );
2093 
2094 int64_t gghrd(
2095  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2096  std::complex<float>* A, int64_t lda,
2097  std::complex<float>* B, int64_t ldb,
2098  std::complex<float>* Q, int64_t ldq,
2099  std::complex<float>* Z, int64_t ldz );
2100 
2101 int64_t gghrd(
2102  lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
2103  std::complex<double>* A, int64_t lda,
2104  std::complex<double>* B, int64_t ldb,
2105  std::complex<double>* Q, int64_t ldq,
2106  std::complex<double>* Z, int64_t ldz );
2107 
2108 // -----------------------------------------------------------------------------
2109 int64_t gglse(
2110  int64_t m, int64_t n, int64_t p,
2111  float* A, int64_t lda,
2112  float* B, int64_t ldb,
2113  float* C,
2114  float* D,
2115  float* X );
2116 
2117 int64_t gglse(
2118  int64_t m, int64_t n, int64_t p,
2119  double* A, int64_t lda,
2120  double* B, int64_t ldb,
2121  double* C,
2122  double* D,
2123  double* X );
2124 
2125 int64_t gglse(
2126  int64_t m, int64_t n, int64_t p,
2127  std::complex<float>* A, int64_t lda,
2128  std::complex<float>* B, int64_t ldb,
2129  std::complex<float>* C,
2130  std::complex<float>* D,
2131  std::complex<float>* X );
2132 
2133 int64_t gglse(
2134  int64_t m, int64_t n, int64_t p,
2135  std::complex<double>* A, int64_t lda,
2136  std::complex<double>* B, int64_t ldb,
2137  std::complex<double>* C,
2138  std::complex<double>* D,
2139  std::complex<double>* X );
2140 
2141 // -----------------------------------------------------------------------------
2142 int64_t ggqrf(
2143  int64_t n, int64_t m, int64_t p,
2144  float* A, int64_t lda,
2145  float* taua,
2146  float* B, int64_t ldb,
2147  float* taub );
2148 
2149 int64_t ggqrf(
2150  int64_t n, int64_t m, int64_t p,
2151  double* A, int64_t lda,
2152  double* taua,
2153  double* B, int64_t ldb,
2154  double* taub );
2155 
2156 int64_t ggqrf(
2157  int64_t n, int64_t m, int64_t p,
2158  std::complex<float>* A, int64_t lda,
2159  std::complex<float>* taua,
2160  std::complex<float>* B, int64_t ldb,
2161  std::complex<float>* taub );
2162 
2163 int64_t ggqrf(
2164  int64_t n, int64_t m, int64_t p,
2165  std::complex<double>* A, int64_t lda,
2166  std::complex<double>* taua,
2167  std::complex<double>* B, int64_t ldb,
2168  std::complex<double>* taub );
2169 
2170 // -----------------------------------------------------------------------------
2171 int64_t ggrqf(
2172  int64_t m, int64_t p, int64_t n,
2173  float* A, int64_t lda,
2174  float* taua,
2175  float* B, int64_t ldb,
2176  float* taub );
2177 
2178 int64_t ggrqf(
2179  int64_t m, int64_t p, int64_t n,
2180  double* A, int64_t lda,
2181  double* taua,
2182  double* B, int64_t ldb,
2183  double* taub );
2184 
2185 int64_t ggrqf(
2186  int64_t m, int64_t p, int64_t n,
2187  std::complex<float>* A, int64_t lda,
2188  std::complex<float>* taua,
2189  std::complex<float>* B, int64_t ldb,
2190  std::complex<float>* taub );
2191 
2192 int64_t ggrqf(
2193  int64_t m, int64_t p, int64_t n,
2194  std::complex<double>* A, int64_t lda,
2195  std::complex<double>* taua,
2196  std::complex<double>* B, int64_t ldb,
2197  std::complex<double>* taub );
2198 
2199 // -----------------------------------------------------------------------------
2200 int64_t ggsvd3(
2201  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2202  int64_t* k,
2203  int64_t* l,
2204  float* A, int64_t lda,
2205  float* B, int64_t ldb,
2206  float* alpha,
2207  float* beta,
2208  float* U, int64_t ldu,
2209  float* V, int64_t ldv,
2210  float* Q, int64_t ldq );
2211 
2212 int64_t ggsvd3(
2213  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2214  int64_t* k,
2215  int64_t* l,
2216  double* A, int64_t lda,
2217  double* B, int64_t ldb,
2218  double* alpha,
2219  double* beta,
2220  double* U, int64_t ldu,
2221  double* V, int64_t ldv,
2222  double* Q, int64_t ldq );
2223 
2224 int64_t ggsvd3(
2225  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2226  int64_t* k,
2227  int64_t* l,
2228  std::complex<float>* A, int64_t lda,
2229  std::complex<float>* B, int64_t ldb,
2230  float* alpha,
2231  float* beta,
2232  std::complex<float>* U, int64_t ldu,
2233  std::complex<float>* V, int64_t ldv,
2234  std::complex<float>* Q, int64_t ldq );
2235 
2236 int64_t ggsvd3(
2237  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t n, int64_t p,
2238  int64_t* k,
2239  int64_t* l,
2240  std::complex<double>* A, int64_t lda,
2241  std::complex<double>* B, int64_t ldb,
2242  double* alpha,
2243  double* beta,
2244  std::complex<double>* U, int64_t ldu,
2245  std::complex<double>* V, int64_t ldv,
2246  std::complex<double>* Q, int64_t ldq );
2247 
2248 // -----------------------------------------------------------------------------
2249 int64_t ggsvp3(
2250  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2251  float* A, int64_t lda,
2252  float* B, int64_t ldb, float tola, float tolb,
2253  int64_t* k,
2254  int64_t* l,
2255  float* U, int64_t ldu,
2256  float* V, int64_t ldv,
2257  float* Q, int64_t ldq,
2258  float* tau );
2259 
2260 int64_t ggsvp3(
2261  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2262  double* A, int64_t lda,
2263  double* B, int64_t ldb, double tola, double tolb,
2264  int64_t* k,
2265  int64_t* l,
2266  double* U, int64_t ldu,
2267  double* V, int64_t ldv,
2268  double* Q, int64_t ldq,
2269  double* tau );
2270 
2271 int64_t ggsvp3(
2272  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2273  std::complex<float>* A, int64_t lda,
2274  std::complex<float>* B, int64_t ldb, float tola, float tolb,
2275  int64_t* k,
2276  int64_t* l,
2277  std::complex<float>* U, int64_t ldu,
2278  std::complex<float>* V, int64_t ldv,
2279  std::complex<float>* Q, int64_t ldq,
2280  std::complex<float>* tau );
2281 
2282 int64_t ggsvp3(
2283  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n,
2284  std::complex<double>* A, int64_t lda,
2285  std::complex<double>* B, int64_t ldb, double tola, double tolb,
2286  int64_t* k,
2287  int64_t* l,
2288  std::complex<double>* U, int64_t ldu,
2289  std::complex<double>* V, int64_t ldv,
2290  std::complex<double>* Q, int64_t ldq,
2291  std::complex<double>* tau );
2292 
2293 // -----------------------------------------------------------------------------
2294 int64_t gtcon(
2295  lapack::Norm norm, int64_t n,
2296  float const* DL,
2297  float const* D,
2298  float const* DU,
2299  float const* DU2,
2300  int64_t const* ipiv, float anorm,
2301  float* rcond );
2302 
2303 int64_t gtcon(
2304  lapack::Norm norm, int64_t n,
2305  double const* DL,
2306  double const* D,
2307  double const* DU,
2308  double const* DU2,
2309  int64_t const* ipiv, double anorm,
2310  double* rcond );
2311 
2312 int64_t gtcon(
2313  lapack::Norm norm, int64_t n,
2314  std::complex<float> const* DL,
2315  std::complex<float> const* D,
2316  std::complex<float> const* DU,
2317  std::complex<float> const* DU2,
2318  int64_t const* ipiv, float anorm,
2319  float* rcond );
2320 
2321 int64_t gtcon(
2322  lapack::Norm norm, int64_t n,
2323  std::complex<double> const* DL,
2324  std::complex<double> const* D,
2325  std::complex<double> const* DU,
2326  std::complex<double> const* DU2,
2327  int64_t const* ipiv, double anorm,
2328  double* rcond );
2329 
2330 // -----------------------------------------------------------------------------
2331 int64_t gtrfs(
2332  lapack::Op trans, int64_t n, int64_t nrhs,
2333  float const* DL,
2334  float const* D,
2335  float const* DU,
2336  float const* DLF,
2337  float const* DF,
2338  float const* DUF,
2339  float const* DU2,
2340  int64_t const* ipiv,
2341  float const* B, int64_t ldb,
2342  float* X, int64_t ldx,
2343  float* ferr,
2344  float* berr );
2345 
2346 int64_t gtrfs(
2347  lapack::Op trans, int64_t n, int64_t nrhs,
2348  double const* DL,
2349  double const* D,
2350  double const* DU,
2351  double const* DLF,
2352  double const* DF,
2353  double const* DUF,
2354  double const* DU2,
2355  int64_t const* ipiv,
2356  double const* B, int64_t ldb,
2357  double* X, int64_t ldx,
2358  double* ferr,
2359  double* berr );
2360 
2361 int64_t gtrfs(
2362  lapack::Op trans, int64_t n, int64_t nrhs,
2363  std::complex<float> const* DL,
2364  std::complex<float> const* D,
2365  std::complex<float> const* DU,
2366  std::complex<float> const* DLF,
2367  std::complex<float> const* DF,
2368  std::complex<float> const* DUF,
2369  std::complex<float> const* DU2,
2370  int64_t const* ipiv,
2371  std::complex<float> const* B, int64_t ldb,
2372  std::complex<float>* X, int64_t ldx,
2373  float* ferr,
2374  float* berr );
2375 
2376 int64_t gtrfs(
2377  lapack::Op trans, int64_t n, int64_t nrhs,
2378  std::complex<double> const* DL,
2379  std::complex<double> const* D,
2380  std::complex<double> const* DU,
2381  std::complex<double> const* DLF,
2382  std::complex<double> const* DF,
2383  std::complex<double> const* DUF,
2384  std::complex<double> const* DU2,
2385  int64_t const* ipiv,
2386  std::complex<double> const* B, int64_t ldb,
2387  std::complex<double>* X, int64_t ldx,
2388  double* ferr,
2389  double* berr );
2390 
2391 // -----------------------------------------------------------------------------
2392 int64_t gtsv(
2393  int64_t n, int64_t nrhs,
2394  float* DL,
2395  float* D,
2396  float* DU,
2397  float* B, int64_t ldb );
2398 
2399 int64_t gtsv(
2400  int64_t n, int64_t nrhs,
2401  double* DL,
2402  double* D,
2403  double* DU,
2404  double* B, int64_t ldb );
2405 
2406 int64_t gtsv(
2407  int64_t n, int64_t nrhs,
2408  std::complex<float>* DL,
2409  std::complex<float>* D,
2410  std::complex<float>* DU,
2411  std::complex<float>* B, int64_t ldb );
2412 
2413 int64_t gtsv(
2414  int64_t n, int64_t nrhs,
2415  std::complex<double>* DL,
2416  std::complex<double>* D,
2417  std::complex<double>* DU,
2418  std::complex<double>* B, int64_t ldb );
2419 
2420 // -----------------------------------------------------------------------------
2421 int64_t gtsvx(
2422  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2423  float const* DL,
2424  float const* D,
2425  float const* DU,
2426  float* DLF,
2427  float* DF,
2428  float* DUF,
2429  float* DU2,
2430  int64_t* ipiv,
2431  float const* B, int64_t ldb,
2432  float* X, int64_t ldx,
2433  float* rcond,
2434  float* ferr,
2435  float* berr );
2436 
2437 int64_t gtsvx(
2438  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2439  double const* DL,
2440  double const* D,
2441  double const* DU,
2442  double* DLF,
2443  double* DF,
2444  double* DUF,
2445  double* DU2,
2446  int64_t* ipiv,
2447  double const* B, int64_t ldb,
2448  double* X, int64_t ldx,
2449  double* rcond,
2450  double* ferr,
2451  double* berr );
2452 
2453 int64_t gtsvx(
2454  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2455  std::complex<float> const* DL,
2456  std::complex<float> const* D,
2457  std::complex<float> const* DU,
2458  std::complex<float>* DLF,
2459  std::complex<float>* DF,
2460  std::complex<float>* DUF,
2461  std::complex<float>* DU2,
2462  int64_t* ipiv,
2463  std::complex<float> const* B, int64_t ldb,
2464  std::complex<float>* X, int64_t ldx,
2465  float* rcond,
2466  float* ferr,
2467  float* berr );
2468 
2469 int64_t gtsvx(
2470  lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs,
2471  std::complex<double> const* DL,
2472  std::complex<double> const* D,
2473  std::complex<double> const* DU,
2474  std::complex<double>* DLF,
2475  std::complex<double>* DF,
2476  std::complex<double>* DUF,
2477  std::complex<double>* DU2,
2478  int64_t* ipiv,
2479  std::complex<double> const* B, int64_t ldb,
2480  std::complex<double>* X, int64_t ldx,
2481  double* rcond,
2482  double* ferr,
2483  double* berr );
2484 
2485 // -----------------------------------------------------------------------------
2486 int64_t gttrf(
2487  int64_t n,
2488  float* DL,
2489  float* D,
2490  float* DU,
2491  float* DU2,
2492  int64_t* ipiv );
2493 
2494 int64_t gttrf(
2495  int64_t n,
2496  double* DL,
2497  double* D,
2498  double* DU,
2499  double* DU2,
2500  int64_t* ipiv );
2501 
2502 int64_t gttrf(
2503  int64_t n,
2504  std::complex<float>* DL,
2505  std::complex<float>* D,
2506  std::complex<float>* DU,
2507  std::complex<float>* DU2,
2508  int64_t* ipiv );
2509 
2510 int64_t gttrf(
2511  int64_t n,
2512  std::complex<double>* DL,
2513  std::complex<double>* D,
2514  std::complex<double>* DU,
2515  std::complex<double>* DU2,
2516  int64_t* ipiv );
2517 
2518 // -----------------------------------------------------------------------------
2519 int64_t gttrs(
2520  lapack::Op trans, int64_t n, int64_t nrhs,
2521  float const* DL,
2522  float const* D,
2523  float const* DU,
2524  float const* DU2,
2525  int64_t const* ipiv,
2526  float* B, int64_t ldb );
2527 
2528 int64_t gttrs(
2529  lapack::Op trans, int64_t n, int64_t nrhs,
2530  double const* DL,
2531  double const* D,
2532  double const* DU,
2533  double const* DU2,
2534  int64_t const* ipiv,
2535  double* B, int64_t ldb );
2536 
2537 int64_t gttrs(
2538  lapack::Op trans, int64_t n, int64_t nrhs,
2539  std::complex<float> const* DL,
2540  std::complex<float> const* D,
2541  std::complex<float> const* DU,
2542  std::complex<float> const* DU2,
2543  int64_t const* ipiv,
2544  std::complex<float>* B, int64_t ldb );
2545 
2546 int64_t gttrs(
2547  lapack::Op trans, int64_t n, int64_t nrhs,
2548  std::complex<double> const* DL,
2549  std::complex<double> const* D,
2550  std::complex<double> const* DU,
2551  std::complex<double> const* DU2,
2552  int64_t const* ipiv,
2553  std::complex<double>* B, int64_t ldb );
2554 
2555 // -----------------------------------------------------------------------------
2556 int64_t hbev(
2557  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2558  std::complex<float>* AB, int64_t ldab,
2559  float* W,
2560  std::complex<float>* Z, int64_t ldz );
2561 
2562 int64_t hbev(
2563  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2564  std::complex<double>* AB, int64_t ldab,
2565  double* W,
2566  std::complex<double>* Z, int64_t ldz );
2567 
2568 // -----------------------------------------------------------------------------
2569 int64_t hbev_2stage(
2570  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2571  std::complex<float>* AB, int64_t ldab,
2572  float* W,
2573  std::complex<float>* Z, int64_t ldz );
2574 
2575 int64_t hbev_2stage(
2576  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2577  std::complex<double>* AB, int64_t ldab,
2578  double* W,
2579  std::complex<double>* Z, int64_t ldz );
2580 
2581 // -----------------------------------------------------------------------------
2582 int64_t hbevd(
2583  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2584  std::complex<float>* AB, int64_t ldab,
2585  float* W,
2586  std::complex<float>* Z, int64_t ldz );
2587 
2588 int64_t hbevd(
2589  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2590  std::complex<double>* AB, int64_t ldab,
2591  double* W,
2592  std::complex<double>* Z, int64_t ldz );
2593 
2594 // -----------------------------------------------------------------------------
2595 int64_t hbevd_2stage(
2596  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2597  std::complex<float>* AB, int64_t ldab,
2598  float* W,
2599  std::complex<float>* Z, int64_t ldz );
2600 
2601 int64_t hbevd_2stage(
2602  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2603  std::complex<double>* AB, int64_t ldab,
2604  double* W,
2605  std::complex<double>* Z, int64_t ldz );
2606 
2607 // -----------------------------------------------------------------------------
2608 int64_t hbevx(
2609  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2610  std::complex<float>* AB, int64_t ldab,
2611  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2612  int64_t* m,
2613  float* W,
2614  std::complex<float>* Z, int64_t ldz,
2615  int64_t* ifail );
2616 
2617 int64_t hbevx(
2618  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2619  std::complex<double>* AB, int64_t ldab,
2620  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2621  int64_t* m,
2622  double* W,
2623  std::complex<double>* Z, int64_t ldz,
2624  int64_t* ifail );
2625 
2626 // -----------------------------------------------------------------------------
2627 int64_t hbevx_2stage(
2628  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2629  std::complex<float>* AB, int64_t ldab,
2630  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2631  int64_t* m,
2632  float* W,
2633  std::complex<float>* Z, int64_t ldz,
2634  int64_t* ifail );
2635 
2636 int64_t hbevx_2stage(
2637  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
2638  std::complex<double>* AB, int64_t ldab,
2639  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2640  int64_t* m,
2641  double* W,
2642  std::complex<double>* Z, int64_t ldz,
2643  int64_t* ifail );
2644 
2645 // -----------------------------------------------------------------------------
2646 int64_t hbgst(
2647  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2648  std::complex<float>* AB, int64_t ldab,
2649  std::complex<float> const* BB, int64_t ldbb,
2650  std::complex<float>* X, int64_t ldx );
2651 
2652 int64_t hbgst(
2653  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2654  std::complex<double>* AB, int64_t ldab,
2655  std::complex<double> const* BB, int64_t ldbb,
2656  std::complex<double>* X, int64_t ldx );
2657 
2658 // -----------------------------------------------------------------------------
2659 int64_t hbgv(
2660  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2661  std::complex<float>* AB, int64_t ldab,
2662  std::complex<float>* BB, int64_t ldbb,
2663  float* W,
2664  std::complex<float>* Z, int64_t ldz );
2665 
2666 int64_t hbgv(
2667  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2668  std::complex<double>* AB, int64_t ldab,
2669  std::complex<double>* BB, int64_t ldbb,
2670  double* W,
2671  std::complex<double>* Z, int64_t ldz );
2672 
2673 // -----------------------------------------------------------------------------
2674 int64_t hbgvd(
2675  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2676  std::complex<float>* AB, int64_t ldab,
2677  std::complex<float>* BB, int64_t ldbb,
2678  float* W,
2679  std::complex<float>* Z, int64_t ldz );
2680 
2681 int64_t hbgvd(
2682  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2683  std::complex<double>* AB, int64_t ldab,
2684  std::complex<double>* BB, int64_t ldbb,
2685  double* W,
2686  std::complex<double>* Z, int64_t ldz );
2687 
2688 // -----------------------------------------------------------------------------
2689 int64_t hbgvx(
2690  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2691  std::complex<float>* AB, int64_t ldab,
2692  std::complex<float>* BB, int64_t ldbb,
2693  std::complex<float>* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
2694  int64_t* m,
2695  float* W,
2696  std::complex<float>* Z, int64_t ldz,
2697  int64_t* ifail );
2698 
2699 int64_t hbgvx(
2700  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
2701  std::complex<double>* AB, int64_t ldab,
2702  std::complex<double>* BB, int64_t ldbb,
2703  std::complex<double>* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
2704  int64_t* m,
2705  double* W,
2706  std::complex<double>* Z, int64_t ldz,
2707  int64_t* ifail );
2708 
2709 // -----------------------------------------------------------------------------
2710 int64_t hbtrd(
2711  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2712  std::complex<float>* AB, int64_t ldab,
2713  float* D,
2714  float* E,
2715  std::complex<float>* Q, int64_t ldq );
2716 
2717 int64_t hbtrd(
2718  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
2719  std::complex<double>* AB, int64_t ldab,
2720  double* D,
2721  double* E,
2722  std::complex<double>* Q, int64_t ldq );
2723 
2724 // -----------------------------------------------------------------------------
2725 int64_t hecon(
2726  lapack::Uplo uplo, int64_t n,
2727  std::complex<float> const* A, int64_t lda,
2728  int64_t const* ipiv, float anorm,
2729  float* rcond );
2730 
2731 int64_t hecon(
2732  lapack::Uplo uplo, int64_t n,
2733  std::complex<double> const* A, int64_t lda,
2734  int64_t const* ipiv, double anorm,
2735  double* rcond );
2736 
2737 // -----------------------------------------------------------------------------
2738 // hecon_rk wraps hecon_3
2739 int64_t hecon_rk(
2740  lapack::Uplo uplo, int64_t n,
2741  std::complex<float> const* A, int64_t lda,
2742  std::complex<float> const* E,
2743  int64_t const* ipiv, float anorm,
2744  float* rcond );
2745 
2746 int64_t hecon_rk(
2747  lapack::Uplo uplo, int64_t n,
2748  std::complex<double> const* A, int64_t lda,
2749  std::complex<double> const* E,
2750  int64_t const* ipiv, double anorm,
2751  double* rcond );
2752 
2753 // -----------------------------------------------------------------------------
2754 int64_t heequb(
2755  lapack::Uplo uplo, int64_t n,
2756  std::complex<float> const* A, int64_t lda,
2757  float* S,
2758  float* scond,
2759  float* amax );
2760 
2761 int64_t heequb(
2762  lapack::Uplo uplo, int64_t n,
2763  std::complex<double> const* A, int64_t lda,
2764  double* S,
2765  double* scond,
2766  double* amax );
2767 
2768 // -----------------------------------------------------------------------------
2769 int64_t heev(
2770  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2771  std::complex<float>* A, int64_t lda,
2772  float* W );
2773 
2774 int64_t heev(
2775  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2776  std::complex<double>* A, int64_t lda,
2777  double* W );
2778 
2779 // -----------------------------------------------------------------------------
2780 int64_t heev_2stage(
2781  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2782  std::complex<float>* A, int64_t lda,
2783  float* W );
2784 
2785 int64_t heev_2stage(
2786  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2787  std::complex<double>* A, int64_t lda,
2788  double* W );
2789 
2790 // -----------------------------------------------------------------------------
2791 int64_t heevd(
2792  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2793  std::complex<float>* A, int64_t lda,
2794  float* W );
2795 
2796 int64_t heevd(
2797  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2798  std::complex<double>* A, int64_t lda,
2799  double* W );
2800 
2801 // -----------------------------------------------------------------------------
2802 int64_t heevd_2stage(
2803  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2804  std::complex<float>* A, int64_t lda,
2805  float* W );
2806 
2807 int64_t heevd_2stage(
2808  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2809  std::complex<double>* A, int64_t lda,
2810  double* W );
2811 
2812 // -----------------------------------------------------------------------------
2813 int64_t heevr(
2814  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2815  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2816  int64_t* m,
2817  float* W,
2818  std::complex<float>* Z, int64_t ldz,
2819  int64_t* isuppz );
2820 
2821 int64_t heevr(
2822  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2823  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2824  int64_t* m,
2825  double* W,
2826  std::complex<double>* Z, int64_t ldz,
2827  int64_t* isuppz );
2828 
2829 // -----------------------------------------------------------------------------
2830 int64_t heevr_2stage(
2831  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2832  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2833  int64_t* m,
2834  float* W,
2835  std::complex<float>* Z, int64_t ldz,
2836  int64_t* isuppz );
2837 
2838 int64_t heevr_2stage(
2839  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2840  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2841  int64_t* m,
2842  double* W,
2843  std::complex<double>* Z, int64_t ldz,
2844  int64_t* isuppz );
2845 
2846 // -----------------------------------------------------------------------------
2847 int64_t heevx(
2848  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2849  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2850  int64_t* m,
2851  float* W,
2852  std::complex<float>* Z, int64_t ldz,
2853  int64_t* ifail );
2854 
2855 int64_t heevx(
2856  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2857  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2858  int64_t* m,
2859  double* W,
2860  std::complex<double>* Z, int64_t ldz,
2861  int64_t* ifail );
2862 
2863 // -----------------------------------------------------------------------------
2864 int64_t heevx_2stage(
2865  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2866  std::complex<float>* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
2867  int64_t* m,
2868  float* W,
2869  std::complex<float>* Z, int64_t ldz,
2870  int64_t* ifail );
2871 
2872 int64_t heevx_2stage(
2873  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2874  std::complex<double>* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
2875  int64_t* m,
2876  double* W,
2877  std::complex<double>* Z, int64_t ldz,
2878  int64_t* ifail );
2879 
2880 // -----------------------------------------------------------------------------
2881 int64_t hegst(
2882  int64_t itype, lapack::Uplo uplo, int64_t n,
2883  std::complex<float>* A, int64_t lda,
2884  std::complex<float>* B, int64_t ldb );
2885 
2886 int64_t hegst(
2887  int64_t itype, lapack::Uplo uplo, int64_t n,
2888  std::complex<double>* A, int64_t lda,
2889  std::complex<double>* B, int64_t ldb );
2890 
2891 // -----------------------------------------------------------------------------
2892 int64_t hegv(
2893  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2894  std::complex<float>* A, int64_t lda,
2895  std::complex<float>* B, int64_t ldb,
2896  float* W );
2897 
2898 int64_t hegv(
2899  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2900  std::complex<double>* A, int64_t lda,
2901  std::complex<double>* B, int64_t ldb,
2902  double* W );
2903 
2904 // -----------------------------------------------------------------------------
2905 int64_t hegv_2stage(
2906  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2907  std::complex<float>* A, int64_t lda,
2908  std::complex<float>* B, int64_t ldb,
2909  float* W );
2910 
2911 int64_t hegv_2stage(
2912  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2913  std::complex<double>* A, int64_t lda,
2914  std::complex<double>* B, int64_t ldb,
2915  double* W );
2916 
2917 // -----------------------------------------------------------------------------
2918 int64_t hegvd(
2919  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2920  std::complex<float>* A, int64_t lda,
2921  std::complex<float>* B, int64_t ldb,
2922  float* W );
2923 
2924 int64_t hegvd(
2925  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
2926  std::complex<double>* A, int64_t lda,
2927  std::complex<double>* B, int64_t ldb,
2928  double* W );
2929 
2930 // -----------------------------------------------------------------------------
2931 int64_t hegvx(
2932  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2933  std::complex<float>* A, int64_t lda,
2934  std::complex<float>* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
2935  int64_t* m,
2936  float* W,
2937  std::complex<float>* Z, int64_t ldz,
2938  int64_t* ifail );
2939 
2940 int64_t hegvx(
2941  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
2942  std::complex<double>* A, int64_t lda,
2943  std::complex<double>* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
2944  int64_t* m,
2945  double* W,
2946  std::complex<double>* Z, int64_t ldz,
2947  int64_t* ifail );
2948 
2949 // -----------------------------------------------------------------------------
2950 int64_t herfs(
2951  lapack::Uplo uplo, int64_t n, int64_t nrhs,
2952  std::complex<float> const* A, int64_t lda,
2953  std::complex<float> const* AF, int64_t ldaf,
2954  int64_t const* ipiv,
2955  std::complex<float> const* B, int64_t ldb,
2956  std::complex<float>* X, int64_t ldx,
2957  float* ferr,
2958  float* berr );
2959 
2960 int64_t herfs(
2961  lapack::Uplo uplo, int64_t n, int64_t nrhs,
2962  std::complex<double> const* A, int64_t lda,
2963  std::complex<double> const* AF, int64_t ldaf,
2964  int64_t const* ipiv,
2965  std::complex<double> const* B, int64_t ldb,
2966  std::complex<double>* X, int64_t ldx,
2967  double* ferr,
2968  double* berr );
2969 
2970 // -----------------------------------------------------------------------------
2971 int64_t herfsx(
2972  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
2973  std::complex<float> const* A, int64_t lda,
2974  std::complex<float> const* AF, int64_t ldaf,
2975  int64_t const* ipiv,
2976  float* S,
2977  std::complex<float> const* B, int64_t ldb,
2978  std::complex<float>* X, int64_t ldx,
2979  float* rcond,
2980  float* berr, int64_t n_err_bnds,
2981  float* err_bnds_norm,
2982  float* err_bnds_comp, int64_t nparams,
2983  float* params );
2984 
2985 int64_t herfsx(
2986  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
2987  std::complex<double> const* A, int64_t lda,
2988  std::complex<double> const* AF, int64_t ldaf,
2989  int64_t const* ipiv,
2990  double* S,
2991  std::complex<double> const* B, int64_t ldb,
2992  std::complex<double>* X, int64_t ldx,
2993  double* rcond,
2994  double* berr, int64_t n_err_bnds,
2995  double* err_bnds_norm,
2996  double* err_bnds_comp, int64_t nparams,
2997  double* params );
2998 
2999 // -----------------------------------------------------------------------------
3000 int64_t hesv(
3001  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3002  std::complex<float>* A, int64_t lda,
3003  int64_t* ipiv,
3004  std::complex<float>* B, int64_t ldb );
3005 
3006 int64_t hesv(
3007  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3008  std::complex<double>* A, int64_t lda,
3009  int64_t* ipiv,
3010  std::complex<double>* B, int64_t ldb );
3011 
3012 // -----------------------------------------------------------------------------
3013 int64_t hesvx(
3014  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3015  std::complex<float> const* A, int64_t lda,
3016  std::complex<float>* AF, int64_t ldaf,
3017  int64_t* ipiv,
3018  std::complex<float> const* B, int64_t ldb,
3019  std::complex<float>* X, int64_t ldx,
3020  float* rcond,
3021  float* ferr,
3022  float* berr );
3023 
3024 int64_t hesvx(
3025  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3026  std::complex<double> const* A, int64_t lda,
3027  std::complex<double>* AF, int64_t ldaf,
3028  int64_t* ipiv,
3029  std::complex<double> const* B, int64_t ldb,
3030  std::complex<double>* X, int64_t ldx,
3031  double* rcond,
3032  double* ferr,
3033  double* berr );
3034 
3035 // -----------------------------------------------------------------------------
3036 int64_t hesv_aa(
3037  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3038  std::complex<float>* A, int64_t lda,
3039  int64_t* ipiv,
3040  std::complex<float>* B, int64_t ldb );
3041 
3042 int64_t hesv_aa(
3043  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3044  std::complex<double>* A, int64_t lda,
3045  int64_t* ipiv,
3046  std::complex<double>* B, int64_t ldb );
3047 
3048 // -----------------------------------------------------------------------------
3049 int64_t hesv_rk(
3050  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3051  std::complex<float>* A, int64_t lda,
3052  std::complex<float>* E,
3053  int64_t* ipiv,
3054  std::complex<float>* B, int64_t ldb );
3055 
3056 int64_t hesv_rk(
3057  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3058  std::complex<double>* A, int64_t lda,
3059  std::complex<double>* E,
3060  int64_t* ipiv,
3061  std::complex<double>* B, int64_t ldb );
3062 
3063 // -----------------------------------------------------------------------------
3064 int64_t hesv_rook(
3065  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3066  std::complex<float>* A, int64_t lda,
3067  int64_t* ipiv,
3068  std::complex<float>* B, int64_t ldb );
3069 
3070 int64_t hesv_rook(
3071  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3072  std::complex<double>* A, int64_t lda,
3073  int64_t* ipiv,
3074  std::complex<double>* B, int64_t ldb );
3075 
3076 // -----------------------------------------------------------------------------
3077 void heswapr(
3078  lapack::Uplo uplo, int64_t n,
3079  std::complex<float>* A, int64_t lda, int64_t i1, int64_t i2 );
3080 
3081 void heswapr(
3082  lapack::Uplo uplo, int64_t n,
3083  std::complex<double>* A, int64_t lda, int64_t i1, int64_t i2 );
3084 
3085 // -----------------------------------------------------------------------------
3086 int64_t hetrd(
3087  lapack::Uplo uplo, int64_t n,
3088  std::complex<float>* A, int64_t lda,
3089  float* D,
3090  float* E,
3091  std::complex<float>* tau );
3092 
3093 int64_t hetrd(
3094  lapack::Uplo uplo, int64_t n,
3095  std::complex<double>* A, int64_t lda,
3096  double* D,
3097  double* E,
3098  std::complex<double>* tau );
3099 
3100 // -----------------------------------------------------------------------------
3101 int64_t hetrd_2stage(
3102  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3103  std::complex<float>* A, int64_t lda,
3104  float* D,
3105  float* E,
3106  std::complex<float>* tau,
3107  std::complex<float>* hous2, int64_t lhous2 );
3108 
3109 int64_t hetrd_2stage(
3110  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3111  std::complex<double>* A, int64_t lda,
3112  double* D,
3113  double* E,
3114  std::complex<double>* tau,
3115  std::complex<double>* hous2, int64_t lhous2 );
3116 
3117 // -----------------------------------------------------------------------------
3118 int64_t hetrf(
3119  lapack::Uplo uplo, int64_t n,
3120  std::complex<float>* A, int64_t lda,
3121  int64_t* ipiv );
3122 
3123 int64_t hetrf(
3124  lapack::Uplo uplo, int64_t n,
3125  std::complex<double>* A, int64_t lda,
3126  int64_t* ipiv );
3127 
3128 // -----------------------------------------------------------------------------
3129 int64_t hetrf_aa(
3130  lapack::Uplo uplo, int64_t n,
3131  std::complex<float>* A, int64_t lda,
3132  int64_t* ipiv );
3133 
3134 int64_t hetrf_aa(
3135  lapack::Uplo uplo, int64_t n,
3136  std::complex<double>* A, int64_t lda,
3137  int64_t* ipiv );
3138 
3139 // -----------------------------------------------------------------------------
3140 int64_t hetrf_rk(
3141  lapack::Uplo uplo, int64_t n,
3142  std::complex<float>* A, int64_t lda,
3143  std::complex<float>* E,
3144  int64_t* ipiv );
3145 
3146 int64_t hetrf_rk(
3147  lapack::Uplo uplo, int64_t n,
3148  std::complex<double>* A, int64_t lda,
3149  std::complex<double>* E,
3150  int64_t* ipiv );
3151 
3152 // -----------------------------------------------------------------------------
3153 int64_t hetrf_rook(
3154  lapack::Uplo uplo, int64_t n,
3155  std::complex<float>* A, int64_t lda,
3156  int64_t* ipiv );
3157 
3158 int64_t hetrf_rook(
3159  lapack::Uplo uplo, int64_t n,
3160  std::complex<double>* A, int64_t lda,
3161  int64_t* ipiv );
3162 
3163 // -----------------------------------------------------------------------------
3164 int64_t hetri(
3165  lapack::Uplo uplo, int64_t n,
3166  std::complex<float>* A, int64_t lda,
3167  int64_t const* ipiv );
3168 
3169 int64_t hetri(
3170  lapack::Uplo uplo, int64_t n,
3171  std::complex<double>* A, int64_t lda,
3172  int64_t const* ipiv );
3173 
3174 // -----------------------------------------------------------------------------
3175 int64_t hetri2(
3176  lapack::Uplo uplo, int64_t n,
3177  std::complex<float>* A, int64_t lda,
3178  int64_t const* ipiv );
3179 
3180 int64_t hetri2(
3181  lapack::Uplo uplo, int64_t n,
3182  std::complex<double>* A, int64_t lda,
3183  int64_t const* ipiv );
3184 
3185 // -----------------------------------------------------------------------------
3186 // hetri_rk wraps hetri_3
3187 int64_t hetri_rk(
3188  lapack::Uplo uplo, int64_t n,
3189  std::complex<float>* A, int64_t lda,
3190  std::complex<float> const* E,
3191  int64_t const* ipiv );
3192 
3193 int64_t hetri_rk(
3194  lapack::Uplo uplo, int64_t n,
3195  std::complex<double>* A, int64_t lda,
3196  std::complex<double> const* E,
3197  int64_t const* ipiv );
3198 
3199 // -----------------------------------------------------------------------------
3200 int64_t hetrs(
3201  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3202  std::complex<float> const* A, int64_t lda,
3203  int64_t const* ipiv,
3204  std::complex<float>* B, int64_t ldb );
3205 
3206 int64_t hetrs(
3207  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3208  std::complex<double> const* A, int64_t lda,
3209  int64_t const* ipiv,
3210  std::complex<double>* B, int64_t ldb );
3211 
3212 // -----------------------------------------------------------------------------
3213 int64_t hetrs2(
3214  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3215  std::complex<float> const* A, int64_t lda,
3216  int64_t const* ipiv,
3217  std::complex<float>* B, int64_t ldb );
3218 
3219 int64_t hetrs2(
3220  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3221  std::complex<double> const* A, int64_t lda,
3222  int64_t const* ipiv,
3223  std::complex<double>* B, int64_t ldb );
3224 
3225 // -----------------------------------------------------------------------------
3226 int64_t hetrs_aa(
3227  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3228  std::complex<float> const* A, int64_t lda,
3229  int64_t const* ipiv,
3230  std::complex<float>* B, int64_t ldb );
3231 
3232 int64_t hetrs_aa(
3233  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3234  std::complex<double> const* A, int64_t lda,
3235  int64_t const* ipiv,
3236  std::complex<double>* B, int64_t ldb );
3237 
3238 // -----------------------------------------------------------------------------
3239 // hetrs_rk wraps hetrs_3
3240 int64_t hetrs_rk(
3241  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3242  std::complex<float> const* A, int64_t lda,
3243  std::complex<float> const* E,
3244  int64_t const* ipiv,
3245  std::complex<float>* B, int64_t ldb );
3246 
3247 int64_t hetrs_rk(
3248  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3249  std::complex<double> const* A, int64_t lda,
3250  std::complex<double> const* E,
3251  int64_t const* ipiv,
3252  std::complex<double>* B, int64_t ldb );
3253 
3254 // -----------------------------------------------------------------------------
3255 int64_t hetrs_rook(
3256  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3257  std::complex<float> const* A, int64_t lda,
3258  int64_t const* ipiv,
3259  std::complex<float>* B, int64_t ldb );
3260 
3261 int64_t hetrs_rook(
3262  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3263  std::complex<double> const* A, int64_t lda,
3264  int64_t const* ipiv,
3265  std::complex<double>* B, int64_t ldb );
3266 
3267 // -----------------------------------------------------------------------------
3268 void hfrk(
3269  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, float alpha,
3270  std::complex<float> const* A, int64_t lda, float beta,
3271  std::complex<float>* C );
3272 
3273 void hfrk(
3274  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, double alpha,
3275  std::complex<double> const* A, int64_t lda, double beta,
3276  std::complex<double>* C );
3277 
3278 // -----------------------------------------------------------------------------
3279 int64_t hgeqz(
3280  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3281  float* H, int64_t ldh,
3282  float* T, int64_t ldt,
3283  std::complex<float>* alpha,
3284  float* beta,
3285  float* Q, int64_t ldq,
3286  float* Z, int64_t ldz );
3287 
3288 int64_t hgeqz(
3289  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3290  double* H, int64_t ldh,
3291  double* T, int64_t ldt,
3292  std::complex<double>* alpha,
3293  double* beta,
3294  double* Q, int64_t ldq,
3295  double* Z, int64_t ldz );
3296 
3297 int64_t hgeqz(
3298  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3299  std::complex<float>* H, int64_t ldh,
3300  std::complex<float>* T, int64_t ldt,
3301  std::complex<float>* alpha,
3302  std::complex<float>* beta,
3303  std::complex<float>* Q, int64_t ldq,
3304  std::complex<float>* Z, int64_t ldz );
3305 
3306 int64_t hgeqz(
3307  lapack::JobSchur jobschur, lapack::Job compq, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3308  std::complex<double>* H, int64_t ldh,
3309  std::complex<double>* T, int64_t ldt,
3310  std::complex<double>* alpha,
3311  std::complex<double>* beta,
3312  std::complex<double>* Q, int64_t ldq,
3313  std::complex<double>* Z, int64_t ldz );
3314 
3315 // -----------------------------------------------------------------------------
3316 int64_t hpcon(
3317  lapack::Uplo uplo, int64_t n,
3318  std::complex<float> const* AP,
3319  int64_t const* ipiv, float anorm,
3320  float* rcond );
3321 
3322 int64_t hpcon(
3323  lapack::Uplo uplo, int64_t n,
3324  std::complex<double> const* AP,
3325  int64_t const* ipiv, double anorm,
3326  double* rcond );
3327 
3328 // -----------------------------------------------------------------------------
3329 int64_t hpev(
3330  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3331  std::complex<float>* AP,
3332  float* W,
3333  std::complex<float>* Z, int64_t ldz );
3334 
3335 int64_t hpev(
3336  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3337  std::complex<double>* AP,
3338  double* W,
3339  std::complex<double>* Z, int64_t ldz );
3340 
3341 // -----------------------------------------------------------------------------
3342 int64_t hpevd(
3343  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3344  std::complex<float>* AP,
3345  float* W,
3346  std::complex<float>* Z, int64_t ldz );
3347 
3348 int64_t hpevd(
3349  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3350  std::complex<double>* AP,
3351  double* W,
3352  std::complex<double>* Z, int64_t ldz );
3353 
3354 // -----------------------------------------------------------------------------
3355 int64_t hpevx(
3356  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3357  std::complex<float>* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
3358  int64_t* m,
3359  float* W,
3360  std::complex<float>* Z, int64_t ldz,
3361  int64_t* ifail );
3362 
3363 int64_t hpevx(
3364  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3365  std::complex<double>* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
3366  int64_t* m,
3367  double* W,
3368  std::complex<double>* Z, int64_t ldz,
3369  int64_t* ifail );
3370 
3371 // -----------------------------------------------------------------------------
3372 int64_t hpgst(
3373  int64_t itype, lapack::Uplo uplo, int64_t n,
3374  std::complex<float>* AP,
3375  std::complex<float> const* BP );
3376 
3377 int64_t hpgst(
3378  int64_t itype, lapack::Uplo uplo, int64_t n,
3379  std::complex<double>* AP,
3380  std::complex<double> const* BP );
3381 
3382 // -----------------------------------------------------------------------------
3383 int64_t hpgv(
3384  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3385  std::complex<float>* AP,
3386  std::complex<float>* BP,
3387  float* W,
3388  std::complex<float>* Z, int64_t ldz );
3389 
3390 int64_t hpgv(
3391  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3392  std::complex<double>* AP,
3393  std::complex<double>* BP,
3394  double* W,
3395  std::complex<double>* Z, int64_t ldz );
3396 
3397 // -----------------------------------------------------------------------------
3398 int64_t hpgvd(
3399  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3400  std::complex<float>* AP,
3401  std::complex<float>* BP,
3402  float* W,
3403  std::complex<float>* Z, int64_t ldz );
3404 
3405 int64_t hpgvd(
3406  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
3407  std::complex<double>* AP,
3408  std::complex<double>* BP,
3409  double* W,
3410  std::complex<double>* Z, int64_t ldz );
3411 
3412 // -----------------------------------------------------------------------------
3413 int64_t hpgvx(
3414  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3415  std::complex<float>* AP,
3416  std::complex<float>* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
3417  int64_t* m,
3418  float* W,
3419  std::complex<float>* Z, int64_t ldz,
3420  int64_t* ifail );
3421 
3422 int64_t hpgvx(
3423  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
3424  std::complex<double>* AP,
3425  std::complex<double>* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
3426  int64_t* m,
3427  double* W,
3428  std::complex<double>* Z, int64_t ldz,
3429  int64_t* ifail );
3430 
3431 // -----------------------------------------------------------------------------
3432 int64_t hprfs(
3433  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3434  std::complex<float> const* AP,
3435  std::complex<float> const* AFP,
3436  int64_t const* ipiv,
3437  std::complex<float> const* B, int64_t ldb,
3438  std::complex<float>* X, int64_t ldx,
3439  float* ferr,
3440  float* berr );
3441 
3442 int64_t hprfs(
3443  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3444  std::complex<double> const* AP,
3445  std::complex<double> const* AFP,
3446  int64_t const* ipiv,
3447  std::complex<double> const* B, int64_t ldb,
3448  std::complex<double>* X, int64_t ldx,
3449  double* ferr,
3450  double* berr );
3451 
3452 // -----------------------------------------------------------------------------
3453 int64_t hpsv(
3454  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3455  std::complex<float>* AP,
3456  int64_t* ipiv,
3457  std::complex<float>* B, int64_t ldb );
3458 
3459 int64_t hpsv(
3460  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3461  std::complex<double>* AP,
3462  int64_t* ipiv,
3463  std::complex<double>* B, int64_t ldb );
3464 
3465 // -----------------------------------------------------------------------------
3466 int64_t hpsvx(
3467  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3468  std::complex<float> const* AP,
3469  std::complex<float>* AFP,
3470  int64_t* ipiv,
3471  std::complex<float> const* B, int64_t ldb,
3472  std::complex<float>* X, int64_t ldx,
3473  float* rcond,
3474  float* ferr,
3475  float* berr );
3476 
3477 int64_t hpsvx(
3478  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
3479  std::complex<double> const* AP,
3480  std::complex<double>* AFP,
3481  int64_t* ipiv,
3482  std::complex<double> const* B, int64_t ldb,
3483  std::complex<double>* X, int64_t ldx,
3484  double* rcond,
3485  double* ferr,
3486  double* berr );
3487 
3488 // -----------------------------------------------------------------------------
3489 int64_t hptrd(
3490  lapack::Uplo uplo, int64_t n,
3491  std::complex<float>* AP,
3492  float* D,
3493  float* E,
3494  std::complex<float>* tau );
3495 
3496 int64_t hptrd(
3497  lapack::Uplo uplo, int64_t n,
3498  std::complex<double>* AP,
3499  double* D,
3500  double* E,
3501  std::complex<double>* tau );
3502 
3503 // -----------------------------------------------------------------------------
3504 int64_t hptrf(
3505  lapack::Uplo uplo, int64_t n,
3506  std::complex<float>* AP,
3507  int64_t* ipiv );
3508 
3509 int64_t hptrf(
3510  lapack::Uplo uplo, int64_t n,
3511  std::complex<double>* AP,
3512  int64_t* ipiv );
3513 
3514 // -----------------------------------------------------------------------------
3515 int64_t hptri(
3516  lapack::Uplo uplo, int64_t n,
3517  std::complex<float>* AP,
3518  int64_t const* ipiv );
3519 
3520 int64_t hptri(
3521  lapack::Uplo uplo, int64_t n,
3522  std::complex<double>* AP,
3523  int64_t const* ipiv );
3524 
3525 // -----------------------------------------------------------------------------
3526 int64_t hptrs(
3527  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3528  std::complex<float> const* AP,
3529  int64_t const* ipiv,
3530  std::complex<float>* B, int64_t ldb );
3531 
3532 int64_t hptrs(
3533  lapack::Uplo uplo, int64_t n, int64_t nrhs,
3534  std::complex<double> const* AP,
3535  int64_t const* ipiv,
3536  std::complex<double>* B, int64_t ldb );
3537 
3538 // -----------------------------------------------------------------------------
3539 int64_t hseqr(
3540  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3541  float* H, int64_t ldh,
3542  std::complex<float>* W,
3543  float* Z, int64_t ldz );
3544 
3545 int64_t hseqr(
3546  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3547  double* H, int64_t ldh,
3548  std::complex<double>* W,
3549  double* Z, int64_t ldz );
3550 
3551 int64_t hseqr(
3552  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3553  std::complex<float>* H, int64_t ldh,
3554  std::complex<float>* W,
3555  std::complex<float>* Z, int64_t ldz );
3556 
3557 int64_t hseqr(
3558  lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi,
3559  std::complex<double>* H, int64_t ldh,
3560  std::complex<double>* W,
3561  std::complex<double>* Z, int64_t ldz );
3562 
3563 // -----------------------------------------------------------------------------
3564 // real types have no-op dummy inline functions, to facilitate templating
3565 inline void lacgv(
3566  int64_t n,
3567  float* X, int64_t incx )
3568 {}
3569 
3570 inline void lacgv(
3571  int64_t n,
3572  double* X, int64_t incx )
3573 {}
3574 
3575 void lacgv(
3576  int64_t n,
3577  std::complex<float>* X, int64_t incx );
3578 
3579 void lacgv(
3580  int64_t n,
3581  std::complex<double>* X, int64_t incx );
3582 
3583 // -----------------------------------------------------------------------------
3584 void lacp2(
3585  lapack::Uplo uplo, int64_t m, int64_t n,
3586  float const* A, int64_t lda,
3587  std::complex<float>* B, int64_t ldb );
3588 
3589 void lacp2(
3590  lapack::Uplo uplo, int64_t m, int64_t n,
3591  double const* A, int64_t lda,
3592  std::complex<double>* B, int64_t ldb );
3593 
3594 // -----------------------------------------------------------------------------
3595 void lacpy(
3596  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3597  float const* A, int64_t lda,
3598  float* B, int64_t ldb );
3599 
3600 void lacpy(
3601  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3602  double const* A, int64_t lda,
3603  double* B, int64_t ldb );
3604 
3605 void lacpy(
3606  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3607  std::complex<float> const* A, int64_t lda,
3608  std::complex<float>* B, int64_t ldb );
3609 
3610 void lacpy(
3611  lapack::MatrixType matrixtype, int64_t m, int64_t n,
3612  std::complex<double> const* A, int64_t lda,
3613  std::complex<double>* B, int64_t ldb );
3614 
3615 // -----------------------------------------------------------------------------
3616 int64_t lag2c(
3617  int64_t m, int64_t n,
3618  std::complex<double> const* A, int64_t lda,
3619  std::complex<float>* SA, int64_t ldsa );
3620 
3621 // -----------------------------------------------------------------------------
3622 int64_t lag2d(
3623  int64_t m, int64_t n,
3624  float const* SA, int64_t ldsa,
3625  double* A, int64_t lda );
3626 
3627 // -----------------------------------------------------------------------------
3628 int64_t lag2s(
3629  int64_t m, int64_t n,
3630  double const* A, int64_t lda,
3631  float* SA, int64_t ldsa );
3632 
3633 // -----------------------------------------------------------------------------
3634 int64_t lag2z(
3635  int64_t m, int64_t n,
3636  std::complex<float> const* SA, int64_t ldsa,
3637  std::complex<double>* A, int64_t lda );
3638 
3639 // -----------------------------------------------------------------------------
3640 int64_t lagge(
3641  int64_t m, int64_t n, int64_t kl, int64_t ku,
3642  float const* D,
3643  float* A, int64_t lda,
3644  int64_t* iseed );
3645 
3646 int64_t lagge(
3647  int64_t m, int64_t n, int64_t kl, int64_t ku,
3648  double const* D,
3649  double* A, int64_t lda,
3650  int64_t* iseed );
3651 
3652 int64_t lagge(
3653  int64_t m, int64_t n, int64_t kl, int64_t ku,
3654  float const* D,
3655  std::complex<float>* A, int64_t lda,
3656  int64_t* iseed );
3657 
3658 int64_t lagge(
3659  int64_t m, int64_t n, int64_t kl, int64_t ku,
3660  double const* D,
3661  std::complex<double>* A, int64_t lda,
3662  int64_t* iseed );
3663 
3664 // -----------------------------------------------------------------------------
3665 int64_t laghe(
3666  int64_t n, int64_t k,
3667  float const* D,
3668  std::complex<float>* A, int64_t lda,
3669  int64_t* iseed );
3670 
3671 int64_t laghe(
3672  int64_t n, int64_t k,
3673  double const* D,
3674  std::complex<double>* A, int64_t lda,
3675  int64_t* iseed );
3676 
3677 // -----------------------------------------------------------------------------
3678 int64_t lagsy(
3679  int64_t n, int64_t k,
3680  float const* D,
3681  float* A, int64_t lda,
3682  int64_t* iseed );
3683 
3684 int64_t lagsy(
3685  int64_t n, int64_t k,
3686  double const* D,
3687  double* A, int64_t lda,
3688  int64_t* iseed );
3689 
3690 int64_t lagsy(
3691  int64_t n, int64_t k,
3692  float const* D,
3693  std::complex<float>* A, int64_t lda,
3694  int64_t* iseed );
3695 
3696 int64_t lagsy(
3697  int64_t n, int64_t k,
3698  double const* D,
3699  std::complex<double>* A, int64_t lda,
3700  int64_t* iseed );
3701 
3702 // -----------------------------------------------------------------------------
3703 float langb(
3704  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3705  float const* AB, int64_t ldab );
3706 
3707 double langb(
3708  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3709  double const* AB, int64_t ldab );
3710 
3711 float langb(
3712  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3713  std::complex<float> const* AB, int64_t ldab );
3714 
3715 double langb(
3716  lapack::Norm norm, int64_t n, int64_t kl, int64_t ku,
3717  std::complex<double> const* AB, int64_t ldab );
3718 
3719 // -----------------------------------------------------------------------------
3720 float lange(
3721  lapack::Norm norm, int64_t m, int64_t n,
3722  float const* A, int64_t lda );
3723 
3724 double lange(
3725  lapack::Norm norm, int64_t m, int64_t n,
3726  double const* A, int64_t lda );
3727 
3728 float lange(
3729  lapack::Norm norm, int64_t m, int64_t n,
3730  std::complex<float> const* A, int64_t lda );
3731 
3732 double lange(
3733  lapack::Norm norm, int64_t m, int64_t n,
3734  std::complex<double> const* A, int64_t lda );
3735 
3736 // -----------------------------------------------------------------------------
3737 float langt(
3738  lapack::Norm norm, int64_t n,
3739  float const* DL,
3740  float const* D,
3741  float const* DU );
3742 
3743 double langt(
3744  lapack::Norm norm, int64_t n,
3745  double const* DL,
3746  double const* D,
3747  double const* DU );
3748 
3749 float langt(
3750  lapack::Norm norm, int64_t n,
3751  std::complex<float> const* DL,
3752  std::complex<float> const* D,
3753  std::complex<float> const* DU );
3754 
3755 double langt(
3756  lapack::Norm norm, int64_t n,
3757  std::complex<double> const* DL,
3758  std::complex<double> const* D,
3759  std::complex<double> const* DU );
3760 
3761 // -----------------------------------------------------------------------------
3762 float lanhb(
3763  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3764  std::complex<float> const* AB, int64_t ldab );
3765 
3766 double lanhb(
3767  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3768  std::complex<double> const* AB, int64_t ldab );
3769 
3770 // -----------------------------------------------------------------------------
3771 float lanhe(
3772  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3773  std::complex<float> const* A, int64_t lda );
3774 
3775 double lanhe(
3776  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3777  std::complex<double> const* A, int64_t lda );
3778 
3779 // -----------------------------------------------------------------------------
3780 float lanhp(
3781  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3782  std::complex<float> const* AP );
3783 
3784 double lanhp(
3785  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3786  std::complex<double> const* AP );
3787 
3788 // -----------------------------------------------------------------------------
3789 float lanhs(
3790  lapack::Norm norm, int64_t n,
3791  float const* A, int64_t lda );
3792 
3793 double lanhs(
3794  lapack::Norm norm, int64_t n,
3795  double const* A, int64_t lda );
3796 
3797 float lanhs(
3798  lapack::Norm norm, int64_t n,
3799  std::complex<float> const* A, int64_t lda );
3800 
3801 double lanhs(
3802  lapack::Norm norm, int64_t n,
3803  std::complex<double> const* A, int64_t lda );
3804 
3805 // -----------------------------------------------------------------------------
3806 float lanht(
3807  lapack::Norm norm, int64_t n,
3808  float const* D,
3809  std::complex<float> const* E );
3810 
3811 double lanht(
3812  lapack::Norm norm, int64_t n,
3813  double const* D,
3814  std::complex<double> const* E );
3815 
3816 // -----------------------------------------------------------------------------
3817 float lansb(
3818  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3819  float const* AB, int64_t ldab );
3820 
3821 // lanhb alias to lansb
3823 inline float lanhb(
3824  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3825  float const* AB, int64_t ldab )
3826 {
3827  return lansb( norm, uplo, n, kd, AB, ldab );
3828 }
3829 
3830 double lansb(
3831  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3832  double const* AB, int64_t ldab );
3833 
3834 // lanhb alias to lansb
3836 inline double lanhb(
3837  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3838  double const* AB, int64_t ldab )
3839 {
3840  return lansb( norm, uplo, n, kd, AB, ldab );
3841 }
3842 
3843 float lansb(
3844  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3845  std::complex<float> const* AB, int64_t ldab );
3846 
3847 double lansb(
3848  lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd,
3849  std::complex<double> const* AB, int64_t ldab );
3850 
3851 // -----------------------------------------------------------------------------
3852 float lansp(
3853  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3854  float const* AP );
3855 
3856 // lanhp alias to lansp
3858 inline float lanhp(
3859  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3860  float const* AP )
3861 {
3862  return lansp( norm, uplo, n, AP );
3863 }
3864 
3865 double lansp(
3866  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3867  double const* AP );
3868 
3869 // lanhp alias to lansp
3871 inline double lanhp(
3872  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3873  double const* AP )
3874 {
3875  return lansp( norm, uplo, n, AP );
3876 }
3877 
3878 float lansp(
3879  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3880  std::complex<float> const* AP );
3881 
3882 double lansp(
3883  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3884  std::complex<double> const* AP );
3885 
3886 // -----------------------------------------------------------------------------
3887 float lanst(
3888  lapack::Norm norm, int64_t n,
3889  float const* D,
3890  float const* E );
3891 
3892 // lanht alias to lanst
3894 inline float lanht(
3895  lapack::Norm norm, int64_t n,
3896  float const* D,
3897  float const* E )
3898 {
3899  return lanst( norm, n, D, E );
3900 }
3901 
3902 double lanst(
3903  lapack::Norm norm, int64_t n,
3904  double const* D,
3905  double const* E );
3906 
3907 // lanht alias to lanst
3909 inline double lanht(
3910  lapack::Norm norm, int64_t n,
3911  double const* D,
3912  double const* E )
3913 {
3914  return lanst( norm, n, D, E );
3915 }
3916 
3917 // -----------------------------------------------------------------------------
3918 float lansy(
3919  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3920  float const* A, int64_t lda );
3921 
3922 // lanhe alias to lansy
3924 inline float lanhe(
3925  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3926  float const* A, int64_t lda )
3927 {
3928  return lansy( norm, uplo, n, A, lda );
3929 }
3930 
3931 double lansy(
3932  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3933  double const* A, int64_t lda );
3934 
3935 // lanhe alias to lansy
3937 inline double lanhe(
3938  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3939  double const* A, int64_t lda )
3940 {
3941  return lansy( norm, uplo, n, A, lda );
3942 }
3943 
3944 float lansy(
3945  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3946  std::complex<float> const* A, int64_t lda );
3947 
3948 double lansy(
3949  lapack::Norm norm, lapack::Uplo uplo, int64_t n,
3950  std::complex<double> const* A, int64_t lda );
3951 
3952 // -----------------------------------------------------------------------------
3953 float lantb(
3954  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3955  float const* AB, int64_t ldab );
3956 
3957 double lantb(
3958  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3959  double const* AB, int64_t ldab );
3960 
3961 float lantb(
3962  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3963  std::complex<float> const* AB, int64_t ldab );
3964 
3965 double lantb(
3966  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k,
3967  std::complex<double> const* AB, int64_t ldab );
3968 
3969 // -----------------------------------------------------------------------------
3970 float lantp(
3971  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3972  float const* AP );
3973 
3974 double lantp(
3975  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3976  double const* AP );
3977 
3978 float lantp(
3979  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3980  std::complex<float> const* AP );
3981 
3982 double lantp(
3983  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
3984  std::complex<double> const* AP );
3985 
3986 // -----------------------------------------------------------------------------
3987 float lantr(
3988  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3989  float const* A, int64_t lda );
3990 
3991 double lantr(
3992  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3993  double const* A, int64_t lda );
3994 
3995 float lantr(
3996  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
3997  std::complex<float> const* A, int64_t lda );
3998 
3999 double lantr(
4000  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n,
4001  std::complex<double> const* A, int64_t lda );
4002 
4003 // -----------------------------------------------------------------------------
4004 void lapmr(
4005  bool forwrd, int64_t m, int64_t n,
4006  float* X, int64_t ldx,
4007  int64_t* K );
4008 
4009 void lapmr(
4010  bool forwrd, int64_t m, int64_t n,
4011  double* X, int64_t ldx,
4012  int64_t* K );
4013 
4014 void lapmr(
4015  bool forwrd, int64_t m, int64_t n,
4016  std::complex<float>* X, int64_t ldx,
4017  int64_t* K );
4018 
4019 void lapmr(
4020  bool forwrd, int64_t m, int64_t n,
4021  std::complex<double>* X, int64_t ldx,
4022  int64_t* K );
4023 
4024 // -----------------------------------------------------------------------------
4025 void lapmt(
4026  bool forwrd, int64_t m, int64_t n,
4027  float* X, int64_t ldx,
4028  int64_t* K );
4029 
4030 void lapmt(
4031  bool forwrd, int64_t m, int64_t n,
4032  double* X, int64_t ldx,
4033  int64_t* K );
4034 
4035 void lapmt(
4036  bool forwrd, int64_t m, int64_t n,
4037  std::complex<float>* X, int64_t ldx,
4038  int64_t* K );
4039 
4040 void lapmt(
4041  bool forwrd, int64_t m, int64_t n,
4042  std::complex<double>* X, int64_t ldx,
4043  int64_t* K );
4044 
4045 // -----------------------------------------------------------------------------
4046 float lapy2(
4047  float x, float y );
4048 
4049 double lapy2(
4050  double x, double y );
4051 
4052 // -----------------------------------------------------------------------------
4053 float lapy3(
4054  float x, float y, float z );
4055 
4056 double lapy3(
4057  double x, double y, double z );
4058 
4059 // -----------------------------------------------------------------------------
4060 void larf(
4061  lapack::Side side, int64_t m, int64_t n,
4062  float const* V, int64_t incv, float tau,
4063  float* C, int64_t ldc );
4064 
4065 void larf(
4066  lapack::Side side, int64_t m, int64_t n,
4067  double const* V, int64_t incv, double tau,
4068  double* C, int64_t ldc );
4069 
4070 void larf(
4071  lapack::Side side, int64_t m, int64_t n,
4072  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4073  std::complex<float>* C, int64_t ldc );
4074 
4075 void larf(
4076  lapack::Side side, int64_t m, int64_t n,
4077  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4078  std::complex<double>* C, int64_t ldc );
4079 
4080 // -----------------------------------------------------------------------------
4081 void larfb(
4082  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4083  float const* V, int64_t ldv,
4084  float const* T, int64_t ldt,
4085  float* C, int64_t ldc );
4086 
4087 void larfb(
4088  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4089  double const* V, int64_t ldv,
4090  double const* T, int64_t ldt,
4091  double* C, int64_t ldc );
4092 
4093 void larfb(
4094  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4095  std::complex<float> const* V, int64_t ldv,
4096  std::complex<float> const* T, int64_t ldt,
4097  std::complex<float>* C, int64_t ldc );
4098 
4099 void larfb(
4100  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k,
4101  std::complex<double> const* V, int64_t ldv,
4102  std::complex<double> const* T, int64_t ldt,
4103  std::complex<double>* C, int64_t ldc );
4104 
4105 // -----------------------------------------------------------------------------
4106 void larfg(
4107  int64_t n,
4108  float* alpha,
4109  float* X, int64_t incx,
4110  float* tau );
4111 
4112 void larfg(
4113  int64_t n,
4114  double* alpha,
4115  double* X, int64_t incx,
4116  double* tau );
4117 
4118 void larfg(
4119  int64_t n,
4120  std::complex<float>* alpha,
4121  std::complex<float>* X, int64_t incx,
4122  std::complex<float>* tau );
4123 
4124 void larfg(
4125  int64_t n,
4126  std::complex<double>* alpha,
4127  std::complex<double>* X, int64_t incx,
4128  std::complex<double>* tau );
4129 
4130 // -----------------------------------------------------------------------------
4131 void larfgp(
4132  int64_t n,
4133  float* alpha,
4134  float* X, int64_t incx,
4135  float* tau );
4136 
4137 void larfgp(
4138  int64_t n,
4139  double* alpha,
4140  double* X, int64_t incx,
4141  double* tau );
4142 
4143 void larfgp(
4144  int64_t n,
4145  std::complex<float>* alpha,
4146  std::complex<float>* X, int64_t incx,
4147  std::complex<float>* tau );
4148 
4149 void larfgp(
4150  int64_t n,
4151  std::complex<double>* alpha,
4152  std::complex<double>* X, int64_t incx,
4153  std::complex<double>* tau );
4154 
4155 // -----------------------------------------------------------------------------
4156 void larft(
4157  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4158  float const* V, int64_t ldv,
4159  float const* tau,
4160  float* T, int64_t ldt );
4161 
4162 void larft(
4163  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4164  double const* V, int64_t ldv,
4165  double const* tau,
4166  double* T, int64_t ldt );
4167 
4168 void larft(
4169  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4170  std::complex<float> const* V, int64_t ldv,
4171  std::complex<float> const* tau,
4172  std::complex<float>* T, int64_t ldt );
4173 
4174 void larft(
4175  lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k,
4176  std::complex<double> const* V, int64_t ldv,
4177  std::complex<double> const* tau,
4178  std::complex<double>* T, int64_t ldt );
4179 
4180 // -----------------------------------------------------------------------------
4181 void larfx(
4182  lapack::Side side, int64_t m, int64_t n,
4183  float const* V, float tau,
4184  float* C, int64_t ldc );
4185 
4186 void larfx(
4187  lapack::Side side, int64_t m, int64_t n,
4188  double const* V, double tau,
4189  double* C, int64_t ldc );
4190 
4191 void larfx(
4192  lapack::Side side, int64_t m, int64_t n,
4193  std::complex<float> const* V, std::complex<float> tau,
4194  std::complex<float>* C, int64_t ldc );
4195 
4196 void larfx(
4197  lapack::Side side, int64_t m, int64_t n,
4198  std::complex<double> const* V, std::complex<double> tau,
4199  std::complex<double>* C, int64_t ldc );
4200 
4201 // -----------------------------------------------------------------------------
4202 void larfy(
4203  lapack::Uplo uplo, int64_t n,
4204  float const* V, int64_t incv, float tau,
4205  float* C, int64_t ldc );
4206 
4207 void larfy(
4208  lapack::Uplo uplo, int64_t n,
4209  double const* V, int64_t incv, double tau,
4210  double* C, int64_t ldc );
4211 
4212 void larfy(
4213  lapack::Uplo uplo, int64_t n,
4214  std::complex<float> const* V, int64_t incv, std::complex<float> tau,
4215  std::complex<float>* C, int64_t ldc );
4216 
4217 void larfy(
4218  lapack::Uplo uplo, int64_t n,
4219  std::complex<double> const* V, int64_t incv, std::complex<double> tau,
4220  std::complex<double>* C, int64_t ldc );
4221 
4222 // -----------------------------------------------------------------------------
4223 void larnv(
4224  int64_t idist,
4225  int64_t* iseed, int64_t n,
4226  float* X );
4227 
4228 void larnv(
4229  int64_t idist,
4230  int64_t* iseed, int64_t n,
4231  double* X );
4232 
4233 void larnv(
4234  int64_t idist,
4235  int64_t* iseed, int64_t n,
4236  std::complex<float>* X );
4237 
4238 void larnv(
4239  int64_t idist,
4240  int64_t* iseed, int64_t n,
4241  std::complex<double>* X );
4242 
4243 // -----------------------------------------------------------------------------
4244 void lartgp(
4245  float f, float g,
4246  float* cs,
4247  float* sn,
4248  float* r );
4249 
4250 void lartgp(
4251  double f, double g,
4252  double* cs,
4253  double* sn,
4254  double* r );
4255 
4256 // -----------------------------------------------------------------------------
4257 void lartgs(
4258  float x, float y, float sigma,
4259  float* cs,
4260  float* sn );
4261 
4262 void lartgs(
4263  double x, double y, double sigma,
4264  double* cs,
4265  double* sn );
4266 
4267 // -----------------------------------------------------------------------------
4268 int64_t lascl(
4269  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4270  float* A, int64_t lda );
4271 
4272 int64_t lascl(
4273  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4274  double* A, int64_t lda );
4275 
4276 int64_t lascl(
4277  lapack::MatrixType type, int64_t kl, int64_t ku, float cfrom, float cto, int64_t m, int64_t n,
4278  std::complex<float>* A, int64_t lda );
4279 
4280 int64_t lascl(
4281  lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n,
4282  std::complex<double>* A, int64_t lda );
4283 
4284 // -----------------------------------------------------------------------------
4285 void laset(
4286  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4287  float offdiag, float diag,
4288  float* A, int64_t lda );
4289 
4290 void laset(
4291  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4292  double offdiag, double diag,
4293  double* A, int64_t lda );
4294 
4295 void laset(
4296  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4297  std::complex<float> offdiag, std::complex<float> diag,
4298  std::complex<float>* A, int64_t lda );
4299 
4300 void laset(
4301  lapack::MatrixType matrixtype, int64_t m, int64_t n,
4302  std::complex<double> offdiag, std::complex<double> diag,
4303  std::complex<double>* A, int64_t lda );
4304 
4305 // -----------------------------------------------------------------------------
4306 void lassq(
4307  int64_t n,
4308  float const* X, int64_t incx,
4309  float* scale,
4310  float* sumsq );
4311 
4312 void lassq(
4313  int64_t n,
4314  double const* X, int64_t incx,
4315  double* scale,
4316  double* sumsq );
4317 
4318 void lassq(
4319  int64_t n,
4320  std::complex<float> const* X, int64_t incx,
4321  float* scale,
4322  float* sumsq );
4323 
4324 void lassq(
4325  int64_t n,
4326  std::complex<double> const* X, int64_t incx,
4327  double* scale,
4328  double* sumsq );
4329 
4330 // -----------------------------------------------------------------------------
4331 void laswp(
4332  int64_t n,
4333  float* A, int64_t lda, int64_t k1, int64_t k2,
4334  int64_t const* ipiv, int64_t incx );
4335 
4336 void laswp(
4337  int64_t n,
4338  double* A, int64_t lda, int64_t k1, int64_t k2,
4339  int64_t const* ipiv, int64_t incx );
4340 
4341 void laswp(
4342  int64_t n,
4343  std::complex<float>* A, int64_t lda, int64_t k1, int64_t k2,
4344  int64_t const* ipiv, int64_t incx );
4345 
4346 void laswp(
4347  int64_t n,
4348  std::complex<double>* A, int64_t lda, int64_t k1, int64_t k2,
4349  int64_t const* ipiv, int64_t incx );
4350 
4351 // -----------------------------------------------------------------------------
4352 int64_t lauum(
4353  lapack::Uplo uplo, int64_t n,
4354  float* A, int64_t lda );
4355 
4356 int64_t lauum(
4357  lapack::Uplo uplo, int64_t n,
4358  double* A, int64_t lda );
4359 
4360 int64_t lauum(
4361  lapack::Uplo uplo, int64_t n,
4362  std::complex<float>* A, int64_t lda );
4363 
4364 int64_t lauum(
4365  lapack::Uplo uplo, int64_t n,
4366  std::complex<double>* A, int64_t lda );
4367 
4368 // -----------------------------------------------------------------------------
4369 int64_t opgtr(
4370  lapack::Uplo uplo, int64_t n,
4371  float const* AP,
4372  float const* tau,
4373  float* Q, int64_t ldq );
4374 
4375 // upgtr alias to opgtr
4376 inline int64_t upgtr(
4377  lapack::Uplo uplo, int64_t n,
4378  float const* AP,
4379  float const* tau,
4380  float* Q, int64_t ldq )
4381 {
4382  return opgtr( uplo, n, AP, tau, Q, ldq );
4383 }
4384 
4385 int64_t opgtr(
4386  lapack::Uplo uplo, int64_t n,
4387  double const* AP,
4388  double const* tau,
4389  double* Q, int64_t ldq );
4390 
4391 // upgtr alias to opgtr
4392 inline int64_t upgtr(
4393  lapack::Uplo uplo, int64_t n,
4394  double const* AP,
4395  double const* tau,
4396  double* Q, int64_t ldq )
4397 {
4398  return opgtr( uplo, n, AP, tau, Q, ldq );
4399 }
4400 
4401 // -----------------------------------------------------------------------------
4402 int64_t opmtr(
4403  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4404  float const* AP,
4405  float const* tau,
4406  float* C, int64_t ldc );
4407 
4408 // upmtr alias to opmtr
4409 inline int64_t upmtr(
4410  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4411  float const* AP,
4412  float const* tau,
4413  float* C, int64_t ldc )
4414 {
4415  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4416 }
4417 
4418 int64_t opmtr(
4419  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4420  double const* AP,
4421  double const* tau,
4422  double* C, int64_t ldc );
4423 
4424 // upmtr alias to opmtr
4425 inline int64_t upmtr(
4426  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4427  double const* AP,
4428  double const* tau,
4429  double* C, int64_t ldc )
4430 {
4431  return opmtr( side, uplo, trans, m, n, AP, tau, C, ldc );
4432 }
4433 
4434 // -----------------------------------------------------------------------------
4435 int64_t orcsd2by1(
4436  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4437  float* X11, int64_t ldx11,
4438  float* X21, int64_t ldx21,
4439  float* theta,
4440  float* U1, int64_t ldu1,
4441  float* U2, int64_t ldu2,
4442  float* V1T, int64_t ldv1t );
4443 
4444 // uncsd2by1 alias to orcsd2by1
4445 inline int64_t uncsd2by1(
4446  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4447  float* X11, int64_t ldx11,
4448  float* X21, int64_t ldx21,
4449  float* theta,
4450  float* U1, int64_t ldu1,
4451  float* U2, int64_t ldu2,
4452  float* V1T, int64_t ldv1t )
4453 {
4454  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4455 }
4456 
4457 int64_t orcsd2by1(
4458  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4459  double* X11, int64_t ldx11,
4460  double* X21, int64_t ldx21,
4461  double* theta,
4462  double* U1, int64_t ldu1,
4463  double* U2, int64_t ldu2,
4464  double* V1T, int64_t ldv1t );
4465 
4466 // uncsd2by1 alias to orcsd2by1
4467 inline int64_t uncsd2by1(
4468  lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, int64_t m, int64_t p, int64_t q,
4469  double* X11, int64_t ldx11,
4470  double* X21, int64_t ldx21,
4471  double* theta,
4472  double* U1, int64_t ldu1,
4473  double* U2, int64_t ldu2,
4474  double* V1T, int64_t ldv1t )
4475 {
4476  return orcsd2by1( jobu1, jobu2, jobv1t, m, p, q, X11, ldx11, X21, ldx21, theta, U1, ldu1, U2, ldu2, V1T, ldv1t );
4477 }
4478 
4479 // -----------------------------------------------------------------------------
4480 int64_t orgbr(
4481  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4482  float* A, int64_t lda,
4483  float const* tau );
4484 
4485 // ungbr alias to orgbr
4486 inline int64_t ungbr(
4487  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4488  float* A, int64_t lda,
4489  float const* tau )
4490 {
4491  return orgbr( vect, m, n, k, A, lda, tau );
4492 }
4493 
4494 int64_t orgbr(
4495  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4496  double* A, int64_t lda,
4497  double const* tau );
4498 
4499 // ungbr alias to orgbr
4500 inline int64_t ungbr(
4501  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
4502  double* A, int64_t lda,
4503  double const* tau )
4504 {
4505  return orgbr( vect, m, n, k, A, lda, tau );
4506 }
4507 
4508 // -----------------------------------------------------------------------------
4509 int64_t orghr(
4510  int64_t n, int64_t ilo, int64_t ihi,
4511  float* A, int64_t lda,
4512  float const* tau );
4513 
4514 // unghr alias to orghr
4515 inline int64_t unghr(
4516  int64_t n, int64_t ilo, int64_t ihi,
4517  float* A, int64_t lda,
4518  float const* tau )
4519 {
4520  return orghr( n, ilo, ihi, A, lda, tau );
4521 }
4522 
4523 int64_t orghr(
4524  int64_t n, int64_t ilo, int64_t ihi,
4525  double* A, int64_t lda,
4526  double const* tau );
4527 
4528 // unghr alias to orghr
4529 inline int64_t unghr(
4530  int64_t n, int64_t ilo, int64_t ihi,
4531  double* A, int64_t lda,
4532  double const* tau )
4533 {
4534  return orghr( n, ilo, ihi, A, lda, tau );
4535 }
4536 
4537 // -----------------------------------------------------------------------------
4538 int64_t orglq(
4539  int64_t m, int64_t n, int64_t k,
4540  float* A, int64_t lda,
4541  float const* tau );
4542 
4543 // unglq alias to orglq
4544 inline int64_t unglq(
4545  int64_t m, int64_t n, int64_t k,
4546  float* A, int64_t lda,
4547  float const* tau )
4548 {
4549  return orglq( m, n, k, A, lda, tau );
4550 }
4551 
4552 int64_t orglq(
4553  int64_t m, int64_t n, int64_t k,
4554  double* A, int64_t lda,
4555  double const* tau );
4556 
4557 // unglq alias to orglq
4558 inline int64_t unglq(
4559  int64_t m, int64_t n, int64_t k,
4560  double* A, int64_t lda,
4561  double const* tau )
4562 {
4563  return orglq( m, n, k, A, lda, tau );
4564 }
4565 
4566 // -----------------------------------------------------------------------------
4567 int64_t orgql(
4568  int64_t m, int64_t n, int64_t k,
4569  float* A, int64_t lda,
4570  float const* tau );
4571 
4572 // ungql alias to orgql
4573 inline int64_t ungql(
4574  int64_t m, int64_t n, int64_t k,
4575  float* A, int64_t lda,
4576  float const* tau )
4577 {
4578  return orgql( m, n, k, A, lda, tau );
4579 }
4580 
4581 int64_t orgql(
4582  int64_t m, int64_t n, int64_t k,
4583  double* A, int64_t lda,
4584  double const* tau );
4585 
4586 // ungql alias to orgql
4587 inline int64_t ungql(
4588  int64_t m, int64_t n, int64_t k,
4589  double* A, int64_t lda,
4590  double const* tau )
4591 {
4592  return orgql( m, n, k, A, lda, tau );
4593 }
4594 
4595 // -----------------------------------------------------------------------------
4596 int64_t orgqr(
4597  int64_t m, int64_t n, int64_t k,
4598  float* A, int64_t lda,
4599  float const* tau );
4600 
4601 // ungqr alias to orgqr
4602 inline int64_t ungqr(
4603  int64_t m, int64_t n, int64_t k,
4604  float* A, int64_t lda,
4605  float const* tau )
4606 {
4607  return orgqr( m, n, k, A, lda, tau );
4608 }
4609 
4610 int64_t orgqr(
4611  int64_t m, int64_t n, int64_t k,
4612  double* A, int64_t lda,
4613  double const* tau );
4614 
4615 // ungqr alias to orgqr
4616 inline int64_t ungqr(
4617  int64_t m, int64_t n, int64_t k,
4618  double* A, int64_t lda,
4619  double const* tau )
4620 {
4621  return orgqr( m, n, k, A, lda, tau );
4622 }
4623 
4624 // -----------------------------------------------------------------------------
4625 int64_t orgrq(
4626  int64_t m, int64_t n, int64_t k,
4627  float* A, int64_t lda,
4628  float const* tau );
4629 
4630 // ungrq alias to orgrq
4631 inline int64_t ungrq(
4632  int64_t m, int64_t n, int64_t k,
4633  float* A, int64_t lda,
4634  float const* tau )
4635 {
4636  return orgrq( m, n, k, A, lda, tau );
4637 }
4638 
4639 int64_t orgrq(
4640  int64_t m, int64_t n, int64_t k,
4641  double* A, int64_t lda,
4642  double const* tau );
4643 
4644 // ungrq alias to orgrq
4645 inline int64_t ungrq(
4646  int64_t m, int64_t n, int64_t k,
4647  double* A, int64_t lda,
4648  double const* tau )
4649 {
4650  return orgrq( m, n, k, A, lda, tau );
4651 }
4652 
4653 // -----------------------------------------------------------------------------
4654 int64_t orgtr(
4655  lapack::Uplo uplo, int64_t n,
4656  float* A, int64_t lda,
4657  float const* tau );
4658 
4659 // ungtr alias to orgtr
4660 inline int64_t ungtr(
4661  lapack::Uplo uplo, int64_t n,
4662  float* A, int64_t lda,
4663  float const* tau )
4664 {
4665  return orgtr( uplo, n, A, lda, tau );
4666 }
4667 
4668 int64_t orgtr(
4669  lapack::Uplo uplo, int64_t n,
4670  double* A, int64_t lda,
4671  double const* tau );
4672 
4673 // ungtr alias to orgtr
4674 inline int64_t ungtr(
4675  lapack::Uplo uplo, int64_t n,
4676  double* A, int64_t lda,
4677  double const* tau )
4678 {
4679  return orgtr( uplo, n, A, lda, tau );
4680 }
4681 
4682 // -----------------------------------------------------------------------------
4683 int64_t ormbr(
4684  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4685  float const* A, int64_t lda,
4686  float const* tau,
4687  float* C, int64_t ldc );
4688 
4689 // unmbr alias to ormbr
4690 inline int64_t unmbr(
4691  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4692  float const* A, int64_t lda,
4693  float const* tau,
4694  float* C, int64_t ldc )
4695 {
4696  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4697 }
4698 
4699 int64_t ormbr(
4700  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4701  double const* A, int64_t lda,
4702  double const* tau,
4703  double* C, int64_t ldc );
4704 
4705 // unmbr alias to ormbr
4706 inline int64_t unmbr(
4707  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4708  double const* A, int64_t lda,
4709  double const* tau,
4710  double* C, int64_t ldc )
4711 {
4712  return ormbr( vect, side, trans, m, n, k, A, lda, tau, C, ldc );
4713 }
4714 
4715 // -----------------------------------------------------------------------------
4716 int64_t ormhr(
4717  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4718  float const* A, int64_t lda,
4719  float const* tau,
4720  float* C, int64_t ldc );
4721 
4722 // unmhr alias to ormhr
4723 inline int64_t unmhr(
4724  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4725  float const* A, int64_t lda,
4726  float const* tau,
4727  float* C, int64_t ldc )
4728 {
4729  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4730 }
4731 
4732 int64_t ormhr(
4733  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4734  double const* A, int64_t lda,
4735  double const* tau,
4736  double* C, int64_t ldc );
4737 
4738 // unmhr alias to ormhr
4739 inline int64_t unmhr(
4740  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
4741  double const* A, int64_t lda,
4742  double const* tau,
4743  double* C, int64_t ldc )
4744 {
4745  return ormhr( side, trans, m, n, ilo, ihi, A, lda, tau, C, ldc );
4746 }
4747 
4748 // -----------------------------------------------------------------------------
4749 int64_t ormlq(
4750  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4751  float const* A, int64_t lda,
4752  float const* tau,
4753  float* C, int64_t ldc );
4754 
4755 // unmlq alias to ormlq
4756 inline int64_t unmlq(
4757  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4758  float const* A, int64_t lda,
4759  float const* tau,
4760  float* C, int64_t ldc )
4761 {
4762  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4763 }
4764 
4765 int64_t ormlq(
4766  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4767  double const* A, int64_t lda,
4768  double const* tau,
4769  double* C, int64_t ldc );
4770 
4771 // unmlq alias to ormlq
4772 inline int64_t unmlq(
4773  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4774  double const* A, int64_t lda,
4775  double const* tau,
4776  double* C, int64_t ldc )
4777 {
4778  return ormlq( side, trans, m, n, k, A, lda, tau, C, ldc );
4779 }
4780 
4781 // -----------------------------------------------------------------------------
4782 int64_t ormql(
4783  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4784  float const* A, int64_t lda,
4785  float const* tau,
4786  float* C, int64_t ldc );
4787 
4788 // unmql alias to ormql
4789 inline int64_t unmql(
4790  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4791  float const* A, int64_t lda,
4792  float const* tau,
4793  float* C, int64_t ldc )
4794 {
4795  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4796 }
4797 
4798 int64_t ormql(
4799  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4800  double const* A, int64_t lda,
4801  double const* tau,
4802  double* C, int64_t ldc );
4803 
4804 // unmql alias to ormql
4805 inline int64_t unmql(
4806  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4807  double const* A, int64_t lda,
4808  double const* tau,
4809  double* C, int64_t ldc )
4810 {
4811  return ormql( side, trans, m, n, k, A, lda, tau, C, ldc );
4812 }
4813 
4814 // -----------------------------------------------------------------------------
4815 int64_t ormqr(
4816  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4817  float const* A, int64_t lda,
4818  float const* tau,
4819  float* C, int64_t ldc );
4820 
4821 // unmqr alias to ormqr
4822 inline int64_t unmqr(
4823  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4824  float const* A, int64_t lda,
4825  float const* tau,
4826  float* C, int64_t ldc )
4827 {
4828  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4829 }
4830 
4831 int64_t ormqr(
4832  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4833  double const* A, int64_t lda,
4834  double const* tau,
4835  double* C, int64_t ldc );
4836 
4837 // unmqr alias to ormqr
4838 inline int64_t unmqr(
4839  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4840  double const* A, int64_t lda,
4841  double const* tau,
4842  double* C, int64_t ldc )
4843 {
4844  return ormqr( side, trans, m, n, k, A, lda, tau, C, ldc );
4845 }
4846 
4847 // -----------------------------------------------------------------------------
4848 int64_t ormrq(
4849  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4850  float const* A, int64_t lda,
4851  float const* tau,
4852  float* C, int64_t ldc );
4853 
4854 // unmrq alias to ormrq
4855 inline int64_t unmrq(
4856  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4857  float const* A, int64_t lda,
4858  float const* tau,
4859  float* C, int64_t ldc )
4860 {
4861  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4862 }
4863 
4864 int64_t ormrq(
4865  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4866  double const* A, int64_t lda,
4867  double const* tau,
4868  double* C, int64_t ldc );
4869 
4870 // unmrq alias to ormrq
4871 inline int64_t unmrq(
4872  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
4873  double const* A, int64_t lda,
4874  double const* tau,
4875  double* C, int64_t ldc )
4876 {
4877  return ormrq( side, trans, m, n, k, A, lda, tau, C, ldc );
4878 }
4879 
4880 // -----------------------------------------------------------------------------
4881 int64_t ormrz(
4882  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4883  float const* A, int64_t lda,
4884  float const* tau,
4885  float* C, int64_t ldc );
4886 
4887 // unmrz alias to ormrz
4888 inline int64_t unmrz(
4889  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4890  float const* A, int64_t lda,
4891  float const* tau,
4892  float* C, int64_t ldc )
4893 {
4894  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4895 }
4896 
4897 int64_t ormrz(
4898  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4899  double const* A, int64_t lda,
4900  double const* tau,
4901  double* C, int64_t ldc );
4902 
4903 // unmrz alias to ormrz
4904 inline int64_t unmrz(
4905  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
4906  double const* A, int64_t lda,
4907  double const* tau,
4908  double* C, int64_t ldc )
4909 {
4910  return ormrz( side, trans, m, n, k, l, A, lda, tau, C, ldc );
4911 }
4912 
4913 // -----------------------------------------------------------------------------
4914 int64_t ormtr(
4915  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4916  float const* A, int64_t lda,
4917  float const* tau,
4918  float* C, int64_t ldc );
4919 
4920 // unmtr alias to ormtr
4921 inline int64_t unmtr(
4922  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4923  float const* A, int64_t lda,
4924  float const* tau,
4925  float* C, int64_t ldc )
4926 {
4927  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4928 }
4929 
4930 int64_t ormtr(
4931  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4932  double const* A, int64_t lda,
4933  double const* tau,
4934  double* C, int64_t ldc );
4935 
4936 // unmtr alias to ormtr
4937 inline int64_t unmtr(
4938  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
4939  double const* A, int64_t lda,
4940  double const* tau,
4941  double* C, int64_t ldc )
4942 {
4943  return ormtr( side, uplo, trans, m, n, A, lda, tau, C, ldc );
4944 }
4945 
4946 // -----------------------------------------------------------------------------
4947 int64_t pbcon(
4948  lapack::Uplo uplo, int64_t n, int64_t kd,
4949  float const* AB, int64_t ldab, float anorm,
4950  float* rcond );
4951 
4952 int64_t pbcon(
4953  lapack::Uplo uplo, int64_t n, int64_t kd,
4954  double const* AB, int64_t ldab, double anorm,
4955  double* rcond );
4956 
4957 int64_t pbcon(
4958  lapack::Uplo uplo, int64_t n, int64_t kd,
4959  std::complex<float> const* AB, int64_t ldab, float anorm,
4960  float* rcond );
4961 
4962 int64_t pbcon(
4963  lapack::Uplo uplo, int64_t n, int64_t kd,
4964  std::complex<double> const* AB, int64_t ldab, double anorm,
4965  double* rcond );
4966 
4967 // -----------------------------------------------------------------------------
4968 int64_t pbequ(
4969  lapack::Uplo uplo, int64_t n, int64_t kd,
4970  float const* AB, int64_t ldab,
4971  float* S,
4972  float* scond,
4973  float* amax );
4974 
4975 int64_t pbequ(
4976  lapack::Uplo uplo, int64_t n, int64_t kd,
4977  double const* AB, int64_t ldab,
4978  double* S,
4979  double* scond,
4980  double* amax );
4981 
4982 int64_t pbequ(
4983  lapack::Uplo uplo, int64_t n, int64_t kd,
4984  std::complex<float> const* AB, int64_t ldab,
4985  float* S,
4986  float* scond,
4987  float* amax );
4988 
4989 int64_t pbequ(
4990  lapack::Uplo uplo, int64_t n, int64_t kd,
4991  std::complex<double> const* AB, int64_t ldab,
4992  double* S,
4993  double* scond,
4994  double* amax );
4995 
4996 // -----------------------------------------------------------------------------
4997 int64_t pbrfs(
4998  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
4999  float const* AB, int64_t ldab,
5000  float const* AFB, int64_t ldafb,
5001  float const* B, int64_t ldb,
5002  float* X, int64_t ldx,
5003  float* ferr,
5004  float* berr );
5005 
5006 int64_t pbrfs(
5007  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5008  double const* AB, int64_t ldab,
5009  double const* AFB, int64_t ldafb,
5010  double const* B, int64_t ldb,
5011  double* X, int64_t ldx,
5012  double* ferr,
5013  double* berr );
5014 
5015 int64_t pbrfs(
5016  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5017  std::complex<float> const* AB, int64_t ldab,
5018  std::complex<float> const* AFB, int64_t ldafb,
5019  std::complex<float> const* B, int64_t ldb,
5020  std::complex<float>* X, int64_t ldx,
5021  float* ferr,
5022  float* berr );
5023 
5024 int64_t pbrfs(
5025  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5026  std::complex<double> const* AB, int64_t ldab,
5027  std::complex<double> const* AFB, int64_t ldafb,
5028  std::complex<double> const* B, int64_t ldb,
5029  std::complex<double>* X, int64_t ldx,
5030  double* ferr,
5031  double* berr );
5032 
5033 // -----------------------------------------------------------------------------
5034 int64_t pbstf(
5035  lapack::Uplo uplo, int64_t n, int64_t kd,
5036  float* AB, int64_t ldab );
5037 
5038 int64_t pbstf(
5039  lapack::Uplo uplo, int64_t n, int64_t kd,
5040  double* AB, int64_t ldab );
5041 
5042 int64_t pbstf(
5043  lapack::Uplo uplo, int64_t n, int64_t kd,
5044  std::complex<float>* AB, int64_t ldab );
5045 
5046 int64_t pbstf(
5047  lapack::Uplo uplo, int64_t n, int64_t kd,
5048  std::complex<double>* AB, int64_t ldab );
5049 
5050 // -----------------------------------------------------------------------------
5051 int64_t pbsv(
5052  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5053  float* AB, int64_t ldab,
5054  float* B, int64_t ldb );
5055 
5056 int64_t pbsv(
5057  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5058  double* AB, int64_t ldab,
5059  double* B, int64_t ldb );
5060 
5061 int64_t pbsv(
5062  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5063  std::complex<float>* AB, int64_t ldab,
5064  std::complex<float>* B, int64_t ldb );
5065 
5066 int64_t pbsv(
5067  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5068  std::complex<double>* AB, int64_t ldab,
5069  std::complex<double>* B, int64_t ldb );
5070 
5071 // -----------------------------------------------------------------------------
5072 int64_t pbsvx(
5073  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5074  float* AB, int64_t ldab,
5075  float* AFB, int64_t ldafb,
5076  lapack::Equed* equed,
5077  float* S,
5078  float* B, int64_t ldb,
5079  float* X, int64_t ldx,
5080  float* rcond,
5081  float* ferr,
5082  float* berr );
5083 
5084 int64_t pbsvx(
5085  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5086  double* AB, int64_t ldab,
5087  double* AFB, int64_t ldafb,
5088  lapack::Equed* equed,
5089  double* S,
5090  double* B, int64_t ldb,
5091  double* X, int64_t ldx,
5092  double* rcond,
5093  double* ferr,
5094  double* berr );
5095 
5096 int64_t pbsvx(
5097  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5098  std::complex<float>* AB, int64_t ldab,
5099  std::complex<float>* AFB, int64_t ldafb,
5100  lapack::Equed* equed,
5101  float* S,
5102  std::complex<float>* B, int64_t ldb,
5103  std::complex<float>* X, int64_t ldx,
5104  float* rcond,
5105  float* ferr,
5106  float* berr );
5107 
5108 int64_t pbsvx(
5109  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5110  std::complex<double>* AB, int64_t ldab,
5111  std::complex<double>* AFB, int64_t ldafb,
5112  lapack::Equed* equed,
5113  double* S,
5114  std::complex<double>* B, int64_t ldb,
5115  std::complex<double>* X, int64_t ldx,
5116  double* rcond,
5117  double* ferr,
5118  double* berr );
5119 
5120 // -----------------------------------------------------------------------------
5121 int64_t pbtrf(
5122  lapack::Uplo uplo, int64_t n, int64_t kd,
5123  float* AB, int64_t ldab );
5124 
5125 int64_t pbtrf(
5126  lapack::Uplo uplo, int64_t n, int64_t kd,
5127  double* AB, int64_t ldab );
5128 
5129 int64_t pbtrf(
5130  lapack::Uplo uplo, int64_t n, int64_t kd,
5131  std::complex<float>* AB, int64_t ldab );
5132 
5133 int64_t pbtrf(
5134  lapack::Uplo uplo, int64_t n, int64_t kd,
5135  std::complex<double>* AB, int64_t ldab );
5136 
5137 // -----------------------------------------------------------------------------
5138 int64_t pbtrs(
5139  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5140  float const* AB, int64_t ldab,
5141  float* B, int64_t ldb );
5142 
5143 int64_t pbtrs(
5144  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5145  double const* AB, int64_t ldab,
5146  double* B, int64_t ldb );
5147 
5148 int64_t pbtrs(
5149  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5150  std::complex<float> const* AB, int64_t ldab,
5151  std::complex<float>* B, int64_t ldb );
5152 
5153 int64_t pbtrs(
5154  lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs,
5155  std::complex<double> const* AB, int64_t ldab,
5156  std::complex<double>* B, int64_t ldb );
5157 
5158 // -----------------------------------------------------------------------------
5159 int64_t pftrf(
5160  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5161  float* A );
5162 
5163 int64_t pftrf(
5164  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5165  double* A );
5166 
5167 int64_t pftrf(
5168  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5169  std::complex<float>* A );
5170 
5171 int64_t pftrf(
5172  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5173  std::complex<double>* A );
5174 
5175 // -----------------------------------------------------------------------------
5176 int64_t pftri(
5177  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5178  float* A );
5179 
5180 int64_t pftri(
5181  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5182  double* A );
5183 
5184 int64_t pftri(
5185  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5186  std::complex<float>* A );
5187 
5188 int64_t pftri(
5189  lapack::Op transr, lapack::Uplo uplo, int64_t n,
5190  std::complex<double>* A );
5191 
5192 // -----------------------------------------------------------------------------
5193 int64_t pftrs(
5194  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5195  float const* A,
5196  float* B, int64_t ldb );
5197 
5198 int64_t pftrs(
5199  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5200  double const* A,
5201  double* B, int64_t ldb );
5202 
5203 int64_t pftrs(
5204  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5205  std::complex<float> const* A,
5206  std::complex<float>* B, int64_t ldb );
5207 
5208 int64_t pftrs(
5209  lapack::Op transr, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5210  std::complex<double> const* A,
5211  std::complex<double>* B, int64_t ldb );
5212 
5213 // -----------------------------------------------------------------------------
5214 int64_t pocon(
5215  lapack::Uplo uplo, int64_t n,
5216  float const* A, int64_t lda, float anorm,
5217  float* rcond );
5218 
5219 int64_t pocon(
5220  lapack::Uplo uplo, int64_t n,
5221  double const* A, int64_t lda, double anorm,
5222  double* rcond );
5223 
5224 int64_t pocon(
5225  lapack::Uplo uplo, int64_t n,
5226  std::complex<float> const* A, int64_t lda, float anorm,
5227  float* rcond );
5228 
5229 int64_t pocon(
5230  lapack::Uplo uplo, int64_t n,
5231  std::complex<double> const* A, int64_t lda, double anorm,
5232  double* rcond );
5233 
5234 // -----------------------------------------------------------------------------
5235 int64_t poequ(
5236  int64_t n,
5237  float const* A, int64_t lda,
5238  float* S,
5239  float* scond,
5240  float* amax );
5241 
5242 int64_t poequ(
5243  int64_t n,
5244  double const* A, int64_t lda,
5245  double* S,
5246  double* scond,
5247  double* amax );
5248 
5249 int64_t poequ(
5250  int64_t n,
5251  std::complex<float> const* A, int64_t lda,
5252  float* S,
5253  float* scond,
5254  float* amax );
5255 
5256 int64_t poequ(
5257  int64_t n,
5258  std::complex<double> const* A, int64_t lda,
5259  double* S,
5260  double* scond,
5261  double* amax );
5262 
5263 // -----------------------------------------------------------------------------
5264 int64_t poequb(
5265  int64_t n,
5266  float const* A, int64_t lda,
5267  float* S,
5268  float* scond,
5269  float* amax );
5270 
5271 int64_t poequb(
5272  int64_t n,
5273  double const* A, int64_t lda,
5274  double* S,
5275  double* scond,
5276  double* amax );
5277 
5278 int64_t poequb(
5279  int64_t n,
5280  std::complex<float> const* A, int64_t lda,
5281  float* S,
5282  float* scond,
5283  float* amax );
5284 
5285 int64_t poequb(
5286  int64_t n,
5287  std::complex<double> const* A, int64_t lda,
5288  double* S,
5289  double* scond,
5290  double* amax );
5291 
5292 // -----------------------------------------------------------------------------
5293 int64_t porfs(
5294  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5295  float const* A, int64_t lda,
5296  float const* AF, int64_t ldaf,
5297  float const* B, int64_t ldb,
5298  float* X, int64_t ldx,
5299  float* ferr,
5300  float* berr );
5301 
5302 int64_t porfs(
5303  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5304  double const* A, int64_t lda,
5305  double const* AF, int64_t ldaf,
5306  double const* B, int64_t ldb,
5307  double* X, int64_t ldx,
5308  double* ferr,
5309  double* berr );
5310 
5311 int64_t porfs(
5312  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5313  std::complex<float> const* A, int64_t lda,
5314  std::complex<float> const* AF, int64_t ldaf,
5315  std::complex<float> const* B, int64_t ldb,
5316  std::complex<float>* X, int64_t ldx,
5317  float* ferr,
5318  float* berr );
5319 
5320 int64_t porfs(
5321  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5322  std::complex<double> const* A, int64_t lda,
5323  std::complex<double> const* AF, int64_t ldaf,
5324  std::complex<double> const* B, int64_t ldb,
5325  std::complex<double>* X, int64_t ldx,
5326  double* ferr,
5327  double* berr );
5328 
5329 // -----------------------------------------------------------------------------
5330 int64_t porfsx(
5331  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5332  float const* A, int64_t lda,
5333  float const* AF, int64_t ldaf,
5334  float* S,
5335  float const* B, int64_t ldb,
5336  float* X, int64_t ldx,
5337  float* rcond,
5338  float* berr, int64_t n_err_bnds,
5339  float* err_bnds_norm,
5340  float* err_bnds_comp, int64_t nparams,
5341  float* params );
5342 
5343 int64_t porfsx(
5344  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5345  double const* A, int64_t lda,
5346  double const* AF, int64_t ldaf,
5347  double* S,
5348  double const* B, int64_t ldb,
5349  double* X, int64_t ldx,
5350  double* rcond,
5351  double* berr, int64_t n_err_bnds,
5352  double* err_bnds_norm,
5353  double* err_bnds_comp, int64_t nparams,
5354  double* params );
5355 
5356 int64_t porfsx(
5357  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5358  std::complex<float> const* A, int64_t lda,
5359  std::complex<float> const* AF, int64_t ldaf,
5360  float* S,
5361  std::complex<float> const* B, int64_t ldb,
5362  std::complex<float>* X, int64_t ldx,
5363  float* rcond,
5364  float* berr, int64_t n_err_bnds,
5365  float* err_bnds_norm,
5366  float* err_bnds_comp, int64_t nparams,
5367  float* params );
5368 
5369 int64_t porfsx(
5370  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
5371  std::complex<double> const* A, int64_t lda,
5372  std::complex<double> const* AF, int64_t ldaf,
5373  double* S,
5374  std::complex<double> const* B, int64_t ldb,
5375  std::complex<double>* X, int64_t ldx,
5376  double* rcond,
5377  double* berr, int64_t n_err_bnds,
5378  double* err_bnds_norm,
5379  double* err_bnds_comp, int64_t nparams,
5380  double* params );
5381 
5382 // -----------------------------------------------------------------------------
5383 int64_t posv(
5384  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5385  float* A, int64_t lda,
5386  float* B, int64_t ldb );
5387 
5388 int64_t posv(
5389  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5390  double* A, int64_t lda,
5391  double* B, int64_t ldb );
5392 
5393 int64_t posv(
5394  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5395  std::complex<float>* A, int64_t lda,
5396  std::complex<float>* B, int64_t ldb );
5397 
5398 int64_t posv(
5399  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5400  std::complex<double>* A, int64_t lda,
5401  std::complex<double>* B, int64_t ldb );
5402 
5403 int64_t posv(
5404  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5405  double* A, int64_t lda,
5406  double const* B, int64_t ldb,
5407  double* X, int64_t ldx,
5408  int64_t* iter );
5409 
5410 int64_t posv(
5411  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5412  std::complex<double>* A, int64_t lda,
5413  std::complex<double> const* B, int64_t ldb,
5414  std::complex<double>* X, int64_t ldx,
5415  int64_t* iter );
5416 
5417 // -----------------------------------------------------------------------------
5418 int64_t posvx(
5419  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5420  float* A, int64_t lda,
5421  float* AF, int64_t ldaf,
5422  lapack::Equed* equed,
5423  float* S,
5424  float* B, int64_t ldb,
5425  float* X, int64_t ldx,
5426  float* rcond,
5427  float* ferr,
5428  float* berr );
5429 
5430 int64_t posvx(
5431  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5432  double* A, int64_t lda,
5433  double* AF, int64_t ldaf,
5434  lapack::Equed* equed,
5435  double* S,
5436  double* B, int64_t ldb,
5437  double* X, int64_t ldx,
5438  double* rcond,
5439  double* ferr,
5440  double* berr );
5441 
5442 int64_t posvx(
5443  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5444  std::complex<float>* A, int64_t lda,
5445  std::complex<float>* AF, int64_t ldaf,
5446  lapack::Equed* equed,
5447  float* S,
5448  std::complex<float>* B, int64_t ldb,
5449  std::complex<float>* X, int64_t ldx,
5450  float* rcond,
5451  float* ferr,
5452  float* berr );
5453 
5454 int64_t posvx(
5455  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5456  std::complex<double>* A, int64_t lda,
5457  std::complex<double>* AF, int64_t ldaf,
5458  lapack::Equed* equed,
5459  double* S,
5460  std::complex<double>* B, int64_t ldb,
5461  std::complex<double>* X, int64_t ldx,
5462  double* rcond,
5463  double* ferr,
5464  double* berr );
5465 
5466 // -----------------------------------------------------------------------------
5467 int64_t potf2(
5468  lapack::Uplo uplo, int64_t n,
5469  float* A, int64_t lda );
5470 
5471 int64_t potf2(
5472  lapack::Uplo uplo, int64_t n,
5473  double* A, int64_t lda );
5474 
5475 int64_t potf2(
5476  lapack::Uplo uplo, int64_t n,
5477  std::complex<float>* A, int64_t lda );
5478 
5479 int64_t potf2(
5480  lapack::Uplo uplo, int64_t n,
5481  std::complex<double>* A, int64_t lda );
5482 
5483 // -----------------------------------------------------------------------------
5484 int64_t potrf(
5485  lapack::Uplo uplo, int64_t n,
5486  float* A, int64_t lda );
5487 
5488 int64_t potrf(
5489  lapack::Uplo uplo, int64_t n,
5490  double* A, int64_t lda );
5491 
5492 int64_t potrf(
5493  lapack::Uplo uplo, int64_t n,
5494  std::complex<float>* A, int64_t lda );
5495 
5496 int64_t potrf(
5497  lapack::Uplo uplo, int64_t n,
5498  std::complex<double>* A, int64_t lda );
5499 
5500 // -----------------------------------------------------------------------------
5501 int64_t potrf2(
5502  lapack::Uplo uplo, int64_t n,
5503  float* A, int64_t lda );
5504 
5505 int64_t potrf2(
5506  lapack::Uplo uplo, int64_t n,
5507  double* A, int64_t lda );
5508 
5509 int64_t potrf2(
5510  lapack::Uplo uplo, int64_t n,
5511  std::complex<float>* A, int64_t lda );
5512 
5513 int64_t potrf2(
5514  lapack::Uplo uplo, int64_t n,
5515  std::complex<double>* A, int64_t lda );
5516 
5517 // -----------------------------------------------------------------------------
5518 int64_t potri(
5519  lapack::Uplo uplo, int64_t n,
5520  float* A, int64_t lda );
5521 
5522 int64_t potri(
5523  lapack::Uplo uplo, int64_t n,
5524  double* A, int64_t lda );
5525 
5526 int64_t potri(
5527  lapack::Uplo uplo, int64_t n,
5528  std::complex<float>* A, int64_t lda );
5529 
5530 int64_t potri(
5531  lapack::Uplo uplo, int64_t n,
5532  std::complex<double>* A, int64_t lda );
5533 
5534 // -----------------------------------------------------------------------------
5535 int64_t potrs(
5536  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5537  float const* A, int64_t lda,
5538  float* B, int64_t ldb );
5539 
5540 int64_t potrs(
5541  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5542  double const* A, int64_t lda,
5543  double* B, int64_t ldb );
5544 
5545 int64_t potrs(
5546  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5547  std::complex<float> const* A, int64_t lda,
5548  std::complex<float>* B, int64_t ldb );
5549 
5550 int64_t potrs(
5551  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5552  std::complex<double> const* A, int64_t lda,
5553  std::complex<double>* B, int64_t ldb );
5554 
5555 // -----------------------------------------------------------------------------
5556 int64_t ppcon(
5557  lapack::Uplo uplo, int64_t n,
5558  float const* AP, float anorm,
5559  float* rcond );
5560 
5561 int64_t ppcon(
5562  lapack::Uplo uplo, int64_t n,
5563  double const* AP, double anorm,
5564  double* rcond );
5565 
5566 int64_t ppcon(
5567  lapack::Uplo uplo, int64_t n,
5568  std::complex<float> const* AP, float anorm,
5569  float* rcond );
5570 
5571 int64_t ppcon(
5572  lapack::Uplo uplo, int64_t n,
5573  std::complex<double> const* AP, double anorm,
5574  double* rcond );
5575 
5576 // -----------------------------------------------------------------------------
5577 int64_t ppequ(
5578  lapack::Uplo uplo, int64_t n,
5579  float const* AP,
5580  float* S,
5581  float* scond,
5582  float* amax );
5583 
5584 int64_t ppequ(
5585  lapack::Uplo uplo, int64_t n,
5586  double const* AP,
5587  double* S,
5588  double* scond,
5589  double* amax );
5590 
5591 int64_t ppequ(
5592  lapack::Uplo uplo, int64_t n,
5593  std::complex<float> const* AP,
5594  float* S,
5595  float* scond,
5596  float* amax );
5597 
5598 int64_t ppequ(
5599  lapack::Uplo uplo, int64_t n,
5600  std::complex<double> const* AP,
5601  double* S,
5602  double* scond,
5603  double* amax );
5604 
5605 // -----------------------------------------------------------------------------
5606 int64_t pprfs(
5607  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5608  float const* AP,
5609  float const* AFP,
5610  float const* B, int64_t ldb,
5611  float* X, int64_t ldx,
5612  float* ferr,
5613  float* berr );
5614 
5615 int64_t pprfs(
5616  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5617  double const* AP,
5618  double const* AFP,
5619  double const* B, int64_t ldb,
5620  double* X, int64_t ldx,
5621  double* ferr,
5622  double* berr );
5623 
5624 int64_t pprfs(
5625  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5626  std::complex<float> const* AP,
5627  std::complex<float> const* AFP,
5628  std::complex<float> const* B, int64_t ldb,
5629  std::complex<float>* X, int64_t ldx,
5630  float* ferr,
5631  float* berr );
5632 
5633 int64_t pprfs(
5634  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5635  std::complex<double> const* AP,
5636  std::complex<double> const* AFP,
5637  std::complex<double> const* B, int64_t ldb,
5638  std::complex<double>* X, int64_t ldx,
5639  double* ferr,
5640  double* berr );
5641 
5642 // -----------------------------------------------------------------------------
5643 int64_t ppsv(
5644  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5645  float* AP,
5646  float* B, int64_t ldb );
5647 
5648 int64_t ppsv(
5649  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5650  double* AP,
5651  double* B, int64_t ldb );
5652 
5653 int64_t ppsv(
5654  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5655  std::complex<float>* AP,
5656  std::complex<float>* B, int64_t ldb );
5657 
5658 int64_t ppsv(
5659  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5660  std::complex<double>* AP,
5661  std::complex<double>* B, int64_t ldb );
5662 
5663 // -----------------------------------------------------------------------------
5664 int64_t ppsvx(
5665  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5666  float* AP,
5667  float* AFP,
5668  lapack::Equed* equed,
5669  float* S,
5670  float* B, int64_t ldb,
5671  float* X, int64_t ldx,
5672  float* rcond,
5673  float* ferr,
5674  float* berr );
5675 
5676 int64_t ppsvx(
5677  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5678  double* AP,
5679  double* AFP,
5680  lapack::Equed* equed,
5681  double* S,
5682  double* B, int64_t ldb,
5683  double* X, int64_t ldx,
5684  double* rcond,
5685  double* ferr,
5686  double* berr );
5687 
5688 int64_t ppsvx(
5689  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5690  std::complex<float>* AP,
5691  std::complex<float>* AFP,
5692  lapack::Equed* equed,
5693  float* S,
5694  std::complex<float>* B, int64_t ldb,
5695  std::complex<float>* X, int64_t ldx,
5696  float* rcond,
5697  float* ferr,
5698  float* berr );
5699 
5700 int64_t ppsvx(
5701  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
5702  std::complex<double>* AP,
5703  std::complex<double>* AFP,
5704  lapack::Equed* equed,
5705  double* S,
5706  std::complex<double>* B, int64_t ldb,
5707  std::complex<double>* X, int64_t ldx,
5708  double* rcond,
5709  double* ferr,
5710  double* berr );
5711 
5712 // -----------------------------------------------------------------------------
5713 int64_t pptrf(
5714  lapack::Uplo uplo, int64_t n,
5715  float* AP );
5716 
5717 int64_t pptrf(
5718  lapack::Uplo uplo, int64_t n,
5719  double* AP );
5720 
5721 int64_t pptrf(
5722  lapack::Uplo uplo, int64_t n,
5723  std::complex<float>* AP );
5724 
5725 int64_t pptrf(
5726  lapack::Uplo uplo, int64_t n,
5727  std::complex<double>* AP );
5728 
5729 // -----------------------------------------------------------------------------
5730 int64_t pptri(
5731  lapack::Uplo uplo, int64_t n,
5732  float* AP );
5733 
5734 int64_t pptri(
5735  lapack::Uplo uplo, int64_t n,
5736  double* AP );
5737 
5738 int64_t pptri(
5739  lapack::Uplo uplo, int64_t n,
5740  std::complex<float>* AP );
5741 
5742 int64_t pptri(
5743  lapack::Uplo uplo, int64_t n,
5744  std::complex<double>* AP );
5745 
5746 // -----------------------------------------------------------------------------
5747 int64_t pptrs(
5748  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5749  float const* AP,
5750  float* B, int64_t ldb );
5751 
5752 int64_t pptrs(
5753  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5754  double const* AP,
5755  double* B, int64_t ldb );
5756 
5757 int64_t pptrs(
5758  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5759  std::complex<float> const* AP,
5760  std::complex<float>* B, int64_t ldb );
5761 
5762 int64_t pptrs(
5763  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5764  std::complex<double> const* AP,
5765  std::complex<double>* B, int64_t ldb );
5766 
5767 // -----------------------------------------------------------------------------
5768 int64_t pstrf(
5769  lapack::Uplo uplo, int64_t n,
5770  float* A, int64_t lda,
5771  int64_t* piv,
5772  int64_t* rank, float tol );
5773 
5774 int64_t pstrf(
5775  lapack::Uplo uplo, int64_t n,
5776  double* A, int64_t lda,
5777  int64_t* piv,
5778  int64_t* rank, double tol );
5779 
5780 int64_t pstrf(
5781  lapack::Uplo uplo, int64_t n,
5782  std::complex<float>* A, int64_t lda,
5783  int64_t* piv,
5784  int64_t* rank, float tol );
5785 
5786 int64_t pstrf(
5787  lapack::Uplo uplo, int64_t n,
5788  std::complex<double>* A, int64_t lda,
5789  int64_t* piv,
5790  int64_t* rank, double tol );
5791 
5792 // -----------------------------------------------------------------------------
5793 int64_t ptcon(
5794  int64_t n,
5795  float const* D,
5796  float const* E, float anorm,
5797  float* rcond );
5798 
5799 int64_t ptcon(
5800  int64_t n,
5801  double const* D,
5802  double const* E, double anorm,
5803  double* rcond );
5804 
5805 int64_t ptcon(
5806  int64_t n,
5807  float const* D,
5808  std::complex<float> const* E, float anorm,
5809  float* rcond );
5810 
5811 int64_t ptcon(
5812  int64_t n,
5813  double const* D,
5814  std::complex<double> const* E, double anorm,
5815  double* rcond );
5816 
5817 // -----------------------------------------------------------------------------
5818 int64_t pteqr(
5819  lapack::Job compz, int64_t n,
5820  float* D,
5821  float* E,
5822  float* Z, int64_t ldz );
5823 
5824 int64_t pteqr(
5825  lapack::Job compz, int64_t n,
5826  double* D,
5827  double* E,
5828  double* Z, int64_t ldz );
5829 
5830 int64_t pteqr(
5831  lapack::Job compz, int64_t n,
5832  float* D,
5833  float* E,
5834  std::complex<float>* Z, int64_t ldz );
5835 
5836 int64_t pteqr(
5837  lapack::Job compz, int64_t n,
5838  double* D,
5839  double* E,
5840  std::complex<double>* Z, int64_t ldz );
5841 
5842 // -----------------------------------------------------------------------------
5843 int64_t ptrfs(
5844  int64_t n, int64_t nrhs,
5845  float const* D,
5846  float const* E,
5847  float const* DF,
5848  float const* EF,
5849  float const* B, int64_t ldb,
5850  float* X, int64_t ldx,
5851  float* ferr,
5852  float* berr );
5853 
5854 // alias to match complex version (ignoring uplo)
5855 inline int64_t ptrfs(
5856  lapack::Uplo uplo,
5857  int64_t n, int64_t nrhs,
5858  float const* D,
5859  float const* E,
5860  float const* DF,
5861  float const* EF,
5862  float const* B, int64_t ldb,
5863  float* X, int64_t ldx,
5864  float* ferr,
5865  float* berr )
5866 {
5867  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5868 }
5869 
5870 int64_t ptrfs(
5871  int64_t n, int64_t nrhs,
5872  double const* D,
5873  double const* E,
5874  double const* DF,
5875  double const* EF,
5876  double const* B, int64_t ldb,
5877  double* X, int64_t ldx,
5878  double* ferr,
5879  double* berr );
5880 
5881 // alias to match complex version (ignoring uplo)
5882 inline int64_t ptrfs(
5883  lapack::Uplo uplo,
5884  int64_t n, int64_t nrhs,
5885  double const* D,
5886  double const* E,
5887  double const* DF,
5888  double const* EF,
5889  double const* B, int64_t ldb,
5890  double* X, int64_t ldx,
5891  double* ferr,
5892  double* berr )
5893 {
5894  return ptrfs( n, nrhs, D, E, DF, EF, B, ldb, X, ldx, ferr, berr );
5895 }
5896 
5897 int64_t ptrfs(
5898  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5899  float const* D,
5900  std::complex<float> const* E,
5901  float const* DF,
5902  std::complex<float> const* EF,
5903  std::complex<float> const* B, int64_t ldb,
5904  std::complex<float>* X, int64_t ldx,
5905  float* ferr,
5906  float* berr );
5907 
5908 int64_t ptrfs(
5909  lapack::Uplo uplo, int64_t n, int64_t nrhs,
5910  double const* D,
5911  std::complex<double> const* E,
5912  double const* DF,
5913  std::complex<double> const* EF,
5914  std::complex<double> const* B, int64_t ldb,
5915  std::complex<double>* X, int64_t ldx,
5916  double* ferr,
5917  double* berr );
5918 
5919 // -----------------------------------------------------------------------------
5920 int64_t ptsv(
5921  int64_t n, int64_t nrhs,
5922  float* D,
5923  float* E,
5924  float* B, int64_t ldb );
5925 
5926 int64_t ptsv(
5927  int64_t n, int64_t nrhs,
5928  double* D,
5929  double* E,
5930  double* B, int64_t ldb );
5931 
5932 int64_t ptsv(
5933  int64_t n, int64_t nrhs,
5934  float* D,
5935  std::complex<float>* E,
5936  std::complex<float>* B, int64_t ldb );
5937 
5938 int64_t ptsv(
5939  int64_t n, int64_t nrhs,
5940  double* D,
5941  std::complex<double>* E,
5942  std::complex<double>* B, int64_t ldb );
5943 
5944 // -----------------------------------------------------------------------------
5945 int64_t ptsvx(
5946  lapack::Factored fact, int64_t n, int64_t nrhs,
5947  float const* D,
5948  float const* E,
5949  float* DF,
5950  float* EF,
5951  float const* B, int64_t ldb,
5952  float* X, int64_t ldx,
5953  float* rcond,
5954  float* ferr,
5955  float* berr );
5956 
5957 int64_t ptsvx(
5958  lapack::Factored fact, int64_t n, int64_t nrhs,
5959  double const* D,
5960  double const* E,
5961  double* DF,
5962  double* EF,
5963  double const* B, int64_t ldb,
5964  double* X, int64_t ldx,
5965  double* rcond,
5966  double* ferr,
5967  double* berr );
5968 
5969 int64_t ptsvx(
5970  lapack::Factored fact, int64_t n, int64_t nrhs,
5971  float const* D,
5972  std::complex<float> const* E,
5973  float* DF,
5974  std::complex<float>* EF,
5975  std::complex<float> const* B, int64_t ldb,
5976  std::complex<float>* X, int64_t ldx,
5977  float* rcond,
5978  float* ferr,
5979  float* berr );
5980 
5981 int64_t ptsvx(
5982  lapack::Factored fact, int64_t n, int64_t nrhs,
5983  double const* D,
5984  std::complex<double> const* E,
5985  double* DF,
5986  std::complex<double>* EF,
5987  std::complex<double> const* B, int64_t ldb,
5988  std::complex<double>* X, int64_t ldx,
5989  double* rcond,
5990  double* ferr,
5991  double* berr );
5992 
5993 // -----------------------------------------------------------------------------
5994 int64_t pttrf(
5995  int64_t n,
5996  float* D,
5997  float* E );
5998 
5999 int64_t pttrf(
6000  int64_t n,
6001  double* D,
6002  double* E );
6003 
6004 int64_t pttrf(
6005  int64_t n,
6006  float* D,
6007  std::complex<float>* E );
6008 
6009 int64_t pttrf(
6010  int64_t n,
6011  double* D,
6012  std::complex<double>* E );
6013 
6014 // -----------------------------------------------------------------------------
6015 int64_t pttrs(
6016  int64_t n, int64_t nrhs,
6017  float const* D,
6018  float const* E,
6019  float* B, int64_t ldb );
6020 
6021 // alias with uplo to match complex (it is ignored)
6022 inline int64_t pttrs(
6023  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6024  float const* D,
6025  float const* E,
6026  float* B, int64_t ldb )
6027 {
6028  return pttrs( n, nrhs, D, E, B, ldb );
6029 }
6030 
6031 int64_t pttrs(
6032  int64_t n, int64_t nrhs,
6033  double const* D,
6034  double const* E,
6035  double* B, int64_t ldb );
6036 
6037 // alias with uplo to match complex (it is ignored)
6038 inline int64_t pttrs(
6039  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6040  double const* D,
6041  double const* E,
6042  double* B, int64_t ldb )
6043 {
6044  return pttrs( n, nrhs, D, E, B, ldb );
6045 }
6046 
6047 int64_t pttrs(
6048  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6049  float const* D,
6050  std::complex<float> const* E,
6051  std::complex<float>* B, int64_t ldb );
6052 
6053 int64_t pttrs(
6054  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6055  double const* D,
6056  std::complex<double> const* E,
6057  std::complex<double>* B, int64_t ldb );
6058 
6059 // -----------------------------------------------------------------------------
6060 int64_t sbev(
6061  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6062  float* AB, int64_t ldab,
6063  float* W,
6064  float* Z, int64_t ldz );
6065 
6066 // hbev alias to sbev
6067 inline int64_t hbev(
6068  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6069  float* AB, int64_t ldab,
6070  float* W,
6071  float* Z, int64_t ldz )
6072 {
6073  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6074 }
6075 
6076 int64_t sbev(
6077  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6078  double* AB, int64_t ldab,
6079  double* W,
6080  double* Z, int64_t ldz );
6081 
6082 // hbev alias to sbev
6083 inline int64_t hbev(
6084  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6085  double* AB, int64_t ldab,
6086  double* W,
6087  double* Z, int64_t ldz )
6088 {
6089  return sbev( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6090 }
6091 
6092 // -----------------------------------------------------------------------------
6093 int64_t sbev_2stage(
6094  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6095  float* AB, int64_t ldab,
6096  float* W,
6097  float* Z, int64_t ldz );
6098 
6099 // hbev_2stage alias to sbev_2stage
6100 inline int64_t hbev_2stage(
6101  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6102  float* AB, int64_t ldab,
6103  float* W,
6104  float* Z, int64_t ldz )
6105 {
6106  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6107 }
6108 
6109 int64_t sbev_2stage(
6110  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6111  double* AB, int64_t ldab,
6112  double* W,
6113  double* Z, int64_t ldz );
6114 
6115 // hbev_2stage alias to sbev_2stage
6116 inline int64_t hbev_2stage(
6117  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6118  double* AB, int64_t ldab,
6119  double* W,
6120  double* Z, int64_t ldz )
6121 {
6122  return sbev_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6123 }
6124 
6125 // -----------------------------------------------------------------------------
6126 int64_t sbevd(
6127  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6128  float* AB, int64_t ldab,
6129  float* W,
6130  float* Z, int64_t ldz );
6131 
6132 // hbevd alias to sbevd
6133 inline int64_t hbevd(
6134  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6135  float* AB, int64_t ldab,
6136  float* W,
6137  float* Z, int64_t ldz )
6138 {
6139  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6140 }
6141 
6142 int64_t sbevd(
6143  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6144  double* AB, int64_t ldab,
6145  double* W,
6146  double* Z, int64_t ldz );
6147 
6148 // hbevd alias to sbevd
6149 inline int64_t hbevd(
6150  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6151  double* AB, int64_t ldab,
6152  double* W,
6153  double* Z, int64_t ldz )
6154 {
6155  return sbevd( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6156 }
6157 
6158 // -----------------------------------------------------------------------------
6159 int64_t sbevd_2stage(
6160  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6161  float* AB, int64_t ldab,
6162  float* W,
6163  float* Z, int64_t ldz );
6164 
6165 // hbevd_2stage alias to sbevd_2stage
6166 inline int64_t hbevd_2stage(
6167  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6168  float* AB, int64_t ldab,
6169  float* W,
6170  float* Z, int64_t ldz )
6171 {
6172  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6173 }
6174 
6175 int64_t sbevd_2stage(
6176  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6177  double* AB, int64_t ldab,
6178  double* W,
6179  double* Z, int64_t ldz );
6180 
6181 // hbevd_2stage alias to sbevd_2stage
6182 inline int64_t hbevd_2stage(
6183  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6184  double* AB, int64_t ldab,
6185  double* W,
6186  double* Z, int64_t ldz )
6187 {
6188  return sbevd_2stage( jobz, uplo, n, kd, AB, ldab, W, Z, ldz );
6189 }
6190 
6191 // -----------------------------------------------------------------------------
6192 int64_t sbevx(
6193  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6194  float* AB, int64_t ldab,
6195  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6196  int64_t* m,
6197  float* W,
6198  float* Z, int64_t ldz,
6199  int64_t* ifail );
6200 
6201 // hbevx alias to sbevx
6202 inline int64_t hbevx(
6203  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6204  float* AB, int64_t ldab,
6205  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6206  int64_t* m,
6207  float* W,
6208  float* Z, int64_t ldz,
6209  int64_t* ifail )
6210 {
6211  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6212 }
6213 
6214 int64_t sbevx(
6215  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6216  double* AB, int64_t ldab,
6217  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6218  int64_t* m,
6219  double* W,
6220  double* Z, int64_t ldz,
6221  int64_t* ifail );
6222 
6223 // hbevx alias to sbevx
6224 inline int64_t hbevx(
6225  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6226  double* AB, int64_t ldab,
6227  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6228  int64_t* m,
6229  double* W,
6230  double* Z, int64_t ldz,
6231  int64_t* ifail )
6232 {
6233  return sbevx( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6234 }
6235 
6236 // -----------------------------------------------------------------------------
6237 int64_t sbevx_2stage(
6238  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6239  float* AB, int64_t ldab,
6240  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6241  int64_t* m,
6242  float* W,
6243  float* Z, int64_t ldz,
6244  int64_t* ifail );
6245 
6246 // hbevx_2stage alias to sbevx_2stage
6247 inline int64_t hbevx_2stage(
6248  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6249  float* AB, int64_t ldab,
6250  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6251  int64_t* m,
6252  float* W,
6253  float* Z, int64_t ldz,
6254  int64_t* ifail )
6255 {
6256  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6257 }
6258 
6259 int64_t sbevx_2stage(
6260  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6261  double* AB, int64_t ldab,
6262  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6263  int64_t* m,
6264  double* W,
6265  double* Z, int64_t ldz,
6266  int64_t* ifail );
6267 
6268 // hbevx_2stage alias to sbevx_2stage
6269 inline int64_t hbevx_2stage(
6270  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t kd,
6271  double* AB, int64_t ldab,
6272  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6273  int64_t* m,
6274  double* W,
6275  double* Z, int64_t ldz,
6276  int64_t* ifail )
6277 {
6278  return sbevx_2stage( jobz, range, uplo, n, kd, AB, ldab, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6279 }
6280 
6281 // -----------------------------------------------------------------------------
6282 int64_t sbgst(
6283  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6284  float* AB, int64_t ldab,
6285  float const* BB, int64_t ldbb,
6286  float* X, int64_t ldx );
6287 
6288 // hbgst alias to sbgst
6289 inline int64_t hbgst(
6290  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6291  float* AB, int64_t ldab,
6292  float const* BB, int64_t ldbb,
6293  float* X, int64_t ldx )
6294 {
6295  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6296 }
6297 
6298 int64_t sbgst(
6299  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6300  double* AB, int64_t ldab,
6301  double const* BB, int64_t ldbb,
6302  double* X, int64_t ldx );
6303 
6304 // hbgst alias to sbgst
6305 inline int64_t hbgst(
6306  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6307  double* AB, int64_t ldab,
6308  double const* BB, int64_t ldbb,
6309  double* X, int64_t ldx )
6310 {
6311  return sbgst( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, X, ldx );
6312 }
6313 
6314 // -----------------------------------------------------------------------------
6315 int64_t sbgv(
6316  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6317  float* AB, int64_t ldab,
6318  float* BB, int64_t ldbb,
6319  float* W,
6320  float* Z, int64_t ldz );
6321 
6322 // hbgv alias to sbgv
6323 inline int64_t hbgv(
6324  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6325  float* AB, int64_t ldab,
6326  float* BB, int64_t ldbb,
6327  float* W,
6328  float* Z, int64_t ldz )
6329 {
6330  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6331 }
6332 
6333 int64_t sbgv(
6334  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6335  double* AB, int64_t ldab,
6336  double* BB, int64_t ldbb,
6337  double* W,
6338  double* Z, int64_t ldz );
6339 
6340 // hbgv alias to sbgv
6341 inline int64_t hbgv(
6342  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6343  double* AB, int64_t ldab,
6344  double* BB, int64_t ldbb,
6345  double* W,
6346  double* Z, int64_t ldz )
6347 {
6348  return sbgv( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6349 }
6350 
6351 // -----------------------------------------------------------------------------
6352 int64_t sbgvd(
6353  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6354  float* AB, int64_t ldab,
6355  float* BB, int64_t ldbb,
6356  float* W,
6357  float* Z, int64_t ldz );
6358 
6359 // hbgvd alias to sbgvd
6360 inline int64_t hbgvd(
6361  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6362  float* AB, int64_t ldab,
6363  float* BB, int64_t ldbb,
6364  float* W,
6365  float* Z, int64_t ldz )
6366 {
6367  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6368 }
6369 
6370 int64_t sbgvd(
6371  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6372  double* AB, int64_t ldab,
6373  double* BB, int64_t ldbb,
6374  double* W,
6375  double* Z, int64_t ldz );
6376 
6377 // hbgvd alias to sbgvd
6378 inline int64_t hbgvd(
6379  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6380  double* AB, int64_t ldab,
6381  double* BB, int64_t ldbb,
6382  double* W,
6383  double* Z, int64_t ldz )
6384 {
6385  return sbgvd( jobz, uplo, n, ka, kb, AB, ldab, BB, ldbb, W, Z, ldz );
6386 }
6387 
6388 // -----------------------------------------------------------------------------
6389 int64_t sbgvx(
6390  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6391  float* AB, int64_t ldab,
6392  float* BB, int64_t ldbb,
6393  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6394  int64_t* m,
6395  float* W,
6396  float* Z, int64_t ldz,
6397  int64_t* ifail );
6398 
6399 // hbgvx alias to sbgvx
6400 inline int64_t hbgvx(
6401  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6402  float* AB, int64_t ldab,
6403  float* BB, int64_t ldbb,
6404  float* Q, int64_t ldq, float vl, float vu, int64_t il, int64_t iu, float abstol,
6405  int64_t* m,
6406  float* W,
6407  float* Z, int64_t ldz,
6408  int64_t* ifail )
6409 {
6410  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6411 }
6412 
6413 int64_t sbgvx(
6414  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6415  double* AB, int64_t ldab,
6416  double* BB, int64_t ldbb,
6417  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6418  int64_t* m,
6419  double* W,
6420  double* Z, int64_t ldz,
6421  int64_t* ifail );
6422 
6423 // hbgvx alias to sbgvx
6424 inline int64_t hbgvx(
6425  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, int64_t ka, int64_t kb,
6426  double* AB, int64_t ldab,
6427  double* BB, int64_t ldbb,
6428  double* Q, int64_t ldq, double vl, double vu, int64_t il, int64_t iu, double abstol,
6429  int64_t* m,
6430  double* W,
6431  double* Z, int64_t ldz,
6432  int64_t* ifail )
6433 {
6434  return sbgvx( jobz, range, uplo, n, ka, kb, AB, ldab, BB, ldbb, Q, ldq, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6435 }
6436 
6437 // -----------------------------------------------------------------------------
6438 int64_t sbtrd(
6439  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6440  float* AB, int64_t ldab,
6441  float* D,
6442  float* E,
6443  float* Q, int64_t ldq );
6444 
6445 // hbtrd alias to sbtrd
6446 inline int64_t hbtrd(
6447  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6448  float* AB, int64_t ldab,
6449  float* D,
6450  float* E,
6451  float* Q, int64_t ldq )
6452 {
6453  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6454 }
6455 
6456 int64_t sbtrd(
6457  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6458  double* AB, int64_t ldab,
6459  double* D,
6460  double* E,
6461  double* Q, int64_t ldq );
6462 
6463 // hbtrd alias to sbtrd
6464 inline int64_t hbtrd(
6465  lapack::Job jobz, lapack::Uplo uplo, int64_t n, int64_t kd,
6466  double* AB, int64_t ldab,
6467  double* D,
6468  double* E,
6469  double* Q, int64_t ldq )
6470 {
6471  return sbtrd( jobz, uplo, n, kd, AB, ldab, D, E, Q, ldq );
6472 }
6473 
6474 // -----------------------------------------------------------------------------
6475 void sfrk(
6476  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, float alpha,
6477  float const* A, int64_t lda, float beta,
6478  float* C );
6479 
6480 void sfrk(
6481  lapack::Op transr, lapack::Uplo uplo, lapack::Op trans, int64_t n, int64_t k, double alpha,
6482  double const* A, int64_t lda, double beta,
6483  double* C );
6484 
6485 // -----------------------------------------------------------------------------
6486 int64_t spcon(
6487  lapack::Uplo uplo, int64_t n,
6488  float const* AP,
6489  int64_t const* ipiv, float anorm,
6490  float* rcond );
6491 
6492 // hpcon alias to spcon
6493 inline int64_t hpcon(
6494  lapack::Uplo uplo, int64_t n,
6495  float const* AP,
6496  int64_t const* ipiv, float anorm,
6497  float* rcond )
6498 {
6499  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6500 }
6501 
6502 int64_t spcon(
6503  lapack::Uplo uplo, int64_t n,
6504  double const* AP,
6505  int64_t const* ipiv, double anorm,
6506  double* rcond );
6507 
6508 // hpcon alias to spcon
6509 inline int64_t hpcon(
6510  lapack::Uplo uplo, int64_t n,
6511  double const* AP,
6512  int64_t const* ipiv, double anorm,
6513  double* rcond )
6514 {
6515  return spcon( uplo, n, AP, ipiv, anorm, rcond );
6516 }
6517 
6518 int64_t spcon(
6519  lapack::Uplo uplo, int64_t n,
6520  std::complex<float> const* AP,
6521  int64_t const* ipiv, float anorm,
6522  float* rcond );
6523 
6524 int64_t spcon(
6525  lapack::Uplo uplo, int64_t n,
6526  std::complex<double> const* AP,
6527  int64_t const* ipiv, double anorm,
6528  double* rcond );
6529 
6530 // -----------------------------------------------------------------------------
6531 int64_t spev(
6532  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6533  float* AP,
6534  float* W,
6535  float* Z, int64_t ldz );
6536 
6537 // hpev alias to spev
6538 inline int64_t hpev(
6539  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6540  float* AP,
6541  float* W,
6542  float* Z, int64_t ldz )
6543 {
6544  return spev( jobz, uplo, n, AP, W, Z, ldz );
6545 }
6546 
6547 int64_t spev(
6548  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6549  double* AP,
6550  double* W,
6551  double* Z, int64_t ldz );
6552 
6553 // hpev alias to spev
6554 inline int64_t hpev(
6555  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6556  double* AP,
6557  double* W,
6558  double* Z, int64_t ldz )
6559 {
6560  return spev( jobz, uplo, n, AP, W, Z, ldz );
6561 }
6562 
6563 // -----------------------------------------------------------------------------
6564 int64_t spevd(
6565  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6566  float* AP,
6567  float* W,
6568  float* Z, int64_t ldz );
6569 
6570 // hpevd alias to spevd
6571 inline int64_t hpevd(
6572  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6573  float* AP,
6574  float* W,
6575  float* Z, int64_t ldz )
6576 {
6577  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6578 }
6579 
6580 int64_t spevd(
6581  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6582  double* AP,
6583  double* W,
6584  double* Z, int64_t ldz );
6585 
6586 // hpevd alias to spevd
6587 inline int64_t hpevd(
6588  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6589  double* AP,
6590  double* W,
6591  double* Z, int64_t ldz )
6592 {
6593  return spevd( jobz, uplo, n, AP, W, Z, ldz );
6594 }
6595 
6596 // -----------------------------------------------------------------------------
6597 int64_t spevx(
6598  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6599  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6600  int64_t* m,
6601  float* W,
6602  float* Z, int64_t ldz,
6603  int64_t* ifail );
6604 
6605 // hpevx alias to spevx
6606 inline int64_t hpevx(
6607  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6608  float* AP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6609  int64_t* m,
6610  float* W,
6611  float* Z, int64_t ldz,
6612  int64_t* ifail )
6613 {
6614  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6615 }
6616 
6617 int64_t spevx(
6618  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6619  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6620  int64_t* m,
6621  double* W,
6622  double* Z, int64_t ldz,
6623  int64_t* ifail );
6624 
6625 // hpevx alias to spevx
6626 inline int64_t hpevx(
6627  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6628  double* AP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6629  int64_t* m,
6630  double* W,
6631  double* Z, int64_t ldz,
6632  int64_t* ifail )
6633 {
6634  return spevx( jobz, range, uplo, n, AP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6635 }
6636 
6637 // -----------------------------------------------------------------------------
6638 int64_t spgst(
6639  int64_t itype, lapack::Uplo uplo, int64_t n,
6640  float* AP,
6641  float const* BP );
6642 
6643 // hpgst alias to spgst
6644 inline int64_t hpgst(
6645  int64_t itype, lapack::Uplo uplo, int64_t n,
6646  float* AP,
6647  float const* BP )
6648 {
6649  return spgst( itype, uplo, n, AP, BP );
6650 }
6651 
6652 int64_t spgst(
6653  int64_t itype, lapack::Uplo uplo, int64_t n,
6654  double* AP,
6655  double const* BP );
6656 
6657 // hpgst alias to spgst
6658 inline int64_t hpgst(
6659  int64_t itype, lapack::Uplo uplo, int64_t n,
6660  double* AP,
6661  double const* BP )
6662 {
6663  return spgst( itype, uplo, n, AP, BP );
6664 }
6665 
6666 // -----------------------------------------------------------------------------
6667 int64_t spgv(
6668  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6669  float* AP,
6670  float* BP,
6671  float* W,
6672  float* Z, int64_t ldz );
6673 
6674 // hpgv alias to spgv
6675 inline int64_t hpgv(
6676  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6677  float* AP,
6678  float* BP,
6679  float* W,
6680  float* Z, int64_t ldz )
6681 {
6682  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6683 }
6684 
6685 int64_t spgv(
6686  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6687  double* AP,
6688  double* BP,
6689  double* W,
6690  double* Z, int64_t ldz );
6691 
6692 // hpgv alias to spgv
6693 inline int64_t hpgv(
6694  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6695  double* AP,
6696  double* BP,
6697  double* W,
6698  double* Z, int64_t ldz )
6699 {
6700  return spgv( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6701 }
6702 
6703 // -----------------------------------------------------------------------------
6704 int64_t spgvd(
6705  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6706  float* AP,
6707  float* BP,
6708  float* W,
6709  float* Z, int64_t ldz );
6710 
6711 // hpgvd alias to spgvd
6712 inline int64_t hpgvd(
6713  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6714  float* AP,
6715  float* BP,
6716  float* W,
6717  float* Z, int64_t ldz )
6718 {
6719  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6720 }
6721 
6722 int64_t spgvd(
6723  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6724  double* AP,
6725  double* BP,
6726  double* W,
6727  double* Z, int64_t ldz );
6728 
6729 // hpgvd alias to spgvd
6730 inline int64_t hpgvd(
6731  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
6732  double* AP,
6733  double* BP,
6734  double* W,
6735  double* Z, int64_t ldz )
6736 {
6737  return spgvd( itype, jobz, uplo, n, AP, BP, W, Z, ldz );
6738 }
6739 
6740 // -----------------------------------------------------------------------------
6741 int64_t spgvx(
6742  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6743  float* AP,
6744  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6745  int64_t* m,
6746  float* W,
6747  float* Z, int64_t ldz,
6748  int64_t* ifail );
6749 
6750 // hpgvx alias to spgvx
6751 inline int64_t hpgvx(
6752  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6753  float* AP,
6754  float* BP, float vl, float vu, int64_t il, int64_t iu, float abstol,
6755  int64_t* m,
6756  float* W,
6757  float* Z, int64_t ldz,
6758  int64_t* ifail )
6759 {
6760  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6761 }
6762 
6763 int64_t spgvx(
6764  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6765  double* AP,
6766  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6767  int64_t* m,
6768  double* W,
6769  double* Z, int64_t ldz,
6770  int64_t* ifail );
6771 
6772 // hpgvx alias to spgvx
6773 inline int64_t hpgvx(
6774  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
6775  double* AP,
6776  double* BP, double vl, double vu, int64_t il, int64_t iu, double abstol,
6777  int64_t* m,
6778  double* W,
6779  double* Z, int64_t ldz,
6780  int64_t* ifail )
6781 {
6782  return spgvx( itype, jobz, range, uplo, n, AP, BP, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
6783 }
6784 
6785 // -----------------------------------------------------------------------------
6786 int64_t sprfs(
6787  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6788  float const* AP,
6789  float const* AFP,
6790  int64_t const* ipiv,
6791  float const* B, int64_t ldb,
6792  float* X, int64_t ldx,
6793  float* ferr,
6794  float* berr );
6795 
6796 // hprfs alias to sprfs
6797 inline int64_t hprfs(
6798  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6799  float const* AP,
6800  float const* AFP,
6801  int64_t const* ipiv,
6802  float const* B, int64_t ldb,
6803  float* X, int64_t ldx,
6804  float* ferr,
6805  float* berr )
6806 {
6807  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6808 }
6809 
6810 int64_t sprfs(
6811  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6812  double const* AP,
6813  double const* AFP,
6814  int64_t const* ipiv,
6815  double const* B, int64_t ldb,
6816  double* X, int64_t ldx,
6817  double* ferr,
6818  double* berr );
6819 
6820 // hprfs alias to sprfs
6821 inline int64_t hprfs(
6822  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6823  double const* AP,
6824  double const* AFP,
6825  int64_t const* ipiv,
6826  double const* B, int64_t ldb,
6827  double* X, int64_t ldx,
6828  double* ferr,
6829  double* berr )
6830 {
6831  return sprfs( uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, ferr, berr );
6832 }
6833 
6834 int64_t sprfs(
6835  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6836  std::complex<float> const* AP,
6837  std::complex<float> const* AFP,
6838  int64_t const* ipiv,
6839  std::complex<float> const* B, int64_t ldb,
6840  std::complex<float>* X, int64_t ldx,
6841  float* ferr,
6842  float* berr );
6843 
6844 int64_t sprfs(
6845  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6846  std::complex<double> const* AP,
6847  std::complex<double> const* AFP,
6848  int64_t const* ipiv,
6849  std::complex<double> const* B, int64_t ldb,
6850  std::complex<double>* X, int64_t ldx,
6851  double* ferr,
6852  double* berr );
6853 
6854 // -----------------------------------------------------------------------------
6855 int64_t spsv(
6856  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6857  float* AP,
6858  int64_t* ipiv,
6859  float* B, int64_t ldb );
6860 
6861 // hpsv alias to spsv
6862 inline int64_t hpsv(
6863  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6864  float* AP,
6865  int64_t* ipiv,
6866  float* B, int64_t ldb )
6867 {
6868  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6869 }
6870 
6871 int64_t spsv(
6872  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6873  double* AP,
6874  int64_t* ipiv,
6875  double* B, int64_t ldb );
6876 
6877 // hpsv alias to spsv
6878 inline int64_t hpsv(
6879  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6880  double* AP,
6881  int64_t* ipiv,
6882  double* B, int64_t ldb )
6883 {
6884  return spsv( uplo, n, nrhs, AP, ipiv, B, ldb );
6885 }
6886 
6887 int64_t spsv(
6888  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6889  std::complex<float>* AP,
6890  int64_t* ipiv,
6891  std::complex<float>* B, int64_t ldb );
6892 
6893 int64_t spsv(
6894  lapack::Uplo uplo, int64_t n, int64_t nrhs,
6895  std::complex<double>* AP,
6896  int64_t* ipiv,
6897  std::complex<double>* B, int64_t ldb );
6898 
6899 // -----------------------------------------------------------------------------
6900 int64_t spsvx(
6901  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6902  float const* AP,
6903  float* AFP,
6904  int64_t* ipiv,
6905  float const* B, int64_t ldb,
6906  float* X, int64_t ldx,
6907  float* rcond,
6908  float* ferr,
6909  float* berr );
6910 
6911 // hpsvx alias to spsvx
6912 inline int64_t hpsvx(
6913  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6914  float const* AP,
6915  float* AFP,
6916  int64_t* ipiv,
6917  float const* B, int64_t ldb,
6918  float* X, int64_t ldx,
6919  float* rcond,
6920  float* ferr,
6921  float* berr )
6922 {
6923  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6924 }
6925 
6926 int64_t spsvx(
6927  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6928  double const* AP,
6929  double* AFP,
6930  int64_t* ipiv,
6931  double const* B, int64_t ldb,
6932  double* X, int64_t ldx,
6933  double* rcond,
6934  double* ferr,
6935  double* berr );
6936 
6937 // hpsvx alias to spsvx
6938 inline int64_t hpsvx(
6939  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6940  double const* AP,
6941  double* AFP,
6942  int64_t* ipiv,
6943  double const* B, int64_t ldb,
6944  double* X, int64_t ldx,
6945  double* rcond,
6946  double* ferr,
6947  double* berr )
6948 {
6949  return spsvx( fact, uplo, n, nrhs, AP, AFP, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
6950 }
6951 
6952 int64_t spsvx(
6953  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6954  std::complex<float> const* AP,
6955  std::complex<float>* AFP,
6956  int64_t* ipiv,
6957  std::complex<float> const* B, int64_t ldb,
6958  std::complex<float>* X, int64_t ldx,
6959  float* rcond,
6960  float* ferr,
6961  float* berr );
6962 
6963 int64_t spsvx(
6964  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
6965  std::complex<double> const* AP,
6966  std::complex<double>* AFP,
6967  int64_t* ipiv,
6968  std::complex<double> const* B, int64_t ldb,
6969  std::complex<double>* X, int64_t ldx,
6970  double* rcond,
6971  double* ferr,
6972  double* berr );
6973 
6974 // -----------------------------------------------------------------------------
6975 int64_t sptrd(
6976  lapack::Uplo uplo, int64_t n,
6977  float* AP,
6978  float* D,
6979  float* E,
6980  float* tau );
6981 
6982 // hptrd alias to sptrd
6983 inline int64_t hptrd(
6984  lapack::Uplo uplo, int64_t n,
6985  float* AP,
6986  float* D,
6987  float* E,
6988  float* tau )
6989 {
6990  return sptrd( uplo, n, AP, D, E, tau );
6991 }
6992 
6993 int64_t sptrd(
6994  lapack::Uplo uplo, int64_t n,
6995  double* AP,
6996  double* D,
6997  double* E,
6998  double* tau );
6999 
7000 // hptrd alias to sptrd
7001 inline int64_t hptrd(
7002  lapack::Uplo uplo, int64_t n,
7003  double* AP,
7004  double* D,
7005  double* E,
7006  double* tau )
7007 {
7008  return sptrd( uplo, n, AP, D, E, tau );
7009 }
7010 
7011 // -----------------------------------------------------------------------------
7012 int64_t sptrf(
7013  lapack::Uplo uplo, int64_t n,
7014  float* AP,
7015  int64_t* ipiv );
7016 
7017 // hptrf alias to sptrf
7018 inline int64_t hptrf(
7019  lapack::Uplo uplo, int64_t n,
7020  float* AP,
7021  int64_t* ipiv )
7022 {
7023  return sptrf( uplo, n, AP, ipiv );
7024 }
7025 
7026 int64_t sptrf(
7027  lapack::Uplo uplo, int64_t n,
7028  double* AP,
7029  int64_t* ipiv );
7030 
7031 // hptrf alias to sptrf
7032 inline int64_t hptrf(
7033  lapack::Uplo uplo, int64_t n,
7034  double* AP,
7035  int64_t* ipiv )
7036 {
7037  return sptrf( uplo, n, AP, ipiv );
7038 }
7039 
7040 int64_t sptrf(
7041  lapack::Uplo uplo, int64_t n,
7042  std::complex<float>* AP,
7043  int64_t* ipiv );
7044 
7045 int64_t sptrf(
7046  lapack::Uplo uplo, int64_t n,
7047  std::complex<double>* AP,
7048  int64_t* ipiv );
7049 
7050 // -----------------------------------------------------------------------------
7051 int64_t sptri(
7052  lapack::Uplo uplo, int64_t n,
7053  float* AP,
7054  int64_t const* ipiv );
7055 
7056 // hptri alias to sptri
7057 inline int64_t hptri(
7058  lapack::Uplo uplo, int64_t n,
7059  float* AP,
7060  int64_t const* ipiv )
7061 {
7062  return sptri( uplo, n, AP, ipiv );
7063 }
7064 
7065 int64_t sptri(
7066  lapack::Uplo uplo, int64_t n,
7067  double* AP,
7068  int64_t const* ipiv );
7069 
7070 // hptri alias to sptri
7071 inline int64_t hptri(
7072  lapack::Uplo uplo, int64_t n,
7073  double* AP,
7074  int64_t const* ipiv )
7075 {
7076  return sptri( uplo, n, AP, ipiv );
7077 }
7078 
7079 int64_t sptri(
7080  lapack::Uplo uplo, int64_t n,
7081  std::complex<float>* AP,
7082  int64_t const* ipiv );
7083 
7084 int64_t sptri(
7085  lapack::Uplo uplo, int64_t n,
7086  std::complex<double>* AP,
7087  int64_t const* ipiv );
7088 
7089 // -----------------------------------------------------------------------------
7090 int64_t sptrs(
7091  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7092  float const* AP,
7093  int64_t const* ipiv,
7094  float* B, int64_t ldb );
7095 
7096 // hptrs alias to sptrs
7097 inline int64_t hptrs(
7098  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7099  float const* AP,
7100  int64_t const* ipiv,
7101  float* B, int64_t ldb )
7102 {
7103  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7104 }
7105 
7106 int64_t sptrs(
7107  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7108  double const* AP,
7109  int64_t const* ipiv,
7110  double* B, int64_t ldb );
7111 
7112 // hptrs alias to sptrs
7113 inline int64_t hptrs(
7114  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7115  double const* AP,
7116  int64_t const* ipiv,
7117  double* B, int64_t ldb )
7118 {
7119  return sptrs( uplo, n, nrhs, AP, ipiv, B, ldb );
7120 }
7121 
7122 int64_t sptrs(
7123  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7124  std::complex<float> const* AP,
7125  int64_t const* ipiv,
7126  std::complex<float>* B, int64_t ldb );
7127 
7128 int64_t sptrs(
7129  lapack::Uplo uplo, int64_t n, int64_t nrhs,
7130  std::complex<double> const* AP,
7131  int64_t const* ipiv,
7132  std::complex<double>* B, int64_t ldb );
7133 
7134 // -----------------------------------------------------------------------------
7135 int64_t stedc(
7136  lapack::Job compz, int64_t n,
7137  float* D,
7138  float* E,
7139  float* Z, int64_t ldz );
7140 
7141 int64_t stedc(
7142  lapack::Job compz, int64_t n,
7143  double* D,
7144  double* E,
7145  double* Z, int64_t ldz );
7146 
7147 int64_t stedc(
7148  lapack::Job compz, int64_t n,
7149  float* D,
7150  float* E,
7151  std::complex<float>* Z, int64_t ldz );
7152 
7153 int64_t stedc(
7154  lapack::Job compz, int64_t n,
7155  double* D,
7156  double* E,
7157  std::complex<double>* Z, int64_t ldz );
7158 
7159 // -----------------------------------------------------------------------------
7160 int64_t stegr(
7161  lapack::Job jobz, lapack::Range range, int64_t n,
7162  float* D,
7163  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7164  int64_t* m,
7165  float* W,
7166  float* Z, int64_t ldz,
7167  int64_t* isuppz );
7168 
7169 int64_t stegr(
7170  lapack::Job jobz, lapack::Range range, int64_t n,
7171  double* D,
7172  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7173  int64_t* m,
7174  double* W,
7175  double* Z, int64_t ldz,
7176  int64_t* isuppz );
7177 
7178 int64_t stegr(
7179  lapack::Job jobz, lapack::Range range, int64_t n,
7180  float* D,
7181  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7182  int64_t* m,
7183  float* W,
7184  std::complex<float>* Z, int64_t ldz,
7185  int64_t* isuppz );
7186 
7187 int64_t stegr(
7188  lapack::Job jobz, lapack::Range range, int64_t n,
7189  double* D,
7190  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7191  int64_t* m,
7192  double* W,
7193  std::complex<double>* Z, int64_t ldz,
7194  int64_t* isuppz );
7195 
7196 // -----------------------------------------------------------------------------
7197 int64_t stein(
7198  int64_t n,
7199  float const* D,
7200  float const* E, int64_t m,
7201  float const* W,
7202  int64_t const* iblock,
7203  int64_t const* isplit,
7204  float* Z, int64_t ldz,
7205  int64_t* ifail );
7206 
7207 int64_t stein(
7208  int64_t n,
7209  double const* D,
7210  double const* E, int64_t m,
7211  double const* W,
7212  int64_t const* iblock,
7213  int64_t const* isplit,
7214  double* Z, int64_t ldz,
7215  int64_t* ifail );
7216 
7217 int64_t stein(
7218  int64_t n,
7219  float const* D,
7220  float const* E, int64_t m,
7221  float const* W,
7222  int64_t const* iblock,
7223  int64_t const* isplit,
7224  std::complex<float>* Z, int64_t ldz,
7225  int64_t* ifail );
7226 
7227 int64_t stein(
7228  int64_t n,
7229  double const* D,
7230  double const* E, int64_t m,
7231  double const* W,
7232  int64_t const* iblock,
7233  int64_t const* isplit,
7234  std::complex<double>* Z, int64_t ldz,
7235  int64_t* ifail );
7236 
7237 // -----------------------------------------------------------------------------
7238 int64_t stemr(
7239  lapack::Job jobz, lapack::Range range, int64_t n,
7240  float* D,
7241  float* E, float vl, float vu, int64_t il, int64_t iu,
7242  int64_t* m,
7243  float* W,
7244  float* Z, int64_t ldz, int64_t nzc,
7245  int64_t* isuppz,
7246  bool* tryrac );
7247 
7248 int64_t stemr(
7249  lapack::Job jobz, lapack::Range range, int64_t n,
7250  double* D,
7251  double* E, double vl, double vu, int64_t il, int64_t iu,
7252  int64_t* m,
7253  double* W,
7254  double* Z, int64_t ldz, int64_t nzc,
7255  int64_t* isuppz,
7256  bool* tryrac );
7257 
7258 int64_t stemr(
7259  lapack::Job jobz, lapack::Range range, int64_t n,
7260  float* D,
7261  float* E, float vl, float vu, int64_t il, int64_t iu,
7262  int64_t* m,
7263  float* W,
7264  std::complex<float>* Z, int64_t ldz, int64_t nzc,
7265  int64_t* isuppz,
7266  bool* tryrac );
7267 
7268 int64_t stemr(
7269  lapack::Job jobz, lapack::Range range, int64_t n,
7270  double* D,
7271  double* E, double vl, double vu, int64_t il, int64_t iu,
7272  int64_t* m,
7273  double* W,
7274  std::complex<double>* Z, int64_t ldz, int64_t nzc,
7275  int64_t* isuppz,
7276  bool* tryrac );
7277 
7278 // -----------------------------------------------------------------------------
7279 int64_t steqr(
7280  lapack::Job compz, int64_t n,
7281  float* D,
7282  float* E,
7283  float* Z, int64_t ldz );
7284 
7285 int64_t steqr(
7286  lapack::Job compz, int64_t n,
7287  double* D,
7288  double* E,
7289  double* Z, int64_t ldz );
7290 
7291 int64_t steqr(
7292  lapack::Job compz, int64_t n,
7293  float* D,
7294  float* E,
7295  std::complex<float>* Z, int64_t ldz );
7296 
7297 int64_t steqr(
7298  lapack::Job compz, int64_t n,
7299  double* D,
7300  double* E,
7301  std::complex<double>* Z, int64_t ldz );
7302 
7303 // -----------------------------------------------------------------------------
7304 int64_t sterf(
7305  int64_t n,
7306  float* D,
7307  float* E );
7308 
7309 int64_t sterf(
7310  int64_t n,
7311  double* D,
7312  double* E );
7313 
7314 // -----------------------------------------------------------------------------
7315 int64_t stev(
7316  lapack::Job jobz, int64_t n,
7317  float* D,
7318  float* E,
7319  float* Z, int64_t ldz );
7320 
7321 int64_t stev(
7322  lapack::Job jobz, int64_t n,
7323  double* D,
7324  double* E,
7325  double* Z, int64_t ldz );
7326 
7327 // -----------------------------------------------------------------------------
7328 int64_t stevd(
7329  lapack::Job jobz, int64_t n,
7330  float* D,
7331  float* E,
7332  float* Z, int64_t ldz );
7333 
7334 int64_t stevd(
7335  lapack::Job jobz, int64_t n,
7336  double* D,
7337  double* E,
7338  double* Z, int64_t ldz );
7339 
7340 // -----------------------------------------------------------------------------
7341 int64_t stevr(
7342  lapack::Job jobz, lapack::Range range, int64_t n,
7343  float* D,
7344  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7345  int64_t* m,
7346  float* W,
7347  float* Z, int64_t ldz,
7348  int64_t* isuppz );
7349 
7350 int64_t stevr(
7351  lapack::Job jobz, lapack::Range range, int64_t n,
7352  double* D,
7353  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7354  int64_t* m,
7355  double* W,
7356  double* Z, int64_t ldz,
7357  int64_t* isuppz );
7358 
7359 // -----------------------------------------------------------------------------
7360 int64_t stevx(
7361  lapack::Job jobz, lapack::Range range, int64_t n,
7362  float* D,
7363  float* E, float vl, float vu, int64_t il, int64_t iu, float abstol,
7364  int64_t* m,
7365  float* W,
7366  float* Z, int64_t ldz,
7367  int64_t* ifail );
7368 
7369 int64_t stevx(
7370  lapack::Job jobz, lapack::Range range, int64_t n,
7371  double* D,
7372  double* E, double vl, double vu, int64_t il, int64_t iu, double abstol,
7373  int64_t* m,
7374  double* W,
7375  double* Z, int64_t ldz,
7376  int64_t* ifail );
7377 
7378 // -----------------------------------------------------------------------------
7379 int64_t sycon(
7380  lapack::Uplo uplo, int64_t n,
7381  float const* A, int64_t lda,
7382  int64_t const* ipiv, float anorm,
7383  float* rcond );
7384 
7385 // hecon alias to sycon
7386 inline int64_t hecon(
7387  lapack::Uplo uplo, int64_t n,
7388  float const* A, int64_t lda,
7389  int64_t const* ipiv, float anorm,
7390  float* rcond )
7391 {
7392  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7393 }
7394 
7395 int64_t sycon(
7396  lapack::Uplo uplo, int64_t n,
7397  double const* A, int64_t lda,
7398  int64_t const* ipiv, double anorm,
7399  double* rcond );
7400 
7401 // hecon alias to sycon
7402 inline int64_t hecon(
7403  lapack::Uplo uplo, int64_t n,
7404  double const* A, int64_t lda,
7405  int64_t const* ipiv, double anorm,
7406  double* rcond )
7407 {
7408  return sycon( uplo, n, A, lda, ipiv, anorm, rcond );
7409 }
7410 
7411 int64_t sycon(
7412  lapack::Uplo uplo, int64_t n,
7413  std::complex<float> const* A, int64_t lda,
7414  int64_t const* ipiv, float anorm,
7415  float* rcond );
7416 
7417 int64_t sycon(
7418  lapack::Uplo uplo, int64_t n,
7419  std::complex<double> const* A, int64_t lda,
7420  int64_t const* ipiv, double anorm,
7421  double* rcond );
7422 
7423 // -----------------------------------------------------------------------------
7424 // sycon_rk wraps sycon_3
7425 int64_t sycon_rk(
7426  lapack::Uplo uplo, int64_t n,
7427  float const* A, int64_t lda,
7428  float const* E,
7429  int64_t const* ipiv, float anorm,
7430  float* rcond );
7431 
7432 // hecon_rk alias to sycon_rk
7433 inline int64_t hecon_rk(
7434  lapack::Uplo uplo, int64_t n,
7435  float const* A, int64_t lda,
7436  float const* E,
7437  int64_t const* ipiv, float anorm,
7438  float* rcond )
7439 {
7440  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7441 }
7442 
7443 int64_t sycon_rk(
7444  lapack::Uplo uplo, int64_t n,
7445  double const* A, int64_t lda,
7446  double const* E,
7447  int64_t const* ipiv, double anorm,
7448  double* rcond );
7449 
7450 // hecon_rk alias to sycon_rk
7451 inline int64_t hecon_rk(
7452  lapack::Uplo uplo, int64_t n,
7453  double const* A, int64_t lda,
7454  double const* E,
7455  int64_t const* ipiv, double anorm,
7456  double* rcond )
7457 {
7458  return sycon_rk( uplo, n, A, lda, E, ipiv, anorm, rcond );
7459 }
7460 
7461 int64_t sycon_rk(
7462  lapack::Uplo uplo, int64_t n,
7463  std::complex<float> const* A, int64_t lda,
7464  std::complex<float> const* E,
7465  int64_t const* ipiv, float anorm,
7466  float* rcond );
7467 
7468 int64_t sycon_rk(
7469  lapack::Uplo uplo, int64_t n,
7470  std::complex<double> const* A, int64_t lda,
7471  std::complex<double> const* E,
7472  int64_t const* ipiv, double anorm,
7473  double* rcond );
7474 
7475 // -----------------------------------------------------------------------------
7476 int64_t syequb(
7477  lapack::Uplo uplo, int64_t n,
7478  float const* A, int64_t lda,
7479  float* S,
7480  float* scond,
7481  float* amax );
7482 
7483 // heequb alias to syequb
7484 inline int64_t heequb(
7485  lapack::Uplo uplo, int64_t n,
7486  float const* A, int64_t lda,
7487  float* S,
7488  float* scond,
7489  float* amax )
7490 {
7491  return syequb( uplo, n, A, lda, S, scond, amax );
7492 }
7493 
7494 int64_t syequb(
7495  lapack::Uplo uplo, int64_t n,
7496  double const* A, int64_t lda,
7497  double* S,
7498  double* scond,
7499  double* amax );
7500 
7501 // heequb alias to syequb
7502 inline int64_t heequb(
7503  lapack::Uplo uplo, int64_t n,
7504  double const* A, int64_t lda,
7505  double* S,
7506  double* scond,
7507  double* amax )
7508 {
7509  return syequb( uplo, n, A, lda, S, scond, amax );
7510 }
7511 
7512 int64_t syequb(
7513  lapack::Uplo uplo, int64_t n,
7514  std::complex<float> const* A, int64_t lda,
7515  float* S,
7516  float* scond,
7517  float* amax );
7518 
7519 int64_t syequb(
7520  lapack::Uplo uplo, int64_t n,
7521  std::complex<double> const* A, int64_t lda,
7522  double* S,
7523  double* scond,
7524  double* amax );
7525 
7526 // -----------------------------------------------------------------------------
7527 int64_t syev(
7528  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7529  float* A, int64_t lda,
7530  float* W );
7531 
7532 // heev alias to syev
7533 inline int64_t heev(
7534  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7535  float* A, int64_t lda,
7536  float* W )
7537 {
7538  return syev( jobz, uplo, n, A, lda, W );
7539 }
7540 
7541 int64_t syev(
7542  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7543  double* A, int64_t lda,
7544  double* W );
7545 
7546 // heev alias to syev
7547 inline int64_t heev(
7548  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7549  double* A, int64_t lda,
7550  double* W )
7551 {
7552  return syev( jobz, uplo, n, A, lda, W );
7553 }
7554 
7555 // -----------------------------------------------------------------------------
7556 int64_t syev_2stage(
7557  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7558  float* A, int64_t lda,
7559  float* W );
7560 
7561 // heev_2stage alias to syev_2stage
7562 inline int64_t heev_2stage(
7563  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7564  float* A, int64_t lda,
7565  float* W )
7566 {
7567  return syev_2stage( jobz, uplo, n, A, lda, W );
7568 }
7569 
7570 int64_t syev_2stage(
7571  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7572  double* A, int64_t lda,
7573  double* W );
7574 
7575 // heev_2stage alias to syev_2stage
7576 inline int64_t heev_2stage(
7577  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7578  double* A, int64_t lda,
7579  double* W )
7580 {
7581  return syev_2stage( jobz, uplo, n, A, lda, W );
7582 }
7583 
7584 // -----------------------------------------------------------------------------
7585 int64_t syevd(
7586  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7587  float* A, int64_t lda,
7588  float* W );
7589 
7590 // heevd alias to syevd
7591 inline int64_t heevd(
7592  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7593  float* A, int64_t lda,
7594  float* W )
7595 {
7596  return syevd( jobz, uplo, n, A, lda, W );
7597 }
7598 
7599 int64_t syevd(
7600  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7601  double* A, int64_t lda,
7602  double* W );
7603 
7604 // heevd alias to syevd
7605 inline int64_t heevd(
7606  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7607  double* A, int64_t lda,
7608  double* W )
7609 {
7610  return syevd( jobz, uplo, n, A, lda, W );
7611 }
7612 
7613 // -----------------------------------------------------------------------------
7614 int64_t syevd_2stage(
7615  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7616  float* A, int64_t lda,
7617  float* W );
7618 
7619 // heevd_2stage alias to syevd_2stage
7620 inline int64_t heevd_2stage(
7621  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7622  float* A, int64_t lda,
7623  float* W )
7624 {
7625  return syevd_2stage( jobz, uplo, n, A, lda, W );
7626 }
7627 
7628 int64_t syevd_2stage(
7629  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7630  double* A, int64_t lda,
7631  double* W );
7632 
7633 // heevd_2stage alias to syevd_2stage
7634 inline int64_t heevd_2stage(
7635  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7636  double* A, int64_t lda,
7637  double* W )
7638 {
7639  return syevd_2stage( jobz, uplo, n, A, lda, W );
7640 }
7641 
7642 // -----------------------------------------------------------------------------
7643 int64_t syevr(
7644  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7645  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7646  int64_t* m,
7647  float* W,
7648  float* Z, int64_t ldz,
7649  int64_t* isuppz );
7650 
7651 // heevr alias to syevr
7652 inline int64_t heevr(
7653  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7654  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7655  int64_t* m,
7656  float* W,
7657  float* Z, int64_t ldz,
7658  int64_t* isuppz )
7659 {
7660  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7661 }
7662 
7663 int64_t syevr(
7664  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7665  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7666  int64_t* m,
7667  double* W,
7668  double* Z, int64_t ldz,
7669  int64_t* isuppz );
7670 
7671 // heevr alias to syevr
7672 inline int64_t heevr(
7673  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7674  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7675  int64_t* m,
7676  double* W,
7677  double* Z, int64_t ldz,
7678  int64_t* isuppz )
7679 {
7680  return syevr( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7681 }
7682 
7683 // -----------------------------------------------------------------------------
7684 int64_t syevr_2stage(
7685  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7686  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7687  int64_t* m,
7688  float* W,
7689  float* Z, int64_t ldz,
7690  int64_t* isuppz );
7691 
7692 // heevr_2stage alias to syevr_2stage
7693 inline int64_t heevr_2stage(
7694  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7695  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7696  int64_t* m,
7697  float* W,
7698  float* Z, int64_t ldz,
7699  int64_t* isuppz )
7700 {
7701  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7702 }
7703 
7704 int64_t syevr_2stage(
7705  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7706  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7707  int64_t* m,
7708  double* W,
7709  double* Z, int64_t ldz,
7710  int64_t* isuppz );
7711 
7712 // heevr_2stage alias to syevr_2stage
7713 inline int64_t heevr_2stage(
7714  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7715  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7716  int64_t* m,
7717  double* W,
7718  double* Z, int64_t ldz,
7719  int64_t* isuppz )
7720 {
7721  return syevr_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, isuppz );
7722 }
7723 
7724 // -----------------------------------------------------------------------------
7725 int64_t syevx(
7726  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7727  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7728  int64_t* m,
7729  float* W,
7730  float* Z, int64_t ldz,
7731  int64_t* ifail );
7732 
7733 // heevx alias to syevx
7734 inline int64_t heevx(
7735  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7736  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7737  int64_t* m,
7738  float* W,
7739  float* Z, int64_t ldz,
7740  int64_t* ifail )
7741 {
7742  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7743 }
7744 
7745 int64_t syevx(
7746  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7747  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7748  int64_t* m,
7749  double* W,
7750  double* Z, int64_t ldz,
7751  int64_t* ifail );
7752 
7753 // heevx alias to syevx
7754 inline int64_t heevx(
7755  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7756  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7757  int64_t* m,
7758  double* W,
7759  double* Z, int64_t ldz,
7760  int64_t* ifail )
7761 {
7762  return syevx( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7763 }
7764 
7765 // -----------------------------------------------------------------------------
7766 int64_t syevx_2stage(
7767  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7768  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7769  int64_t* m,
7770  float* W,
7771  float* Z, int64_t ldz,
7772  int64_t* ifail );
7773 
7774 // heevx_2stage alias to syevx_2stage
7775 inline int64_t heevx_2stage(
7776  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7777  float* A, int64_t lda, float vl, float vu, int64_t il, int64_t iu, float abstol,
7778  int64_t* m,
7779  float* W,
7780  float* Z, int64_t ldz,
7781  int64_t* ifail )
7782 {
7783  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7784 }
7785 
7786 int64_t syevx_2stage(
7787  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7788  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7789  int64_t* m,
7790  double* W,
7791  double* Z, int64_t ldz,
7792  int64_t* ifail );
7793 
7794 // heevx_2stage alias to syevx_2stage
7795 inline int64_t heevx_2stage(
7796  lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7797  double* A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol,
7798  int64_t* m,
7799  double* W,
7800  double* Z, int64_t ldz,
7801  int64_t* ifail )
7802 {
7803  return syevx_2stage( jobz, range, uplo, n, A, lda, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7804 }
7805 
7806 // -----------------------------------------------------------------------------
7807 int64_t sygst(
7808  int64_t itype, lapack::Uplo uplo, int64_t n,
7809  float* A, int64_t lda,
7810  float const* B, int64_t ldb );
7811 
7812 // hegst alias to sygst
7813 inline int64_t hegst(
7814  int64_t itype, lapack::Uplo uplo, int64_t n,
7815  float* A, int64_t lda,
7816  float const* B, int64_t ldb )
7817 {
7818  return sygst( itype, uplo, n, A, lda, B, ldb );
7819 }
7820 
7821 int64_t sygst(
7822  int64_t itype, lapack::Uplo uplo, int64_t n,
7823  double* A, int64_t lda,
7824  double const* B, int64_t ldb );
7825 
7826 // hegst alias to sygst
7827 inline int64_t hegst(
7828  int64_t itype, lapack::Uplo uplo, int64_t n,
7829  double* A, int64_t lda,
7830  double const* B, int64_t ldb )
7831 {
7832  return sygst( itype, uplo, n, A, lda, B, ldb );
7833 }
7834 
7835 // -----------------------------------------------------------------------------
7836 int64_t sygv(
7837  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7838  float* A, int64_t lda,
7839  float* B, int64_t ldb,
7840  float* W );
7841 
7842 // hegv alias to sygv
7843 inline int64_t hegv(
7844  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7845  float* A, int64_t lda,
7846  float* B, int64_t ldb,
7847  float* W )
7848 {
7849  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7850 }
7851 
7852 int64_t sygv(
7853  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7854  double* A, int64_t lda,
7855  double* B, int64_t ldb,
7856  double* W );
7857 
7858 // hegv alias to sygv
7859 inline int64_t hegv(
7860  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7861  double* A, int64_t lda,
7862  double* B, int64_t ldb,
7863  double* W )
7864 {
7865  return sygv( itype, jobz, uplo, n, A, lda, B, ldb, W );
7866 }
7867 
7868 // -----------------------------------------------------------------------------
7869 int64_t sygv_2stage(
7870  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7871  float* A, int64_t lda,
7872  float* B, int64_t ldb,
7873  float* W );
7874 
7875 // hegv_2stage alias to sygv_2stage
7876 inline int64_t hegv_2stage(
7877  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7878  float* A, int64_t lda,
7879  float* B, int64_t ldb,
7880  float* W )
7881 {
7882  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7883 }
7884 
7885 int64_t sygv_2stage(
7886  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7887  double* A, int64_t lda,
7888  double* B, int64_t ldb,
7889  double* W );
7890 
7891 // hegv_2stage alias to sygv_2stage
7892 inline int64_t hegv_2stage(
7893  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7894  double* A, int64_t lda,
7895  double* B, int64_t ldb,
7896  double* W )
7897 {
7898  return sygv_2stage( itype, jobz, uplo, n, A, lda, B, ldb, W );
7899 }
7900 
7901 // -----------------------------------------------------------------------------
7902 int64_t sygvd(
7903  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7904  float* A, int64_t lda,
7905  float* B, int64_t ldb,
7906  float* W );
7907 
7908 // hegvd alias to sygvd
7909 inline int64_t hegvd(
7910  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7911  float* A, int64_t lda,
7912  float* B, int64_t ldb,
7913  float* W )
7914 {
7915  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7916 }
7917 
7918 int64_t sygvd(
7919  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7920  double* A, int64_t lda,
7921  double* B, int64_t ldb,
7922  double* W );
7923 
7924 // hegvd alias to sygvd
7925 inline int64_t hegvd(
7926  int64_t itype, lapack::Job jobz, lapack::Uplo uplo, int64_t n,
7927  double* A, int64_t lda,
7928  double* B, int64_t ldb,
7929  double* W )
7930 {
7931  return sygvd( itype, jobz, uplo, n, A, lda, B, ldb, W );
7932 }
7933 
7934 // -----------------------------------------------------------------------------
7935 int64_t sygvx(
7936  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7937  float* A, int64_t lda,
7938  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7939  int64_t* m,
7940  float* W,
7941  float* Z, int64_t ldz,
7942  int64_t* ifail );
7943 
7944 // hegvx alias to sygvx
7945 inline int64_t hegvx(
7946  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7947  float* A, int64_t lda,
7948  float* B, int64_t ldb, float vl, float vu, int64_t il, int64_t iu, float abstol,
7949  int64_t* m,
7950  float* W,
7951  float* Z, int64_t ldz,
7952  int64_t* ifail )
7953 {
7954  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7955 }
7956 
7957 int64_t sygvx(
7958  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7959  double* A, int64_t lda,
7960  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7961  int64_t* m,
7962  double* W,
7963  double* Z, int64_t ldz,
7964  int64_t* ifail );
7965 
7966 // hegvx alias to sygvx
7967 inline int64_t hegvx(
7968  int64_t itype, lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n,
7969  double* A, int64_t lda,
7970  double* B, int64_t ldb, double vl, double vu, int64_t il, int64_t iu, double abstol,
7971  int64_t* m,
7972  double* W,
7973  double* Z, int64_t ldz,
7974  int64_t* ifail )
7975 {
7976  return sygvx( itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, m, W, Z, ldz, ifail );
7977 }
7978 
7979 // -----------------------------------------------------------------------------
7980 } // end namespace lapack
7981 namespace blas {
7982 
7983 void syr(
7984  blas::Layout layout,
7985  blas::Uplo uplo, int64_t n, std::complex<float> alpha,
7986  std::complex<float> const* X, int64_t incx,
7987  std::complex<float>* A, int64_t lda );
7988 
7989 void syr(
7990  blas::Layout layout,
7991  blas::Uplo uplo, int64_t n, std::complex<double> alpha,
7992  std::complex<double> const* X, int64_t incx,
7993  std::complex<double>* A, int64_t lda );
7994 
7995 void symv(
7996  blas::Layout layout,
7997  blas::Uplo uplo,
7998  int64_t n,
7999  std::complex<float> alpha,
8000  std::complex<float> const *A, int64_t lda,
8001  std::complex<float> const *x, int64_t incx,
8002  std::complex<float> beta,
8003  std::complex<float> *y, int64_t incy );
8004 
8005 void symv(
8006  blas::Layout layout,
8007  blas::Uplo uplo,
8008  int64_t n,
8009  std::complex<double> alpha,
8010  std::complex<double> const*A, int64_t lda,
8011  std::complex<double> const *x, int64_t incx,
8012  std::complex<double> beta,
8013  std::complex<double> *y, int64_t incy );
8014 
8015 } // end namespace blas
8016 namespace lapack {
8017 
8018 // -----------------------------------------------------------------------------
8019 int64_t syrfs(
8020  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8021  float const* A, int64_t lda,
8022  float const* AF, int64_t ldaf,
8023  int64_t const* ipiv,
8024  float const* B, int64_t ldb,
8025  float* X, int64_t ldx,
8026  float* ferr,
8027  float* berr );
8028 
8029 // herfs alias to syrfs
8030 inline int64_t herfs(
8031  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8032  float const* A, int64_t lda,
8033  float const* AF, int64_t ldaf,
8034  int64_t const* ipiv,
8035  float const* B, int64_t ldb,
8036  float* X, int64_t ldx,
8037  float* ferr,
8038  float* berr )
8039 {
8040  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8041 }
8042 
8043 int64_t syrfs(
8044  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8045  double const* A, int64_t lda,
8046  double const* AF, int64_t ldaf,
8047  int64_t const* ipiv,
8048  double const* B, int64_t ldb,
8049  double* X, int64_t ldx,
8050  double* ferr,
8051  double* berr );
8052 
8053 // herfs alias to syrfs
8054 inline int64_t herfs(
8055  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8056  double const* A, int64_t lda,
8057  double const* AF, int64_t ldaf,
8058  int64_t const* ipiv,
8059  double const* B, int64_t ldb,
8060  double* X, int64_t ldx,
8061  double* ferr,
8062  double* berr )
8063 {
8064  return syrfs( uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, ferr, berr );
8065 }
8066 
8067 int64_t syrfs(
8068  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8069  std::complex<float> const* A, int64_t lda,
8070  std::complex<float> const* AF, int64_t ldaf,
8071  int64_t const* ipiv,
8072  std::complex<float> const* B, int64_t ldb,
8073  std::complex<float>* X, int64_t ldx,
8074  float* ferr,
8075  float* berr );
8076 
8077 int64_t syrfs(
8078  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8079  std::complex<double> const* A, int64_t lda,
8080  std::complex<double> const* AF, int64_t ldaf,
8081  int64_t const* ipiv,
8082  std::complex<double> const* B, int64_t ldb,
8083  std::complex<double>* X, int64_t ldx,
8084  double* ferr,
8085  double* berr );
8086 
8087 // -----------------------------------------------------------------------------
8088 int64_t syrfsx(
8089  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8090  float const* A, int64_t lda,
8091  float const* AF, int64_t ldaf,
8092  int64_t const* ipiv,
8093  float* S,
8094  float const* B, int64_t ldb,
8095  float* X, int64_t ldx,
8096  float* rcond,
8097  float* berr, int64_t n_err_bnds,
8098  float* err_bnds_norm,
8099  float* err_bnds_comp, int64_t nparams,
8100  float* params );
8101 
8102 // herfsx alias to syrfsx
8103 inline int64_t herfsx(
8104  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8105  float const* A, int64_t lda,
8106  float const* AF, int64_t ldaf,
8107  int64_t const* ipiv,
8108  float* S,
8109  float const* B, int64_t ldb,
8110  float* X, int64_t ldx,
8111  float* rcond,
8112  float* berr, int64_t n_err_bnds,
8113  float* err_bnds_norm,
8114  float* err_bnds_comp, int64_t nparams,
8115  float* params )
8116 {
8117  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 );
8118 }
8119 
8120 int64_t syrfsx(
8121  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8122  double const* A, int64_t lda,
8123  double const* AF, int64_t ldaf,
8124  int64_t const* ipiv,
8125  double* S,
8126  double const* B, int64_t ldb,
8127  double* X, int64_t ldx,
8128  double* rcond,
8129  double* berr, int64_t n_err_bnds,
8130  double* err_bnds_norm,
8131  double* err_bnds_comp, int64_t nparams,
8132  double* params );
8133 
8134 // herfsx alias to syrfsx
8135 inline int64_t herfsx(
8136  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8137  double const* A, int64_t lda,
8138  double const* AF, int64_t ldaf,
8139  int64_t const* ipiv,
8140  double* S,
8141  double const* B, int64_t ldb,
8142  double* X, int64_t ldx,
8143  double* rcond,
8144  double* berr, int64_t n_err_bnds,
8145  double* err_bnds_norm,
8146  double* err_bnds_comp, int64_t nparams,
8147  double* params )
8148 {
8149  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 );
8150 }
8151 
8152 int64_t syrfsx(
8153  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8154  std::complex<float> const* A, int64_t lda,
8155  std::complex<float> const* AF, int64_t ldaf,
8156  int64_t const* ipiv,
8157  float* S,
8158  std::complex<float> const* B, int64_t ldb,
8159  std::complex<float>* X, int64_t ldx,
8160  float* rcond,
8161  float* berr, int64_t n_err_bnds,
8162  float* err_bnds_norm,
8163  float* err_bnds_comp, int64_t nparams,
8164  float* params );
8165 
8166 int64_t syrfsx(
8167  lapack::Uplo uplo, lapack::Equed equed, int64_t n, int64_t nrhs,
8168  std::complex<double> const* A, int64_t lda,
8169  std::complex<double> const* AF, int64_t ldaf,
8170  int64_t const* ipiv,
8171  double* S,
8172  std::complex<double> const* B, int64_t ldb,
8173  std::complex<double>* X, int64_t ldx,
8174  double* rcond,
8175  double* berr, int64_t n_err_bnds,
8176  double* err_bnds_norm,
8177  double* err_bnds_comp, int64_t nparams,
8178  double* params );
8179 
8180 // -----------------------------------------------------------------------------
8181 int64_t sysv(
8182  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8183  float* A, int64_t lda,
8184  int64_t* ipiv,
8185  float* B, int64_t ldb );
8186 
8187 // hesv alias to sysv
8188 inline int64_t hesv(
8189  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8190  float* A, int64_t lda,
8191  int64_t* ipiv,
8192  float* B, int64_t ldb )
8193 {
8194  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8195 }
8196 
8197 int64_t sysv(
8198  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8199  double* A, int64_t lda,
8200  int64_t* ipiv,
8201  double* B, int64_t ldb );
8202 
8203 // hesv alias to sysv
8204 inline int64_t hesv(
8205  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8206  double* A, int64_t lda,
8207  int64_t* ipiv,
8208  double* B, int64_t ldb )
8209 {
8210  return sysv( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8211 }
8212 
8213 int64_t sysv(
8214  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8215  std::complex<float>* A, int64_t lda,
8216  int64_t* ipiv,
8217  std::complex<float>* B, int64_t ldb );
8218 
8219 int64_t sysv(
8220  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8221  std::complex<double>* A, int64_t lda,
8222  int64_t* ipiv,
8223  std::complex<double>* B, int64_t ldb );
8224 
8225 // -----------------------------------------------------------------------------
8226 int64_t sysv_aa(
8227  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8228  float* A, int64_t lda,
8229  int64_t* ipiv,
8230  float* B, int64_t ldb );
8231 
8232 // hesv_aa alias to sysv_aa
8233 inline int64_t hesv_aa(
8234  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8235  float* A, int64_t lda,
8236  int64_t* ipiv,
8237  float* B, int64_t ldb )
8238 {
8239  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8240 }
8241 
8242 int64_t sysv_aa(
8243  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8244  double* A, int64_t lda,
8245  int64_t* ipiv,
8246  double* B, int64_t ldb );
8247 
8248 // hesv_aa alias to sysv_aa
8249 inline int64_t hesv_aa(
8250  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8251  double* A, int64_t lda,
8252  int64_t* ipiv,
8253  double* B, int64_t ldb )
8254 {
8255  return sysv_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8256 }
8257 
8258 int64_t sysv_aa(
8259  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8260  std::complex<float>* A, int64_t lda,
8261  int64_t* ipiv,
8262  std::complex<float>* B, int64_t ldb );
8263 
8264 int64_t sysv_aa(
8265  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8266  std::complex<double>* A, int64_t lda,
8267  int64_t* ipiv,
8268  std::complex<double>* B, int64_t ldb );
8269 
8270 // -----------------------------------------------------------------------------
8271 int64_t sysv_rk(
8272  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8273  float* A, int64_t lda,
8274  float* E,
8275  int64_t* ipiv,
8276  float* B, int64_t ldb );
8277 
8278 // hesv_rk alias to sysv_rk
8279 inline int64_t hesv_rk(
8280  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8281  float* A, int64_t lda,
8282  float* E,
8283  int64_t* ipiv,
8284  float* B, int64_t ldb )
8285 {
8286  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8287 }
8288 
8289 int64_t sysv_rk(
8290  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8291  double* A, int64_t lda,
8292  double* E,
8293  int64_t* ipiv,
8294  double* B, int64_t ldb );
8295 
8296 // hesv_rk alias to sysv_rk
8297 inline int64_t hesv_rk(
8298  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8299  double* A, int64_t lda,
8300  double* E,
8301  int64_t* ipiv,
8302  double* B, int64_t ldb )
8303 {
8304  return sysv_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8305 }
8306 
8307 int64_t sysv_rk(
8308  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8309  std::complex<float>* A, int64_t lda,
8310  std::complex<float>* E,
8311  int64_t* ipiv,
8312  std::complex<float>* B, int64_t ldb );
8313 
8314 int64_t sysv_rk(
8315  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8316  std::complex<double>* A, int64_t lda,
8317  std::complex<double>* E,
8318  int64_t* ipiv,
8319  std::complex<double>* B, int64_t ldb );
8320 
8321 // -----------------------------------------------------------------------------
8322 int64_t sysv_rook(
8323  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8324  float* A, int64_t lda,
8325  int64_t* ipiv,
8326  float* B, int64_t ldb );
8327 
8328 // hesv_rook alias to sysv_rook
8329 inline int64_t hesv_rook(
8330  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8331  float* A, int64_t lda,
8332  int64_t* ipiv,
8333  float* B, int64_t ldb )
8334 {
8335  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8336 }
8337 
8338 int64_t sysv_rook(
8339  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8340  double* A, int64_t lda,
8341  int64_t* ipiv,
8342  double* B, int64_t ldb );
8343 
8344 // hesv_rook alias to sysv_rook
8345 inline int64_t hesv_rook(
8346  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8347  double* A, int64_t lda,
8348  int64_t* ipiv,
8349  double* B, int64_t ldb )
8350 {
8351  return sysv_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8352 }
8353 
8354 int64_t sysv_rook(
8355  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8356  std::complex<float>* A, int64_t lda,
8357  int64_t* ipiv,
8358  std::complex<float>* B, int64_t ldb );
8359 
8360 int64_t sysv_rook(
8361  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8362  std::complex<double>* A, int64_t lda,
8363  int64_t* ipiv,
8364  std::complex<double>* B, int64_t ldb );
8365 
8366 // -----------------------------------------------------------------------------
8367 int64_t sysvx(
8368  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8369  float const* A, int64_t lda,
8370  float* AF, int64_t ldaf,
8371  int64_t* ipiv,
8372  float const* B, int64_t ldb,
8373  float* X, int64_t ldx,
8374  float* rcond,
8375  float* ferr,
8376  float* berr );
8377 
8378 // hesvx alias to sysvx
8379 inline int64_t hesvx(
8380  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8381  float const* A, int64_t lda,
8382  float* AF, int64_t ldaf,
8383  int64_t* ipiv,
8384  float const* B, int64_t ldb,
8385  float* X, int64_t ldx,
8386  float* rcond,
8387  float* ferr,
8388  float* berr )
8389 {
8390  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8391 }
8392 
8393 int64_t sysvx(
8394  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8395  double const* A, int64_t lda,
8396  double* AF, int64_t ldaf,
8397  int64_t* ipiv,
8398  double const* B, int64_t ldb,
8399  double* X, int64_t ldx,
8400  double* rcond,
8401  double* ferr,
8402  double* berr );
8403 
8404 // hesvx alias to sysvx
8405 inline int64_t hesvx(
8406  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8407  double const* A, int64_t lda,
8408  double* AF, int64_t ldaf,
8409  int64_t* ipiv,
8410  double const* B, int64_t ldb,
8411  double* X, int64_t ldx,
8412  double* rcond,
8413  double* ferr,
8414  double* berr )
8415 {
8416  return sysvx( fact, uplo, n, nrhs, A, lda, AF, ldaf, ipiv, B, ldb, X, ldx, rcond, ferr, berr );
8417 }
8418 
8419 int64_t sysvx(
8420  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8421  std::complex<float> const* A, int64_t lda,
8422  std::complex<float>* AF, int64_t ldaf,
8423  int64_t* ipiv,
8424  std::complex<float> const* B, int64_t ldb,
8425  std::complex<float>* X, int64_t ldx,
8426  float* rcond,
8427  float* ferr,
8428  float* berr );
8429 
8430 int64_t sysvx(
8431  lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs,
8432  std::complex<double> const* A, int64_t lda,
8433  std::complex<double>* AF, int64_t ldaf,
8434  int64_t* ipiv,
8435  std::complex<double> const* B, int64_t ldb,
8436  std::complex<double>* X, int64_t ldx,
8437  double* rcond,
8438  double* ferr,
8439  double* berr );
8440 
8441 // -----------------------------------------------------------------------------
8442 void syswapr(
8443  lapack::Uplo uplo, int64_t n,
8444  float* A, int64_t lda, int64_t i1, int64_t i2 );
8445 
8446 // heswapr alias to syswapr
8447 inline void heswapr(
8448  lapack::Uplo uplo, int64_t n,
8449  float* A, int64_t lda, int64_t i1, int64_t i2 )
8450 {
8451  return syswapr( uplo, n, A, lda, i1, i2 );
8452 }
8453 
8454 void syswapr(
8455  lapack::Uplo uplo, int64_t n,
8456  double* A, int64_t lda, int64_t i1, int64_t i2 );
8457 
8458 // heswapr alias to syswapr
8459 inline void heswapr(
8460  lapack::Uplo uplo, int64_t n,
8461  double* A, int64_t lda, int64_t i1, int64_t i2 )
8462 {
8463  return syswapr( uplo, n, A, lda, i1, i2 );
8464 }
8465 
8466 void syswapr(
8467  lapack::Uplo uplo, int64_t n,
8468  std::complex<float>* A, int64_t lda, int64_t i1, int64_t i2 );
8469 
8470 void syswapr(
8471  lapack::Uplo uplo, int64_t n,
8472  std::complex<double>* A, int64_t lda, int64_t i1, int64_t i2 );
8473 
8474 // -----------------------------------------------------------------------------
8475 int64_t sytrd(
8476  lapack::Uplo uplo, int64_t n,
8477  float* A, int64_t lda,
8478  float* D,
8479  float* E,
8480  float* tau );
8481 
8482 // hetrd alias to sytrd
8483 inline int64_t hetrd(
8484  lapack::Uplo uplo, int64_t n,
8485  float* A, int64_t lda,
8486  float* D,
8487  float* E,
8488  float* tau )
8489 {
8490  return sytrd( uplo, n, A, lda, D, E, tau );
8491 }
8492 
8493 int64_t sytrd(
8494  lapack::Uplo uplo, int64_t n,
8495  double* A, int64_t lda,
8496  double* D,
8497  double* E,
8498  double* tau );
8499 
8500 // hetrd alias to sytrd
8501 inline int64_t hetrd(
8502  lapack::Uplo uplo, int64_t n,
8503  double* A, int64_t lda,
8504  double* D,
8505  double* E,
8506  double* tau )
8507 {
8508  return sytrd( uplo, n, A, lda, D, E, tau );
8509 }
8510 
8511 // -----------------------------------------------------------------------------
8512 int64_t sytrd_2stage(
8513  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8514  float* A, int64_t lda,
8515  float* D,
8516  float* E,
8517  float* tau,
8518  float* hous2, int64_t lhous2 );
8519 
8520 // hetrd_2stage alias to sytrd_2stage
8521 inline int64_t hetrd_2stage(
8522  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8523  float* A, int64_t lda,
8524  float* D,
8525  float* E,
8526  float* tau,
8527  float* hous2, int64_t lhous2 )
8528 {
8529  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8530 }
8531 
8532 int64_t sytrd_2stage(
8533  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8534  double* A, int64_t lda,
8535  double* D,
8536  double* E,
8537  double* tau,
8538  double* hous2, int64_t lhous2 );
8539 
8540 // hetrd_2stage alias to sytrd_2stage
8541 inline int64_t hetrd_2stage(
8542  lapack::Job jobz, lapack::Uplo uplo, int64_t n,
8543  double* A, int64_t lda,
8544  double* D,
8545  double* E,
8546  double* tau,
8547  double* hous2, int64_t lhous2 )
8548 {
8549  return sytrd_2stage( jobz, uplo, n, A, lda, D, E, tau, hous2, lhous2 );
8550 }
8551 
8552 // -----------------------------------------------------------------------------
8553 int64_t sytrf(
8554  lapack::Uplo uplo, int64_t n,
8555  float* A, int64_t lda,
8556  int64_t* ipiv );
8557 
8558 // hetrf alias to sytrf
8559 inline int64_t hetrf(
8560  lapack::Uplo uplo, int64_t n,
8561  float* A, int64_t lda,
8562  int64_t* ipiv )
8563 {
8564  return sytrf( uplo, n, A, lda, ipiv );
8565 }
8566 
8567 int64_t sytrf(
8568  lapack::Uplo uplo, int64_t n,
8569  double* A, int64_t lda,
8570  int64_t* ipiv );
8571 
8572 // hetrf alias to sytrf
8573 inline int64_t hetrf(
8574  lapack::Uplo uplo, int64_t n,
8575  double* A, int64_t lda,
8576  int64_t* ipiv )
8577 {
8578  return sytrf( uplo, n, A, lda, ipiv );
8579 }
8580 
8581 int64_t sytrf(
8582  lapack::Uplo uplo, int64_t n,
8583  std::complex<float>* A, int64_t lda,
8584  int64_t* ipiv );
8585 
8586 int64_t sytrf(
8587  lapack::Uplo uplo, int64_t n,
8588  std::complex<double>* A, int64_t lda,
8589  int64_t* ipiv );
8590 
8591 // -----------------------------------------------------------------------------
8592 int64_t sytrf_aa(
8593  lapack::Uplo uplo, int64_t n,
8594  float* A, int64_t lda,
8595  int64_t* ipiv );
8596 
8597 // hetrf_aa alias to sytrf_aa
8598 inline int64_t hetrf_aa(
8599  lapack::Uplo uplo, int64_t n,
8600  float* A, int64_t lda,
8601  int64_t* ipiv )
8602 {
8603  return sytrf_aa( uplo, n, A, lda, ipiv );
8604 }
8605 
8606 int64_t sytrf_aa(
8607  lapack::Uplo uplo, int64_t n,
8608  double* A, int64_t lda,
8609  int64_t* ipiv );
8610 
8611 // hetrf_aa alias to sytrf_aa
8612 inline int64_t hetrf_aa(
8613  lapack::Uplo uplo, int64_t n,
8614  double* A, int64_t lda,
8615  int64_t* ipiv )
8616 {
8617  return sytrf_aa( uplo, n, A, lda, ipiv );
8618 }
8619 
8620 int64_t sytrf_aa(
8621  lapack::Uplo uplo, int64_t n,
8622  std::complex<float>* A, int64_t lda,
8623  int64_t* ipiv );
8624 
8625 int64_t sytrf_aa(
8626  lapack::Uplo uplo, int64_t n,
8627  std::complex<double>* A, int64_t lda,
8628  int64_t* ipiv );
8629 
8630 // -----------------------------------------------------------------------------
8631 int64_t sytrf_rk(
8632  lapack::Uplo uplo, int64_t n,
8633  float* A, int64_t lda,
8634  float* E,
8635  int64_t* ipiv );
8636 
8637 // hetrf_rk alias to sytrf_rk
8638 inline int64_t hetrf_rk(
8639  lapack::Uplo uplo, int64_t n,
8640  float* A, int64_t lda,
8641  float* E,
8642  int64_t* ipiv )
8643 {
8644  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8645 }
8646 
8647 int64_t sytrf_rk(
8648  lapack::Uplo uplo, int64_t n,
8649  double* A, int64_t lda,
8650  double* E,
8651  int64_t* ipiv );
8652 
8653 // hetrf_rk alias to sytrf_rk
8654 inline int64_t hetrf_rk(
8655  lapack::Uplo uplo, int64_t n,
8656  double* A, int64_t lda,
8657  double* E,
8658  int64_t* ipiv )
8659 {
8660  return sytrf_rk( uplo, n, A, lda, E, ipiv );
8661 }
8662 
8663 int64_t sytrf_rk(
8664  lapack::Uplo uplo, int64_t n,
8665  std::complex<float>* A, int64_t lda,
8666  std::complex<float>* E,
8667  int64_t* ipiv );
8668 
8669 int64_t sytrf_rk(
8670  lapack::Uplo uplo, int64_t n,
8671  std::complex<double>* A, int64_t lda,
8672  std::complex<double>* E,
8673  int64_t* ipiv );
8674 
8675 // -----------------------------------------------------------------------------
8676 int64_t sytrf_rook(
8677  lapack::Uplo uplo, int64_t n,
8678  float* A, int64_t lda,
8679  int64_t* ipiv );
8680 
8681 // hetrf_rook alias to sytrf_rook
8682 inline int64_t hetrf_rook(
8683  lapack::Uplo uplo, int64_t n,
8684  float* A, int64_t lda,
8685  int64_t* ipiv )
8686 {
8687  return sytrf_rook( uplo, n, A, lda, ipiv );
8688 }
8689 
8690 int64_t sytrf_rook(
8691  lapack::Uplo uplo, int64_t n,
8692  double* A, int64_t lda,
8693  int64_t* ipiv );
8694 
8695 // hetrf_rook alias to sytrf_rook
8696 inline int64_t hetrf_rook(
8697  lapack::Uplo uplo, int64_t n,
8698  double* A, int64_t lda,
8699  int64_t* ipiv )
8700 {
8701  return sytrf_rook( uplo, n, A, lda, ipiv );
8702 }
8703 
8704 int64_t sytrf_rook(
8705  lapack::Uplo uplo, int64_t n,
8706  std::complex<float>* A, int64_t lda,
8707  int64_t* ipiv );
8708 
8709 int64_t sytrf_rook(
8710  lapack::Uplo uplo, int64_t n,
8711  std::complex<double>* A, int64_t lda,
8712  int64_t* ipiv );
8713 
8714 // -----------------------------------------------------------------------------
8715 int64_t sytri(
8716  lapack::Uplo uplo, int64_t n,
8717  float* A, int64_t lda,
8718  int64_t const* ipiv );
8719 
8720 // hetri alias to sytri
8721 inline int64_t hetri(
8722  lapack::Uplo uplo, int64_t n,
8723  float* A, int64_t lda,
8724  int64_t const* ipiv )
8725 {
8726  return sytri( uplo, n, A, lda, ipiv );
8727 }
8728 
8729 int64_t sytri(
8730  lapack::Uplo uplo, int64_t n,
8731  double* A, int64_t lda,
8732  int64_t const* ipiv );
8733 
8734 // hetri alias to sytri
8735 inline int64_t hetri(
8736  lapack::Uplo uplo, int64_t n,
8737  double* A, int64_t lda,
8738  int64_t const* ipiv )
8739 {
8740  return sytri( uplo, n, A, lda, ipiv );
8741 }
8742 
8743 int64_t sytri(
8744  lapack::Uplo uplo, int64_t n,
8745  std::complex<float>* A, int64_t lda,
8746  int64_t const* ipiv );
8747 
8748 int64_t sytri(
8749  lapack::Uplo uplo, int64_t n,
8750  std::complex<double>* A, int64_t lda,
8751  int64_t const* ipiv );
8752 
8753 // -----------------------------------------------------------------------------
8754 int64_t sytri2(
8755  lapack::Uplo uplo, int64_t n,
8756  float* A, int64_t lda,
8757  int64_t const* ipiv );
8758 
8759 // hetri2 alias to sytri2
8760 inline int64_t hetri2(
8761  lapack::Uplo uplo, int64_t n,
8762  float* A, int64_t lda,
8763  int64_t const* ipiv )
8764 {
8765  return sytri2( uplo, n, A, lda, ipiv );
8766 }
8767 
8768 int64_t sytri2(
8769  lapack::Uplo uplo, int64_t n,
8770  double* A, int64_t lda,
8771  int64_t const* ipiv );
8772 
8773 // hetri2 alias to sytri2
8774 inline int64_t hetri2(
8775  lapack::Uplo uplo, int64_t n,
8776  double* A, int64_t lda,
8777  int64_t const* ipiv )
8778 {
8779  return sytri2( uplo, n, A, lda, ipiv );
8780 }
8781 
8782 int64_t sytri2(
8783  lapack::Uplo uplo, int64_t n,
8784  std::complex<float>* A, int64_t lda,
8785  int64_t const* ipiv );
8786 
8787 int64_t sytri2(
8788  lapack::Uplo uplo, int64_t n,
8789  std::complex<double>* A, int64_t lda,
8790  int64_t const* ipiv );
8791 
8792 // -----------------------------------------------------------------------------
8793 // sytri_rk wraps sytri_3
8794 int64_t sytri_rk(
8795  lapack::Uplo uplo, int64_t n,
8796  float* A, int64_t lda,
8797  float const* E,
8798  int64_t const* ipiv );
8799 
8800 // hetri_rk alias to sytri_rk
8801 inline int64_t hetri_rk(
8802  lapack::Uplo uplo, int64_t n,
8803  float* A, int64_t lda,
8804  float const* E,
8805  int64_t const* ipiv )
8806 {
8807  return sytri_rk( uplo, n, A, lda, E, ipiv );
8808 }
8809 
8810 int64_t sytri_rk(
8811  lapack::Uplo uplo, int64_t n,
8812  double* A, int64_t lda,
8813  double const* E,
8814  int64_t const* ipiv );
8815 
8816 // hetri_rk alias to sytri_rk
8817 inline int64_t hetri_rk(
8818  lapack::Uplo uplo, int64_t n,
8819  double* A, int64_t lda,
8820  double const* E,
8821  int64_t const* ipiv )
8822 {
8823  return sytri_rk( uplo, n, A, lda, E, ipiv );
8824 }
8825 
8826 int64_t sytri_rk(
8827  lapack::Uplo uplo, int64_t n,
8828  std::complex<float>* A, int64_t lda,
8829  std::complex<float> const* E,
8830  int64_t const* ipiv );
8831 
8832 int64_t sytri_rk(
8833  lapack::Uplo uplo, int64_t n,
8834  std::complex<double>* A, int64_t lda,
8835  std::complex<double> const* E,
8836  int64_t const* ipiv );
8837 
8838 // -----------------------------------------------------------------------------
8839 int64_t sytrs(
8840  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8841  float const* A, int64_t lda,
8842  int64_t const* ipiv,
8843  float* B, int64_t ldb );
8844 
8845 // hetrs alias to sytrs
8846 inline int64_t hetrs(
8847  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8848  float const* A, int64_t lda,
8849  int64_t const* ipiv,
8850  float* B, int64_t ldb )
8851 {
8852  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8853 }
8854 
8855 int64_t sytrs(
8856  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8857  double const* A, int64_t lda,
8858  int64_t const* ipiv,
8859  double* B, int64_t ldb );
8860 
8861 // hetrs alias to sytrs
8862 inline int64_t hetrs(
8863  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8864  double const* A, int64_t lda,
8865  int64_t const* ipiv,
8866  double* B, int64_t ldb )
8867 {
8868  return sytrs( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8869 }
8870 
8871 int64_t sytrs(
8872  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8873  std::complex<float> const* A, int64_t lda,
8874  int64_t const* ipiv,
8875  std::complex<float>* B, int64_t ldb );
8876 
8877 int64_t sytrs(
8878  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8879  std::complex<double> const* A, int64_t lda,
8880  int64_t const* ipiv,
8881  std::complex<double>* B, int64_t ldb );
8882 
8883 // -----------------------------------------------------------------------------
8884 int64_t sytrs2(
8885  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8886  float* A, int64_t lda,
8887  int64_t const* ipiv,
8888  float* B, int64_t ldb );
8889 
8890 // hetrs2 alias to sytrs2
8891 inline int64_t hetrs2(
8892  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8893  float* A, int64_t lda,
8894  int64_t const* ipiv,
8895  float* B, int64_t ldb )
8896 {
8897  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8898 }
8899 
8900 int64_t sytrs2(
8901  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8902  double* A, int64_t lda,
8903  int64_t const* ipiv,
8904  double* B, int64_t ldb );
8905 
8906 // hetrs2 alias to sytrs2
8907 inline int64_t hetrs2(
8908  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8909  double* A, int64_t lda,
8910  int64_t const* ipiv,
8911  double* B, int64_t ldb )
8912 {
8913  return sytrs2( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8914 }
8915 
8916 int64_t sytrs2(
8917  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8918  std::complex<float>* A, int64_t lda,
8919  int64_t const* ipiv,
8920  std::complex<float>* B, int64_t ldb );
8921 
8922 int64_t sytrs2(
8923  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8924  std::complex<double>* A, int64_t lda,
8925  int64_t const* ipiv,
8926  std::complex<double>* B, int64_t ldb );
8927 
8928 // -----------------------------------------------------------------------------
8929 int64_t sytrs_aa(
8930  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8931  float const* A, int64_t lda,
8932  int64_t const* ipiv,
8933  float* B, int64_t ldb );
8934 
8935 // hetrs_aa alias to sytrs_aa
8936 inline int64_t hetrs_aa(
8937  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8938  float const* A, int64_t lda,
8939  int64_t const* ipiv,
8940  float* B, int64_t ldb )
8941 {
8942  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8943 }
8944 
8945 int64_t sytrs_aa(
8946  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8947  double const* A, int64_t lda,
8948  int64_t const* ipiv,
8949  double* B, int64_t ldb );
8950 
8951 // hetrs_aa alias to sytrs_aa
8952 inline int64_t hetrs_aa(
8953  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8954  double const* A, int64_t lda,
8955  int64_t const* ipiv,
8956  double* B, int64_t ldb )
8957 {
8958  return sytrs_aa( uplo, n, nrhs, A, lda, ipiv, B, ldb );
8959 }
8960 
8961 int64_t sytrs_aa(
8962  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8963  std::complex<float> const* A, int64_t lda,
8964  int64_t const* ipiv,
8965  std::complex<float>* B, int64_t ldb );
8966 
8967 int64_t sytrs_aa(
8968  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8969  std::complex<double> const* A, int64_t lda,
8970  int64_t const* ipiv,
8971  std::complex<double>* B, int64_t ldb );
8972 
8973 // -----------------------------------------------------------------------------
8974 // sytrs_rk wraps sytrs_3
8975 int64_t sytrs_rk(
8976  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8977  float const* A, int64_t lda,
8978  float const* E,
8979  int64_t const* ipiv,
8980  float* B, int64_t ldb );
8981 
8982 // hetrs_rk alias to sytrs_rk
8983 inline int64_t hetrs_rk(
8984  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8985  float const* A, int64_t lda,
8986  float const* E,
8987  int64_t const* ipiv,
8988  float* B, int64_t ldb )
8989 {
8990  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
8991 }
8992 
8993 int64_t sytrs_rk(
8994  lapack::Uplo uplo, int64_t n, int64_t nrhs,
8995  double const* A, int64_t lda,
8996  double const* E,
8997  int64_t const* ipiv,
8998  double* B, int64_t ldb );
8999 
9000 // hetrs_rk alias to sytrs_rk
9001 inline int64_t hetrs_rk(
9002  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9003  double const* A, int64_t lda,
9004  double const* E,
9005  int64_t const* ipiv,
9006  double* B, int64_t ldb )
9007 {
9008  return sytrs_rk( uplo, n, nrhs, A, lda, E, ipiv, B, ldb );
9009 }
9010 
9011 int64_t sytrs_rk(
9012  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9013  std::complex<float> const* A, int64_t lda,
9014  std::complex<float> const* E,
9015  int64_t const* ipiv,
9016  std::complex<float>* B, int64_t ldb );
9017 
9018 int64_t sytrs_rk(
9019  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9020  std::complex<double> const* A, int64_t lda,
9021  std::complex<double> const* E,
9022  int64_t const* ipiv,
9023  std::complex<double>* B, int64_t ldb );
9024 
9025 // -----------------------------------------------------------------------------
9026 int64_t sytrs_rook(
9027  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9028  float const* A, int64_t lda,
9029  int64_t const* ipiv,
9030  float* B, int64_t ldb );
9031 
9032 // hetrs_rook alias to sytrs_rook
9033 inline int64_t hetrs_rook(
9034  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9035  float const* A, int64_t lda,
9036  int64_t const* ipiv,
9037  float* B, int64_t ldb )
9038 {
9039  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9040 }
9041 
9042 int64_t sytrs_rook(
9043  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9044  double const* A, int64_t lda,
9045  int64_t const* ipiv,
9046  double* B, int64_t ldb );
9047 
9048 // hetrs_rook alias to sytrs_rook
9049 inline int64_t hetrs_rook(
9050  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9051  double const* A, int64_t lda,
9052  int64_t const* ipiv,
9053  double* B, int64_t ldb )
9054 {
9055  return sytrs_rook( uplo, n, nrhs, A, lda, ipiv, B, ldb );
9056 }
9057 
9058 int64_t sytrs_rook(
9059  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9060  std::complex<float> const* A, int64_t lda,
9061  int64_t const* ipiv,
9062  std::complex<float>* B, int64_t ldb );
9063 
9064 int64_t sytrs_rook(
9065  lapack::Uplo uplo, int64_t n, int64_t nrhs,
9066  std::complex<double> const* A, int64_t lda,
9067  int64_t const* ipiv,
9068  std::complex<double>* B, int64_t ldb );
9069 
9070 // -----------------------------------------------------------------------------
9071 int64_t tbcon(
9072  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9073  float const* AB, int64_t ldab,
9074  float* rcond );
9075 
9076 int64_t tbcon(
9077  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9078  double const* AB, int64_t ldab,
9079  double* rcond );
9080 
9081 int64_t tbcon(
9082  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9083  std::complex<float> const* AB, int64_t ldab,
9084  float* rcond );
9085 
9086 int64_t tbcon(
9087  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t kd,
9088  std::complex<double> const* AB, int64_t ldab,
9089  double* rcond );
9090 
9091 // -----------------------------------------------------------------------------
9092 int64_t tbrfs(
9093  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9094  float const* AB, int64_t ldab,
9095  float const* B, int64_t ldb,
9096  float const* X, int64_t ldx,
9097  float* ferr,
9098  float* berr );
9099 
9100 int64_t tbrfs(
9101  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9102  double const* AB, int64_t ldab,
9103  double const* B, int64_t ldb,
9104  double const* X, int64_t ldx,
9105  double* ferr,
9106  double* berr );
9107 
9108 int64_t tbrfs(
9109  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9110  std::complex<float> const* AB, int64_t ldab,
9111  std::complex<float> const* B, int64_t ldb,
9112  std::complex<float> const* X, int64_t ldx,
9113  float* ferr,
9114  float* berr );
9115 
9116 int64_t tbrfs(
9117  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9118  std::complex<double> const* AB, int64_t ldab,
9119  std::complex<double> const* B, int64_t ldb,
9120  std::complex<double> const* X, int64_t ldx,
9121  double* ferr,
9122  double* berr );
9123 
9124 // -----------------------------------------------------------------------------
9125 int64_t tbtrs(
9126  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9127  float const* AB, int64_t ldab,
9128  float* B, int64_t ldb );
9129 
9130 int64_t tbtrs(
9131  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9132  double const* AB, int64_t ldab,
9133  double* B, int64_t ldb );
9134 
9135 int64_t tbtrs(
9136  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9137  std::complex<float> const* AB, int64_t ldab,
9138  std::complex<float>* B, int64_t ldb );
9139 
9140 int64_t tbtrs(
9141  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t kd, int64_t nrhs,
9142  std::complex<double> const* AB, int64_t ldab,
9143  std::complex<double>* B, int64_t ldb );
9144 
9145 // -----------------------------------------------------------------------------
9146 void tfsm(
9147  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, float alpha,
9148  float const* A,
9149  float* B, int64_t ldb );
9150 
9151 void tfsm(
9152  lapack::Op transr, lapack::Side side, lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t m, int64_t n, double alpha,
9153  double const* A,
9154  double* B, int64_t ldb );
9155 
9156 void tfsm(
9157  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,
9158  std::complex<float> const* A,
9159  std::complex<float>* B, int64_t ldb );
9160 
9161 void tfsm(
9162  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,
9163  std::complex<double> const* A,
9164  std::complex<double>* B, int64_t ldb );
9165 
9166 // -----------------------------------------------------------------------------
9167 int64_t tftri(
9168  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9169  float* A );
9170 
9171 int64_t tftri(
9172  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9173  double* A );
9174 
9175 int64_t tftri(
9176  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9177  std::complex<float>* A );
9178 
9179 int64_t tftri(
9180  lapack::Op transr, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9181  std::complex<double>* A );
9182 
9183 // -----------------------------------------------------------------------------
9184 int64_t tfttp(
9185  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9186  float const* ARF,
9187  float* AP );
9188 
9189 int64_t tfttp(
9190  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9191  double const* ARF,
9192  double* AP );
9193 
9194 int64_t tfttp(
9195  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9196  std::complex<float> const* ARF,
9197  std::complex<float>* AP );
9198 
9199 int64_t tfttp(
9200  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9201  std::complex<double> const* ARF,
9202  std::complex<double>* AP );
9203 
9204 // -----------------------------------------------------------------------------
9205 int64_t tfttr(
9206  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9207  float const* ARF,
9208  float* A, int64_t lda );
9209 
9210 int64_t tfttr(
9211  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9212  double const* ARF,
9213  double* A, int64_t lda );
9214 
9215 int64_t tfttr(
9216  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9217  std::complex<float> const* ARF,
9218  std::complex<float>* A, int64_t lda );
9219 
9220 int64_t tfttr(
9221  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9222  std::complex<double> const* ARF,
9223  std::complex<double>* A, int64_t lda );
9224 
9225 // -----------------------------------------------------------------------------
9226 int64_t tgsja(
9227  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9228  float* A, int64_t lda,
9229  float* B, int64_t ldb, float tola, float tolb,
9230  float* alpha,
9231  float* beta,
9232  float* U, int64_t ldu,
9233  float* V, int64_t ldv,
9234  float* Q, int64_t ldq,
9235  int64_t* ncycle );
9236 
9237 int64_t tgsja(
9238  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9239  double* A, int64_t lda,
9240  double* B, int64_t ldb, double tola, double tolb,
9241  double* alpha,
9242  double* beta,
9243  double* U, int64_t ldu,
9244  double* V, int64_t ldv,
9245  double* Q, int64_t ldq,
9246  int64_t* ncycle );
9247 
9248 int64_t tgsja(
9249  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9250  std::complex<float>* A, int64_t lda,
9251  std::complex<float>* B, int64_t ldb, float tola, float tolb,
9252  float* alpha,
9253  float* beta,
9254  std::complex<float>* U, int64_t ldu,
9255  std::complex<float>* V, int64_t ldv,
9256  std::complex<float>* Q, int64_t ldq,
9257  int64_t* ncycle );
9258 
9259 int64_t tgsja(
9260  lapack::Job jobu, lapack::Job jobv, lapack::Job jobq, int64_t m, int64_t p, int64_t n, int64_t k, int64_t l,
9261  std::complex<double>* A, int64_t lda,
9262  std::complex<double>* B, int64_t ldb, double tola, double tolb,
9263  double* alpha,
9264  double* beta,
9265  std::complex<double>* U, int64_t ldu,
9266  std::complex<double>* V, int64_t ldv,
9267  std::complex<double>* Q, int64_t ldq,
9268  int64_t* ncycle );
9269 
9270 // -----------------------------------------------------------------------------
9271 int64_t tgsyl(
9272  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9273  float const* A, int64_t lda,
9274  float const* B, int64_t ldb,
9275  float* C, int64_t ldc,
9276  float const* D, int64_t ldd,
9277  float const* E, int64_t lde,
9278  float* F, int64_t ldf,
9279  float* dif,
9280  float* scale );
9281 
9282 int64_t tgsyl(
9283  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9284  double const* A, int64_t lda,
9285  double const* B, int64_t ldb,
9286  double* C, int64_t ldc,
9287  double const* D, int64_t ldd,
9288  double const* E, int64_t lde,
9289  double* F, int64_t ldf,
9290  double* dif,
9291  double* scale );
9292 
9293 int64_t tgsyl(
9294  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9295  std::complex<float> const* A, int64_t lda,
9296  std::complex<float> const* B, int64_t ldb,
9297  std::complex<float>* C, int64_t ldc,
9298  std::complex<float> const* D, int64_t ldd,
9299  std::complex<float> const* E, int64_t lde,
9300  std::complex<float>* F, int64_t ldf,
9301  float* dif,
9302  float* scale );
9303 
9304 int64_t tgsyl(
9305  lapack::Op trans, int64_t ijob, int64_t m, int64_t n,
9306  std::complex<double> const* A, int64_t lda,
9307  std::complex<double> const* B, int64_t ldb,
9308  std::complex<double>* C, int64_t ldc,
9309  std::complex<double> const* D, int64_t ldd,
9310  std::complex<double> const* E, int64_t lde,
9311  std::complex<double>* F, int64_t ldf,
9312  double* dif,
9313  double* scale );
9314 
9315 // -----------------------------------------------------------------------------
9316 int64_t tpcon(
9317  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9318  float const* AP,
9319  float* rcond );
9320 
9321 int64_t tpcon(
9322  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9323  double const* AP,
9324  double* rcond );
9325 
9326 int64_t tpcon(
9327  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9328  std::complex<float> const* AP,
9329  float* rcond );
9330 
9331 int64_t tpcon(
9332  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9333  std::complex<double> const* AP,
9334  double* rcond );
9335 
9336 // -----------------------------------------------------------------------------
9337 int64_t tplqt(
9338  int64_t m, int64_t n, int64_t l, int64_t mb,
9339  float* A, int64_t lda,
9340  float* B, int64_t ldb,
9341  float* T, int64_t ldt );
9342 
9343 int64_t tplqt(
9344  int64_t m, int64_t n, int64_t l, int64_t mb,
9345  double* A, int64_t lda,
9346  double* B, int64_t ldb,
9347  double* T, int64_t ldt );
9348 
9349 int64_t tplqt(
9350  int64_t m, int64_t n, int64_t l, int64_t mb,
9351  std::complex<float>* A, int64_t lda,
9352  std::complex<float>* B, int64_t ldb,
9353  std::complex<float>* T, int64_t ldt );
9354 
9355 int64_t tplqt(
9356  int64_t m, int64_t n, int64_t l, int64_t mb,
9357  std::complex<double>* A, int64_t lda,
9358  std::complex<double>* B, int64_t ldb,
9359  std::complex<double>* T, int64_t ldt );
9360 
9361 // -----------------------------------------------------------------------------
9362 int64_t tplqt2(
9363  int64_t m, int64_t n, int64_t l,
9364  float* A, int64_t lda,
9365  float* B, int64_t ldb,
9366  float* T, int64_t ldt );
9367 
9368 int64_t tplqt2(
9369  int64_t m, int64_t n, int64_t l,
9370  double* A, int64_t lda,
9371  double* B, int64_t ldb,
9372  double* T, int64_t ldt );
9373 
9374 int64_t tplqt2(
9375  int64_t m, int64_t n, int64_t l,
9376  std::complex<float>* A, int64_t lda,
9377  std::complex<float>* B, int64_t ldb,
9378  std::complex<float>* T, int64_t ldt );
9379 
9380 int64_t tplqt2(
9381  int64_t m, int64_t n, int64_t l,
9382  std::complex<double>* A, int64_t lda,
9383  std::complex<double>* B, int64_t ldb,
9384  std::complex<double>* T, int64_t ldt );
9385 
9386 // -----------------------------------------------------------------------------
9387 int64_t tpmlqt(
9388  lapack::Side side, lapack::Op trans,
9389  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9390  float const* V, int64_t ldv,
9391  float const* T, int64_t ldt,
9392  float* A, int64_t lda,
9393  float* B, int64_t ldb );
9394 
9395 int64_t tpmlqt(
9396  lapack::Side side, lapack::Op trans,
9397  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9398  double const* V, int64_t ldv,
9399  double const* T, int64_t ldt,
9400  double* A, int64_t lda,
9401  double* B, int64_t ldb );
9402 
9403 int64_t tpmlqt(
9404  lapack::Side side, lapack::Op trans,
9405  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9406  std::complex<float> const* V, int64_t ldv,
9407  std::complex<float> const* T, int64_t ldt,
9408  std::complex<float>* A, int64_t lda,
9409  std::complex<float>* B, int64_t ldb );
9410 
9411 int64_t tpmlqt(
9412  lapack::Side side, lapack::Op trans,
9413  int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb,
9414  std::complex<double> const* V, int64_t ldv,
9415  std::complex<double> const* T, int64_t ldt,
9416  std::complex<double>* A, int64_t lda,
9417  std::complex<double>* B, int64_t ldb );
9418 
9419 // -----------------------------------------------------------------------------
9420 int64_t tpmqrt(
9421  lapack::Side side, lapack::Op trans,
9422  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9423  float const* V, int64_t ldv,
9424  float const* T, int64_t ldt,
9425  float* A, int64_t lda,
9426  float* B, int64_t ldb );
9427 
9428 int64_t tpmqrt(
9429  lapack::Side side, lapack::Op trans,
9430  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9431  double const* V, int64_t ldv,
9432  double const* T, int64_t ldt,
9433  double* A, int64_t lda,
9434  double* B, int64_t ldb );
9435 
9436 int64_t tpmqrt(
9437  lapack::Side side, lapack::Op trans,
9438  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9439  std::complex<float> const* V, int64_t ldv,
9440  std::complex<float> const* T, int64_t ldt,
9441  std::complex<float>* A, int64_t lda,
9442  std::complex<float>* B, int64_t ldb );
9443 
9444 int64_t tpmqrt(
9445  lapack::Side side, lapack::Op trans,
9446  int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb,
9447  std::complex<double> const* V, int64_t ldv,
9448  std::complex<double> const* T, int64_t ldt,
9449  std::complex<double>* A, int64_t lda,
9450  std::complex<double>* B, int64_t ldb );
9451 
9452 // -----------------------------------------------------------------------------
9453 int64_t tpqrt(
9454  int64_t m, int64_t n, int64_t l, int64_t nb,
9455  float* A, int64_t lda,
9456  float* B, int64_t ldb,
9457  float* T, int64_t ldt );
9458 
9459 int64_t tpqrt(
9460  int64_t m, int64_t n, int64_t l, int64_t nb,
9461  double* A, int64_t lda,
9462  double* B, int64_t ldb,
9463  double* T, int64_t ldt );
9464 
9465 int64_t tpqrt(
9466  int64_t m, int64_t n, int64_t l, int64_t nb,
9467  std::complex<float>* A, int64_t lda,
9468  std::complex<float>* B, int64_t ldb,
9469  std::complex<float>* T, int64_t ldt );
9470 
9471 int64_t tpqrt(
9472  int64_t m, int64_t n, int64_t l, int64_t nb,
9473  std::complex<double>* A, int64_t lda,
9474  std::complex<double>* B, int64_t ldb,
9475  std::complex<double>* T, int64_t ldt );
9476 
9477 // -----------------------------------------------------------------------------
9478 int64_t tpqrt2(
9479  int64_t m, int64_t n, int64_t l,
9480  float* A, int64_t lda,
9481  float* B, int64_t ldb,
9482  float* T, int64_t ldt );
9483 
9484 int64_t tpqrt2(
9485  int64_t m, int64_t n, int64_t l,
9486  double* A, int64_t lda,
9487  double* B, int64_t ldb,
9488  double* T, int64_t ldt );
9489 
9490 int64_t tpqrt2(
9491  int64_t m, int64_t n, int64_t l,
9492  std::complex<float>* A, int64_t lda,
9493  std::complex<float>* B, int64_t ldb,
9494  std::complex<float>* T, int64_t ldt );
9495 
9496 int64_t tpqrt2(
9497  int64_t m, int64_t n, int64_t l,
9498  std::complex<double>* A, int64_t lda,
9499  std::complex<double>* B, int64_t ldb,
9500  std::complex<double>* T, int64_t ldt );
9501 
9502 // -----------------------------------------------------------------------------
9503 void tprfb(
9504  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9505  int64_t m, int64_t n, int64_t k, int64_t l,
9506  float const* V, int64_t ldv,
9507  float const* T, int64_t ldt,
9508  float* A, int64_t lda,
9509  float* B, int64_t ldb );
9510 
9511 void tprfb(
9512  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9513  int64_t m, int64_t n, int64_t k, int64_t l,
9514  double const* V, int64_t ldv,
9515  double const* T, int64_t ldt,
9516  double* A, int64_t lda,
9517  double* B, int64_t ldb );
9518 
9519 void tprfb(
9520  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9521  int64_t m, int64_t n, int64_t k, int64_t l,
9522  std::complex<float> const* V, int64_t ldv,
9523  std::complex<float> const* T, int64_t ldt,
9524  std::complex<float>* A, int64_t lda,
9525  std::complex<float>* B, int64_t ldb );
9526 
9527 void tprfb(
9528  lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev,
9529  int64_t m, int64_t n, int64_t k, int64_t l,
9530  std::complex<double> const* V, int64_t ldv,
9531  std::complex<double> const* T, int64_t ldt,
9532  std::complex<double>* A, int64_t lda,
9533  std::complex<double>* B, int64_t ldb );
9534 
9535 // -----------------------------------------------------------------------------
9536 int64_t tprfs(
9537  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9538  float const* AP,
9539  float const* B, int64_t ldb,
9540  float const* X, int64_t ldx,
9541  float* ferr,
9542  float* berr );
9543 
9544 int64_t tprfs(
9545  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9546  double const* AP,
9547  double const* B, int64_t ldb,
9548  double const* X, int64_t ldx,
9549  double* ferr,
9550  double* berr );
9551 
9552 int64_t tprfs(
9553  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9554  std::complex<float> const* AP,
9555  std::complex<float> const* B, int64_t ldb,
9556  std::complex<float> const* X, int64_t ldx,
9557  float* ferr,
9558  float* berr );
9559 
9560 int64_t tprfs(
9561  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9562  std::complex<double> const* AP,
9563  std::complex<double> const* B, int64_t ldb,
9564  std::complex<double> const* X, int64_t ldx,
9565  double* ferr,
9566  double* berr );
9567 
9568 // -----------------------------------------------------------------------------
9569 int64_t tptri(
9570  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9571  float* AP );
9572 
9573 int64_t tptri(
9574  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9575  double* AP );
9576 
9577 int64_t tptri(
9578  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9579  std::complex<float>* AP );
9580 
9581 int64_t tptri(
9582  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9583  std::complex<double>* AP );
9584 
9585 // -----------------------------------------------------------------------------
9586 int64_t tptrs(
9587  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9588  float const* AP,
9589  float* B, int64_t ldb );
9590 
9591 int64_t tptrs(
9592  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9593  double const* AP,
9594  double* B, int64_t ldb );
9595 
9596 int64_t tptrs(
9597  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9598  std::complex<float> const* AP,
9599  std::complex<float>* B, int64_t ldb );
9600 
9601 int64_t tptrs(
9602  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9603  std::complex<double> const* AP,
9604  std::complex<double>* B, int64_t ldb );
9605 
9606 // -----------------------------------------------------------------------------
9607 int64_t tpttf(
9608  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9609  float const* AP,
9610  float* ARF );
9611 
9612 int64_t tpttf(
9613  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9614  double const* AP,
9615  double* ARF );
9616 
9617 int64_t tpttf(
9618  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9619  std::complex<float> const* AP,
9620  std::complex<float>* ARF );
9621 
9622 int64_t tpttf(
9623  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9624  std::complex<double> const* AP,
9625  std::complex<double>* ARF );
9626 
9627 // -----------------------------------------------------------------------------
9628 int64_t tpttr(
9629  lapack::Uplo uplo, int64_t n,
9630  float const* AP,
9631  float* A, int64_t lda );
9632 
9633 int64_t tpttr(
9634  lapack::Uplo uplo, int64_t n,
9635  double const* AP,
9636  double* A, int64_t lda );
9637 
9638 int64_t tpttr(
9639  lapack::Uplo uplo, int64_t n,
9640  std::complex<float> const* AP,
9641  std::complex<float>* A, int64_t lda );
9642 
9643 int64_t tpttr(
9644  lapack::Uplo uplo, int64_t n,
9645  std::complex<double> const* AP,
9646  std::complex<double>* A, int64_t lda );
9647 
9648 // -----------------------------------------------------------------------------
9649 int64_t trcon(
9650  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9651  float const* A, int64_t lda,
9652  float* rcond );
9653 
9654 int64_t trcon(
9655  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9656  double const* A, int64_t lda,
9657  double* rcond );
9658 
9659 int64_t trcon(
9660  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9661  std::complex<float> const* A, int64_t lda,
9662  float* rcond );
9663 
9664 int64_t trcon(
9665  lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9666  std::complex<double> const* A, int64_t lda,
9667  double* rcond );
9668 
9669 // -----------------------------------------------------------------------------
9670 int64_t trevc(
9671  lapack::Sides side, lapack::HowMany howmany,
9672  bool* select, int64_t n,
9673  float const* T, int64_t ldt,
9674  float* VL, int64_t ldvl,
9675  float* VR, int64_t ldvr,
9676  int64_t mm, int64_t* m );
9677 
9678 int64_t trevc(
9679  lapack::Sides side, lapack::HowMany howmany,
9680  bool* select, int64_t n,
9681  double const* T, int64_t ldt,
9682  double* VL, int64_t ldvl,
9683  double* VR, int64_t ldvr,
9684  int64_t mm, int64_t* m );
9685 
9686 int64_t trevc(
9687  lapack::Sides side, lapack::HowMany howmany,
9688  bool const* select, int64_t n,
9689  std::complex<float>* T, int64_t ldt,
9690  std::complex<float>* VL, int64_t ldvl,
9691  std::complex<float>* VR, int64_t ldvr,
9692  int64_t mm, int64_t* m );
9693 
9694 int64_t trevc(
9695  lapack::Sides side, lapack::HowMany howmany,
9696  bool const* select, int64_t n,
9697  std::complex<double>* T, int64_t ldt,
9698  std::complex<double>* VL, int64_t ldvl,
9699  std::complex<double>* VR, int64_t ldvr,
9700  int64_t mm, int64_t* m );
9701 
9702 // -----------------------------------------------------------------------------
9703 int64_t trevc3(
9704  lapack::Sides side, lapack::HowMany howmany,
9705  bool* select, int64_t n,
9706  float const* T, int64_t ldt,
9707  float* VL, int64_t ldvl,
9708  float* VR, int64_t ldvr,
9709  int64_t mm, int64_t* m );
9710 
9711 int64_t trevc3(
9712  lapack::Sides side, lapack::HowMany howmany,
9713  bool* select, int64_t n,
9714  double const* T, int64_t ldt,
9715  double* VL, int64_t ldvl,
9716  double* VR, int64_t ldvr,
9717  int64_t mm, int64_t* m );
9718 
9719 int64_t trevc3(
9720  lapack::Sides side, lapack::HowMany howmany,
9721  bool const* select, int64_t n,
9722  std::complex<float>* T, int64_t ldt,
9723  std::complex<float>* VL, int64_t ldvl,
9724  std::complex<float>* VR, int64_t ldvr,
9725  int64_t mm, int64_t* m );
9726 
9727 int64_t trevc3(
9728  lapack::Sides side, lapack::HowMany howmany,
9729  bool const* select, int64_t n,
9730  std::complex<double>* T, int64_t ldt,
9731  std::complex<double>* VL, int64_t ldvl,
9732  std::complex<double>* VR, int64_t ldvr,
9733  int64_t mm, int64_t* m );
9734 
9735 // -----------------------------------------------------------------------------
9736 int64_t trexc(
9737  lapack::Job compq, int64_t n,
9738  float* T, int64_t ldt,
9739  float* Q, int64_t ldq,
9740  int64_t* ifst,
9741  int64_t* ilst );
9742 
9743 int64_t trexc(
9744  lapack::Job compq, int64_t n,
9745  double* T, int64_t ldt,
9746  double* Q, int64_t ldq,
9747  int64_t* ifst,
9748  int64_t* ilst );
9749 
9750 int64_t trexc(
9751  lapack::Job compq, int64_t n,
9752  std::complex<float>* T, int64_t ldt,
9753  std::complex<float>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9754 
9755 int64_t trexc(
9756  lapack::Job compq, int64_t n,
9757  std::complex<double>* T, int64_t ldt,
9758  std::complex<double>* Q, int64_t ldq, int64_t ifst, int64_t ilst );
9759 
9760 // -----------------------------------------------------------------------------
9761 int64_t trrfs(
9762  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9763  float const* A, int64_t lda,
9764  float const* B, int64_t ldb,
9765  float const* X, int64_t ldx,
9766  float* ferr,
9767  float* berr );
9768 
9769 int64_t trrfs(
9770  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9771  double const* A, int64_t lda,
9772  double const* B, int64_t ldb,
9773  double const* X, int64_t ldx,
9774  double* ferr,
9775  double* berr );
9776 
9777 int64_t trrfs(
9778  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9779  std::complex<float> const* A, int64_t lda,
9780  std::complex<float> const* B, int64_t ldb,
9781  std::complex<float> const* X, int64_t ldx,
9782  float* ferr,
9783  float* berr );
9784 
9785 int64_t trrfs(
9786  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9787  std::complex<double> const* A, int64_t lda,
9788  std::complex<double> const* B, int64_t ldb,
9789  std::complex<double> const* X, int64_t ldx,
9790  double* ferr,
9791  double* berr );
9792 
9793 // -----------------------------------------------------------------------------
9794 int64_t trsen(
9795  lapack::Sense sense, lapack::Job compq,
9796  bool const* select, int64_t n,
9797  float* T, int64_t ldt,
9798  float* Q, int64_t ldq,
9799  std::complex<float>* W,
9800  int64_t* m,
9801  float* s,
9802  float* sep );
9803 
9804 int64_t trsen(
9805  lapack::Sense sense, lapack::Job compq,
9806  bool const* select, int64_t n,
9807  double* T, int64_t ldt,
9808  double* Q, int64_t ldq,
9809  std::complex<double>* W,
9810  int64_t* m,
9811  double* s,
9812  double* sep );
9813 
9814 int64_t trsen(
9815  lapack::Sense sense, lapack::Job compq,
9816  bool const* select, int64_t n,
9817  std::complex<float>* T, int64_t ldt,
9818  std::complex<float>* Q, int64_t ldq,
9819  std::complex<float>* W,
9820  int64_t* m,
9821  float* s,
9822  float* sep );
9823 
9824 int64_t trsen(
9825  lapack::Sense sense, lapack::Job compq,
9826  bool const* select, int64_t n,
9827  std::complex<double>* T, int64_t ldt,
9828  std::complex<double>* Q, int64_t ldq,
9829  std::complex<double>* W,
9830  int64_t* m,
9831  double* s,
9832  double* sep );
9833 
9834 // -----------------------------------------------------------------------------
9835 int64_t trtri(
9836  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9837  float* A, int64_t lda );
9838 
9839 int64_t trtri(
9840  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9841  double* A, int64_t lda );
9842 
9843 int64_t trtri(
9844  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9845  std::complex<float>* A, int64_t lda );
9846 
9847 int64_t trtri(
9848  lapack::Uplo uplo, lapack::Diag diag, int64_t n,
9849  std::complex<double>* A, int64_t lda );
9850 
9851 // -----------------------------------------------------------------------------
9852 int64_t trtrs(
9853  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9854  float const* A, int64_t lda,
9855  float* B, int64_t ldb );
9856 
9857 int64_t trtrs(
9858  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9859  double const* A, int64_t lda,
9860  double* B, int64_t ldb );
9861 
9862 int64_t trtrs(
9863  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9864  std::complex<float> const* A, int64_t lda,
9865  std::complex<float>* B, int64_t ldb );
9866 
9867 int64_t trtrs(
9868  lapack::Uplo uplo, lapack::Op trans, lapack::Diag diag, int64_t n, int64_t nrhs,
9869  std::complex<double> const* A, int64_t lda,
9870  std::complex<double>* B, int64_t ldb );
9871 
9872 // -----------------------------------------------------------------------------
9873 int64_t trttf(
9874  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9875  float const* A, int64_t lda,
9876  float* ARF );
9877 
9878 int64_t trttf(
9879  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9880  double const* A, int64_t lda,
9881  double* ARF );
9882 
9883 int64_t trttf(
9884  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9885  std::complex<float> const* A, int64_t lda,
9886  std::complex<float>* ARF );
9887 
9888 int64_t trttf(
9889  lapack::Op transr, lapack::Uplo uplo, int64_t n,
9890  std::complex<double> const* A, int64_t lda,
9891  std::complex<double>* ARF );
9892 
9893 // -----------------------------------------------------------------------------
9894 int64_t trttp(
9895  lapack::Uplo uplo, int64_t n,
9896  float const* A, int64_t lda,
9897  float* AP );
9898 
9899 int64_t trttp(
9900  lapack::Uplo uplo, int64_t n,
9901  double const* A, int64_t lda,
9902  double* AP );
9903 
9904 int64_t trttp(
9905  lapack::Uplo uplo, int64_t n,
9906  std::complex<float> const* A, int64_t lda,
9907  std::complex<float>* AP );
9908 
9909 int64_t trttp(
9910  lapack::Uplo uplo, int64_t n,
9911  std::complex<double> const* A, int64_t lda,
9912  std::complex<double>* AP );
9913 
9914 // -----------------------------------------------------------------------------
9915 int64_t tzrzf(
9916  int64_t m, int64_t n,
9917  float* A, int64_t lda,
9918  float* tau );
9919 
9920 int64_t tzrzf(
9921  int64_t m, int64_t n,
9922  double* A, int64_t lda,
9923  double* tau );
9924 
9925 int64_t tzrzf(
9926  int64_t m, int64_t n,
9927  std::complex<float>* A, int64_t lda,
9928  std::complex<float>* tau );
9929 
9930 int64_t tzrzf(
9931  int64_t m, int64_t n,
9932  std::complex<double>* A, int64_t lda,
9933  std::complex<double>* tau );
9934 
9935 // -----------------------------------------------------------------------------
9936 int64_t ungbr(
9937  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9938  std::complex<float>* A, int64_t lda,
9939  std::complex<float> const* tau );
9940 
9941 int64_t ungbr(
9942  lapack::Vect vect, int64_t m, int64_t n, int64_t k,
9943  std::complex<double>* A, int64_t lda,
9944  std::complex<double> const* tau );
9945 
9946 // -----------------------------------------------------------------------------
9947 int64_t unghr(
9948  int64_t n, int64_t ilo, int64_t ihi,
9949  std::complex<float>* A, int64_t lda,
9950  std::complex<float> const* tau );
9951 
9952 int64_t unghr(
9953  int64_t n, int64_t ilo, int64_t ihi,
9954  std::complex<double>* A, int64_t lda,
9955  std::complex<double> const* tau );
9956 
9957 // -----------------------------------------------------------------------------
9958 int64_t unglq(
9959  int64_t m, int64_t n, int64_t k,
9960  std::complex<float>* A, int64_t lda,
9961  std::complex<float> const* tau );
9962 
9963 int64_t unglq(
9964  int64_t m, int64_t n, int64_t k,
9965  std::complex<double>* A, int64_t lda,
9966  std::complex<double> const* tau );
9967 
9968 // -----------------------------------------------------------------------------
9969 int64_t ungql(
9970  int64_t m, int64_t n, int64_t k,
9971  std::complex<float>* A, int64_t lda,
9972  std::complex<float> const* tau );
9973 
9974 int64_t ungql(
9975  int64_t m, int64_t n, int64_t k,
9976  std::complex<double>* A, int64_t lda,
9977  std::complex<double> const* tau );
9978 
9979 // -----------------------------------------------------------------------------
9980 int64_t ungqr(
9981  int64_t m, int64_t n, int64_t k,
9982  std::complex<float>* A, int64_t lda,
9983  std::complex<float> const* tau );
9984 
9985 int64_t ungqr(
9986  int64_t m, int64_t n, int64_t k,
9987  std::complex<double>* A, int64_t lda,
9988  std::complex<double> const* tau );
9989 
9990 // -----------------------------------------------------------------------------
9991 int64_t ungrq(
9992  int64_t m, int64_t n, int64_t k,
9993  std::complex<float>* A, int64_t lda,
9994  std::complex<float> const* tau );
9995 
9996 int64_t ungrq(
9997  int64_t m, int64_t n, int64_t k,
9998  std::complex<double>* A, int64_t lda,
9999  std::complex<double> const* tau );
10000 
10001 // -----------------------------------------------------------------------------
10002 int64_t ungtr(
10003  lapack::Uplo uplo, int64_t n,
10004  std::complex<float>* A, int64_t lda,
10005  std::complex<float> const* tau );
10006 
10007 int64_t ungtr(
10008  lapack::Uplo uplo, int64_t n,
10009  std::complex<double>* A, int64_t lda,
10010  std::complex<double> const* tau );
10011 
10012 // -----------------------------------------------------------------------------
10013 int64_t unmbr(
10014  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10015  std::complex<float> const* A, int64_t lda,
10016  std::complex<float> const* tau,
10017  std::complex<float>* C, int64_t ldc );
10018 
10019 int64_t unmbr(
10020  lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10021  std::complex<double> const* A, int64_t lda,
10022  std::complex<double> const* tau,
10023  std::complex<double>* C, int64_t ldc );
10024 
10025 // -----------------------------------------------------------------------------
10026 int64_t unmhr(
10027  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10028  std::complex<float> const* A, int64_t lda,
10029  std::complex<float> const* tau,
10030  std::complex<float>* C, int64_t ldc );
10031 
10032 int64_t unmhr(
10033  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi,
10034  std::complex<double> const* A, int64_t lda,
10035  std::complex<double> const* tau,
10036  std::complex<double>* C, int64_t ldc );
10037 
10038 // -----------------------------------------------------------------------------
10039 int64_t unmlq(
10040  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10041  std::complex<float> const* A, int64_t lda,
10042  std::complex<float> const* tau,
10043  std::complex<float>* C, int64_t ldc );
10044 
10045 int64_t unmlq(
10046  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10047  std::complex<double> const* A, int64_t lda,
10048  std::complex<double> const* tau,
10049  std::complex<double>* C, int64_t ldc );
10050 
10051 // -----------------------------------------------------------------------------
10052 int64_t unmql(
10053  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10054  std::complex<float> const* A, int64_t lda,
10055  std::complex<float> const* tau,
10056  std::complex<float>* C, int64_t ldc );
10057 
10058 int64_t unmql(
10059  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10060  std::complex<double> const* A, int64_t lda,
10061  std::complex<double> const* tau,
10062  std::complex<double>* C, int64_t ldc );
10063 
10064 // -----------------------------------------------------------------------------
10065 int64_t unmqr(
10066  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10067  std::complex<float> const* A, int64_t lda,
10068  std::complex<float> const* tau,
10069  std::complex<float>* C, int64_t ldc );
10070 
10071 int64_t unmqr(
10072  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10073  std::complex<double> const* A, int64_t lda,
10074  std::complex<double> const* tau,
10075  std::complex<double>* C, int64_t ldc );
10076 
10077 // -----------------------------------------------------------------------------
10078 int64_t unmrq(
10079  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10080  std::complex<float> const* A, int64_t lda,
10081  std::complex<float> const* tau,
10082  std::complex<float>* C, int64_t ldc );
10083 
10084 int64_t unmrq(
10085  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k,
10086  std::complex<double> const* A, int64_t lda,
10087  std::complex<double> const* tau,
10088  std::complex<double>* C, int64_t ldc );
10089 
10090 // -----------------------------------------------------------------------------
10091 int64_t unmrz(
10092  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10093  std::complex<float> const* A, int64_t lda,
10094  std::complex<float> const* tau,
10095  std::complex<float>* C, int64_t ldc );
10096 
10097 int64_t unmrz(
10098  lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l,
10099  std::complex<double> const* A, int64_t lda,
10100  std::complex<double> const* tau,
10101  std::complex<double>* C, int64_t ldc );
10102 
10103 // -----------------------------------------------------------------------------
10104 int64_t unmtr(
10105  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10106  std::complex<float> const* A, int64_t lda,
10107  std::complex<float> const* tau,
10108  std::complex<float>* C, int64_t ldc );
10109 
10110 int64_t unmtr(
10111  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10112  std::complex<double> const* A, int64_t lda,
10113  std::complex<double> const* tau,
10114  std::complex<double>* C, int64_t ldc );
10115 
10116 // -----------------------------------------------------------------------------
10117 int64_t upgtr(
10118  lapack::Uplo uplo, int64_t n,
10119  std::complex<float> const* AP,
10120  std::complex<float> const* tau,
10121  std::complex<float>* Q, int64_t ldq );
10122 
10123 int64_t upgtr(
10124  lapack::Uplo uplo, int64_t n,
10125  std::complex<double> const* AP,
10126  std::complex<double> const* tau,
10127  std::complex<double>* Q, int64_t ldq );
10128 
10129 // -----------------------------------------------------------------------------
10130 int64_t upmtr(
10131  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10132  std::complex<float> const* AP,
10133  std::complex<float> const* tau,
10134  std::complex<float>* C, int64_t ldc );
10135 
10136 int64_t upmtr(
10137  lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n,
10138  std::complex<double> const* AP,
10139  std::complex<double> const* tau,
10140  std::complex<double>* C, int64_t ldc );
10141 
10142 } // namespace lapack
10143 
10144 #endif // LAPACK_WRAPPERS_HH
lapack::unmlq
int64_t unmlq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gelqf as follows:
Definition: unmlq.cc:147
lapack::sytrs_rook
int64_t sytrs_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Definition: sytrs_rook.cc:155
lapack::pbtrf
int64_t pbtrf(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > *AB, int64_t ldab)
Computes the Cholesky factorization of a Hermitian positive definite band matrix A.
Definition: pbtrf.cc:178
lapack::geequb
int64_t geequb(int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: geequb.cc:182
lapack::tpmqrt
int64_t tpmqrt(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l, int64_t nb, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex orthogonal matrix Q obtained from a "triangular-pentagonal" complex block reflector...
Definition: tpmqrt.cc:312
lapack::gesv
int64_t gesv(int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n matrix and X and B are n...
Definition: gesv.cc:194
lapack::getf2
int64_t getf2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getf2.cc:175
lapack::lauum
int64_t lauum(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the product or where the triangular factor U or L is stored in the upper or lower triangul...
Definition: lauum.cc:144
lapack::hetrs_rook
int64_t hetrs_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Definition: hetrs_rook.cc:67
lapack::gbbrd
int64_t gbbrd(lapack::Vect vect, int64_t m, int64_t n, int64_t ncc, int64_t kl, int64_t ku, std::complex< double > *AB, int64_t ldab, double *D, double *E, std::complex< double > *Q, int64_t ldq, std::complex< double > *PT, int64_t ldpt, std::complex< double > *C, int64_t ldc)
Reduces a general m-by-n band matrix A to real upper bidiagonal form B by a unitary transformation: .
Definition: gbbrd.cc:277
lapack::porfs
int64_t porfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: porfs.cc:255
lapack::langb
double langb(lapack::Norm norm, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: langb.cc:158
lapack::unmql
int64_t unmql(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::geqlf as follows:
Definition: unmql.cc:148
lapack::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:174
lapack::gelss
int64_t gelss(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, double *S, double rcond, int64_t *rank)
Computes the minimum norm solution to a complex linear least squares problem: minimize using the sin...
Definition: gelss.cc:255
lapack::gesvdx
int64_t gesvdx(lapack::Job jobu, lapack::Job jobvt, lapack::Range range, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, int64_t *ns, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesvdx.cc:386
lapack::lacpy
void lacpy(lapack::MatrixType matrixtype, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Copies all or part of a two-dimensional matrix A to another matrix B.
Definition: lacpy.cc:143
lapack::gbequ
int64_t gbequ(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n band matrix A and reduce its condi...
Definition: gbequ.cc:195
lapack::lapy2
double lapy2(double x, double y)
Returns taking care not to cause unnecessary overflow.
Definition: lapy2.cc:38
lapack::syev_2stage
int64_t syev_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syev_2stage.cc:75
lapack::geqrf
int64_t geqrf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QR factorization of an m-by-n matrix A: .
Definition: geqrf.cc:205
lapack::gbtrs
int64_t gbtrs(lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations.
Definition: gbtrs.cc:225
lapack::lassq
void lassq(int64_t n, std::complex< double > const *X, int64_t incx, double *scale, double *sumsq)
Compute sum-of-squares without unnecessary overflow.
Definition: lassq.cc:123
lapack::heevx_2stage
int64_t heevx_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *ifail)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage...
Definition: heevx_2stage.cc:266
lapack::hetrd
int64_t hetrd(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tau)
Reduces a Hermitian matrix A to real symmetric tridiagonal form T by a unitary similarity transformat...
Definition: hetrd.cc:183
lapack::pptrs
int64_t pptrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *AP, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite matrix A in packed storage us...
Definition: pptrs.cc:155
lapack::pptri
int64_t pptri(lapack::Uplo uplo, int64_t n, std::complex< double > *AP)
Computes the inverse of a Hermitian positive definite matrix A using the Cholesky factorization or ...
Definition: pptri.cc:130
lapack::ptsv
int64_t ptsv(int64_t n, int64_t nrhs, double *D, std::complex< double > *E, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations where A is an n-by-n Hermitian positive defini...
Definition: ptsv.cc:154
lapack::lanst
double lanst(lapack::Norm norm, int64_t n, double const *D, double const *E)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lanst.cc:68
lapack::laset
void laset(lapack::MatrixType matrixtype, int64_t m, int64_t n, std::complex< double > offdiag, std::complex< double > diag, std::complex< double > *A, int64_t lda)
Initializes a 2-D array A to diag on the diagonal and offdiag on the offdiagonals.
Definition: laset.cc:136
lapack::tpmlqt
int64_t tpmlqt(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, int64_t l, int64_t mb, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex orthogonal matrix Q obtained from a "triangular-pentagonal" complex block reflector...
Definition: tpmlqt.cc:309
lapack::orgrq
int64_t orgrq(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgrq.cc:67
lapack::bbcsd
int64_t bbcsd(lapack::Job jobu1, lapack::Job jobu2, lapack::Job jobv1t, lapack::Job jobv2t, lapack::Op trans, int64_t m, int64_t p, int64_t q, double *theta, double *phi, std::complex< double > *U1, int64_t ldu1, std::complex< double > *U2, int64_t ldu2, std::complex< double > *V1T, int64_t ldv1t, std::complex< double > *V2T, int64_t ldv2t, double *B11D, double *B11E, double *B12D, double *B12E, double *B21D, double *B21E, double *B22D, double *B22E)
Computes the CS decomposition of a unitary matrix in bidiagonal-block form,.
Definition: bbcsd.cc:512
lapack::syev
int64_t syev(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syev.cc:73
lapack::sysv
int64_t sysv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n symmetric matrix and X a...
Definition: sysv.cc:305
lapack::hesv
int64_t hesv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian matrix and X a...
Definition: hesv.cc:165
lapack::ormql
int64_t ormql(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormql.cc:86
lapack::gbrfs
int64_t gbrfs(lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > const *AFB, int64_t ldafb, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is banded,...
Definition: gbrfs.cc:303
lapack::syswapr
void syswapr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t i1, int64_t i2)
Applies an elementary permutation on the rows and the columns of a symmetric matrix.
Definition: syswapr.cc:135
lapack::gebrd
int64_t gebrd(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tauq, std::complex< double > *taup)
Reduces a general m-by-n matrix A to upper or lower bidiagonal form B by a unitary transformation: .
Definition: gebrd.cc:309
lapack::hesv_rk
int64_t hesv_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: hesv_rk.cc:206
lapack::ppequ
int64_t ppequ(lapack::Uplo uplo, int64_t n, std::complex< double > const *AP, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A in pa...
Definition: ppequ.cc:156
lapack::hetrf_aa
int64_t hetrf_aa(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a hermitian matrix A using the Aasen's algorithm.
Definition: hetrf_aa.cc:134
lapack::ungbr
int64_t ungbr(lapack::Vect vect, int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates one of the complex unitary matrices or determined by lapack::gebrd when reducing a comple...
Definition: ungbr.cc:139
lapack::getrs
int64_t getrs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations.
Definition: getrs.cc:207
lapack::larfy
void larfy(lapack::Uplo uplo, int64_t n, std::complex< double > const *V, int64_t incv, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies an elementary reflector, or Householder matrix, H, to an n x n Hermitian matrix C,...
Definition: larfy.cc:160
lapack::sysv_rook
int64_t sysv_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Definition: sysv_rook.cc:230
lapack::pbrfs
int64_t pbrfs(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > const *AFB, int64_t ldafb, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: pbrfs.cc:262
lapack::hseqr
int64_t hseqr(lapack::JobSchur jobschur, lapack::Job compz, int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *H, int64_t ldh, std::complex< double > *W, std::complex< double > *Z, int64_t ldz)
Computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schu...
Definition: hseqr.cc:352
lapack::geev
int64_t geev(lapack::Job jobvl, lapack::Job jobvr, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *W, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr)
Computes for an n-by-n nonsymmetric matrix A, the eigenvalues and, optionally, the left and/or right ...
Definition: geev.cc:328
lapack::orgtr
int64_t orgtr(lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double const *tau)
Definition: orgtr.cc:72
lapack::lapy3
double lapy3(double x, double y, double z)
Returns taking care not to cause unnecessary overflow.
Definition: lapy3.cc:40
lapack::sycon_rk
int64_t sycon_rk(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a symmetric matrix A using the fa...
Definition: sycon_rk.cc:237
lapack::poequb
int64_t poequb(int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A and r...
Definition: poequb.cc:150
lapack::sycon
int64_t sycon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a symmetric matrix A using the fa...
Definition: sycon.cc:196
lapack::ptcon
int64_t ptcon(int64_t n, double const *D, std::complex< double > const *E, double anorm, double *rcond)
Computes the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite trid...
Definition: ptcon.cc:150
lapack::gerq2
int64_t gerq2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an RQ factorization of an m-by-n matrix A: .
Definition: gerq2.cc:170
lapack::hecon
int64_t hecon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian matrix A using the fa...
Definition: hecon.cc:106
lapack::gecon
int64_t gecon(lapack::Norm norm, int64_t n, std::complex< double > const *A, int64_t lda, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a general matrix A, in either the 1-norm or the i...
Definition: gecon.cc:165
lapack::pttrs
int64_t pttrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, std::complex< double > *B, int64_t ldb)
Solves a tridiagonal system of the form.
Definition: pttrs.cc:164
lapack::ungtr
int64_t ungtr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an n-by-n unitary matrix Q which is defined as the product of n-1 elementary reflectors of ...
Definition: ungtr.cc:107
lapack::heevd
int64_t heevd(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a.
Definition: heevd.cc:141
lapack::gelsy
int64_t gelsy(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, int64_t *jpvt, double rcond, int64_t *rank)
Computes the minimum-norm solution to a complex linear least squares problem: minimize using a compl...
Definition: gelsy.cc:317
lapack::ormbr
int64_t ormbr(lapack::Vect vect, lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormbr.cc:87
lapack::syevx
int64_t syevx(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *ifail)
Definition: syevx.cc:103
lapack::ungqr
int64_t ungqr(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal columns, which is defined as the first n columns of a p...
Definition: ungqr.cc:105
lapack::ungql
int64_t ungql(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal columns, which is defined as the last n columns of a pr...
Definition: ungql.cc:105
lapack::gerfs
int64_t gerfs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations and provides error bounds and backward...
Definition: gerfs.cc:279
lapack::heswapr
void heswapr(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t i1, int64_t i2)
Applies an elementary permutation on the rows and the columns of a Hermitian matrix.
Definition: heswapr.cc:79
lapack::gels
int64_t gels(lapack::Op trans, int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Solves overdetermined or underdetermined complex linear systems involving an m-by-n matrix A,...
Definition: gels.cc:291
lapack::hesv_rook
int64_t hesv_rook(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Definition: hesv_rook.cc:92
lapack::gbcon
int64_t gbcon(lapack::Norm norm, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a general band matrix A, in either the 1-norm or ...
Definition: gbcon.cc:218
lapack::syevx_2stage
int64_t syevx_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *ifail)
Definition: syevx_2stage.cc:105
lapack::ppcon
int64_t ppcon(lapack::Uplo uplo, int64_t n, std::complex< double > const *AP, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite pac...
Definition: ppcon.cc:158
lapack::sysv_rk
int64_t sysv_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: sysv_rk.cc:350
lapack::lansb
double lansb(lapack::Norm norm, lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansb.cc:162
lapack::heev_2stage
int64_t heev_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage tech...
Definition: heev_2stage.cc:155
lapack::geqlf
int64_t geqlf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QL factorization of an m-by-n matrix A: .
Definition: geqlf.cc:208
lapack::heevr
int64_t heevr(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *isuppz)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heevr.cc:301
lapack::gebak
int64_t gebak(lapack::Balance balance, lapack::Side side, int64_t n, int64_t ilo, int64_t ihi, double const *scale, int64_t m, std::complex< double > *V, int64_t ldv)
Forms the right or left eigenvectors of a complex general matrix by backward transformation on the co...
Definition: gebak.cc:182
lapack::getrf2
int64_t getrf2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getrf2.cc:205
lapack::hetri
int64_t hetri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization or computed by lapa...
Definition: hetri.cc:106
lapack::langt
double langt(lapack::Norm norm, int64_t n, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: langt.cc:127
lapack::hetrf_rook
int64_t hetrf_rook(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Definition: hetrf_rook.cc:85
lapack::pbequ
int64_t pbequ(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite band matrix A ...
Definition: pbequ.cc:176
lapack::ormrq
int64_t ormrq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormrq.cc:86
lapack::gebal
int64_t gebal(lapack::Balance balance, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ilo, int64_t *ihi, double *scale)
Balances a general complex matrix A.
Definition: gebal.cc:219
lapack::hecon_rk
int64_t hecon_rk(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian matrix A using the fa...
Definition: hecon_rk.cc:144
lapack::lange
double lange(lapack::Norm norm, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lange.cc:145
lapack::pocon
int64_t pocon(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite mat...
Definition: pocon.cc:162
lapack::ggglm
int64_t ggglm(int64_t n, int64_t m, int64_t p, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *D, std::complex< double > *X, std::complex< double > *Y)
Solves a general Gauss-Markov linear model (GLM) problem:
Definition: ggglm.cc:277
lapack::ptsvx
int64_t ptsvx(lapack::Factored fact, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, double *DF, std::complex< double > *EF, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the factorization to compute the solution to a system of linear equations where A is an n-by-n...
Definition: ptsvx.cc:280
lapack::potri
int64_t potri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the inverse of a Hermitian positive definite matrix A using the Cholesky factorization or ...
Definition: potri.cc:135
lapack::geql2
int64_t geql2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QL factorization of an m-by-n matrix A: .
Definition: geql2.cc:169
lapack::heevr_2stage
int64_t heevr_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *isuppz)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage...
Definition: heevr_2stage.cc:333
lapack::sysv_aa
int64_t sysv_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n symmetric matrix and X a...
Definition: sysv_aa.cc:394
lapack::gbsv
int64_t gbsv(int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > *AB, int64_t ldab, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is a band matrix of order n with kl s...
Definition: gbsv.cc:239
lapack::laswp
void laswp(int64_t n, std::complex< double > *A, int64_t lda, int64_t k1, int64_t k2, int64_t const *ipiv, int64_t incx)
Performs a series of row interchanges on the matrix A.
Definition: laswp.cc:159
lapack::hetrs_aa
int64_t hetrs_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a hermitian matrix A using the factorization or computed ...
Definition: hetrs_aa.cc:113
lapack::unmqr
int64_t unmqr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::geqrf as follows:
Definition: unmqr.cc:149
lapack::posv
int64_t posv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian positive defin...
Definition: posv.cc:183
lapack::pbsvx
int64_t pbsvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *AFB, int64_t ldafb, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: pbsvx.cc:406
lapack::pbcon
int64_t pbcon(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > const *AB, int64_t ldab, double anorm, double *rcond)
Estimates the reciprocal of the condition number (in the 1-norm) of a Hermitian positive definite ban...
Definition: pbcon.cc:178
lapack::syrfs
int64_t syrfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is symmetr...
Definition: syrfs.cc:289
lapack::tplqt2
int64_t tplqt2(int64_t m, int64_t n, int64_t l, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *T, int64_t ldt)
Computes a LQ a factorization of a complex "triangular-pentagonal" matrix C, which is composed of a t...
Definition: tplqt2.cc:218
lapack::gtsv
int64_t gtsv(int64_t n, int64_t nrhs, std::complex< double > *DL, std::complex< double > *D, std::complex< double > *DU, std::complex< double > *B, int64_t ldb)
Solves the equation.
Definition: gtsv.cc:166
lapack::sytri2
int64_t sytri2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization or computed by lapa...
Definition: sytri2.cc:243
lapack::potrf2
int64_t potrf2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A using the recursive alg...
Definition: potrf2.cc:165
lapack::larft
void larft(lapack::Direction direction, lapack::StoreV storev, int64_t n, int64_t k, std::complex< double > const *V, int64_t ldv, std::complex< double > const *tau, std::complex< double > *T, int64_t ldt)
Forms the triangular factor T of a complex block reflector H of order n, which is defined as a produc...
Definition: larft.cc:213
lapack::getrf
int64_t getrf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes an LU factorization of a general m-by-n matrix A using partial pivoting with row interchange...
Definition: getrf.cc:175
lapack::hesv_aa
int64_t hesv_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t *ipiv, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations , where A is an n-by-n Hermitian matrix and X a...
Definition: hesv_aa.cc:159
lapack::hesvx
int64_t hesvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the diagonal pivoting factorization to compute the solution to a system of linear equations ,...
Definition: hesvx.cc:244
lapack::ungrq
int64_t ungrq(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal rows, which is defined as the last m rows of a product ...
Definition: ungrq.cc:104
lapack::syevr
int64_t syevr(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *isuppz)
Definition: syevr.cc:104
lapack::lantr
double lantr(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantr.cc:195
lapack::orgql
int64_t orgql(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgql.cc:67
lapack::hetrs_rk
int64_t hetrs_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization computed by la...
Definition: hetrs_rk.cc:156
lapack::tplqt
int64_t tplqt(int64_t m, int64_t n, int64_t l, int64_t mb, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *T, int64_t ldt)
Computes a blocked LQ factorization of a complex "triangular-pentagonal" matrix C,...
Definition: tplqt.cc:243
lapack::syevr_2stage
int64_t syevr_2stage(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, double *Z, int64_t ldz, int64_t *isuppz)
Definition: syevr_2stage.cc:106
lapack::lascl
int64_t lascl(lapack::MatrixType type, int64_t kl, int64_t ku, double cfrom, double cto, int64_t m, int64_t n, std::complex< double > *A, int64_t lda)
Multiplies the m-by-n complex matrix A by the real scalar cto / cfrom.
Definition: lascl.cc:197
lapack::gtrfs
int64_t gtrfs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DLF, std::complex< double > const *DF, std::complex< double > const *DUF, std::complex< double > const *DU2, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is tridiag...
Definition: gtrfs.cc:314
lapack::bdsdc
int64_t bdsdc(lapack::Uplo uplo, lapack::Job compq, int64_t n, double *D, double *E, double *U, int64_t ldu, double *VT, int64_t ldvt, double *Q, int64_t *IQ)
Computes the singular value decomposition (SVD) of a real n-by-n (upper or lower) bidiagonal matrix B...
Definition: bdsdc.cc:188
lapack::bdsqr
int64_t bdsqr(lapack::Uplo uplo, int64_t n, int64_t ncvt, int64_t nru, int64_t ncc, double *D, double *E, std::complex< double > *VT, int64_t ldvt, std::complex< double > *U, int64_t ldu, std::complex< double > *C, int64_t ldc)
Computes the singular values and, optionally, the right and/or left singular vectors from the singula...
Definition: bdsqr.cc:271
lapack::gttrs
int64_t gttrs(lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DU2, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves one of the systems of equations.
Definition: gttrs.cc:228
lapack::gglse
int64_t gglse(int64_t m, int64_t n, int64_t p, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, std::complex< double > *C, std::complex< double > *D, std::complex< double > *X)
Solves the linear equality-constrained least squares (LSE) problem:
Definition: gglse.cc:284
lapack::sytrf
int64_t sytrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the Bunch-Kaufman diagonal pivoting method.
Definition: sytrf.cc:314
lapack::orgbr
int64_t orgbr(lapack::Vect vect, int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgbr.cc:76
lapack::upmtr
int64_t upmtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, std::complex< double > const *AP, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::hptrd as follows:
Definition: upmtr.cc:126
lapack::trevc3
int64_t trevc3(lapack::Sides side, lapack::HowMany howmany, bool const *select, int64_t n, std::complex< double > *T, int64_t ldt, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr, int64_t mm, int64_t *m)
Computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T.
Definition: trevc3.cc:374
lapack::orgqr
int64_t orgqr(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orgqr.cc:67
lapack::gtsvx
int64_t gtsvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > *DLF, std::complex< double > *DF, std::complex< double > *DUF, std::complex< double > *DU2, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the LU factorization to compute the solution to a complex system of linear equations.
Definition: gtsvx.cc:394
lapack::pbstf
int64_t pbstf(lapack::Uplo uplo, int64_t n, int64_t kd, std::complex< double > *AB, int64_t ldab)
Computes a split Cholesky factorization of a Hermitian positive definite band matrix A.
Definition: pbstf.cc:208
lapack::gbtrf
int64_t gbtrf(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > *AB, int64_t ldab, int64_t *ipiv)
Computes an LU factorization of an m-by-n band matrix A using partial pivoting with row interchanges.
Definition: gbtrf.cc:213
lapack::geqr2
int64_t geqr2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes a QR factorization of an m-by-n matrix A:
Definition: geqr2.cc:167
lapack::potrs
int64_t potrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite matrix A using the Cholesky f...
Definition: potrs.cc:160
lapack::syevd
int64_t syevd(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syevd.cc:78
lapack::sytrs
int64_t sytrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs.cc:198
lapack::gelsd
int64_t gelsd(int64_t m, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb, double *S, double rcond, int64_t *rank)
Computes the minimum-norm solution to a real linear least squares problem: minimize using the singul...
Definition: gelsd.cc:285
lapack::larfx
void larfx(lapack::Side side, int64_t m, int64_t n, std::complex< double > const *V, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies a elementary reflector H to a m-by-n matrix C, from either the left or the right.
Definition: larfx.cc:165
lapack::gbequb
int64_t gbequb(int64_t m, int64_t n, int64_t kl, int64_t ku, std::complex< double > const *AB, int64_t ldab, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: gbequb.cc:202
lapack::hetri2
int64_t hetri2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization or computed by lapa...
Definition: hetri2.cc:126
lapack::lantp
double lantp(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, std::complex< double > const *AP)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantp.cc:151
lapack::unmhr
int64_t unmhr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t ilo, int64_t ihi, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gehrd as follows:
Definition: unmhr.cc:154
lapack::ptrfs
int64_t ptrfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, double const *D, std::complex< double > const *E, double const *DF, std::complex< double > const *EF, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: ptrfs.cc:240
lapack::gbsvx
int64_t gbsvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t kl, int64_t ku, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *AFB, int64_t ldafb, int64_t *ipiv, lapack::Equed *equed, double *R, double *C, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the LU factorization to compute the solution to a system of linear equations.
Definition: gbsvx.cc:477
lapack::gelqf
int64_t gelqf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an LQ factorization of an m-by-n matrix A: .
Definition: gelqf.cc:203
lapack::larf
void larf(lapack::Side side, int64_t m, int64_t n, std::complex< double > const *V, int64_t incv, std::complex< double > tau, std::complex< double > *C, int64_t ldc)
Applies a elementary reflector H to a m-by-n matrix C, from either the left or the right.
Definition: larf.cc:175
lapack::gttrf
int64_t gttrf(int64_t n, std::complex< double > *DL, std::complex< double > *D, std::complex< double > *DU, std::complex< double > *DU2, int64_t *ipiv)
Computes an LU factorization of a complex tridiagonal matrix A using elimination with partial pivotin...
Definition: gttrf.cc:195
lapack::sytrs_rk
int64_t sytrs_rk(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization computed by la...
Definition: sytrs_rk.cc:243
lapack::hetrf
int64_t hetrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a Hermitian matrix A using the Bunch-Kaufman diagonal pivoting method.
Definition: hetrf.cc:190
lapack::herfs
int64_t herfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > const *AF, int64_t ldaf, int64_t const *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: herfs.cc:165
lapack::unmtr
int64_t unmtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::hetrd as follows:
Definition: unmtr.cc:146
lapack::pbtrs
int64_t pbtrs(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > const *AB, int64_t ldab, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian positive definite band matrix A using the Chole...
Definition: pbtrs.cc:175
lapack::trevc
int64_t trevc(lapack::Sides side, lapack::HowMany howmany, bool const *select, int64_t n, std::complex< double > *T, int64_t ldt, std::complex< double > *VL, int64_t ldvl, std::complex< double > *VR, int64_t ldvr, int64_t mm, int64_t *m)
Computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T.
Definition: trevc.cc:309
lapack::lantb
double lantb(lapack::Norm norm, lapack::Uplo uplo, lapack::Diag diag, int64_t n, int64_t k, std::complex< double > const *AB, int64_t ldab)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lantb.cc:171
lapack::gerqf
int64_t gerqf(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an RQ factorization of an m-by-n matrix A: .
Definition: gerqf.cc:209
lapack::ppsv
int64_t ppsv(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *AP, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: ppsv.cc:191
lapack::heevx
int64_t heevx(lapack::Job jobz, lapack::Range range, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double vl, double vu, int64_t il, int64_t iu, double abstol, int64_t *m, double *W, std::complex< double > *Z, int64_t ldz, int64_t *ifail)
Computes selected eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heevx.cc:234
lapack::syequb
int64_t syequb(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Eu...
Definition: syequb.cc:175
lapack::potf2
int64_t potf2(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A.
Definition: potf2.cc:151
lapack::sytri_rk
int64_t sytri_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization computed by lapack::s...
Definition: sytri_rk.cc:293
lapack::sytrf_rook
int64_t sytrf_rook(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Definition: sytrf_rook.cc:209
lapack::syevd_2stage
int64_t syevd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *W)
Definition: syevd_2stage.cc:80
lapack::ppsvx
int64_t ppsvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *AP, std::complex< double > *AFP, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: ppsvx.cc:367
lapack::sytrf_rk
int64_t sytrf_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the bounded Bunch-Kaufman (rook) diagonal pi...
Definition: sytrf_rk.cc:373
lapack::gesdd
int64_t gesdd(lapack::Job jobz, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesdd.cc:346
lapack::getri
int64_t getri(int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a matrix using the LU factorization computed by lapack::getrf.
Definition: getri.cc:204
lapack::unghr
int64_t unghr(int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an n-by-n unitary matrix Q which is defined as the product of ihi-ilo elementary reflectors...
Definition: unghr.cc:105
lapack::unglq
int64_t unglq(int64_t m, int64_t n, int64_t k, std::complex< double > *A, int64_t lda, std::complex< double > const *tau)
Generates an m-by-n matrix Q with orthonormal rows, which is defined as the first m rows of a product...
Definition: unglq.cc:104
lapack::lansp
double lansp(lapack::Norm norm, lapack::Uplo uplo, int64_t n, std::complex< double > const *AP)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansp.cc:143
lapack::larfb
void larfb(lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *C, int64_t ldc)
Applies a block reflector or its transpose to a m-by-n matrix C, from either the left or the right.
Definition: larfb.cc:258
lapack::sysvx
int64_t sysvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the diagonal pivoting factorization to compute the solution to a system of linear equations ,...
Definition: sysvx.cc:427
lapack::hetrf_rk
int64_t hetrf_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *E, int64_t *ipiv)
Computes the factorization of a Hermitian matrix A using the bounded Bunch-Kaufman (rook) diagonal pi...
Definition: hetrf_rk.cc:243
lapack::gesvx
int64_t gesvx(lapack::Factored fact, lapack::Op trans, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, int64_t *ipiv, lapack::Equed *equed, double *R, double *C, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr, double *rpivotgrowth)
Uses the LU factorization to compute the solution to a system of linear equations.
Definition: gesvx.cc:461
lapack::pprfs
int64_t pprfs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *AP, std::complex< double > const *AFP, std::complex< double > const *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *ferr, double *berr)
Improves the computed solution to a system of linear equations when the coefficient matrix is Hermiti...
Definition: pprfs.cc:234
lapack::tprfb
void tprfb(lapack::Side side, lapack::Op trans, lapack::Direction direction, lapack::StoreV storev, int64_t m, int64_t n, int64_t k, int64_t l, std::complex< double > const *V, int64_t ldv, std::complex< double > const *T, int64_t ldt, std::complex< double > *A, int64_t lda, std::complex< double > *B, int64_t ldb)
Applies a complex "triangular-pentagonal" block reflector H or its conjugate transpose to a complex ...
Definition: tprfb.cc:346
lapack::potrf
int64_t potrf(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda)
Computes the Cholesky factorization of a Hermitian positive definite matrix A.
Definition: potrf.cc:151
lapack::sytri
int64_t sytri(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t const *ipiv)
Computes the inverse of a symmetric indefinite matrix A using the factorization or computed by lapa...
Definition: sytri.cc:190
lapack::gtcon
int64_t gtcon(lapack::Norm norm, int64_t n, std::complex< double > const *DL, std::complex< double > const *D, std::complex< double > const *DU, std::complex< double > const *DU2, int64_t const *ipiv, double anorm, double *rcond)
Estimates the reciprocal of the condition number of a complex tridiagonal matrix A using the LU facto...
Definition: gtcon.cc:220
lapack::larnv
void larnv(int64_t idist, int64_t *iseed, int64_t n, std::complex< double > *X)
Returns a vector of n random complex numbers from a uniform or normal distribution.
Definition: larnv.cc:148
lapack::heevd_2stage
int64_t heevd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A using the 2-stage tech...
Definition: heevd_2stage.cc:173
lapack::lanhs
double lanhs(lapack::Norm norm, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lanhs.cc:138
lapack::ormqr
int64_t ormqr(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormqr.cc:86
lapack::sytrs_aa
int64_t sytrs_aa(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs_aa.cc:211
lapack::unmrq
int64_t unmrq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, std::complex< double > const *A, int64_t lda, std::complex< double > const *tau, std::complex< double > *C, int64_t ldc)
Multiplies the general m-by-n matrix C by Q from lapack::gerqf as follows:
Definition: unmrq.cc:147
lapack::ormlq
int64_t ormlq(lapack::Side side, lapack::Op trans, int64_t m, int64_t n, int64_t k, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormlq.cc:86
lapack::lacgv
void lacgv(int64_t n, std::complex< double > *X, int64_t incx)
Conjugates a complex vector of length n.
Definition: lacgv.cc:56
lapack::sytrf_aa
int64_t sytrf_aa(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, int64_t *ipiv)
Computes the factorization of a symmetric matrix A using the Aasen's algorithm.
Definition: sytrf_aa.cc:258
lapack::pttrf
int64_t pttrf(int64_t n, double *D, std::complex< double > *E)
Computes the factorization of a Hermitian positive definite tridiagonal matrix A.
Definition: pttrf.cc:121
lapack::gehrd
int64_t gehrd(int64_t n, int64_t ilo, int64_t ihi, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Reduces a general matrix A to upper Hessenberg form H by an unitary similarity transformation: .
Definition: gehrd.cc:237
lapack::bdsvdx
int64_t bdsvdx(lapack::Uplo uplo, lapack::Job jobz, lapack::Range range, int64_t n, double const *D, double const *E, double vl, double vu, int64_t il, int64_t iu, int64_t *nfound, double *S, double *Z, int64_t ldz)
Computes the singular value decomposition (SVD) of a real n-by-n (upper or lower) bidiagonal matrix B...
Definition: bdsvdx.cc:199
lapack::sytrd
int64_t sytrd(lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *D, double *E, double *tau)
Definition: sytrd.cc:78
lapack::poequ
int64_t poequ(int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A and r...
Definition: poequ.cc:144
lapack::hetri_rk
int64_t hetri_rk(lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > const *E, int64_t const *ipiv)
Computes the inverse of a Hermitian indefinite matrix A using the factorization computed by lapack::h...
Definition: hetri_rk.cc:170
lapack::ormtr
int64_t ormtr(lapack::Side side, lapack::Uplo uplo, lapack::Op trans, int64_t m, int64_t n, double const *A, int64_t lda, double const *tau, double *C, int64_t ldc)
Definition: ormtr.cc:85
lapack::pbsv
int64_t pbsv(lapack::Uplo uplo, int64_t n, int64_t kd, int64_t nrhs, std::complex< double > *AB, int64_t ldab, std::complex< double > *B, int64_t ldb)
Computes the solution to a system of linear equations.
Definition: pbsv.cc:218
lapack::heequb
int64_t heequb(lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda, double *S, double *scond, double *amax)
Computes row and column scalings intended to equilibrate a Hermitian matrix A (with respect to the Eu...
Definition: heequb.cc:101
lapack::gesvd
int64_t gesvd(lapack::Job jobu, lapack::Job jobvt, int64_t m, int64_t n, std::complex< double > *A, int64_t lda, double *S, std::complex< double > *U, int64_t ldu, std::complex< double > *VT, int64_t ldvt)
Computes the singular value decomposition (SVD) of a m-by-n matrix A, optionally computing the left a...
Definition: gesvd.cc:327
lapack::posvx
int64_t posvx(lapack::Factored fact, lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, std::complex< double > *AF, int64_t ldaf, lapack::Equed *equed, double *S, std::complex< double > *B, int64_t ldb, std::complex< double > *X, int64_t ldx, double *rcond, double *ferr, double *berr)
Uses the Cholesky factorization or to compute the solution to a system of linear equations.
Definition: posvx.cc:371
lapack::sytrs2
int64_t sytrs2(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a symmetric matrix A using the factorization or computed ...
Definition: sytrs2.cc:217
lapack::lansy
double lansy(lapack::Norm norm, lapack::Uplo uplo, int64_t n, std::complex< double > const *A, int64_t lda)
Returns the value of the one norm, Frobenius norm, infinity norm, or the element of largest absolute ...
Definition: lansy.cc:157
lapack::geequ
int64_t geequ(int64_t m, int64_t n, std::complex< double > const *A, int64_t lda, double *R, double *C, double *rowcnd, double *colcnd, double *amax)
Computes row and column scalings intended to equilibrate an m-by-n matrix A and reduce its condition ...
Definition: geequ.cc:175
lapack::hetrs2
int64_t hetrs2(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization or computed ...
Definition: hetrs2.cc:116
lapack::sytrd_2stage
int64_t sytrd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, double *A, int64_t lda, double *D, double *E, double *tau, double *hous2, int64_t lhous2)
Definition: sytrd_2stage.cc:86
lapack::hetrd_2stage
int64_t hetrd_2stage(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *D, double *E, std::complex< double > *tau, std::complex< double > *hous2, int64_t lhous2)
Reduces a Hermitian matrix A to real symmetric tridiagonal form T by a unitary similarity transformat...
Definition: hetrd_2stage.cc:196
lapack::heev
int64_t heev(lapack::Job jobz, lapack::Uplo uplo, int64_t n, std::complex< double > *A, int64_t lda, double *W)
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix A.
Definition: heev.cc:123
lapack::hetrs
int64_t hetrs(lapack::Uplo uplo, int64_t n, int64_t nrhs, std::complex< double > const *A, int64_t lda, int64_t const *ipiv, std::complex< double > *B, int64_t ldb)
Solves a system of linear equations with a Hermitian matrix A using the factorization or computed ...
Definition: hetrs.cc:110
lapack::orglq
int64_t orglq(int64_t m, int64_t n, int64_t k, double *A, int64_t lda, double const *tau)
Definition: orglq.cc:67
lapack::pptrf
int64_t pptrf(lapack::Uplo uplo, int64_t n, std::complex< double > *AP)
Computes the Cholesky factorization of a Hermitian positive definite matrix A stored in packed format...
Definition: pptrf.cc:154
lapack::larfg
void larfg(int64_t n, std::complex< double > *alpha, std::complex< double > *X, int64_t incx, std::complex< double > *tau)
Generates an elementary reflector H of order n, such that:
Definition: larfg.cc:138
lapack::gelq2
int64_t gelq2(int64_t m, int64_t n, std::complex< double > *A, int64_t lda, std::complex< double > *tau)
Computes an LQ factorization of an m-by-n matrix A: .
Definition: gelq2.cc:164