Reference documentation for deal.II version 9.1.0-pre
lapack_templates.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2005 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 
17 #ifndef dealii_lapack_templates_h
18 #define dealii_lapack_templates_h
19 
20 #include <deal.II/base/config.h>
21 
22 #include <deal.II/lac/lapack_support.h>
23 
24 #ifdef DEAL_II_HAVE_FP_EXCEPTIONS
25 # include <cfenv>
26 #endif
27 
28 extern "C"
29 {
30  void
31  saxpy_(const ::types::blas_int *n,
32  const float * sa,
33  const float * sx,
34  const ::types::blas_int *incx,
35  float * sy,
36  const ::types::blas_int *incy);
37 
38  void
39  daxpy_(const ::types::blas_int *n,
40  const double * da,
41  const double * dx,
42  const ::types::blas_int *incx,
43  double * dy,
44  const ::types::blas_int *incy);
45 
46  void
47  caxpy_(const ::types::blas_int *n,
48  const std::complex<float> * ca,
49  const std::complex<float> * cx,
50  const ::types::blas_int *incx,
51  std::complex<float> * cy,
52  const ::types::blas_int *incy);
53 
54  void
55  zaxpy_(const ::types::blas_int *n,
56  const std::complex<double> * za,
57  const std::complex<double> * zx,
58  const ::types::blas_int *incx,
59  std::complex<double> * zy,
60  const ::types::blas_int *incy);
61 
62  void
63  sgeev_(const char * jobvl,
64  const char * jobvr,
65  const ::types::blas_int *n,
66  float * a,
67  const ::types::blas_int *lda,
68  float * wr,
69  float * wi,
70  float * vl,
71  const ::types::blas_int *ldvl,
72  float * vr,
73  const ::types::blas_int *ldvr,
74  float * work,
75  const ::types::blas_int *lwork,
76  ::types::blas_int * info);
77 
78  void
79  dgeev_(const char * jobvl,
80  const char * jobvr,
81  const ::types::blas_int *n,
82  double * a,
83  const ::types::blas_int *lda,
84  double * wr,
85  double * wi,
86  double * vl,
87  const ::types::blas_int *ldvl,
88  double * vr,
89  const ::types::blas_int *ldvr,
90  double * work,
91  const ::types::blas_int *lwork,
92  ::types::blas_int * info);
93 
94  void
95  cgeev_(const char * jobvl,
96  const char * jobvr,
97  const ::types::blas_int *n,
98  std::complex<float> * a,
99  const ::types::blas_int *lda,
100  std::complex<float> * w,
101  std::complex<float> * vl,
102  const ::types::blas_int *ldvl,
103  std::complex<float> * vr,
104  const ::types::blas_int *ldvr,
105  std::complex<float> * work,
106  const ::types::blas_int *lwork,
107  float * rwork,
108  ::types::blas_int * info);
109 
110  void
111  zgeev_(const char * jobvl,
112  const char * jobvr,
113  const ::types::blas_int *n,
114  std::complex<double> * a,
115  const ::types::blas_int *lda,
116  std::complex<double> * w,
117  std::complex<double> * vl,
118  const ::types::blas_int *ldvl,
119  std::complex<double> * vr,
120  const ::types::blas_int *ldvr,
121  std::complex<double> * work,
122  const ::types::blas_int *lwork,
123  double * rwork,
124  ::types::blas_int * info);
125 
126  void
127  sgeevx_(const char * balanc,
128  const char * jobvl,
129  const char * jobvr,
130  const char * sense,
131  const ::types::blas_int *n,
132  float * a,
133  const ::types::blas_int *lda,
134  float * wr,
135  float * wi,
136  float * vl,
137  const ::types::blas_int *ldvl,
138  float * vr,
139  const ::types::blas_int *ldvr,
140  ::types::blas_int * ilo,
141  ::types::blas_int * ihi,
142  float * scale,
143  float * abnrm,
144  float * rconde,
145  float * rcondv,
146  float * work,
147  const ::types::blas_int *lwork,
148  ::types::blas_int * iwork,
149  ::types::blas_int * info);
150 
151  void
152  dgeevx_(const char * balanc,
153  const char * jobvl,
154  const char * jobvr,
155  const char * sense,
156  const ::types::blas_int *n,
157  double * a,
158  const ::types::blas_int *lda,
159  double * wr,
160  double * wi,
161  double * vl,
162  const ::types::blas_int *ldvl,
163  double * vr,
164  const ::types::blas_int *ldvr,
165  ::types::blas_int * ilo,
166  ::types::blas_int * ihi,
167  double * scale,
168  double * abnrm,
169  double * rconde,
170  double * rcondv,
171  double * work,
172  const ::types::blas_int *lwork,
173  ::types::blas_int * iwork,
174  ::types::blas_int * info);
175 
176  void
177  cgeevx_(const char * balanc,
178  const char * jobvl,
179  const char * jobvr,
180  const char * sense,
181  const ::types::blas_int *n,
182  std::complex<float> * a,
183  const ::types::blas_int *lda,
184  std::complex<float> * w,
185  std::complex<float> * vl,
186  const ::types::blas_int *ldvl,
187  std::complex<float> * vr,
188  const ::types::blas_int *ldvr,
189  ::types::blas_int * ilo,
190  ::types::blas_int * ihi,
191  float * scale,
192  float * abnrm,
193  float * rconde,
194  float * rcondv,
195  std::complex<float> * work,
196  const ::types::blas_int *lwork,
197  float * rwork,
198  ::types::blas_int * info);
199 
200  void
201  zgeevx_(const char * balanc,
202  const char * jobvl,
203  const char * jobvr,
204  const char * sense,
205  const ::types::blas_int *n,
206  std::complex<double> * a,
207  const ::types::blas_int *lda,
208  std::complex<double> * w,
209  std::complex<double> * vl,
210  const ::types::blas_int *ldvl,
211  std::complex<double> * vr,
212  const ::types::blas_int *ldvr,
213  ::types::blas_int * ilo,
214  ::types::blas_int * ihi,
215  double * scale,
216  double * abnrm,
217  double * rconde,
218  double * rcondv,
219  std::complex<double> * work,
220  const ::types::blas_int *lwork,
221  double * rwork,
222  ::types::blas_int * info);
223 
224  void
225  sgelsd_(const ::types::blas_int *m,
226  const ::types::blas_int *n,
227  const ::types::blas_int *nrhs,
228  float * a,
229  const ::types::blas_int *lda,
230  float * b,
231  const ::types::blas_int *ldb,
232  float * s,
233  const float * rcond,
234  ::types::blas_int * rank,
235  float * work,
236  const ::types::blas_int *lwork,
237  ::types::blas_int * iwork,
238  ::types::blas_int * info);
239 
240  void
241  dgelsd_(const ::types::blas_int *m,
242  const ::types::blas_int *n,
243  const ::types::blas_int *nrhs,
244  double * a,
245  const ::types::blas_int *lda,
246  double * b,
247  const ::types::blas_int *ldb,
248  double * s,
249  const double * rcond,
250  ::types::blas_int * rank,
251  double * work,
252  const ::types::blas_int *lwork,
253  ::types::blas_int * iwork,
254  ::types::blas_int * info);
255 
256  void
257  cgelsd_(const ::types::blas_int *m,
258  const ::types::blas_int *n,
259  const ::types::blas_int *nrhs,
260  std::complex<float> * a,
261  const ::types::blas_int *lda,
262  std::complex<float> * b,
263  const ::types::blas_int *ldb,
264  float * s,
265  const float * rcond,
266  ::types::blas_int * rank,
267  std::complex<float> * work,
268  const ::types::blas_int *lwork,
269  float * rwork,
270  ::types::blas_int * iwork,
271  ::types::blas_int * info);
272 
273  void
274  zgelsd_(const ::types::blas_int *m,
275  const ::types::blas_int *n,
276  const ::types::blas_int *nrhs,
277  std::complex<double> * a,
278  const ::types::blas_int *lda,
279  std::complex<double> * b,
280  const ::types::blas_int *ldb,
281  double * s,
282  const double * rcond,
283  ::types::blas_int * rank,
284  std::complex<double> * work,
285  const ::types::blas_int *lwork,
286  double * rwork,
287  ::types::blas_int * iwork,
288  ::types::blas_int * info);
289 
290  void
291  sgemm_(const char * transa,
292  const char * transb,
293  const ::types::blas_int *m,
294  const ::types::blas_int *n,
295  const ::types::blas_int *k,
296  const float * alpha,
297  const float * a,
298  const ::types::blas_int *lda,
299  const float * b,
300  const ::types::blas_int *ldb,
301  const float * beta,
302  float * c,
303  const ::types::blas_int *ldc);
304 
305  void
306  dgemm_(const char * transa,
307  const char * transb,
308  const ::types::blas_int *m,
309  const ::types::blas_int *n,
310  const ::types::blas_int *k,
311  const double * alpha,
312  const double * a,
313  const ::types::blas_int *lda,
314  const double * b,
315  const ::types::blas_int *ldb,
316  const double * beta,
317  double * c,
318  const ::types::blas_int *ldc);
319 
320  void
321  cgemm_(const char * transa,
322  const char * transb,
323  const ::types::blas_int *m,
324  const ::types::blas_int *n,
325  const ::types::blas_int *k,
326  const std::complex<float> * alpha,
327  const std::complex<float> * a,
328  const ::types::blas_int *lda,
329  const std::complex<float> * b,
330  const ::types::blas_int *ldb,
331  const std::complex<float> * beta,
332  std::complex<float> * c,
333  const ::types::blas_int *ldc);
334 
335  void
336  zgemm_(const char * transa,
337  const char * transb,
338  const ::types::blas_int *m,
339  const ::types::blas_int *n,
340  const ::types::blas_int *k,
341  const std::complex<double> * alpha,
342  const std::complex<double> * a,
343  const ::types::blas_int *lda,
344  const std::complex<double> * b,
345  const ::types::blas_int *ldb,
346  const std::complex<double> * beta,
347  std::complex<double> * c,
348  const ::types::blas_int *ldc);
349 
350  void
351  sgemv_(const char * trans,
352  const ::types::blas_int *m,
353  const ::types::blas_int *n,
354  const float * alpha,
355  const float * a,
356  const ::types::blas_int *lda,
357  const float * x,
358  const ::types::blas_int *incx,
359  const float * beta,
360  float * y,
361  const ::types::blas_int *incy);
362 
363  void
364  dgemv_(const char * trans,
365  const ::types::blas_int *m,
366  const ::types::blas_int *n,
367  const double * alpha,
368  const double * a,
369  const ::types::blas_int *lda,
370  const double * x,
371  const ::types::blas_int *incx,
372  const double * beta,
373  double * y,
374  const ::types::blas_int *incy);
375 
376  void
377  cgemv_(const char * trans,
378  const ::types::blas_int *m,
379  const ::types::blas_int *n,
380  const std::complex<float> * alpha,
381  const std::complex<float> * a,
382  const ::types::blas_int *lda,
383  const std::complex<float> * x,
384  const ::types::blas_int *incx,
385  const std::complex<float> * beta,
386  std::complex<float> * y,
387  const ::types::blas_int *incy);
388 
389  void
390  zgemv_(const char * trans,
391  const ::types::blas_int *m,
392  const ::types::blas_int *n,
393  const std::complex<double> * alpha,
394  const std::complex<double> * a,
395  const ::types::blas_int *lda,
396  const std::complex<double> * x,
397  const ::types::blas_int *incx,
398  const std::complex<double> * beta,
399  std::complex<double> * y,
400  const ::types::blas_int *incy);
401 
402  void
403  sgeqrf_(const ::types::blas_int *m,
404  const ::types::blas_int *n,
405  float * a,
406  const ::types::blas_int *lda,
407  float * tau,
408  float * work,
409  const ::types::blas_int *lwork,
410  ::types::blas_int * info);
411 
412  void
413  dgeqrf_(const ::types::blas_int *m,
414  const ::types::blas_int *n,
415  double * a,
416  const ::types::blas_int *lda,
417  double * tau,
418  double * work,
419  const ::types::blas_int *lwork,
420  ::types::blas_int * info);
421 
422  void
423  cgeqrf_(const ::types::blas_int *m,
424  const ::types::blas_int *n,
425  std::complex<float> * a,
426  const ::types::blas_int *lda,
427  std::complex<float> * tau,
428  std::complex<float> * work,
429  const ::types::blas_int *lwork,
430  ::types::blas_int * info);
431 
432  void
433  zgeqrf_(const ::types::blas_int *m,
434  const ::types::blas_int *n,
435  std::complex<double> * a,
436  const ::types::blas_int *lda,
437  std::complex<double> * tau,
438  std::complex<double> * work,
439  const ::types::blas_int *lwork,
440  ::types::blas_int * info);
441 
442  void
443  sgesdd_(const char * jobz,
444  const ::types::blas_int *m,
445  const ::types::blas_int *n,
446  float * a,
447  const ::types::blas_int *lda,
448  float * s,
449  float * u,
450  const ::types::blas_int *ldu,
451  float * vt,
452  const ::types::blas_int *ldvt,
453  float * work,
454  const ::types::blas_int *lwork,
455  ::types::blas_int * iwork,
456  ::types::blas_int * info);
457 
458  void
459  dgesdd_(const char * jobz,
460  const ::types::blas_int *m,
461  const ::types::blas_int *n,
462  double * a,
463  const ::types::blas_int *lda,
464  double * s,
465  double * u,
466  const ::types::blas_int *ldu,
467  double * vt,
468  const ::types::blas_int *ldvt,
469  double * work,
470  const ::types::blas_int *lwork,
471  ::types::blas_int * iwork,
472  ::types::blas_int * info);
473 
474  void
475  cgesdd_(const char * jobz,
476  const ::types::blas_int *m,
477  const ::types::blas_int *n,
478  std::complex<float> * a,
479  const ::types::blas_int *lda,
480  float * s,
481  std::complex<float> * u,
482  const ::types::blas_int *ldu,
483  std::complex<float> * vt,
484  const ::types::blas_int *ldvt,
485  std::complex<float> * work,
486  const ::types::blas_int *lwork,
487  float * rwork,
488  ::types::blas_int * iwork,
489  ::types::blas_int * info);
490 
491  void
492  zgesdd_(const char * jobz,
493  const ::types::blas_int *m,
494  const ::types::blas_int *n,
495  std::complex<double> * a,
496  const ::types::blas_int *lda,
497  double * s,
498  std::complex<double> * u,
499  const ::types::blas_int *ldu,
500  std::complex<double> * vt,
501  const ::types::blas_int *ldvt,
502  std::complex<double> * work,
503  const ::types::blas_int *lwork,
504  double * rwork,
505  ::types::blas_int * iwork,
506  ::types::blas_int * info);
507 
508  void
509  sgesvd_(const char * jobu,
510  const char * jobvt,
511  const ::types::blas_int *m,
512  const ::types::blas_int *n,
513  float * a,
514  const ::types::blas_int *lda,
515  float * s,
516  float * u,
517  const ::types::blas_int *ldu,
518  float * vt,
519  const ::types::blas_int *ldvt,
520  float * work,
521  const ::types::blas_int *lwork,
522  ::types::blas_int * info);
523 
524  void
525  dgesvd_(const char * jobu,
526  const char * jobvt,
527  const ::types::blas_int *m,
528  const ::types::blas_int *n,
529  double * a,
530  const ::types::blas_int *lda,
531  double * s,
532  double * u,
533  const ::types::blas_int *ldu,
534  double * vt,
535  const ::types::blas_int *ldvt,
536  double * work,
537  const ::types::blas_int *lwork,
538  ::types::blas_int * info);
539 
540  void
541  cgesvd_(const char * jobu,
542  const char * jobvt,
543  const ::types::blas_int *m,
544  const ::types::blas_int *n,
545  std::complex<float> * a,
546  const ::types::blas_int *lda,
547  float * s,
548  std::complex<float> * u,
549  const ::types::blas_int *ldu,
550  std::complex<float> * vt,
551  const ::types::blas_int *ldvt,
552  std::complex<float> * work,
553  const ::types::blas_int *lwork,
554  float * rwork,
555  ::types::blas_int * info);
556 
557  void
558  zgesvd_(const char * jobu,
559  const char * jobvt,
560  const ::types::blas_int *m,
561  const ::types::blas_int *n,
562  std::complex<double> * a,
563  const ::types::blas_int *lda,
564  double * s,
565  std::complex<double> * u,
566  const ::types::blas_int *ldu,
567  std::complex<double> * vt,
568  const ::types::blas_int *ldvt,
569  std::complex<double> * work,
570  const ::types::blas_int *lwork,
571  double * rwork,
572  ::types::blas_int * info);
573 
574  void
575  sgetrf_(const ::types::blas_int *m,
576  const ::types::blas_int *n,
577  float * a,
578  const ::types::blas_int *lda,
579  ::types::blas_int * ipiv,
580  ::types::blas_int * info);
581 
582  void
583  dgetrf_(const ::types::blas_int *m,
584  const ::types::blas_int *n,
585  double * a,
586  const ::types::blas_int *lda,
587  ::types::blas_int * ipiv,
588  ::types::blas_int * info);
589 
590  void
591  cgetrf_(const ::types::blas_int *m,
592  const ::types::blas_int *n,
593  std::complex<float> * a,
594  const ::types::blas_int *lda,
595  ::types::blas_int * ipiv,
596  ::types::blas_int * info);
597 
598  void
599  zgetrf_(const ::types::blas_int *m,
600  const ::types::blas_int *n,
601  std::complex<double> * a,
602  const ::types::blas_int *lda,
603  ::types::blas_int * ipiv,
604  ::types::blas_int * info);
605 
606  void
607  sgetri_(const ::types::blas_int *n,
608  float * a,
609  const ::types::blas_int *lda,
610  const ::types::blas_int *ipiv,
611  float * work,
612  const ::types::blas_int *lwork,
613  ::types::blas_int * info);
614 
615  void
616  dgetri_(const ::types::blas_int *n,
617  double * a,
618  const ::types::blas_int *lda,
619  const ::types::blas_int *ipiv,
620  double * work,
621  const ::types::blas_int *lwork,
622  ::types::blas_int * info);
623 
624  void
625  cgetri_(const ::types::blas_int *n,
626  std::complex<float> * a,
627  const ::types::blas_int *lda,
628  const ::types::blas_int *ipiv,
629  std::complex<float> * work,
630  const ::types::blas_int *lwork,
631  ::types::blas_int * info);
632 
633  void
634  zgetri_(const ::types::blas_int *n,
635  std::complex<double> * a,
636  const ::types::blas_int *lda,
637  const ::types::blas_int *ipiv,
638  std::complex<double> * work,
639  const ::types::blas_int *lwork,
640  ::types::blas_int * info);
641 
642  void
643  sgetrs_(const char * trans,
644  const ::types::blas_int *n,
645  const ::types::blas_int *nrhs,
646  const float * a,
647  const ::types::blas_int *lda,
648  const ::types::blas_int *ipiv,
649  float * b,
650  const ::types::blas_int *ldb,
651  ::types::blas_int * info);
652 
653  void
654  dgetrs_(const char * trans,
655  const ::types::blas_int *n,
656  const ::types::blas_int *nrhs,
657  const double * a,
658  const ::types::blas_int *lda,
659  const ::types::blas_int *ipiv,
660  double * b,
661  const ::types::blas_int *ldb,
662  ::types::blas_int * info);
663 
664  void
665  cgetrs_(const char * trans,
666  const ::types::blas_int *n,
667  const ::types::blas_int *nrhs,
668  const std::complex<float> * a,
669  const ::types::blas_int *lda,
670  const ::types::blas_int *ipiv,
671  std::complex<float> * b,
672  const ::types::blas_int *ldb,
673  ::types::blas_int * info);
674 
675  void
676  zgetrs_(const char * trans,
677  const ::types::blas_int *n,
678  const ::types::blas_int *nrhs,
679  const std::complex<double> * a,
680  const ::types::blas_int *lda,
681  const ::types::blas_int *ipiv,
682  std::complex<double> * b,
683  const ::types::blas_int *ldb,
684  ::types::blas_int * info);
685 
686  float
687  slamch_(const char *cmach);
688 
689  double
690  dlamch_(const char *cmach);
691 
692  float
693  slange_(const char * norm,
694  const ::types::blas_int *m,
695  const ::types::blas_int *n,
696  const float * a,
697  const ::types::blas_int *lda,
698  float * work);
699 
700  double
701  dlange_(const char * norm,
702  const ::types::blas_int *m,
703  const ::types::blas_int *n,
704  const double * a,
705  const ::types::blas_int *lda,
706  double * work);
707 
708  float
709  clange_(const char * norm,
710  const ::types::blas_int *m,
711  const ::types::blas_int *n,
712  const std::complex<float> * a,
713  const ::types::blas_int *lda,
714  float * work);
715 
716  double
717  zlange_(const char * norm,
718  const ::types::blas_int *m,
719  const ::types::blas_int *n,
720  const std::complex<double> * a,
721  const ::types::blas_int *lda,
722  double * work);
723 
724  float
725  slansy_(const char * norm,
726  const char * uplo,
727  const ::types::blas_int *n,
728  const float * a,
729  const ::types::blas_int *lda,
730  float * work);
731 
732  double
733  dlansy_(const char * norm,
734  const char * uplo,
735  const ::types::blas_int *n,
736  const double * a,
737  const ::types::blas_int *lda,
738  double * work);
739 
740  float
741  clansy_(const char * norm,
742  const char * uplo,
743  const ::types::blas_int *n,
744  const std::complex<float> * a,
745  const ::types::blas_int *lda,
746  float * work);
747 
748  double
749  zlansy_(const char * norm,
750  const char * uplo,
751  const ::types::blas_int *n,
752  const std::complex<double> * a,
753  const ::types::blas_int *lda,
754  double * work);
755 
756  void
757  slascl_(const char * type,
758  const ::types::blas_int *kl,
759  const ::types::blas_int *ku,
760  const float * cfrom,
761  const float * cto,
762  const ::types::blas_int *m,
763  const ::types::blas_int *n,
764  float * a,
765  const ::types::blas_int *lda,
766  ::types::blas_int * info);
767 
768  void
769  dlascl_(const char * type,
770  const ::types::blas_int *kl,
771  const ::types::blas_int *ku,
772  const double * cfrom,
773  const double * cto,
774  const ::types::blas_int *m,
775  const ::types::blas_int *n,
776  double * a,
777  const ::types::blas_int *lda,
778  ::types::blas_int * info);
779 
780  void
781  clascl_(const char * type,
782  const ::types::blas_int *kl,
783  const ::types::blas_int *ku,
784  const float * cfrom,
785  const float * cto,
786  const ::types::blas_int *m,
787  const ::types::blas_int *n,
788  std::complex<float> * a,
789  const ::types::blas_int *lda,
790  ::types::blas_int * info);
791 
792  void
793  zlascl_(const char * type,
794  const ::types::blas_int *kl,
795  const ::types::blas_int *ku,
796  const double * cfrom,
797  const double * cto,
798  const ::types::blas_int *m,
799  const ::types::blas_int *n,
800  std::complex<double> * a,
801  const ::types::blas_int *lda,
802  ::types::blas_int * info);
803 
804  void
805  sorgqr_(const ::types::blas_int *m,
806  const ::types::blas_int *n,
807  const ::types::blas_int *k,
808  float * a,
809  const ::types::blas_int *lda,
810  const float * tau,
811  float * work,
812  const ::types::blas_int *lwork,
813  ::types::blas_int * info);
814 
815  void
816  dorgqr_(const ::types::blas_int *m,
817  const ::types::blas_int *n,
818  const ::types::blas_int *k,
819  double * a,
820  const ::types::blas_int *lda,
821  const double * tau,
822  double * work,
823  const ::types::blas_int *lwork,
824  ::types::blas_int * info);
825 
826  void
827  sormqr_(const char * side,
828  const char * trans,
829  const ::types::blas_int *m,
830  const ::types::blas_int *n,
831  const ::types::blas_int *k,
832  const float * a,
833  const ::types::blas_int *lda,
834  const float * tau,
835  float * c,
836  const ::types::blas_int *ldc,
837  float * work,
838  const ::types::blas_int *lwork,
839  ::types::blas_int * info);
840 
841  void
842  dormqr_(const char * side,
843  const char * trans,
844  const ::types::blas_int *m,
845  const ::types::blas_int *n,
846  const ::types::blas_int *k,
847  const double * a,
848  const ::types::blas_int *lda,
849  const double * tau,
850  double * c,
851  const ::types::blas_int *ldc,
852  double * work,
853  const ::types::blas_int *lwork,
854  ::types::blas_int * info);
855 
856  void
857  spocon_(const char * uplo,
858  const ::types::blas_int *n,
859  const float * a,
860  const ::types::blas_int *lda,
861  const float * anorm,
862  float * rcond,
863  float * work,
864  ::types::blas_int * iwork,
865  ::types::blas_int * info);
866 
867  void
868  dpocon_(const char * uplo,
869  const ::types::blas_int *n,
870  const double * a,
871  const ::types::blas_int *lda,
872  const double * anorm,
873  double * rcond,
874  double * work,
875  ::types::blas_int * iwork,
876  ::types::blas_int * info);
877 
878  void
879  cpocon_(const char * uplo,
880  const ::types::blas_int *n,
881  const std::complex<float> * a,
882  const ::types::blas_int *lda,
883  const float * anorm,
884  float * rcond,
885  std::complex<float> * work,
886  float * rwork,
887  ::types::blas_int * info);
888 
889  void
890  zpocon_(const char * uplo,
891  const ::types::blas_int *n,
892  const std::complex<double> * a,
893  const ::types::blas_int *lda,
894  const double * anorm,
895  double * rcond,
896  std::complex<double> * work,
897  double * rwork,
898  ::types::blas_int * info);
899 
900  void
901  spotrf_(const char * uplo,
902  const ::types::blas_int *n,
903  float * a,
904  const ::types::blas_int *lda,
905  ::types::blas_int * info);
906 
907  void
908  dpotrf_(const char * uplo,
909  const ::types::blas_int *n,
910  double * a,
911  const ::types::blas_int *lda,
912  ::types::blas_int * info);
913 
914  void
915  cpotrf_(const char * uplo,
916  const ::types::blas_int *n,
917  std::complex<float> * a,
918  const ::types::blas_int *lda,
919  ::types::blas_int * info);
920 
921  void
922  zpotrf_(const char * uplo,
923  const ::types::blas_int *n,
924  std::complex<double> * a,
925  const ::types::blas_int *lda,
926  ::types::blas_int * info);
927 
928  void
929  spotri_(const char * uplo,
930  const ::types::blas_int *n,
931  float * a,
932  const ::types::blas_int *lda,
933  ::types::blas_int * info);
934 
935  void
936  dpotri_(const char * uplo,
937  const ::types::blas_int *n,
938  double * a,
939  const ::types::blas_int *lda,
940  ::types::blas_int * info);
941 
942  void
943  cpotri_(const char * uplo,
944  const ::types::blas_int *n,
945  std::complex<float> * a,
946  const ::types::blas_int *lda,
947  ::types::blas_int * info);
948 
949  void
950  zpotri_(const char * uplo,
951  const ::types::blas_int *n,
952  std::complex<double> * a,
953  const ::types::blas_int *lda,
954  ::types::blas_int * info);
955 
956  void
957  spotrs_(const char * uplo,
958  const ::types::blas_int *n,
959  const ::types::blas_int *nrhs,
960  const float * a,
961  const ::types::blas_int *lda,
962  float * b,
963  const ::types::blas_int *ldb,
964  ::types::blas_int * info);
965 
966  void
967  dpotrs_(const char * uplo,
968  const ::types::blas_int *n,
969  const ::types::blas_int *nrhs,
970  const double * a,
971  const ::types::blas_int *lda,
972  double * b,
973  const ::types::blas_int *ldb,
974  ::types::blas_int * info);
975 
976  void
977  cpotrs_(const char * uplo,
978  const ::types::blas_int *n,
979  const ::types::blas_int *nrhs,
980  const std::complex<float> * a,
981  const ::types::blas_int *lda,
982  std::complex<float> * b,
983  const ::types::blas_int *ldb,
984  ::types::blas_int * info);
985 
986  void
987  zpotrs_(const char * uplo,
988  const ::types::blas_int *n,
989  const ::types::blas_int *nrhs,
990  const std::complex<double> * a,
991  const ::types::blas_int *lda,
992  std::complex<double> * b,
993  const ::types::blas_int *ldb,
994  ::types::blas_int * info);
995 
996  void
997  sstev_(const char * jobz,
998  const ::types::blas_int *n,
999  float * d,
1000  float * e,
1001  float * z,
1002  const ::types::blas_int *ldz,
1003  float * work,
1004  ::types::blas_int * info);
1005 
1006  void
1007  dstev_(const char * jobz,
1008  const ::types::blas_int *n,
1009  double * d,
1010  double * e,
1011  double * z,
1012  const ::types::blas_int *ldz,
1013  double * work,
1014  ::types::blas_int * info);
1015 
1016  void
1017  ssyev_(const char * jobz,
1018  const char * uplo,
1019  const ::types::blas_int *n,
1020  float * a,
1021  const ::types::blas_int *lda,
1022  float * w,
1023  float * work,
1024  const ::types::blas_int *lwork,
1025  ::types::blas_int * info);
1026 
1027  void
1028  dsyev_(const char * jobz,
1029  const char * uplo,
1030  const ::types::blas_int *n,
1031  double * a,
1032  const ::types::blas_int *lda,
1033  double * w,
1034  double * work,
1035  const ::types::blas_int *lwork,
1036  ::types::blas_int * info);
1037 
1038  void
1039  ssyevr_(const char * jobz,
1040  const char * range,
1041  const char * uplo,
1042  const ::types::blas_int *n,
1043  float * a,
1044  const ::types::blas_int *lda,
1045  const float * vl,
1046  const float * vu,
1047  const ::types::blas_int *il,
1048  const ::types::blas_int *iu,
1049  const float * abstol,
1050  ::types::blas_int * m,
1051  float * w,
1052  float * z,
1053  const ::types::blas_int *ldz,
1054  ::types::blas_int * isuppz,
1055  float * work,
1056  const ::types::blas_int *lwork,
1057  ::types::blas_int * iwork,
1058  const ::types::blas_int *liwork,
1059  ::types::blas_int * info);
1060 
1061  void
1062  dsyevr_(const char * jobz,
1063  const char * range,
1064  const char * uplo,
1065  const ::types::blas_int *n,
1066  double * a,
1067  const ::types::blas_int *lda,
1068  const double * vl,
1069  const double * vu,
1070  const ::types::blas_int *il,
1071  const ::types::blas_int *iu,
1072  const double * abstol,
1073  ::types::blas_int * m,
1074  double * w,
1075  double * z,
1076  const ::types::blas_int *ldz,
1077  ::types::blas_int * isuppz,
1078  double * work,
1079  const ::types::blas_int *lwork,
1080  ::types::blas_int * iwork,
1081  const ::types::blas_int *liwork,
1082  ::types::blas_int * info);
1083 
1084  void
1085  ssyevx_(const char * jobz,
1086  const char * range,
1087  const char * uplo,
1088  const ::types::blas_int *n,
1089  float * a,
1090  const ::types::blas_int *lda,
1091  const float * vl,
1092  const float * vu,
1093  const ::types::blas_int *il,
1094  const ::types::blas_int *iu,
1095  const float * abstol,
1096  ::types::blas_int * m,
1097  float * w,
1098  float * z,
1099  const ::types::blas_int *ldz,
1100  float * work,
1101  const ::types::blas_int *lwork,
1102  ::types::blas_int * iwork,
1103  ::types::blas_int * ifail,
1104  ::types::blas_int * info);
1105 
1106  void
1107  dsyevx_(const char * jobz,
1108  const char * range,
1109  const char * uplo,
1110  const ::types::blas_int *n,
1111  double * a,
1112  const ::types::blas_int *lda,
1113  const double * vl,
1114  const double * vu,
1115  const ::types::blas_int *il,
1116  const ::types::blas_int *iu,
1117  const double * abstol,
1118  ::types::blas_int * m,
1119  double * w,
1120  double * z,
1121  const ::types::blas_int *ldz,
1122  double * work,
1123  const ::types::blas_int *lwork,
1124  ::types::blas_int * iwork,
1125  ::types::blas_int * ifail,
1126  ::types::blas_int * info);
1127 
1128  void
1129  ssygv_(const ::types::blas_int *itype,
1130  const char * jobz,
1131  const char * uplo,
1132  const ::types::blas_int *n,
1133  float * a,
1134  const ::types::blas_int *lda,
1135  float * b,
1136  const ::types::blas_int *ldb,
1137  float * w,
1138  float * work,
1139  const ::types::blas_int *lwork,
1140  ::types::blas_int * info);
1141 
1142  void
1143  dsygv_(const ::types::blas_int *itype,
1144  const char * jobz,
1145  const char * uplo,
1146  const ::types::blas_int *n,
1147  double * a,
1148  const ::types::blas_int *lda,
1149  double * b,
1150  const ::types::blas_int *ldb,
1151  double * w,
1152  double * work,
1153  const ::types::blas_int *lwork,
1154  ::types::blas_int * info);
1155 
1156  void
1157  ssygvx_(const ::types::blas_int *itype,
1158  const char * jobz,
1159  const char * range,
1160  const char * uplo,
1161  const ::types::blas_int *n,
1162  float * a,
1163  const ::types::blas_int *lda,
1164  float * b,
1165  const ::types::blas_int *ldb,
1166  const float * vl,
1167  const float * vu,
1168  const ::types::blas_int *il,
1169  const ::types::blas_int *iu,
1170  const float * abstol,
1171  ::types::blas_int * m,
1172  float * w,
1173  float * z,
1174  const ::types::blas_int *ldz,
1175  float * work,
1176  const ::types::blas_int *lwork,
1177  ::types::blas_int * iwork,
1178  ::types::blas_int * ifail,
1179  ::types::blas_int * info);
1180 
1181  void
1182  dsygvx_(const ::types::blas_int *itype,
1183  const char * jobz,
1184  const char * range,
1185  const char * uplo,
1186  const ::types::blas_int *n,
1187  double * a,
1188  const ::types::blas_int *lda,
1189  double * b,
1190  const ::types::blas_int *ldb,
1191  const double * vl,
1192  const double * vu,
1193  const ::types::blas_int *il,
1194  const ::types::blas_int *iu,
1195  const double * abstol,
1196  ::types::blas_int * m,
1197  double * w,
1198  double * z,
1199  const ::types::blas_int *ldz,
1200  double * work,
1201  const ::types::blas_int *lwork,
1202  ::types::blas_int * iwork,
1203  ::types::blas_int * ifail,
1204  ::types::blas_int * info);
1205 
1206  void
1207  ssyr_(const char * uplo,
1208  const ::types::blas_int *n,
1209  const float * alpha,
1210  const float * x,
1211  const ::types::blas_int *incx,
1212  float * a,
1213  const ::types::blas_int *lda);
1214 
1215  void
1216  dsyr_(const char * uplo,
1217  const ::types::blas_int *n,
1218  const double * alpha,
1219  const double * x,
1220  const ::types::blas_int *incx,
1221  double * a,
1222  const ::types::blas_int *lda);
1223 
1224  void
1225  ssyrk_(const char * uplo,
1226  const char * trans,
1227  const ::types::blas_int *n,
1228  const ::types::blas_int *k,
1229  const float * alpha,
1230  const float * a,
1231  const ::types::blas_int *lda,
1232  const float * beta,
1233  float * c,
1234  const ::types::blas_int *ldc);
1235 
1236  void
1237  dsyrk_(const char * uplo,
1238  const char * trans,
1239  const ::types::blas_int *n,
1240  const ::types::blas_int *k,
1241  const double * alpha,
1242  const double * a,
1243  const ::types::blas_int *lda,
1244  const double * beta,
1245  double * c,
1246  const ::types::blas_int *ldc);
1247 
1248  void
1249  csyrk_(const char * uplo,
1250  const char * trans,
1251  const ::types::blas_int *n,
1252  const ::types::blas_int *k,
1253  const std::complex<float> * alpha,
1254  const std::complex<float> * a,
1255  const ::types::blas_int *lda,
1256  const std::complex<float> * beta,
1257  std::complex<float> * c,
1258  const ::types::blas_int *ldc);
1259 
1260  void
1261  zsyrk_(const char * uplo,
1262  const char * trans,
1263  const ::types::blas_int *n,
1264  const ::types::blas_int *k,
1265  const std::complex<double> * alpha,
1266  const std::complex<double> * a,
1267  const ::types::blas_int *lda,
1268  const std::complex<double> * beta,
1269  std::complex<double> * c,
1270  const ::types::blas_int *ldc);
1271 
1272  void
1273  strcon_(const char * norm,
1274  const char * uplo,
1275  const char * diag,
1276  const ::types::blas_int *n,
1277  const float * a,
1278  const ::types::blas_int *lda,
1279  float * rcond,
1280  float * work,
1281  ::types::blas_int * iwork,
1282  ::types::blas_int * info);
1283 
1284  void
1285  dtrcon_(const char * norm,
1286  const char * uplo,
1287  const char * diag,
1288  const ::types::blas_int *n,
1289  const double * a,
1290  const ::types::blas_int *lda,
1291  double * rcond,
1292  double * work,
1293  ::types::blas_int * iwork,
1294  ::types::blas_int * info);
1295 
1296  void
1297  ctrcon_(const char * norm,
1298  const char * uplo,
1299  const char * diag,
1300  const ::types::blas_int *n,
1301  const std::complex<float> * a,
1302  const ::types::blas_int *lda,
1303  float * rcond,
1304  std::complex<float> * work,
1305  float * rwork,
1306  ::types::blas_int * info);
1307 
1308  void
1309  ztrcon_(const char * norm,
1310  const char * uplo,
1311  const char * diag,
1312  const ::types::blas_int *n,
1313  const std::complex<double> * a,
1314  const ::types::blas_int *lda,
1315  double * rcond,
1316  std::complex<double> * work,
1317  double * rwork,
1318  ::types::blas_int * info);
1319 
1320  void
1321  strmv_(const char * uplo,
1322  const char * trans,
1323  const char * diag,
1324  const ::types::blas_int *n,
1325  const float * a,
1326  const ::types::blas_int *lda,
1327  float * x,
1328  const ::types::blas_int *incx);
1329 
1330  void
1331  dtrmv_(const char * uplo,
1332  const char * trans,
1333  const char * diag,
1334  const ::types::blas_int *n,
1335  const double * a,
1336  const ::types::blas_int *lda,
1337  double * x,
1338  const ::types::blas_int *incx);
1339 
1340  void
1341  ctrmv_(const char * uplo,
1342  const char * trans,
1343  const char * diag,
1344  const ::types::blas_int *n,
1345  const std::complex<float> * a,
1346  const ::types::blas_int *lda,
1347  std::complex<float> * x,
1348  const ::types::blas_int *incx);
1349 
1350  void
1351  ztrmv_(const char * uplo,
1352  const char * trans,
1353  const char * diag,
1354  const ::types::blas_int *n,
1355  const std::complex<double> * a,
1356  const ::types::blas_int *lda,
1357  std::complex<double> * x,
1358  const ::types::blas_int *incx);
1359 
1360  void
1361  strtrs_(const char * uplo,
1362  const char * trans,
1363  const char * diag,
1364  const ::types::blas_int *n,
1365  const ::types::blas_int *nrhs,
1366  const float * a,
1367  const ::types::blas_int *lda,
1368  float * b,
1369  const ::types::blas_int *ldb,
1370  ::types::blas_int * info);
1371 
1372  void
1373  dtrtrs_(const char * uplo,
1374  const char * trans,
1375  const char * diag,
1376  const ::types::blas_int *n,
1377  const ::types::blas_int *nrhs,
1378  const double * a,
1379  const ::types::blas_int *lda,
1380  double * b,
1381  const ::types::blas_int *ldb,
1382  ::types::blas_int * info);
1383 
1384  void
1385  ctrtrs_(const char * uplo,
1386  const char * trans,
1387  const char * diag,
1388  const ::types::blas_int *n,
1389  const ::types::blas_int *nrhs,
1390  const std::complex<float> * a,
1391  const ::types::blas_int *lda,
1392  std::complex<float> * b,
1393  const ::types::blas_int *ldb,
1394  ::types::blas_int * info);
1395 
1396  void
1397  ztrtrs_(const char * uplo,
1398  const char * trans,
1399  const char * diag,
1400  const ::types::blas_int *n,
1401  const ::types::blas_int *nrhs,
1402  const std::complex<double> * a,
1403  const ::types::blas_int *lda,
1404  std::complex<double> * b,
1405  const ::types::blas_int *ldb,
1406  ::types::blas_int * info);
1407 }
1408 
1409 DEAL_II_NAMESPACE_OPEN
1410 
1411 
1412 
1413 template <typename number1, typename number2, typename number3>
1414 inline void
1415 axpy(const ::types::blas_int *,
1416  const number1 *,
1417  const number2 *,
1418  const ::types::blas_int *,
1419  number3 *,
1420  const ::types::blas_int *)
1421 {
1422  Assert(false, ExcNotImplemented());
1423 }
1424 
1425 
1426 
1427 inline void
1428 axpy(const ::types::blas_int *n,
1429  const float * sa,
1430  const float * sx,
1431  const ::types::blas_int *incx,
1432  float * sy,
1433  const ::types::blas_int *incy)
1434 {
1435 #ifdef DEAL_II_WITH_LAPACK
1436  saxpy_(n, sa, sx, incx, sy, incy);
1437 #else
1438  (void)n;
1439  (void)sa;
1440  (void)sx;
1441  (void)incx;
1442  (void)sy;
1443  (void)incy;
1444  Assert(false, LAPACKSupport::ExcMissing("saxpy"));
1445 #endif // DEAL_II_WITH_LAPACK
1446 }
1447 
1448 
1449 
1450 inline void
1451 axpy(const ::types::blas_int *n,
1452  const double * da,
1453  const double * dx,
1454  const ::types::blas_int *incx,
1455  double * dy,
1456  const ::types::blas_int *incy)
1457 {
1458 #ifdef DEAL_II_WITH_LAPACK
1459  daxpy_(n, da, dx, incx, dy, incy);
1460 #else
1461  (void)n;
1462  (void)da;
1463  (void)dx;
1464  (void)incx;
1465  (void)dy;
1466  (void)incy;
1467  Assert(false, LAPACKSupport::ExcMissing("daxpy"));
1468 #endif // DEAL_II_WITH_LAPACK
1469 }
1470 
1471 
1472 
1473 inline void
1474 axpy(const ::types::blas_int *n,
1475  const std::complex<float> * ca,
1476  const std::complex<float> * cx,
1477  const ::types::blas_int *incx,
1478  std::complex<float> * cy,
1479  const ::types::blas_int *incy)
1480 {
1481 #ifdef DEAL_II_WITH_LAPACK
1482  caxpy_(n, ca, cx, incx, cy, incy);
1483 #else
1484  (void)n;
1485  (void)ca;
1486  (void)cx;
1487  (void)incx;
1488  (void)cy;
1489  (void)incy;
1490  Assert(false, LAPACKSupport::ExcMissing("caxpy"));
1491 #endif // DEAL_II_WITH_LAPACK
1492 }
1493 
1494 
1495 
1496 inline void
1497 axpy(const ::types::blas_int *n,
1498  const std::complex<double> * za,
1499  const std::complex<double> * zx,
1500  const ::types::blas_int *incx,
1501  std::complex<double> * zy,
1502  const ::types::blas_int *incy)
1503 {
1504 #ifdef DEAL_II_WITH_LAPACK
1505  zaxpy_(n, za, zx, incx, zy, incy);
1506 #else
1507  (void)n;
1508  (void)za;
1509  (void)zx;
1510  (void)incx;
1511  (void)zy;
1512  (void)incy;
1513  Assert(false, LAPACKSupport::ExcMissing("zaxpy"));
1514 #endif // DEAL_II_WITH_LAPACK
1515 }
1516 
1517 
1518 
1519 template <typename number1,
1520  typename number2,
1521  typename number3,
1522  typename number4,
1523  typename number5,
1524  typename number6>
1525 inline void
1526 geev(const char *,
1527  const char *,
1528  const ::types::blas_int *,
1529  number1 *,
1530  const ::types::blas_int *,
1531  number2 *,
1532  number3 *,
1533  number4 *,
1534  const ::types::blas_int *,
1535  number5 *,
1536  const ::types::blas_int *,
1537  number6 *,
1538  const ::types::blas_int *,
1539  ::types::blas_int *)
1540 {
1541  Assert(false, ExcNotImplemented());
1542 }
1543 
1544 
1545 
1546 inline void
1547 geev(const char * jobvl,
1548  const char * jobvr,
1549  const ::types::blas_int *n,
1550  float * a,
1551  const ::types::blas_int *lda,
1552  float * wr,
1553  float * wi,
1554  float * vl,
1555  const ::types::blas_int *ldvl,
1556  float * vr,
1557  const ::types::blas_int *ldvr,
1558  float * work,
1559  const ::types::blas_int *lwork,
1560  ::types::blas_int * info)
1561 {
1562 #ifdef DEAL_II_WITH_LAPACK
1563  sgeev_(
1564  jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
1565 #else
1566  (void)jobvl;
1567  (void)jobvr;
1568  (void)n;
1569  (void)a;
1570  (void)lda;
1571  (void)wr;
1572  (void)wi;
1573  (void)vl;
1574  (void)ldvl;
1575  (void)vr;
1576  (void)ldvr;
1577  (void)work;
1578  (void)lwork;
1579  (void)info;
1580  Assert(false, LAPACKSupport::ExcMissing("sgeev"));
1581 #endif // DEAL_II_WITH_LAPACK
1582 }
1583 
1584 
1585 
1586 inline void
1587 geev(const char * jobvl,
1588  const char * jobvr,
1589  const ::types::blas_int *n,
1590  double * a,
1591  const ::types::blas_int *lda,
1592  double * wr,
1593  double * wi,
1594  double * vl,
1595  const ::types::blas_int *ldvl,
1596  double * vr,
1597  const ::types::blas_int *ldvr,
1598  double * work,
1599  const ::types::blas_int *lwork,
1600  ::types::blas_int * info)
1601 {
1602 #ifdef DEAL_II_WITH_LAPACK
1603  dgeev_(
1604  jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
1605 #else
1606  (void)jobvl;
1607  (void)jobvr;
1608  (void)n;
1609  (void)a;
1610  (void)lda;
1611  (void)wr;
1612  (void)wi;
1613  (void)vl;
1614  (void)ldvl;
1615  (void)vr;
1616  (void)ldvr;
1617  (void)work;
1618  (void)lwork;
1619  (void)info;
1620  Assert(false, LAPACKSupport::ExcMissing("dgeev"));
1621 #endif // DEAL_II_WITH_LAPACK
1622 }
1623 
1624 
1625 
1626 inline void
1627 geev(const char * jobvl,
1628  const char * jobvr,
1629  const ::types::blas_int *n,
1630  std::complex<float> * a,
1631  const ::types::blas_int *lda,
1632  std::complex<float> * w,
1633  std::complex<float> * vl,
1634  const ::types::blas_int *ldvl,
1635  std::complex<float> * vr,
1636  const ::types::blas_int *ldvr,
1637  std::complex<float> * work,
1638  const ::types::blas_int *lwork,
1639  float * rwork,
1640  ::types::blas_int * info)
1641 {
1642 #ifdef DEAL_II_WITH_LAPACK
1643  cgeev_(
1644  jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
1645 #else
1646  (void)jobvl;
1647  (void)jobvr;
1648  (void)n;
1649  (void)a;
1650  (void)lda;
1651  (void)w;
1652  (void)vl;
1653  (void)ldvl;
1654  (void)vr;
1655  (void)ldvr;
1656  (void)work;
1657  (void)lwork;
1658  (void)rwork;
1659  (void)info;
1660  Assert(false, LAPACKSupport::ExcMissing("cgeev"));
1661 #endif // DEAL_II_WITH_LAPACK
1662 }
1663 
1664 
1665 
1666 inline void
1667 geev(const char * jobvl,
1668  const char * jobvr,
1669  const ::types::blas_int *n,
1670  std::complex<double> * a,
1671  const ::types::blas_int *lda,
1672  std::complex<double> * w,
1673  std::complex<double> * vl,
1674  const ::types::blas_int *ldvl,
1675  std::complex<double> * vr,
1676  const ::types::blas_int *ldvr,
1677  std::complex<double> * work,
1678  const ::types::blas_int *lwork,
1679  double * rwork,
1680  ::types::blas_int * info)
1681 {
1682 #ifdef DEAL_II_WITH_LAPACK
1683  zgeev_(
1684  jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
1685 #else
1686  (void)jobvl;
1687  (void)jobvr;
1688  (void)n;
1689  (void)a;
1690  (void)lda;
1691  (void)w;
1692  (void)vl;
1693  (void)ldvl;
1694  (void)vr;
1695  (void)ldvr;
1696  (void)work;
1697  (void)lwork;
1698  (void)rwork;
1699  (void)info;
1700  Assert(false, LAPACKSupport::ExcMissing("zgeev"));
1701 #endif // DEAL_II_WITH_LAPACK
1702 }
1703 
1704 
1705 
1706 template <typename number1,
1707  typename number2,
1708  typename number3,
1709  typename number4,
1710  typename number5,
1711  typename number6,
1712  typename number7,
1713  typename number8,
1714  typename number9,
1715  typename number10>
1716 inline void
1717 geevx(const char *,
1718  const char *,
1719  const char *,
1720  const char *,
1721  const ::types::blas_int *,
1722  number1 *,
1723  const ::types::blas_int *,
1724  number2 *,
1725  number3 *,
1726  number4 *,
1727  const ::types::blas_int *,
1728  number5 *,
1729  const ::types::blas_int *,
1730  ::types::blas_int *,
1731  ::types::blas_int *,
1732  number6 *,
1733  number7 *,
1734  number8 *,
1735  number9 *,
1736  number10 *,
1737  const ::types::blas_int *,
1738  ::types::blas_int *,
1739  ::types::blas_int *)
1740 {
1741  Assert(false, ExcNotImplemented());
1742 }
1743 
1744 
1745 
1746 inline void
1747 geevx(const char * balanc,
1748  const char * jobvl,
1749  const char * jobvr,
1750  const char * sense,
1751  const ::types::blas_int *n,
1752  float * a,
1753  const ::types::blas_int *lda,
1754  float * wr,
1755  float * wi,
1756  float * vl,
1757  const ::types::blas_int *ldvl,
1758  float * vr,
1759  const ::types::blas_int *ldvr,
1760  ::types::blas_int * ilo,
1761  ::types::blas_int * ihi,
1762  float * scale,
1763  float * abnrm,
1764  float * rconde,
1765  float * rcondv,
1766  float * work,
1767  const ::types::blas_int *lwork,
1768  ::types::blas_int * iwork,
1769  ::types::blas_int * info)
1770 {
1771 #ifdef DEAL_II_WITH_LAPACK
1772  sgeevx_(balanc,
1773  jobvl,
1774  jobvr,
1775  sense,
1776  n,
1777  a,
1778  lda,
1779  wr,
1780  wi,
1781  vl,
1782  ldvl,
1783  vr,
1784  ldvr,
1785  ilo,
1786  ihi,
1787  scale,
1788  abnrm,
1789  rconde,
1790  rcondv,
1791  work,
1792  lwork,
1793  iwork,
1794  info);
1795 #else
1796  (void)balanc;
1797  (void)jobvl;
1798  (void)jobvr;
1799  (void)sense;
1800  (void)n;
1801  (void)a;
1802  (void)lda;
1803  (void)wr;
1804  (void)wi;
1805  (void)vl;
1806  (void)ldvl;
1807  (void)vr;
1808  (void)ldvr;
1809  (void)ilo;
1810  (void)ihi;
1811  (void)scale;
1812  (void)abnrm;
1813  (void)rconde;
1814  (void)rcondv;
1815  (void)work;
1816  (void)lwork;
1817  (void)iwork;
1818  (void)info;
1819  Assert(false, LAPACKSupport::ExcMissing("sgeevx"));
1820 #endif // DEAL_II_WITH_LAPACK
1821 }
1822 
1823 
1824 
1825 inline void
1826 geevx(const char * balanc,
1827  const char * jobvl,
1828  const char * jobvr,
1829  const char * sense,
1830  const ::types::blas_int *n,
1831  double * a,
1832  const ::types::blas_int *lda,
1833  double * wr,
1834  double * wi,
1835  double * vl,
1836  const ::types::blas_int *ldvl,
1837  double * vr,
1838  const ::types::blas_int *ldvr,
1839  ::types::blas_int * ilo,
1840  ::types::blas_int * ihi,
1841  double * scale,
1842  double * abnrm,
1843  double * rconde,
1844  double * rcondv,
1845  double * work,
1846  const ::types::blas_int *lwork,
1847  ::types::blas_int * iwork,
1848  ::types::blas_int * info)
1849 {
1850 #ifdef DEAL_II_WITH_LAPACK
1851  dgeevx_(balanc,
1852  jobvl,
1853  jobvr,
1854  sense,
1855  n,
1856  a,
1857  lda,
1858  wr,
1859  wi,
1860  vl,
1861  ldvl,
1862  vr,
1863  ldvr,
1864  ilo,
1865  ihi,
1866  scale,
1867  abnrm,
1868  rconde,
1869  rcondv,
1870  work,
1871  lwork,
1872  iwork,
1873  info);
1874 #else
1875  (void)balanc;
1876  (void)jobvl;
1877  (void)jobvr;
1878  (void)sense;
1879  (void)n;
1880  (void)a;
1881  (void)lda;
1882  (void)wr;
1883  (void)wi;
1884  (void)vl;
1885  (void)ldvl;
1886  (void)vr;
1887  (void)ldvr;
1888  (void)ilo;
1889  (void)ihi;
1890  (void)scale;
1891  (void)abnrm;
1892  (void)rconde;
1893  (void)rcondv;
1894  (void)work;
1895  (void)lwork;
1896  (void)iwork;
1897  (void)info;
1898  Assert(false, LAPACKSupport::ExcMissing("dgeevx"));
1899 #endif // DEAL_II_WITH_LAPACK
1900 }
1901 
1902 
1903 
1904 inline void
1905 geevx(const char * balanc,
1906  const char * jobvl,
1907  const char * jobvr,
1908  const char * sense,
1909  const ::types::blas_int *n,
1910  std::complex<float> * a,
1911  const ::types::blas_int *lda,
1912  std::complex<float> * w,
1913  std::complex<float> * vl,
1914  const ::types::blas_int *ldvl,
1915  std::complex<float> * vr,
1916  const ::types::blas_int *ldvr,
1917  ::types::blas_int * ilo,
1918  ::types::blas_int * ihi,
1919  float * scale,
1920  float * abnrm,
1921  float * rconde,
1922  float * rcondv,
1923  std::complex<float> * work,
1924  const ::types::blas_int *lwork,
1925  float * rwork,
1926  ::types::blas_int * info)
1927 {
1928 #ifdef DEAL_II_WITH_LAPACK
1929  cgeevx_(balanc,
1930  jobvl,
1931  jobvr,
1932  sense,
1933  n,
1934  a,
1935  lda,
1936  w,
1937  vl,
1938  ldvl,
1939  vr,
1940  ldvr,
1941  ilo,
1942  ihi,
1943  scale,
1944  abnrm,
1945  rconde,
1946  rcondv,
1947  work,
1948  lwork,
1949  rwork,
1950  info);
1951 #else
1952  (void)balanc;
1953  (void)jobvl;
1954  (void)jobvr;
1955  (void)sense;
1956  (void)n;
1957  (void)a;
1958  (void)lda;
1959  (void)w;
1960  (void)vl;
1961  (void)ldvl;
1962  (void)vr;
1963  (void)ldvr;
1964  (void)ilo;
1965  (void)ihi;
1966  (void)scale;
1967  (void)abnrm;
1968  (void)rconde;
1969  (void)rcondv;
1970  (void)work;
1971  (void)lwork;
1972  (void)rwork;
1973  (void)info;
1974  Assert(false, LAPACKSupport::ExcMissing("cgeevx"));
1975 #endif // DEAL_II_WITH_LAPACK
1976 }
1977 
1978 
1979 
1980 inline void
1981 geevx(const char * balanc,
1982  const char * jobvl,
1983  const char * jobvr,
1984  const char * sense,
1985  const ::types::blas_int *n,
1986  std::complex<double> * a,
1987  const ::types::blas_int *lda,
1988  std::complex<double> * w,
1989  std::complex<double> * vl,
1990  const ::types::blas_int *ldvl,
1991  std::complex<double> * vr,
1992  const ::types::blas_int *ldvr,
1993  ::types::blas_int * ilo,
1994  ::types::blas_int * ihi,
1995  double * scale,
1996  double * abnrm,
1997  double * rconde,
1998  double * rcondv,
1999  std::complex<double> * work,
2000  const ::types::blas_int *lwork,
2001  double * rwork,
2002  ::types::blas_int * info)
2003 {
2004 #ifdef DEAL_II_WITH_LAPACK
2005  zgeevx_(balanc,
2006  jobvl,
2007  jobvr,
2008  sense,
2009  n,
2010  a,
2011  lda,
2012  w,
2013  vl,
2014  ldvl,
2015  vr,
2016  ldvr,
2017  ilo,
2018  ihi,
2019  scale,
2020  abnrm,
2021  rconde,
2022  rcondv,
2023  work,
2024  lwork,
2025  rwork,
2026  info);
2027 #else
2028  (void)balanc;
2029  (void)jobvl;
2030  (void)jobvr;
2031  (void)sense;
2032  (void)n;
2033  (void)a;
2034  (void)lda;
2035  (void)w;
2036  (void)vl;
2037  (void)ldvl;
2038  (void)vr;
2039  (void)ldvr;
2040  (void)ilo;
2041  (void)ihi;
2042  (void)scale;
2043  (void)abnrm;
2044  (void)rconde;
2045  (void)rcondv;
2046  (void)work;
2047  (void)lwork;
2048  (void)rwork;
2049  (void)info;
2050  Assert(false, LAPACKSupport::ExcMissing("zgeevx"));
2051 #endif // DEAL_II_WITH_LAPACK
2052 }
2053 
2054 
2055 
2056 template <typename number1,
2057  typename number2,
2058  typename number3,
2059  typename number4,
2060  typename number5>
2061 inline void
2062 gelsd(const ::types::blas_int *,
2063  const ::types::blas_int *,
2064  const ::types::blas_int *,
2065  number1 *,
2066  const ::types::blas_int *,
2067  number2 *,
2068  const ::types::blas_int *,
2069  number3 *,
2070  const number4 *,
2071  ::types::blas_int *,
2072  number5 *,
2073  const ::types::blas_int *,
2074  ::types::blas_int *,
2075  ::types::blas_int *)
2076 {
2077  Assert(false, ExcNotImplemented());
2078 }
2079 
2080 
2081 
2082 inline void
2083 gelsd(const ::types::blas_int *m,
2084  const ::types::blas_int *n,
2085  const ::types::blas_int *nrhs,
2086  float * a,
2087  const ::types::blas_int *lda,
2088  float * b,
2089  const ::types::blas_int *ldb,
2090  float * s,
2091  const float * rcond,
2092  ::types::blas_int * rank,
2093  float * work,
2094  const ::types::blas_int *lwork,
2095  ::types::blas_int * iwork,
2096  ::types::blas_int * info)
2097 {
2098 #ifdef DEAL_II_WITH_LAPACK
2099  sgelsd_(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, iwork, info);
2100 #else
2101  (void)m;
2102  (void)n;
2103  (void)nrhs;
2104  (void)a;
2105  (void)lda;
2106  (void)b;
2107  (void)ldb;
2108  (void)s;
2109  (void)rcond;
2110  (void)rank;
2111  (void)work;
2112  (void)lwork;
2113  (void)iwork;
2114  (void)info;
2115  Assert(false, LAPACKSupport::ExcMissing("sgelsd"));
2116 #endif // DEAL_II_WITH_LAPACK
2117 }
2118 
2119 
2120 
2121 inline void
2122 gelsd(const ::types::blas_int *m,
2123  const ::types::blas_int *n,
2124  const ::types::blas_int *nrhs,
2125  double * a,
2126  const ::types::blas_int *lda,
2127  double * b,
2128  const ::types::blas_int *ldb,
2129  double * s,
2130  const double * rcond,
2131  ::types::blas_int * rank,
2132  double * work,
2133  const ::types::blas_int *lwork,
2134  ::types::blas_int * iwork,
2135  ::types::blas_int * info)
2136 {
2137 #ifdef DEAL_II_WITH_LAPACK
2138  dgelsd_(m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, iwork, info);
2139 #else
2140  (void)m;
2141  (void)n;
2142  (void)nrhs;
2143  (void)a;
2144  (void)lda;
2145  (void)b;
2146  (void)ldb;
2147  (void)s;
2148  (void)rcond;
2149  (void)rank;
2150  (void)work;
2151  (void)lwork;
2152  (void)iwork;
2153  (void)info;
2154  Assert(false, LAPACKSupport::ExcMissing("dgelsd"));
2155 #endif // DEAL_II_WITH_LAPACK
2156 }
2157 
2158 
2159 
2160 inline void
2161 gelsd(const ::types::blas_int *m,
2162  const ::types::blas_int *n,
2163  const ::types::blas_int *nrhs,
2164  std::complex<float> * a,
2165  const ::types::blas_int *lda,
2166  std::complex<float> * b,
2167  const ::types::blas_int *ldb,
2168  float * s,
2169  const float * rcond,
2170  ::types::blas_int * rank,
2171  std::complex<float> * work,
2172  const ::types::blas_int *lwork,
2173  float * rwork,
2174  ::types::blas_int * iwork,
2175  ::types::blas_int * info)
2176 {
2177 #ifdef DEAL_II_WITH_LAPACK
2178  cgelsd_(m,
2179  n,
2180  nrhs,
2181  a,
2182  lda,
2183  b,
2184  ldb,
2185  s,
2186  rcond,
2187  rank,
2188  work,
2189  lwork,
2190  rwork,
2191  iwork,
2192  info);
2193 #else
2194  (void)m;
2195  (void)n;
2196  (void)nrhs;
2197  (void)a;
2198  (void)lda;
2199  (void)b;
2200  (void)ldb;
2201  (void)s;
2202  (void)rcond;
2203  (void)rank;
2204  (void)work;
2205  (void)lwork;
2206  (void)rwork;
2207  (void)iwork;
2208  (void)info;
2209  Assert(false, LAPACKSupport::ExcMissing("cgelsd"));
2210 #endif // DEAL_II_WITH_LAPACK
2211 }
2212 
2213 
2214 
2215 inline void
2216 gelsd(const ::types::blas_int *m,
2217  const ::types::blas_int *n,
2218  const ::types::blas_int *nrhs,
2219  std::complex<double> * a,
2220  const ::types::blas_int *lda,
2221  std::complex<double> * b,
2222  const ::types::blas_int *ldb,
2223  double * s,
2224  const double * rcond,
2225  ::types::blas_int * rank,
2226  std::complex<double> * work,
2227  const ::types::blas_int *lwork,
2228  double * rwork,
2229  ::types::blas_int * iwork,
2230  ::types::blas_int * info)
2231 {
2232 #ifdef DEAL_II_WITH_LAPACK
2233  zgelsd_(m,
2234  n,
2235  nrhs,
2236  a,
2237  lda,
2238  b,
2239  ldb,
2240  s,
2241  rcond,
2242  rank,
2243  work,
2244  lwork,
2245  rwork,
2246  iwork,
2247  info);
2248 #else
2249  (void)m;
2250  (void)n;
2251  (void)nrhs;
2252  (void)a;
2253  (void)lda;
2254  (void)b;
2255  (void)ldb;
2256  (void)s;
2257  (void)rcond;
2258  (void)rank;
2259  (void)work;
2260  (void)lwork;
2261  (void)rwork;
2262  (void)iwork;
2263  (void)info;
2264  Assert(false, LAPACKSupport::ExcMissing("zgelsd"));
2265 #endif // DEAL_II_WITH_LAPACK
2266 }
2267 
2268 
2269 
2270 template <typename number1,
2271  typename number2,
2272  typename number3,
2273  typename number4,
2274  typename number5>
2275 inline void
2276 gemm(const char *,
2277  const char *,
2278  const ::types::blas_int *,
2279  const ::types::blas_int *,
2280  const ::types::blas_int *,
2281  const number1 *,
2282  const number2 *,
2283  const ::types::blas_int *,
2284  const number3 *,
2285  const ::types::blas_int *,
2286  const number4 *,
2287  number5 *,
2288  const ::types::blas_int *)
2289 {
2290  Assert(false, ExcNotImplemented());
2291 }
2292 
2293 
2294 
2295 inline void
2296 gemm(const char * transa,
2297  const char * transb,
2298  const ::types::blas_int *m,
2299  const ::types::blas_int *n,
2300  const ::types::blas_int *k,
2301  const float * alpha,
2302  const float * a,
2303  const ::types::blas_int *lda,
2304  const float * b,
2305  const ::types::blas_int *ldb,
2306  const float * beta,
2307  float * c,
2308  const ::types::blas_int *ldc)
2309 {
2310 #ifdef DEAL_II_WITH_LAPACK
2311  sgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2312 #else
2313  (void)transa;
2314  (void)transb;
2315  (void)m;
2316  (void)n;
2317  (void)k;
2318  (void)alpha;
2319  (void)a;
2320  (void)lda;
2321  (void)b;
2322  (void)ldb;
2323  (void)beta;
2324  (void)c;
2325  (void)ldc;
2326  Assert(false, LAPACKSupport::ExcMissing("sgemm"));
2327 #endif // DEAL_II_WITH_LAPACK
2328 }
2329 
2330 
2331 
2332 inline void
2333 gemm(const char * transa,
2334  const char * transb,
2335  const ::types::blas_int *m,
2336  const ::types::blas_int *n,
2337  const ::types::blas_int *k,
2338  const double * alpha,
2339  const double * a,
2340  const ::types::blas_int *lda,
2341  const double * b,
2342  const ::types::blas_int *ldb,
2343  const double * beta,
2344  double * c,
2345  const ::types::blas_int *ldc)
2346 {
2347 #ifdef DEAL_II_WITH_LAPACK
2348  dgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2349 #else
2350  (void)transa;
2351  (void)transb;
2352  (void)m;
2353  (void)n;
2354  (void)k;
2355  (void)alpha;
2356  (void)a;
2357  (void)lda;
2358  (void)b;
2359  (void)ldb;
2360  (void)beta;
2361  (void)c;
2362  (void)ldc;
2363  Assert(false, LAPACKSupport::ExcMissing("dgemm"));
2364 #endif // DEAL_II_WITH_LAPACK
2365 }
2366 
2367 
2368 
2369 inline void
2370 gemm(const char * transa,
2371  const char * transb,
2372  const ::types::blas_int *m,
2373  const ::types::blas_int *n,
2374  const ::types::blas_int *k,
2375  const std::complex<float> * alpha,
2376  const std::complex<float> * a,
2377  const ::types::blas_int *lda,
2378  const std::complex<float> * b,
2379  const ::types::blas_int *ldb,
2380  const std::complex<float> * beta,
2381  std::complex<float> * c,
2382  const ::types::blas_int *ldc)
2383 {
2384 #ifdef DEAL_II_WITH_LAPACK
2385  cgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2386 #else
2387  (void)transa;
2388  (void)transb;
2389  (void)m;
2390  (void)n;
2391  (void)k;
2392  (void)alpha;
2393  (void)a;
2394  (void)lda;
2395  (void)b;
2396  (void)ldb;
2397  (void)beta;
2398  (void)c;
2399  (void)ldc;
2400  Assert(false, LAPACKSupport::ExcMissing("cgemm"));
2401 #endif // DEAL_II_WITH_LAPACK
2402 }
2403 
2404 
2405 
2406 inline void
2407 gemm(const char * transa,
2408  const char * transb,
2409  const ::types::blas_int *m,
2410  const ::types::blas_int *n,
2411  const ::types::blas_int *k,
2412  const std::complex<double> * alpha,
2413  const std::complex<double> * a,
2414  const ::types::blas_int *lda,
2415  const std::complex<double> * b,
2416  const ::types::blas_int *ldb,
2417  const std::complex<double> * beta,
2418  std::complex<double> * c,
2419  const ::types::blas_int *ldc)
2420 {
2421 #ifdef DEAL_II_WITH_LAPACK
2422  zgemm_(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2423 #else
2424  (void)transa;
2425  (void)transb;
2426  (void)m;
2427  (void)n;
2428  (void)k;
2429  (void)alpha;
2430  (void)a;
2431  (void)lda;
2432  (void)b;
2433  (void)ldb;
2434  (void)beta;
2435  (void)c;
2436  (void)ldc;
2437  Assert(false, LAPACKSupport::ExcMissing("zgemm"));
2438 #endif // DEAL_II_WITH_LAPACK
2439 }
2440 
2441 
2442 
2443 template <typename number1,
2444  typename number2,
2445  typename number3,
2446  typename number4,
2447  typename number5>
2448 inline void
2449 gemv(const char *,
2450  const ::types::blas_int *,
2451  const ::types::blas_int *,
2452  const number1 *,
2453  const number2 *,
2454  const ::types::blas_int *,
2455  const number3 *,
2456  const ::types::blas_int *,
2457  const number4 *,
2458  number5 *,
2459  const ::types::blas_int *)
2460 {
2461  Assert(false, ExcNotImplemented());
2462 }
2463 
2464 
2465 
2466 inline void
2467 gemv(const char * trans,
2468  const ::types::blas_int *m,
2469  const ::types::blas_int *n,
2470  const float * alpha,
2471  const float * a,
2472  const ::types::blas_int *lda,
2473  const float * x,
2474  const ::types::blas_int *incx,
2475  const float * beta,
2476  float * y,
2477  const ::types::blas_int *incy)
2478 {
2479 #ifdef DEAL_II_WITH_LAPACK
2480  sgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2481 #else
2482  (void)trans;
2483  (void)m;
2484  (void)n;
2485  (void)alpha;
2486  (void)a;
2487  (void)lda;
2488  (void)x;
2489  (void)incx;
2490  (void)beta;
2491  (void)y;
2492  (void)incy;
2493  Assert(false, LAPACKSupport::ExcMissing("sgemv"));
2494 #endif // DEAL_II_WITH_LAPACK
2495 }
2496 
2497 
2498 
2499 inline void
2500 gemv(const char * trans,
2501  const ::types::blas_int *m,
2502  const ::types::blas_int *n,
2503  const double * alpha,
2504  const double * a,
2505  const ::types::blas_int *lda,
2506  const double * x,
2507  const ::types::blas_int *incx,
2508  const double * beta,
2509  double * y,
2510  const ::types::blas_int *incy)
2511 {
2512 #ifdef DEAL_II_WITH_LAPACK
2513  dgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2514 #else
2515  (void)trans;
2516  (void)m;
2517  (void)n;
2518  (void)alpha;
2519  (void)a;
2520  (void)lda;
2521  (void)x;
2522  (void)incx;
2523  (void)beta;
2524  (void)y;
2525  (void)incy;
2526  Assert(false, LAPACKSupport::ExcMissing("dgemv"));
2527 #endif // DEAL_II_WITH_LAPACK
2528 }
2529 
2530 
2531 
2532 inline void
2533 gemv(const char * trans,
2534  const ::types::blas_int *m,
2535  const ::types::blas_int *n,
2536  const std::complex<float> * alpha,
2537  const std::complex<float> * a,
2538  const ::types::blas_int *lda,
2539  const std::complex<float> * x,
2540  const ::types::blas_int *incx,
2541  const std::complex<float> * beta,
2542  std::complex<float> * y,
2543  const ::types::blas_int *incy)
2544 {
2545 #ifdef DEAL_II_WITH_LAPACK
2546  cgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2547 #else
2548  (void)trans;
2549  (void)m;
2550  (void)n;
2551  (void)alpha;
2552  (void)a;
2553  (void)lda;
2554  (void)x;
2555  (void)incx;
2556  (void)beta;
2557  (void)y;
2558  (void)incy;
2559  Assert(false, LAPACKSupport::ExcMissing("cgemv"));
2560 #endif // DEAL_II_WITH_LAPACK
2561 }
2562 
2563 
2564 
2565 inline void
2566 gemv(const char * trans,
2567  const ::types::blas_int *m,
2568  const ::types::blas_int *n,
2569  const std::complex<double> * alpha,
2570  const std::complex<double> * a,
2571  const ::types::blas_int *lda,
2572  const std::complex<double> * x,
2573  const ::types::blas_int *incx,
2574  const std::complex<double> * beta,
2575  std::complex<double> * y,
2576  const ::types::blas_int *incy)
2577 {
2578 #ifdef DEAL_II_WITH_LAPACK
2579  zgemv_(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2580 #else
2581  (void)trans;
2582  (void)m;
2583  (void)n;
2584  (void)alpha;
2585  (void)a;
2586  (void)lda;
2587  (void)x;
2588  (void)incx;
2589  (void)beta;
2590  (void)y;
2591  (void)incy;
2592  Assert(false, LAPACKSupport::ExcMissing("zgemv"));
2593 #endif // DEAL_II_WITH_LAPACK
2594 }
2595 
2596 
2597 
2598 template <typename number1, typename number2, typename number3>
2599 inline void
2600 geqrf(const ::types::blas_int *,
2601  const ::types::blas_int *,
2602  number1 *,
2603  const ::types::blas_int *,
2604  number2 *,
2605  number3 *,
2606  const ::types::blas_int *,
2607  ::types::blas_int *)
2608 {
2609  Assert(false, ExcNotImplemented());
2610 }
2611 
2612 
2613 
2614 inline void
2615 geqrf(const ::types::blas_int *m,
2616  const ::types::blas_int *n,
2617  float * a,
2618  const ::types::blas_int *lda,
2619  float * tau,
2620  float * work,
2621  const ::types::blas_int *lwork,
2622  ::types::blas_int * info)
2623 {
2624 #ifdef DEAL_II_WITH_LAPACK
2625  sgeqrf_(m, n, a, lda, tau, work, lwork, info);
2626 #else
2627  (void)m;
2628  (void)n;
2629  (void)a;
2630  (void)lda;
2631  (void)tau;
2632  (void)work;
2633  (void)lwork;
2634  (void)info;
2635  Assert(false, LAPACKSupport::ExcMissing("sgeqrf"));
2636 #endif // DEAL_II_WITH_LAPACK
2637 }
2638 
2639 
2640 
2641 inline void
2642 geqrf(const ::types::blas_int *m,
2643  const ::types::blas_int *n,
2644  double * a,
2645  const ::types::blas_int *lda,
2646  double * tau,
2647  double * work,
2648  const ::types::blas_int *lwork,
2649  ::types::blas_int * info)
2650 {
2651 #ifdef DEAL_II_WITH_LAPACK
2652  dgeqrf_(m, n, a, lda, tau, work, lwork, info);
2653 #else
2654  (void)m;
2655  (void)n;
2656  (void)a;
2657  (void)lda;
2658  (void)tau;
2659  (void)work;
2660  (void)lwork;
2661  (void)info;
2662  Assert(false, LAPACKSupport::ExcMissing("dgeqrf"));
2663 #endif // DEAL_II_WITH_LAPACK
2664 }
2665 
2666 
2667 
2668 inline void
2669 geqrf(const ::types::blas_int *m,
2670  const ::types::blas_int *n,
2671  std::complex<float> * a,
2672  const ::types::blas_int *lda,
2673  std::complex<float> * tau,
2674  std::complex<float> * work,
2675  const ::types::blas_int *lwork,
2676  ::types::blas_int * info)
2677 {
2678 #ifdef DEAL_II_WITH_LAPACK
2679  cgeqrf_(m, n, a, lda, tau, work, lwork, info);
2680 #else
2681  (void)m;
2682  (void)n;
2683  (void)a;
2684  (void)lda;
2685  (void)tau;
2686  (void)work;
2687  (void)lwork;
2688  (void)info;
2689  Assert(false, LAPACKSupport::ExcMissing("cgeqrf"));
2690 #endif // DEAL_II_WITH_LAPACK
2691 }
2692 
2693 
2694 
2695 inline void
2696 geqrf(const ::types::blas_int *m,
2697  const ::types::blas_int *n,
2698  std::complex<double> * a,
2699  const ::types::blas_int *lda,
2700  std::complex<double> * tau,
2701  std::complex<double> * work,
2702  const ::types::blas_int *lwork,
2703  ::types::blas_int * info)
2704 {
2705 #ifdef DEAL_II_WITH_LAPACK
2706  zgeqrf_(m, n, a, lda, tau, work, lwork, info);
2707 #else
2708  (void)m;
2709  (void)n;
2710  (void)a;
2711  (void)lda;
2712  (void)tau;
2713  (void)work;
2714  (void)lwork;
2715  (void)info;
2716  Assert(false, LAPACKSupport::ExcMissing("zgeqrf"));
2717 #endif // DEAL_II_WITH_LAPACK
2718 }
2719 
2720 
2721 
2722 template <typename number1,
2723  typename number2,
2724  typename number3,
2725  typename number4,
2726  typename number5>
2727 inline void
2728 gesdd(const char *,
2729  const ::types::blas_int *,
2730  const ::types::blas_int *,
2731  number1 *,
2732  const ::types::blas_int *,
2733  number2 *,
2734  number3 *,
2735  const ::types::blas_int *,
2736  number4 *,
2737  const ::types::blas_int *,
2738  number5 *,
2739  const ::types::blas_int *,
2740  ::types::blas_int *,
2741  ::types::blas_int *)
2742 {
2743  Assert(false, ExcNotImplemented());
2744 }
2745 
2746 
2747 
2748 inline void
2749 gesdd(const char * jobz,
2750  const ::types::blas_int *m,
2751  const ::types::blas_int *n,
2752  float * a,
2753  const ::types::blas_int *lda,
2754  float * s,
2755  float * u,
2756  const ::types::blas_int *ldu,
2757  float * vt,
2758  const ::types::blas_int *ldvt,
2759  float * work,
2760  const ::types::blas_int *lwork,
2761  ::types::blas_int * iwork,
2762  ::types::blas_int * info)
2763 {
2764 #ifdef DEAL_II_WITH_LAPACK
2765  sgesdd_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info);
2766 #else
2767  (void)jobz;
2768  (void)m;
2769  (void)n;
2770  (void)a;
2771  (void)lda;
2772  (void)s;
2773  (void)u;
2774  (void)ldu;
2775  (void)vt;
2776  (void)ldvt;
2777  (void)work;
2778  (void)lwork;
2779  (void)iwork;
2780  (void)info;
2781  Assert(false, LAPACKSupport::ExcMissing("sgesdd"));
2782 #endif // DEAL_II_WITH_LAPACK
2783 }
2784 
2785 
2786 
2787 inline void
2788 gesdd(const char * jobz,
2789  const ::types::blas_int *m,
2790  const ::types::blas_int *n,
2791  double * a,
2792  const ::types::blas_int *lda,
2793  double * s,
2794  double * u,
2795  const ::types::blas_int *ldu,
2796  double * vt,
2797  const ::types::blas_int *ldvt,
2798  double * work,
2799  const ::types::blas_int *lwork,
2800  ::types::blas_int * iwork,
2801  ::types::blas_int * info)
2802 {
2803 #ifdef DEAL_II_WITH_LAPACK
2804  dgesdd_(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info);
2805 #else
2806  (void)jobz;
2807  (void)m;
2808  (void)n;
2809  (void)a;
2810  (void)lda;
2811  (void)s;
2812  (void)u;
2813  (void)ldu;
2814  (void)vt;
2815  (void)ldvt;
2816  (void)work;
2817  (void)lwork;
2818  (void)iwork;
2819  (void)info;
2820  Assert(false, LAPACKSupport::ExcMissing("dgesdd"));
2821 #endif // DEAL_II_WITH_LAPACK
2822 }
2823 
2824 
2825 
2826 inline void
2827 gesdd(const char * jobz,
2828  const ::types::blas_int *m,
2829  const ::types::blas_int *n,
2830  std::complex<float> * a,
2831  const ::types::blas_int *lda,
2832  float * s,
2833  std::complex<float> * u,
2834  const ::types::blas_int *ldu,
2835  std::complex<float> * vt,
2836  const ::types::blas_int *ldvt,
2837  std::complex<float> * work,
2838  const ::types::blas_int *lwork,
2839  float * rwork,
2840  ::types::blas_int * iwork,
2841  ::types::blas_int * info)
2842 {
2843 #ifdef DEAL_II_WITH_LAPACK
2844  cgesdd_(
2845  jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info);
2846 #else
2847  (void)jobz;
2848  (void)m;
2849  (void)n;
2850  (void)a;
2851  (void)lda;
2852  (void)s;
2853  (void)u;
2854  (void)ldu;
2855  (void)vt;
2856  (void)ldvt;
2857  (void)work;
2858  (void)lwork;
2859  (void)rwork;
2860  (void)iwork;
2861  (void)info;
2862  Assert(false, LAPACKSupport::ExcMissing("cgesdd"));
2863 #endif // DEAL_II_WITH_LAPACK
2864 }
2865 
2866 
2867 
2868 inline void
2869 gesdd(const char * jobz,
2870  const ::types::blas_int *m,
2871  const ::types::blas_int *n,
2872  std::complex<double> * a,
2873  const ::types::blas_int *lda,
2874  double * s,
2875  std::complex<double> * u,
2876  const ::types::blas_int *ldu,
2877  std::complex<double> * vt,
2878  const ::types::blas_int *ldvt,
2879  std::complex<double> * work,
2880  const ::types::blas_int *lwork,
2881  double * rwork,
2882  ::types::blas_int * iwork,
2883  ::types::blas_int * info)
2884 {
2885 #ifdef DEAL_II_WITH_LAPACK
2886  zgesdd_(
2887  jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info);
2888 #else
2889  (void)jobz;
2890  (void)m;
2891  (void)n;
2892  (void)a;
2893  (void)lda;
2894  (void)s;
2895  (void)u;
2896  (void)ldu;
2897  (void)vt;
2898  (void)ldvt;
2899  (void)work;
2900  (void)lwork;
2901  (void)rwork;
2902  (void)iwork;
2903  (void)info;
2904  Assert(false, LAPACKSupport::ExcMissing("zgesdd"));
2905 #endif // DEAL_II_WITH_LAPACK
2906 }
2907 
2908 
2909 
2910 template <typename number1,
2911  typename number2,
2912  typename number3,
2913  typename number4,
2914  typename number5>
2915 inline void
2916 gesvd(const char *,
2917  const char *,
2918  const ::types::blas_int *,
2919  const ::types::blas_int *,
2920  number1 *,
2921  const ::types::blas_int *,
2922  number2 *,
2923  number3 *,
2924  const ::types::blas_int *,
2925  number4 *,
2926  const ::types::blas_int *,
2927  number5 *,
2928  const ::types::blas_int *,
2929  ::types::blas_int *)
2930 {
2931  Assert(false, ExcNotImplemented());
2932 }
2933 
2934 
2935 
2936 inline void
2937 gesvd(const char * jobu,
2938  const char * jobvt,
2939  const ::types::blas_int *m,
2940  const ::types::blas_int *n,
2941  float * a,
2942  const ::types::blas_int *lda,
2943  float * s,
2944  float * u,
2945  const ::types::blas_int *ldu,
2946  float * vt,
2947  const ::types::blas_int *ldvt,
2948  float * work,
2949  const ::types::blas_int *lwork,
2950  ::types::blas_int * info)
2951 {
2952 #ifdef DEAL_II_WITH_LAPACK
2953  sgesvd_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
2954 #else
2955  (void)jobu;
2956  (void)jobvt;
2957  (void)m;
2958  (void)n;
2959  (void)a;
2960  (void)lda;
2961  (void)s;
2962  (void)u;
2963  (void)ldu;
2964  (void)vt;
2965  (void)ldvt;
2966  (void)work;
2967  (void)lwork;
2968  (void)info;
2969  Assert(false, LAPACKSupport::ExcMissing("sgesvd"));
2970 #endif // DEAL_II_WITH_LAPACK
2971 }
2972 
2973 
2974 
2975 inline void
2976 gesvd(const char * jobu,
2977  const char * jobvt,
2978  const ::types::blas_int *m,
2979  const ::types::blas_int *n,
2980  double * a,
2981  const ::types::blas_int *lda,
2982  double * s,
2983  double * u,
2984  const ::types::blas_int *ldu,
2985  double * vt,
2986  const ::types::blas_int *ldvt,
2987  double * work,
2988  const ::types::blas_int *lwork,
2989  ::types::blas_int * info)
2990 {
2991 #ifdef DEAL_II_WITH_LAPACK
2992  dgesvd_(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
2993 #else
2994  (void)jobu;
2995  (void)jobvt;
2996  (void)m;
2997  (void)n;
2998  (void)a;
2999  (void)lda;
3000  (void)s;
3001  (void)u;
3002  (void)ldu;
3003  (void)vt;
3004  (void)ldvt;
3005  (void)work;
3006  (void)lwork;
3007  (void)info;
3008  Assert(false, LAPACKSupport::ExcMissing("dgesvd"));
3009 #endif // DEAL_II_WITH_LAPACK
3010 }
3011 
3012 
3013 
3014 inline void
3015 gesvd(const char * jobu,
3016  const char * jobvt,
3017  const ::types::blas_int *m,
3018  const ::types::blas_int *n,
3019  std::complex<float> * a,
3020  const ::types::blas_int *lda,
3021  float * s,
3022  std::complex<float> * u,
3023  const ::types::blas_int *ldu,
3024  std::complex<float> * vt,
3025  const ::types::blas_int *ldvt,
3026  std::complex<float> * work,
3027  const ::types::blas_int *lwork,
3028  float * rwork,
3029  ::types::blas_int * info)
3030 {
3031 #ifdef DEAL_II_WITH_LAPACK
3032  cgesvd_(
3033  jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
3034 #else
3035  (void)jobu;
3036  (void)jobvt;
3037  (void)m;
3038  (void)n;
3039  (void)a;
3040  (void)lda;
3041  (void)s;
3042  (void)u;
3043  (void)ldu;
3044  (void)vt;
3045  (void)ldvt;
3046  (void)work;
3047  (void)lwork;
3048  (void)rwork;
3049  (void)info;
3050  Assert(false, LAPACKSupport::ExcMissing("cgesvd"));
3051 #endif // DEAL_II_WITH_LAPACK
3052 }
3053 
3054 
3055 
3056 inline void
3057 gesvd(const char * jobu,
3058  const char * jobvt,
3059  const ::types::blas_int *m,
3060  const ::types::blas_int *n,
3061  std::complex<double> * a,
3062  const ::types::blas_int *lda,
3063  double * s,
3064  std::complex<double> * u,
3065  const ::types::blas_int *ldu,
3066  std::complex<double> * vt,
3067  const ::types::blas_int *ldvt,
3068  std::complex<double> * work,
3069  const ::types::blas_int *lwork,
3070  double * rwork,
3071  ::types::blas_int * info)
3072 {
3073 #ifdef DEAL_II_WITH_LAPACK
3074  zgesvd_(
3075  jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
3076 #else
3077  (void)jobu;
3078  (void)jobvt;
3079  (void)m;
3080  (void)n;
3081  (void)a;
3082  (void)lda;
3083  (void)s;
3084  (void)u;
3085  (void)ldu;
3086  (void)vt;
3087  (void)ldvt;
3088  (void)work;
3089  (void)lwork;
3090  (void)rwork;
3091  (void)info;
3092  Assert(false, LAPACKSupport::ExcMissing("zgesvd"));
3093 #endif // DEAL_II_WITH_LAPACK
3094 }
3095 
3096 
3097 
3098 template <typename number1>
3099 inline void
3100 getrf(const ::types::blas_int *,
3101  const ::types::blas_int *,
3102  number1 *,
3103  const ::types::blas_int *,
3104  ::types::blas_int *,
3105  ::types::blas_int *)
3106 {
3107  Assert(false, ExcNotImplemented());
3108 }
3109 
3110 
3111 
3112 inline void
3113 getrf(const ::types::blas_int *m,
3114  const ::types::blas_int *n,
3115  float * a,
3116  const ::types::blas_int *lda,
3117  ::types::blas_int * ipiv,
3118  ::types::blas_int * info)
3119 {
3120 #ifdef DEAL_II_WITH_LAPACK
3121  sgetrf_(m, n, a, lda, ipiv, info);
3122 #else
3123  (void)m;
3124  (void)n;
3125  (void)a;
3126  (void)lda;
3127  (void)ipiv;
3128  (void)info;
3129  Assert(false, LAPACKSupport::ExcMissing("sgetrf"));
3130 #endif // DEAL_II_WITH_LAPACK
3131 }
3132 
3133 
3134 
3135 inline void
3136 getrf(const ::types::blas_int *m,
3137  const ::types::blas_int *n,
3138  double * a,
3139  const ::types::blas_int *lda,
3140  ::types::blas_int * ipiv,
3141  ::types::blas_int * info)
3142 {
3143 #ifdef DEAL_II_WITH_LAPACK
3144  dgetrf_(m, n, a, lda, ipiv, info);
3145 #else
3146  (void)m;
3147  (void)n;
3148  (void)a;
3149  (void)lda;
3150  (void)ipiv;
3151  (void)info;
3152  Assert(false, LAPACKSupport::ExcMissing("dgetrf"));
3153 #endif // DEAL_II_WITH_LAPACK
3154 }
3155 
3156 
3157 
3158 inline void
3159 getrf(const ::types::blas_int *m,
3160  const ::types::blas_int *n,
3161  std::complex<float> * a,
3162  const ::types::blas_int *lda,
3163  ::types::blas_int * ipiv,
3164  ::types::blas_int * info)
3165 {
3166 #ifdef DEAL_II_WITH_LAPACK
3167  cgetrf_(m, n, a, lda, ipiv, info);
3168 #else
3169  (void)m;
3170  (void)n;
3171  (void)a;
3172  (void)lda;
3173  (void)ipiv;
3174  (void)info;
3175  Assert(false, LAPACKSupport::ExcMissing("cgetrf"));
3176 #endif // DEAL_II_WITH_LAPACK
3177 }
3178 
3179 
3180 
3181 inline void
3182 getrf(const ::types::blas_int *m,
3183  const ::types::blas_int *n,
3184  std::complex<double> * a,
3185  const ::types::blas_int *lda,
3186  ::types::blas_int * ipiv,
3187  ::types::blas_int * info)
3188 {
3189 #ifdef DEAL_II_WITH_LAPACK
3190  zgetrf_(m, n, a, lda, ipiv, info);
3191 #else
3192  (void)m;
3193  (void)n;
3194  (void)a;
3195  (void)lda;
3196  (void)ipiv;
3197  (void)info;
3198  Assert(false, LAPACKSupport::ExcMissing("zgetrf"));
3199 #endif // DEAL_II_WITH_LAPACK
3200 }
3201 
3202 
3203 
3204 template <typename number1, typename number2>
3205 inline void
3206 getri(const ::types::blas_int *,
3207  number1 *,
3208  const ::types::blas_int *,
3209  const ::types::blas_int *,
3210  number2 *,
3211  const ::types::blas_int *,
3212  ::types::blas_int *)
3213 {
3214  Assert(false, ExcNotImplemented());
3215 }
3216 
3217 
3218 
3219 inline void
3220 getri(const ::types::blas_int *n,
3221  float * a,
3222  const ::types::blas_int *lda,
3223  const ::types::blas_int *ipiv,
3224  float * work,
3225  const ::types::blas_int *lwork,
3226  ::types::blas_int * info)
3227 {
3228 #ifdef DEAL_II_WITH_LAPACK
3229  sgetri_(n, a, lda, ipiv, work, lwork, info);
3230 #else
3231  (void)n;
3232  (void)a;
3233  (void)lda;
3234  (void)ipiv;
3235  (void)work;
3236  (void)lwork;
3237  (void)info;
3238  Assert(false, LAPACKSupport::ExcMissing("sgetri"));
3239 #endif // DEAL_II_WITH_LAPACK
3240 }
3241 
3242 
3243 
3244 inline void
3245 getri(const ::types::blas_int *n,
3246  double * a,
3247  const ::types::blas_int *lda,
3248  const ::types::blas_int *ipiv,
3249  double * work,
3250  const ::types::blas_int *lwork,
3251  ::types::blas_int * info)
3252 {
3253 #ifdef DEAL_II_WITH_LAPACK
3254  dgetri_(n, a, lda, ipiv, work, lwork, info);
3255 #else
3256  (void)n;
3257  (void)a;
3258  (void)lda;
3259  (void)ipiv;
3260  (void)work;
3261  (void)lwork;
3262  (void)info;
3263  Assert(false, LAPACKSupport::ExcMissing("dgetri"));
3264 #endif // DEAL_II_WITH_LAPACK
3265 }
3266 
3267 
3268 
3269 inline void
3270 getri(const ::types::blas_int *n,
3271  std::complex<float> * a,
3272  const ::types::blas_int *lda,
3273  const ::types::blas_int *ipiv,
3274  std::complex<float> * work,
3275  const ::types::blas_int *lwork,
3276  ::types::blas_int * info)
3277 {
3278 #ifdef DEAL_II_WITH_LAPACK
3279  cgetri_(n, a, lda, ipiv, work, lwork, info);
3280 #else
3281  (void)n;
3282  (void)a;
3283  (void)lda;
3284  (void)ipiv;
3285  (void)work;
3286  (void)lwork;
3287  (void)info;
3288  Assert(false, LAPACKSupport::ExcMissing("cgetri"));
3289 #endif // DEAL_II_WITH_LAPACK
3290 }
3291 
3292 
3293 
3294 inline void
3295 getri(const ::types::blas_int *n,
3296  std::complex<double> * a,
3297  const ::types::blas_int *lda,
3298  const ::types::blas_int *ipiv,
3299  std::complex<double> * work,
3300  const ::types::blas_int *lwork,
3301  ::types::blas_int * info)
3302 {
3303 #ifdef DEAL_II_WITH_LAPACK
3304  zgetri_(n, a, lda, ipiv, work, lwork, info);
3305 #else
3306  (void)n;
3307  (void)a;
3308  (void)lda;
3309  (void)ipiv;
3310  (void)work;
3311  (void)lwork;
3312  (void)info;
3313  Assert(false, LAPACKSupport::ExcMissing("zgetri"));
3314 #endif // DEAL_II_WITH_LAPACK
3315 }
3316 
3317 
3318 
3319 template <typename number1, typename number2>
3320 inline void
3321 getrs(const char *,
3322  const ::types::blas_int *,
3323  const ::types::blas_int *,
3324  const number1 *,
3325  const ::types::blas_int *,
3326  const ::types::blas_int *,
3327  number2 *,
3328  const ::types::blas_int *,
3329  ::types::blas_int *)
3330 {
3331  Assert(false, ExcNotImplemented());
3332 }
3333 
3334 
3335 
3336 inline void
3337 getrs(const char * trans,
3338  const ::types::blas_int *n,
3339  const ::types::blas_int *nrhs,
3340  const float * a,
3341  const ::types::blas_int *lda,
3342  const ::types::blas_int *ipiv,
3343  float * b,
3344  const ::types::blas_int *ldb,
3345  ::types::blas_int * info)
3346 {
3347 #ifdef DEAL_II_WITH_LAPACK
3348  sgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3349 #else
3350  (void)trans;
3351  (void)n;
3352  (void)nrhs;
3353  (void)a;
3354  (void)lda;
3355  (void)ipiv;
3356  (void)b;
3357  (void)ldb;
3358  (void)info;
3359  Assert(false, LAPACKSupport::ExcMissing("sgetrs"));
3360 #endif // DEAL_II_WITH_LAPACK
3361 }
3362 
3363 
3364 
3365 inline void
3366 getrs(const char * trans,
3367  const ::types::blas_int *n,
3368  const ::types::blas_int *nrhs,
3369  const double * a,
3370  const ::types::blas_int *lda,
3371  const ::types::blas_int *ipiv,
3372  double * b,
3373  const ::types::blas_int *ldb,
3374  ::types::blas_int * info)
3375 {
3376 #ifdef DEAL_II_WITH_LAPACK
3377  dgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3378 #else
3379  (void)trans;
3380  (void)n;
3381  (void)nrhs;
3382  (void)a;
3383  (void)lda;
3384  (void)ipiv;
3385  (void)b;
3386  (void)ldb;
3387  (void)info;
3388  Assert(false, LAPACKSupport::ExcMissing("dgetrs"));
3389 #endif // DEAL_II_WITH_LAPACK
3390 }
3391 
3392 
3393 
3394 inline void
3395 getrs(const char * trans,
3396  const ::types::blas_int *n,
3397  const ::types::blas_int *nrhs,
3398  const std::complex<float> * a,
3399  const ::types::blas_int *lda,
3400  const ::types::blas_int *ipiv,
3401  std::complex<float> * b,
3402  const ::types::blas_int *ldb,
3403  ::types::blas_int * info)
3404 {
3405 #ifdef DEAL_II_WITH_LAPACK
3406  cgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3407 #else
3408  (void)trans;
3409  (void)n;
3410  (void)nrhs;
3411  (void)a;
3412  (void)lda;
3413  (void)ipiv;
3414  (void)b;
3415  (void)ldb;
3416  (void)info;
3417  Assert(false, LAPACKSupport::ExcMissing("cgetrs"));
3418 #endif // DEAL_II_WITH_LAPACK
3419 }
3420 
3421 
3422 
3423 inline void
3424 getrs(const char * trans,
3425  const ::types::blas_int *n,
3426  const ::types::blas_int *nrhs,
3427  const std::complex<double> * a,
3428  const ::types::blas_int *lda,
3429  const ::types::blas_int *ipiv,
3430  std::complex<double> * b,
3431  const ::types::blas_int *ldb,
3432  ::types::blas_int * info)
3433 {
3434 #ifdef DEAL_II_WITH_LAPACK
3435  zgetrs_(trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3436 #else
3437  (void)trans;
3438  (void)n;
3439  (void)nrhs;
3440  (void)a;
3441  (void)lda;
3442  (void)ipiv;
3443  (void)b;
3444  (void)ldb;
3445  (void)info;
3446  Assert(false, LAPACKSupport::ExcMissing("zgetrs"));
3447 #endif // DEAL_II_WITH_LAPACK
3448 }
3449 
3450 
3451 
3452 template <typename number1>
3453 inline number1
3454 lamch(const char *)
3455 {
3456  Assert(false, ExcNotImplemented());
3457  return number1();
3458 }
3459 
3460 
3461 
3462 template <>
3463 inline float
3464 lamch(const char *cmach)
3465 {
3466 #ifdef DEAL_II_WITH_LAPACK
3467  return slamch_(cmach);
3468 #else
3469  (void)cmach;
3470  Assert(false, LAPACKSupport::ExcMissing("slamch"));
3471  return float();
3472 #endif // DEAL_II_WITH_LAPACK
3473 }
3474 
3475 
3476 
3477 template <>
3478 inline double
3479 lamch(const char *cmach)
3480 {
3481 #ifdef DEAL_II_WITH_LAPACK
3482  return dlamch_(cmach);
3483 #else
3484  (void)cmach;
3485  Assert(false, LAPACKSupport::ExcMissing("dlamch"));
3486  return double();
3487 #endif // DEAL_II_WITH_LAPACK
3488 }
3489 
3490 
3491 
3492 template <typename number1, typename number2>
3493 inline number1
3494 lange(const char *,
3495  const ::types::blas_int *,
3496  const ::types::blas_int *,
3497  const number1 *,
3498  const ::types::blas_int *,
3499  number2 *)
3500 {
3501  Assert(false, ExcNotImplemented());
3502  return number1();
3503 }
3504 
3505 
3506 
3507 inline float
3508 lange(const char * norm,
3509  const ::types::blas_int *m,
3510  const ::types::blas_int *n,
3511  const float * a,
3512  const ::types::blas_int *lda,
3513  float * work)
3514 {
3515 #ifdef DEAL_II_WITH_LAPACK
3516  return slange_(norm, m, n, a, lda, work);
3517 #else
3518  (void)norm;
3519  (void)m;
3520  (void)n;
3521  (void)a;
3522  (void)lda;
3523  (void)work;
3524  Assert(false, LAPACKSupport::ExcMissing("slange"));
3525  return float();
3526 #endif // DEAL_II_WITH_LAPACK
3527 }
3528 
3529 
3530 
3531 inline double
3532 lange(const char * norm,
3533  const ::types::blas_int *m,
3534  const ::types::blas_int *n,
3535  const double * a,
3536  const ::types::blas_int *lda,
3537  double * work)
3538 {
3539 #ifdef DEAL_II_WITH_LAPACK
3540  return dlange_(norm, m, n, a, lda, work);
3541 #else
3542  (void)norm;
3543  (void)m;
3544  (void)n;
3545  (void)a;
3546  (void)lda;
3547  (void)work;
3548  Assert(false, LAPACKSupport::ExcMissing("dlange"));
3549  return double();
3550 #endif // DEAL_II_WITH_LAPACK
3551 }
3552 
3553 
3554 
3555 inline float
3556 lange(const char * norm,
3557  const ::types::blas_int *m,
3558  const ::types::blas_int *n,
3559  const std::complex<float> * a,
3560  const ::types::blas_int *lda,
3561  float * work)
3562 {
3563 #ifdef DEAL_II_WITH_LAPACK
3564  return clange_(norm, m, n, a, lda, work);
3565 #else
3566  (void)norm;
3567  (void)m;
3568  (void)n;
3569  (void)a;
3570  (void)lda;
3571  (void)work;
3572  Assert(false, LAPACKSupport::ExcMissing("clange"));
3573  return float();
3574 #endif // DEAL_II_WITH_LAPACK
3575 }
3576 
3577 
3578 
3579 inline double
3580 lange(const char * norm,
3581  const ::types::blas_int *m,
3582  const ::types::blas_int *n,
3583  const std::complex<double> * a,
3584  const ::types::blas_int *lda,
3585  double * work)
3586 {
3587 #ifdef DEAL_II_WITH_LAPACK
3588  return zlange_(norm, m, n, a, lda, work);
3589 #else
3590  (void)norm;
3591  (void)m;
3592  (void)n;
3593  (void)a;
3594  (void)lda;
3595  (void)work;
3596  Assert(false, LAPACKSupport::ExcMissing("zlange"));
3597  return double();
3598 #endif // DEAL_II_WITH_LAPACK
3599 }
3600 
3601 
3602 
3603 template <typename number1, typename number2>
3604 inline number1
3605 lansy(const char *,
3606  const char *,
3607  const ::types::blas_int *,
3608  const number1 *,
3609  const ::types::blas_int *,
3610  number2 *)
3611 {
3612  Assert(false, ExcNotImplemented());
3613  return number1();
3614 }
3615 
3616 
3617 
3618 inline float
3619 lansy(const char * norm,
3620  const char * uplo,
3621  const ::types::blas_int *n,
3622  const float * a,
3623  const ::types::blas_int *lda,
3624  float * work)
3625 {
3626 #ifdef DEAL_II_WITH_LAPACK
3627  return slansy_(norm, uplo, n, a, lda, work);
3628 #else
3629  (void)norm;
3630  (void)uplo;
3631  (void)n;
3632  (void)a;
3633  (void)lda;
3634  (void)work;
3635  Assert(false, LAPACKSupport::ExcMissing("slansy"));
3636  return float();
3637 #endif // DEAL_II_WITH_LAPACK
3638 }
3639 
3640 
3641 
3642 inline double
3643 lansy(const char * norm,
3644  const char * uplo,
3645  const ::types::blas_int *n,
3646  const double * a,
3647  const ::types::blas_int *lda,
3648  double * work)
3649 {
3650 #ifdef DEAL_II_WITH_LAPACK
3651  return dlansy_(norm, uplo, n, a, lda, work);
3652 #else
3653  (void)norm;
3654  (void)uplo;
3655  (void)n;
3656  (void)a;
3657  (void)lda;
3658  (void)work;
3659  Assert(false, LAPACKSupport::ExcMissing("dlansy"));
3660  return double();
3661 #endif // DEAL_II_WITH_LAPACK
3662 }
3663 
3664 
3665 
3666 inline float
3667 lansy(const char * norm,
3668  const char * uplo,
3669  const ::types::blas_int *n,
3670  const std::complex<float> * a,
3671  const ::types::blas_int *lda,
3672  float * work)
3673 {
3674 #ifdef DEAL_II_WITH_LAPACK
3675  return clansy_(norm, uplo, n, a, lda, work);
3676 #else
3677  (void)norm;
3678  (void)uplo;
3679  (void)n;
3680  (void)a;
3681  (void)lda;
3682  (void)work;
3683  Assert(false, LAPACKSupport::ExcMissing("clansy"));
3684  return float();
3685 #endif // DEAL_II_WITH_LAPACK
3686 }
3687 
3688 
3689 
3690 inline double
3691 lansy(const char * norm,
3692  const char * uplo,
3693  const ::types::blas_int *n,
3694  const std::complex<double> * a,
3695  const ::types::blas_int *lda,
3696  double * work)
3697 {
3698 #ifdef DEAL_II_WITH_LAPACK
3699  return zlansy_(norm, uplo, n, a, lda, work);
3700 #else
3701  (void)norm;
3702  (void)uplo;
3703  (void)n;
3704  (void)a;
3705  (void)lda;
3706  (void)work;
3707  Assert(false, LAPACKSupport::ExcMissing("zlansy"));
3708  return double();
3709 #endif // DEAL_II_WITH_LAPACK
3710 }
3711 
3712 
3713 
3714 template <typename number1, typename number2, typename number3>
3715 inline void
3716 lascl(const char *,
3717  const ::types::blas_int *,
3718  const ::types::blas_int *,
3719  const number1 *,
3720  const number2 *,
3721  const ::types::blas_int *,
3722  const ::types::blas_int *,
3723  number3 *,
3724  const ::types::blas_int *,
3725  ::types::blas_int *)
3726 {
3727  Assert(false, ExcNotImplemented());
3728 }
3729 
3730 
3731 
3732 inline void
3733 lascl(const char * type,
3734  const ::types::blas_int *kl,
3735  const ::types::blas_int *ku,
3736  const float * cfrom,
3737  const float * cto,
3738  const ::types::blas_int *m,
3739  const ::types::blas_int *n,
3740  float * a,
3741  const ::types::blas_int *lda,
3742  ::types::blas_int * info)
3743 {
3744 #ifdef DEAL_II_WITH_LAPACK
3745  slascl_(type, kl, ku, cfrom, cto, m, n, a, lda, info);
3746 #else
3747  (void)type;
3748  (void)kl;
3749  (void)ku;
3750  (void)cfrom;
3751  (void)cto;
3752  (void)m;
3753  (void)n;
3754  (void)a;
3755  (void)lda;
3756  (void)info;
3757  Assert(false, LAPACKSupport::ExcMissing("slascl"));
3758 #endif // DEAL_II_WITH_LAPACK
3759 }
3760 
3761 
3762 
3763 inline void
3764 lascl(const char * type,
3765  const ::types::blas_int *kl,
3766  const ::types::blas_int *ku,
3767  const double * cfrom,
3768  const double * cto,
3769  const ::types::blas_int *m,
3770  const ::types::blas_int *n,
3771  double * a,
3772  const ::types::blas_int *lda,
3773  ::types::blas_int * info)
3774 {
3775 #ifdef DEAL_II_WITH_LAPACK
3776  dlascl_(type, kl, ku, cfrom, cto, m, n, a, lda, info);
3777 #else
3778  (void)type;
3779  (void)kl;
3780  (void)ku;
3781  (void)cfrom;
3782  (void)cto;
3783  (void)m;
3784  (void)n;
3785  (void)a;
3786  (void)lda;
3787  (void)info;
3788  Assert(false, LAPACKSupport::ExcMissing("dlascl"));
3789 #endif // DEAL_II_WITH_LAPACK
3790 }
3791 
3792 
3793 
3794 inline void
3795 lascl(const char * type,
3796  const ::types::blas_int *kl,
3797  const ::types::blas_int *ku,
3798  const float * cfrom,
3799  const float * cto,
3800  const ::types::blas_int *m,
3801  const ::types::blas_int *n,
3802  std::complex<float> * a,
3803  const ::types::blas_int *lda,
3804  ::types::blas_int * info)
3805 {
3806 #ifdef DEAL_II_WITH_LAPACK
3807  clascl_(type, kl, ku, cfrom, cto, m, n, a, lda, info);
3808 #else
3809  (void)type;
3810  (void)kl;
3811  (void)ku;
3812  (void)cfrom;
3813  (void)cto;
3814  (void)m;
3815  (void)n;
3816  (void)a;
3817  (void)lda;
3818  (void)info;
3819  Assert(false, LAPACKSupport::ExcMissing("clascl"));
3820 #endif // DEAL_II_WITH_LAPACK
3821 }
3822 
3823 
3824 
3825 inline void
3826 lascl(const char * type,
3827  const ::types::blas_int *kl,
3828  const ::types::blas_int *ku,
3829  const double * cfrom,
3830  const double * cto,
3831  const ::types::blas_int *m,
3832  const ::types::blas_int *n,
3833  std::complex<double> * a,
3834  const ::types::blas_int *lda,
3835  ::types::blas_int * info)
3836 {
3837 #ifdef DEAL_II_WITH_LAPACK
3838  zlascl_(type, kl, ku, cfrom, cto, m, n, a, lda, info);
3839 #else
3840  (void)type;
3841  (void)kl;
3842  (void)ku;
3843  (void)cfrom;
3844  (void)cto;
3845  (void)m;
3846  (void)n;
3847  (void)a;
3848  (void)lda;
3849  (void)info;
3850  Assert(false, LAPACKSupport::ExcMissing("zlascl"));
3851 #endif // DEAL_II_WITH_LAPACK
3852 }
3853 
3854 
3855 
3856 template <typename number1, typename number2, typename number3>
3857 inline void
3858 orgqr(const ::types::blas_int *,
3859  const ::types::blas_int *,
3860  const ::types::blas_int *,
3861  number1 *,
3862  const ::types::blas_int *,
3863  const number2 *,
3864  number3 *,
3865  const ::types::blas_int *,
3866  ::types::blas_int *)
3867 {
3868  Assert(false, ExcNotImplemented());
3869 }
3870 
3871 
3872 
3873 inline void
3874 orgqr(const ::types::blas_int *m,
3875  const ::types::blas_int *n,
3876  const ::types::blas_int *k,
3877  float * a,
3878  const ::types::blas_int *lda,
3879  const float * tau,
3880  float * work,
3881  const ::types::blas_int *lwork,
3882  ::types::blas_int * info)
3883 {
3884 #ifdef DEAL_II_WITH_LAPACK
3885  sorgqr_(m, n, k, a, lda, tau, work, lwork, info);
3886 #else
3887  (void)m;
3888  (void)n;
3889  (void)k;
3890  (void)a;
3891  (void)lda;
3892  (void)tau;
3893  (void)work;
3894  (void)lwork;
3895  (void)info;
3896  Assert(false, LAPACKSupport::ExcMissing("sorgqr"));
3897 #endif // DEAL_II_WITH_LAPACK
3898 }
3899 
3900 
3901 
3902 inline void
3903 orgqr(const ::types::blas_int *m,
3904  const ::types::blas_int *n,
3905  const ::types::blas_int *k,
3906  double * a,
3907  const ::types::blas_int *lda,
3908  const double * tau,
3909  double * work,
3910  const ::types::blas_int *lwork,
3911  ::types::blas_int * info)
3912 {
3913 #ifdef DEAL_II_WITH_LAPACK
3914  dorgqr_(m, n, k, a, lda, tau, work, lwork, info);
3915 #else
3916  (void)m;
3917  (void)n;
3918  (void)k;
3919  (void)a;
3920  (void)lda;
3921  (void)tau;
3922  (void)work;
3923  (void)lwork;
3924  (void)info;
3925  Assert(false, LAPACKSupport::ExcMissing("dorgqr"));
3926 #endif // DEAL_II_WITH_LAPACK
3927 }
3928 
3929 
3930 
3931 template <typename number1,
3932  typename number2,
3933  typename number3,
3934  typename number4>
3935 inline void
3936 ormqr(const char *,
3937  const char *,
3938  const ::types::blas_int *,
3939  const ::types::blas_int *,
3940  const ::types::blas_int *,
3941  const number1 *,
3942  const ::types::blas_int *,
3943  const number2 *,
3944  number3 *,
3945  const ::types::blas_int *,
3946  number4 *,
3947  const ::types::blas_int *,
3948  ::types::blas_int *)
3949 {
3950  Assert(false, ExcNotImplemented());
3951 }
3952 
3953 
3954 
3955 inline void
3956 ormqr(const char * side,
3957  const char * trans,
3958  const ::types::blas_int *m,
3959  const ::types::blas_int *n,
3960  const ::types::blas_int *k,
3961  const float * a,
3962  const ::types::blas_int *lda,
3963  const float * tau,
3964  float * c,
3965  const ::types::blas_int *ldc,
3966  float * work,
3967  const ::types::blas_int *lwork,
3968  ::types::blas_int * info)
3969 {
3970 #ifdef DEAL_II_WITH_LAPACK
3971  sormqr_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info);
3972 #else
3973  (void)side;
3974  (void)trans;
3975  (void)m;
3976  (void)n;
3977  (void)k;
3978  (void)a;
3979  (void)lda;
3980  (void)tau;
3981  (void)c;
3982  (void)ldc;
3983  (void)work;
3984  (void)lwork;
3985  (void)info;
3986  Assert(false, LAPACKSupport::ExcMissing("sormqr"));
3987 #endif // DEAL_II_WITH_LAPACK
3988 }
3989 
3990 
3991 
3992 inline void
3993 ormqr(const char * side,
3994  const char * trans,
3995  const ::types::blas_int *m,
3996  const ::types::blas_int *n,
3997  const ::types::blas_int *k,
3998  const double * a,
3999  const ::types::blas_int *lda,
4000  const double * tau,
4001  double * c,
4002  const ::types::blas_int *ldc,
4003  double * work,
4004  const ::types::blas_int *lwork,
4005  ::types::blas_int * info)
4006 {
4007 #ifdef DEAL_II_WITH_LAPACK
4008  dormqr_(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info);
4009 #else
4010  (void)side;
4011  (void)trans;
4012  (void)m;
4013  (void)n;
4014  (void)k;
4015  (void)a;
4016  (void)lda;
4017  (void)tau;
4018  (void)c;
4019  (void)ldc;
4020  (void)work;
4021  (void)lwork;
4022  (void)info;
4023  Assert(false, LAPACKSupport::ExcMissing("dormqr"));
4024 #endif // DEAL_II_WITH_LAPACK
4025 }
4026 
4027 
4028 
4029 template <typename number1,
4030  typename number2,
4031  typename number3,
4032  typename number4>
4033 inline void
4034 pocon(const char *,
4035  const ::types::blas_int *,
4036  const number1 *,
4037  const ::types::blas_int *,
4038  const number2 *,
4039  number3 *,
4040  number4 *,
4041  ::types::blas_int *,
4042  ::types::blas_int *)
4043 {
4044  Assert(false, ExcNotImplemented());
4045 }
4046 
4047 
4048 
4049 inline void
4050 pocon(const char * uplo,
4051  const ::types::blas_int *n,
4052  const float * a,
4053  const ::types::blas_int *lda,
4054  const float * anorm,
4055  float * rcond,
4056  float * work,
4057  ::types::blas_int * iwork,
4058  ::types::blas_int * info)
4059 {
4060 #ifdef DEAL_II_WITH_LAPACK
4061  spocon_(uplo, n, a, lda, anorm, rcond, work, iwork, info);
4062 #else
4063  (void)uplo;
4064  (void)n;
4065  (void)a;
4066  (void)lda;
4067  (void)anorm;
4068  (void)rcond;
4069  (void)work;
4070  (void)iwork;
4071  (void)info;
4072  Assert(false, LAPACKSupport::ExcMissing("spocon"));
4073 #endif // DEAL_II_WITH_LAPACK
4074 }
4075 
4076 
4077 
4078 inline void
4079 pocon(const char * uplo,
4080  const ::types::blas_int *n,
4081  const double * a,
4082  const ::types::blas_int *lda,
4083  const double * anorm,
4084  double * rcond,
4085  double * work,
4086  ::types::blas_int * iwork,
4087  ::types::blas_int * info)
4088 {
4089 #ifdef DEAL_II_WITH_LAPACK
4090  dpocon_(uplo, n, a, lda, anorm, rcond, work, iwork, info);
4091 #else
4092  (void)uplo;
4093  (void)n;
4094  (void)a;
4095  (void)lda;
4096  (void)anorm;
4097  (void)rcond;
4098  (void)work;
4099  (void)iwork;
4100  (void)info;
4101  Assert(false, LAPACKSupport::ExcMissing("dpocon"));
4102 #endif // DEAL_II_WITH_LAPACK
4103 }
4104 
4105 
4106 
4107 inline void
4108 pocon(const char * uplo,
4109  const ::types::blas_int *n,
4110  const std::complex<float> * a,
4111  const ::types::blas_int *lda,
4112  const float * anorm,
4113  float * rcond,
4114  std::complex<float> * work,
4115  float * rwork,
4116  ::types::blas_int * info)
4117 {
4118 #ifdef DEAL_II_WITH_LAPACK
4119  cpocon_(uplo, n, a, lda, anorm, rcond, work, rwork, info);
4120 #else
4121  (void)uplo;
4122  (void)n;
4123  (void)a;
4124  (void)lda;
4125  (void)anorm;
4126  (void)rcond;
4127  (void)work;
4128  (void)rwork;
4129  (void)info;
4130  Assert(false, LAPACKSupport::ExcMissing("cpocon"));
4131 #endif // DEAL_II_WITH_LAPACK
4132 }
4133 
4134 
4135 
4136 inline void
4137 pocon(const char * uplo,
4138  const ::types::blas_int *n,
4139  const std::complex<double> * a,
4140  const ::types::blas_int *lda,
4141  const double * anorm,
4142  double * rcond,
4143  std::complex<double> * work,
4144  double * rwork,
4145  ::types::blas_int * info)
4146 {
4147 #ifdef DEAL_II_WITH_LAPACK
4148  zpocon_(uplo, n, a, lda, anorm, rcond, work, rwork, info);
4149 #else
4150  (void)uplo;
4151  (void)n;
4152  (void)a;
4153  (void)lda;
4154  (void)anorm;
4155  (void)rcond;
4156  (void)work;
4157  (void)rwork;
4158  (void)info;
4159  Assert(false, LAPACKSupport::ExcMissing("zpocon"));
4160 #endif // DEAL_II_WITH_LAPACK
4161 }
4162 
4163 
4164 
4165 template <typename number1>
4166 inline void
4167 potrf(const char *,
4168  const ::types::blas_int *,
4169  number1 *,
4170  const ::types::blas_int *,
4171  ::types::blas_int *)
4172 {
4173  Assert(false, ExcNotImplemented());
4174 }
4175 
4176 
4177 
4178 inline void
4179 potrf(const char * uplo,
4180  const ::types::blas_int *n,
4181  float * a,
4182  const ::types::blas_int *lda,
4183  ::types::blas_int * info)
4184 {
4185 #ifdef DEAL_II_WITH_LAPACK
4186  spotrf_(uplo, n, a, lda, info);
4187 #else
4188  (void)uplo;
4189  (void)n;
4190  (void)a;
4191  (void)lda;
4192  (void)info;
4193  Assert(false, LAPACKSupport::ExcMissing("spotrf"));
4194 #endif // DEAL_II_WITH_LAPACK
4195 }
4196 
4197 
4198 
4199 inline void
4200 potrf(const char * uplo,
4201  const ::types::blas_int *n,
4202  double * a,
4203  const ::types::blas_int *lda,
4204  ::types::blas_int * info)
4205 {
4206 #ifdef DEAL_II_WITH_LAPACK
4207  dpotrf_(uplo, n, a, lda, info);
4208 #else
4209  (void)uplo;
4210  (void)n;
4211  (void)a;
4212  (void)lda;
4213  (void)info;
4214  Assert(false, LAPACKSupport::ExcMissing("dpotrf"));
4215 #endif // DEAL_II_WITH_LAPACK
4216 }
4217 
4218 
4219 
4220 inline void
4221 potrf(const char * uplo,
4222  const ::types::blas_int *n,
4223  std::complex<float> * a,
4224  const ::types::blas_int *lda,
4225  ::types::blas_int * info)
4226 {
4227 #ifdef DEAL_II_WITH_LAPACK
4228  cpotrf_(uplo, n, a, lda, info);
4229 #else
4230  (void)uplo;
4231  (void)n;
4232  (void)a;
4233  (void)lda;
4234  (void)info;
4235  Assert(false, LAPACKSupport::ExcMissing("cpotrf"));
4236 #endif // DEAL_II_WITH_LAPACK
4237 }
4238 
4239 
4240 
4241 inline void
4242 potrf(const char * uplo,
4243  const ::types::blas_int *n,
4244  std::complex<double> * a,
4245  const ::types::blas_int *lda,
4246  ::types::blas_int * info)
4247 {
4248 #ifdef DEAL_II_WITH_LAPACK
4249  zpotrf_(uplo, n, a, lda, info);
4250 #else
4251  (void)uplo;
4252  (void)n;
4253  (void)a;
4254  (void)lda;
4255  (void)info;
4256  Assert(false, LAPACKSupport::ExcMissing("zpotrf"));
4257 #endif // DEAL_II_WITH_LAPACK
4258 }
4259 
4260 
4261 
4262 template <typename number1>
4263 inline void
4264 potri(const char *,
4265  const ::types::blas_int *,
4266  number1 *,
4267  const ::types::blas_int *,
4268  ::types::blas_int *)
4269 {
4270  Assert(false, ExcNotImplemented());
4271 }
4272 
4273 
4274 
4275 inline void
4276 potri(const char * uplo,
4277  const ::types::blas_int *n,
4278  float * a,
4279  const ::types::blas_int *lda,
4280  ::types::blas_int * info)
4281 {
4282 #ifdef DEAL_II_WITH_LAPACK
4283  spotri_(uplo, n, a, lda, info);
4284 #else
4285  (void)uplo;
4286  (void)n;
4287  (void)a;
4288  (void)lda;
4289  (void)info;
4290  Assert(false, LAPACKSupport::ExcMissing("spotri"));
4291 #endif // DEAL_II_WITH_LAPACK
4292 }
4293 
4294 
4295 
4296 inline void
4297 potri(const char * uplo,
4298  const ::types::blas_int *n,
4299  double * a,
4300  const ::types::blas_int *lda,
4301  ::types::blas_int * info)
4302 {
4303 #ifdef DEAL_II_WITH_LAPACK
4304  dpotri_(uplo, n, a, lda, info);
4305 #else
4306  (void)uplo;
4307  (void)n;
4308  (void)a;
4309  (void)lda;
4310  (void)info;
4311  Assert(false, LAPACKSupport::ExcMissing("dpotri"));
4312 #endif // DEAL_II_WITH_LAPACK
4313 }
4314 
4315 
4316 
4317 inline void
4318 potri(const char * uplo,
4319  const ::types::blas_int *n,
4320  std::complex<float> * a,
4321  const ::types::blas_int *lda,
4322  ::types::blas_int * info)
4323 {
4324 #ifdef DEAL_II_WITH_LAPACK
4325  cpotri_(uplo, n, a, lda, info);
4326 #else
4327  (void)uplo;
4328  (void)n;
4329  (void)a;
4330  (void)lda;
4331  (void)info;
4332  Assert(false, LAPACKSupport::ExcMissing("cpotri"));
4333 #endif // DEAL_II_WITH_LAPACK
4334 }
4335 
4336 
4337 
4338 inline void
4339 potri(const char * uplo,
4340  const ::types::blas_int *n,
4341  std::complex<double> * a,
4342  const ::types::blas_int *lda,
4343  ::types::blas_int * info)
4344 {
4345 #ifdef DEAL_II_WITH_LAPACK
4346  zpotri_(uplo, n, a, lda, info);
4347 #else
4348  (void)uplo;
4349  (void)n;
4350  (void)a;
4351  (void)lda;
4352  (void)info;
4353  Assert(false, LAPACKSupport::ExcMissing("zpotri"));
4354 #endif // DEAL_II_WITH_LAPACK
4355 }
4356 
4357 
4358 
4359 template <typename number1, typename number2>
4360 inline void
4361 potrs(const char *,
4362  const ::types::blas_int *,
4363  const ::types::blas_int *,
4364  const number1 *,
4365  const ::types::blas_int *,
4366  number2 *,
4367  const ::types::blas_int *,
4368  ::types::blas_int *)
4369 {
4370  Assert(false, ExcNotImplemented());
4371 }
4372 
4373 
4374 
4375 inline void
4376 potrs(const char * uplo,
4377  const ::types::blas_int *n,
4378  const ::types::blas_int *nrhs,
4379  const float * a,
4380  const ::types::blas_int *lda,
4381  float * b,
4382  const ::types::blas_int *ldb,
4383  ::types::blas_int * info)
4384 {
4385 #ifdef DEAL_II_WITH_LAPACK
4386  spotrs_(uplo, n, nrhs, a, lda, b, ldb, info);
4387 #else
4388  (void)uplo;
4389  (void)n;
4390  (void)nrhs;
4391  (void)a;
4392  (void)lda;
4393  (void)b;
4394  (void)ldb;
4395  (void)info;
4396  Assert(false, LAPACKSupport::ExcMissing("spotrs"));
4397 #endif // DEAL_II_WITH_LAPACK
4398 }
4399 
4400 
4401 
4402 inline void
4403 potrs(const char * uplo,
4404  const ::types::blas_int *n,
4405  const ::types::blas_int *nrhs,
4406  const double * a,
4407  const ::types::blas_int *lda,
4408  double * b,
4409  const ::types::blas_int *ldb,
4410  ::types::blas_int * info)
4411 {
4412 #ifdef DEAL_II_WITH_LAPACK
4413  dpotrs_(uplo, n, nrhs, a, lda, b, ldb, info);
4414 #else
4415  (void)uplo;
4416  (void)n;
4417  (void)nrhs;
4418  (void)a;
4419  (void)lda;
4420  (void)b;
4421  (void)ldb;
4422  (void)info;
4423  Assert(false, LAPACKSupport::ExcMissing("dpotrs"));
4424 #endif // DEAL_II_WITH_LAPACK
4425 }
4426 
4427 
4428 
4429 inline void
4430 potrs(const char * uplo,
4431  const ::types::blas_int *n,
4432  const ::types::blas_int *nrhs,
4433  const std::complex<float> * a,
4434  const ::types::blas_int *lda,
4435  std::complex<float> * b,
4436  const ::types::blas_int *ldb,
4437  ::types::blas_int * info)
4438 {
4439 #ifdef DEAL_II_WITH_LAPACK
4440  cpotrs_(uplo, n, nrhs, a, lda, b, ldb, info);
4441 #else
4442  (void)uplo;
4443  (void)n;
4444  (void)nrhs;
4445  (void)a;
4446  (void)lda;
4447  (void)b;
4448  (void)ldb;
4449  (void)info;
4450  Assert(false, LAPACKSupport::ExcMissing("cpotrs"));
4451 #endif // DEAL_II_WITH_LAPACK
4452 }
4453 
4454 
4455 
4456 inline void
4457 potrs(const char * uplo,
4458  const ::types::blas_int *n,
4459  const ::types::blas_int *nrhs,
4460  const std::complex<double> * a,
4461  const ::types::blas_int *lda,
4462  std::complex<double> * b,
4463  const ::types::blas_int *ldb,
4464  ::types::blas_int * info)
4465 {
4466 #ifdef DEAL_II_WITH_LAPACK
4467  zpotrs_(uplo, n, nrhs, a, lda, b, ldb, info);
4468 #else
4469  (void)uplo;
4470  (void)n;
4471  (void)nrhs;
4472  (void)a;
4473  (void)lda;
4474  (void)b;
4475  (void)ldb;
4476  (void)info;
4477  Assert(false, LAPACKSupport::ExcMissing("zpotrs"));
4478 #endif // DEAL_II_WITH_LAPACK
4479 }
4480 
4481 
4482 
4483 template <typename number1,
4484  typename number2,
4485  typename number3,
4486  typename number4>
4487 inline void
4488 stev(const char *,
4489  const ::types::blas_int *,
4490  number1 *,
4491  number2 *,
4492  number3 *,
4493  const ::types::blas_int *,
4494  number4 *,
4495  ::types::blas_int *)
4496 {
4497  Assert(false, ExcNotImplemented());
4498 }
4499 
4500 
4501 
4502 inline void
4503 stev(const char * jobz,
4504  const ::types::blas_int *n,
4505  float * d,
4506  float * e,
4507  float * z,
4508  const ::types::blas_int *ldz,
4509  float * work,
4510  ::types::blas_int * info)
4511 {
4512 #ifdef DEAL_II_WITH_LAPACK
4513  sstev_(jobz, n, d, e, z, ldz, work, info);
4514 #else
4515  (void)jobz;
4516  (void)n;
4517  (void)d;
4518  (void)e;
4519  (void)z;
4520  (void)ldz;
4521  (void)work;
4522  (void)info;
4523  Assert(false, LAPACKSupport::ExcMissing("sstev"));
4524 #endif // DEAL_II_WITH_LAPACK
4525 }
4526 
4527 
4528 
4529 inline void
4530 stev(const char * jobz,
4531  const ::types::blas_int *n,
4532  double * d,
4533  double * e,
4534  double * z,
4535  const ::types::blas_int *ldz,
4536  double * work,
4537  ::types::blas_int * info)
4538 {
4539 #ifdef DEAL_II_WITH_LAPACK
4540  dstev_(jobz, n, d, e, z, ldz, work, info);
4541 #else
4542  (void)jobz;
4543  (void)n;
4544  (void)d;
4545  (void)e;
4546  (void)z;
4547  (void)ldz;
4548  (void)work;
4549  (void)info;
4550  Assert(false, LAPACKSupport::ExcMissing("dstev"));
4551 #endif // DEAL_II_WITH_LAPACK
4552 }
4553 
4554 
4555 
4556 template <typename number1, typename number2, typename number3>
4557 inline void
4558 syev(const char *,
4559  const char *,
4560  const ::types::blas_int *,
4561  number1 *,
4562  const ::types::blas_int *,
4563  number2 *,
4564  number3 *,
4565  const ::types::blas_int *,
4566  ::types::blas_int *)
4567 {
4568  Assert(false, ExcNotImplemented());
4569 }
4570 
4571 
4572 
4573 inline void
4574 syev(const char * jobz,
4575  const char * uplo,
4576  const ::types::blas_int *n,
4577  float * a,
4578  const ::types::blas_int *lda,
4579  float * w,
4580  float * work,
4581  const ::types::blas_int *lwork,
4582  ::types::blas_int * info)
4583 {
4584 #ifdef DEAL_II_WITH_LAPACK
4585  ssyev_(jobz, uplo, n, a, lda, w, work, lwork, info);
4586 #else
4587  (void)jobz;
4588  (void)uplo;
4589  (void)n;
4590  (void)a;
4591  (void)lda;
4592  (void)w;
4593  (void)work;
4594  (void)lwork;
4595  (void)info;
4596  Assert(false, LAPACKSupport::ExcMissing("ssyev"));
4597 #endif // DEAL_II_WITH_LAPACK
4598 }
4599 
4600 
4601 
4602 inline void
4603 syev(const char * jobz,
4604  const char * uplo,
4605  const ::types::blas_int *n,
4606  double * a,
4607  const ::types::blas_int *lda,
4608  double * w,
4609  double * work,
4610  const ::types::blas_int *lwork,
4611  ::types::blas_int * info)
4612 {
4613 #ifdef DEAL_II_WITH_LAPACK
4614  dsyev_(jobz, uplo, n, a, lda, w, work, lwork, info);
4615 #else
4616  (void)jobz;
4617  (void)uplo;
4618  (void)n;
4619  (void)a;
4620  (void)lda;
4621  (void)w;
4622  (void)work;
4623  (void)lwork;
4624  (void)info;
4625  Assert(false, LAPACKSupport::ExcMissing("dsyev"));
4626 #endif // DEAL_II_WITH_LAPACK
4627 }
4628 
4629 
4630 
4631 template <typename number1,
4632  typename number2,
4633  typename number3,
4634  typename number4,
4635  typename number5,
4636  typename number6,
4637  typename number7>
4638 inline void
4639 syevr(const char *,
4640  const char *,
4641  const char *,
4642  const ::types::blas_int *,
4643  number1 *,
4644  const ::types::blas_int *,
4645  const number2 *,
4646  const number3 *,
4647  const ::types::blas_int *,
4648  const ::types::blas_int *,
4649  const number4 *,
4650  ::types::blas_int *,
4651  number5 *,
4652  number6 *,
4653  const ::types::blas_int *,
4654  ::types::blas_int *,
4655  number7 *,
4656  const ::types::blas_int *,
4657  ::types::blas_int *,
4658  const ::types::blas_int *,
4659  ::types::blas_int *)
4660 {
4661  Assert(false, ExcNotImplemented());
4662 }
4663 
4664 
4665 
4666 inline void
4667 syevr(const char * jobz,
4668  const char * range,
4669  const char * uplo,
4670  const ::types::blas_int *n,
4671  float * a,
4672  const ::types::blas_int *lda,
4673  const float * vl,
4674  const float * vu,
4675  const ::types::blas_int *il,
4676  const ::types::blas_int *iu,
4677  const float * abstol,
4678  ::types::blas_int * m,
4679  float * w,
4680  float * z,
4681  const ::types::blas_int *ldz,
4682  ::types::blas_int * isuppz,
4683  float * work,
4684  const ::types::blas_int *lwork,
4685  ::types::blas_int * iwork,
4686  const ::types::blas_int *liwork,
4687  ::types::blas_int * info)
4688 {
4689 #ifdef DEAL_II_WITH_LAPACK
4690  // Netlib and Atlas Lapack perform floating point tests (e.g. divide-by-zero)
4691  // within calls to some functions, which cause floating point exceptions to be
4692  // thrown (at least in debug mode). Therefore, we wrap the calls into the
4693  // following code to suppress the exception.
4694 # ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4695  fenv_t fp_exceptions;
4696  feholdexcept(&fp_exceptions);
4697 # endif // DEAL_II_HAVE_FP_EXCEPTIONS
4698  ssyevr_(jobz,
4699  range,
4700  uplo,
4701  n,
4702  a,
4703  lda,
4704  vl,
4705  vu,
4706  il,
4707  iu,
4708  abstol,
4709  m,
4710  w,
4711  z,
4712  ldz,
4713  isuppz,
4714  work,
4715  lwork,
4716  iwork,
4717  liwork,
4718  info);
4719 # ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4720  fesetenv(&fp_exceptions);
4721 # endif // DEAL_II_HAVE_FP_EXCEPTIONS
4722 #else
4723  (void)jobz;
4724  (void)range;
4725  (void)uplo;
4726  (void)n;
4727  (void)a;
4728  (void)lda;
4729  (void)vl;
4730  (void)vu;
4731  (void)il;
4732  (void)iu;
4733  (void)abstol;
4734  (void)m;
4735  (void)w;
4736  (void)z;
4737  (void)ldz;
4738  (void)isuppz;
4739  (void)work;
4740  (void)lwork;
4741  (void)iwork;
4742  (void)liwork;
4743  (void)info;
4744  Assert(false, LAPACKSupport::ExcMissing("ssyevr"));
4745 #endif // DEAL_II_WITH_LAPACK
4746 }
4747 
4748 
4749 
4750 inline void
4751 syevr(const char * jobz,
4752  const char * range,
4753  const char * uplo,
4754  const ::types::blas_int *n,
4755  double * a,
4756  const ::types::blas_int *lda,
4757  const double * vl,
4758  const double * vu,
4759  const ::types::blas_int *il,
4760  const ::types::blas_int *iu,
4761  const double * abstol,
4762  ::types::blas_int * m,
4763  double * w,
4764  double * z,
4765  const ::types::blas_int *ldz,
4766  ::types::blas_int * isuppz,
4767  double * work,
4768  const ::types::blas_int *lwork,
4769  ::types::blas_int * iwork,
4770  const ::types::blas_int *liwork,
4771  ::types::blas_int * info)
4772 {
4773 #ifdef DEAL_II_WITH_LAPACK
4774  // Netlib and Atlas Lapack perform floating point tests (e.g. divide-by-zero)
4775  // within calls to some functions, which cause floating point exceptions to be
4776  // thrown (at least in debug mode). Therefore, we wrap the calls into the
4777  // following code to suppress the exception.
4778 # ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4779  fenv_t fp_exceptions;
4780  feholdexcept(&fp_exceptions);
4781 # endif // DEAL_II_HAVE_FP_EXCEPTIONS
4782  dsyevr_(jobz,
4783  range,
4784  uplo,
4785  n,
4786  a,
4787  lda,
4788  vl,
4789  vu,
4790  il,
4791  iu,
4792  abstol,
4793  m,
4794  w,
4795  z,
4796  ldz,
4797  isuppz,
4798  work,
4799  lwork,
4800  iwork,
4801  liwork,
4802  info);
4803 # ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4804  fesetenv(&fp_exceptions);
4805 # endif // DEAL_II_HAVE_FP_EXCEPTIONS
4806 #else
4807  (void)jobz;
4808  (void)range;
4809  (void)uplo;
4810  (void)n;
4811  (void)a;
4812  (void)lda;
4813  (void)vl;
4814  (void)vu;
4815  (void)il;
4816  (void)iu;
4817  (void)abstol;
4818  (void)m;
4819  (void)w;
4820  (void)z;
4821  (void)ldz;
4822  (void)isuppz;
4823  (void)work;
4824  (void)lwork;
4825  (void)iwork;
4826  (void)liwork;
4827  (void)info;
4828  Assert(false, LAPACKSupport::ExcMissing("dsyevr"));
4829 #endif // DEAL_II_WITH_LAPACK
4830 }
4831 
4832 
4833 
4834 template <typename number1,
4835  typename number2,
4836  typename number3,
4837  typename number4,
4838  typename number5,
4839  typename number6,
4840  typename number7>
4841 inline void
4842 syevx(const char *,
4843  const char *,
4844  const char *,
4845  const ::types::blas_int *,
4846  number1 *,
4847  const ::types::blas_int *,
4848  const number2 *,
4849  const number3 *,
4850  const ::types::blas_int *,
4851  const ::types::blas_int *,
4852  const number4 *,
4853  ::types::blas_int *,
4854  number5 *,
4855  number6 *,
4856  const ::types::blas_int *,
4857  number7 *,
4858  const ::types::blas_int *,
4859  ::types::blas_int *,
4860  ::types::blas_int *,
4861  ::types::blas_int *)
4862 {
4863  Assert(false, ExcNotImplemented());
4864 }
4865 
4866 
4867 
4868 inline void
4869 syevx(const char * jobz,
4870  const char * range,
4871  const char * uplo,
4872  const ::types::blas_int *n,
4873  float * a,
4874  const ::types::blas_int *lda,
4875  const float * vl,
4876  const float * vu,
4877  const ::types::blas_int *il,
4878  const ::types::blas_int *iu,
4879  const float * abstol,
4880  ::types::blas_int * m,
4881  float * w,
4882  float * z,
4883  const ::types::blas_int *ldz,
4884  float * work,
4885  const ::types::blas_int *lwork,
4886  ::types::blas_int * iwork,
4887  ::types::blas_int * ifail,
4888  ::types::blas_int * info)
4889 {
4890 #ifdef DEAL_II_WITH_LAPACK
4891  ssyevx_(jobz,
4892  range,
4893  uplo,
4894  n,
4895  a,
4896  lda,
4897  vl,
4898  vu,
4899  il,
4900  iu,
4901  abstol,
4902  m,
4903  w,
4904  z,
4905  ldz,
4906  work,
4907  lwork,
4908  iwork,
4909  ifail,
4910  info);
4911 #else
4912  (void)jobz;
4913  (void)range;
4914  (void)uplo;
4915  (void)n;
4916  (void)a;
4917  (void)lda;
4918  (void)vl;
4919  (void)vu;
4920  (void)il;
4921  (void)iu;
4922  (void)abstol;
4923  (void)m;
4924  (void)w;
4925  (void)z;
4926  (void)ldz;
4927  (void)work;
4928  (void)lwork;
4929  (void)iwork;
4930  (void)ifail;
4931  (void)info;
4932  Assert(false, LAPACKSupport::ExcMissing("ssyevx"));
4933 #endif // DEAL_II_WITH_LAPACK
4934 }
4935 
4936 
4937 
4938 inline void
4939 syevx(const char * jobz,
4940  const char * range,
4941  const char * uplo,
4942  const ::types::blas_int *n,
4943  double * a,
4944  const ::types::blas_int *lda,
4945  const double * vl,
4946  const double * vu,
4947  const ::types::blas_int *il,
4948  const ::types::blas_int *iu,
4949  const double * abstol,
4950  ::types::blas_int * m,
4951  double * w,
4952  double * z,
4953  const ::types::blas_int *ldz,
4954  double * work,
4955  const ::types::blas_int *lwork,
4956  ::types::blas_int * iwork,
4957  ::types::blas_int * ifail,
4958  ::types::blas_int * info)
4959 {
4960 #ifdef DEAL_II_WITH_LAPACK
4961  dsyevx_(jobz,
4962  range,
4963  uplo,
4964  n,
4965  a,
4966  lda,
4967  vl,
4968  vu,
4969  il,
4970  iu,
4971  abstol,
4972  m,
4973  w,
4974  z,
4975  ldz,
4976  work,
4977  lwork,
4978  iwork,
4979  ifail,
4980  info);
4981 #else
4982  (void)jobz;
4983  (void)range;
4984  (void)uplo;
4985  (void)n;
4986  (void)a;
4987  (void)lda;
4988  (void)vl;
4989  (void)vu;
4990  (void)il;
4991  (void)iu;
4992  (void)abstol;
4993  (void)m;
4994  (void)w;
4995  (void)z;
4996  (void)ldz;
4997  (void)work;
4998  (void)lwork;
4999  (void)iwork;
5000  (void)ifail;
5001  (void)info;
5002  Assert(false, LAPACKSupport::ExcMissing("dsyevx"));
5003 #endif // DEAL_II_WITH_LAPACK
5004 }
5005 
5006 
5007 
5008 template <typename number1,
5009  typename number2,
5010  typename number3,
5011  typename number4>
5012 inline void
5013 sygv(const ::types::blas_int *,
5014  const char *,
5015  const char *,
5016  const ::types::blas_int *,
5017  number1 *,
5018  const ::types::blas_int *,
5019  number2 *,
5020  const ::types::blas_int *,
5021  number3 *,
5022  number4 *,
5023  const ::types::blas_int *,
5024  ::types::blas_int *)
5025 {
5026  Assert(false, ExcNotImplemented());
5027 }
5028 
5029 
5030 
5031 inline void
5032 sygv(const ::types::blas_int *itype,
5033  const char * jobz,
5034  const char * uplo,
5035  const ::types::blas_int *n,
5036  float * a,
5037  const ::types::blas_int *lda,
5038  float * b,
5039  const ::types::blas_int *ldb,
5040  float * w,
5041  float * work,
5042  const ::types::blas_int *lwork,
5043  ::types::blas_int * info)
5044 {
5045 #ifdef DEAL_II_WITH_LAPACK
5046  ssygv_(itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info);
5047 #else
5048  (void)itype;
5049  (void)jobz;
5050  (void)uplo;
5051  (void)n;
5052  (void)a;
5053  (void)lda;
5054  (void)b;
5055  (void)ldb;
5056  (void)w;
5057  (void)work;
5058  (void)lwork;
5059  (void)info;
5060  Assert(false, LAPACKSupport::ExcMissing("ssygv"));
5061 #endif // DEAL_II_WITH_LAPACK
5062 }
5063 
5064 
5065 
5066 inline void
5067 sygv(const ::types::blas_int *itype,
5068  const char * jobz,
5069  const char * uplo,
5070  const ::types::blas_int *n,
5071  double * a,
5072  const ::types::blas_int *lda,
5073  double * b,
5074  const ::types::blas_int *ldb,
5075  double * w,
5076  double * work,
5077  const ::types::blas_int *lwork,
5078  ::types::blas_int * info)
5079 {
5080 #ifdef DEAL_II_WITH_LAPACK
5081  dsygv_(itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info);
5082 #else
5083  (void)itype;
5084  (void)jobz;
5085  (void)uplo;
5086  (void)n;
5087  (void)a;
5088  (void)lda;
5089  (void)b;
5090  (void)ldb;
5091  (void)w;
5092  (void)work;
5093  (void)lwork;
5094  (void)info;
5095  Assert(false, LAPACKSupport::ExcMissing("dsygv"));
5096 #endif // DEAL_II_WITH_LAPACK
5097 }
5098 
5099 
5100 
5101 template <typename number1,
5102  typename number2,
5103  typename number3,
5104  typename number4,
5105  typename number5,
5106  typename number6,
5107  typename number7,
5108  typename number8>
5109 inline void
5110 sygvx(const ::types::blas_int *,
5111  const char *,
5112  const char *,
5113  const char *,
5114  const ::types::blas_int *,
5115  number1 *,
5116  const ::types::blas_int *,
5117  number2 *,
5118  const ::types::blas_int *,
5119  const number3 *,
5120  const number4 *,
5121  const ::types::blas_int *,
5122  const ::types::blas_int *,
5123  const number5 *,
5124  ::types::blas_int *,
5125  number6 *,
5126  number7 *,
5127  const ::types::blas_int *,
5128  number8 *,
5129  const ::types::blas_int *,
5130  ::types::blas_int *,
5131  ::types::blas_int *,
5132  ::types::blas_int *)
5133 {
5134  Assert(false, ExcNotImplemented());
5135 }
5136 
5137 
5138 
5139 inline void
5140 sygvx(const ::types::blas_int *itype,
5141  const char * jobz,
5142  const char * range,
5143  const char * uplo,
5144  const ::types::blas_int *n,
5145  float * a,
5146  const ::types::blas_int *lda,
5147  float * b,
5148  const ::types::blas_int *ldb,
5149  const float * vl,
5150  const float * vu,
5151  const ::types::blas_int *il,
5152  const ::types::blas_int *iu,
5153  const float * abstol,
5154  ::types::blas_int * m,
5155  float * w,
5156  float * z,
5157  const ::types::blas_int *ldz,
5158  float * work,
5159  const ::types::blas_int *lwork,
5160  ::types::blas_int * iwork,
5161  ::types::blas_int * ifail,
5162  ::types::blas_int * info)
5163 {
5164 #ifdef DEAL_II_WITH_LAPACK
5165  ssygvx_(itype,
5166  jobz,
5167  range,
5168  uplo,
5169  n,
5170  a,
5171  lda,
5172  b,
5173  ldb,
5174  vl,
5175  vu,
5176  il,
5177  iu,
5178  abstol,
5179  m,
5180  w,
5181  z,
5182  ldz,
5183  work,
5184  lwork,
5185  iwork,
5186  ifail,
5187  info);
5188 #else
5189  (void)itype;
5190  (void)jobz;
5191  (void)range;
5192  (void)uplo;
5193  (void)n;
5194  (void)a;
5195  (void)lda;
5196  (void)b;
5197  (void)ldb;
5198  (void)vl;
5199  (void)vu;
5200  (void)il;
5201  (void)iu;
5202  (void)abstol;
5203  (void)m;
5204  (void)w;
5205  (void)z;
5206  (void)ldz;
5207  (void)work;
5208  (void)lwork;
5209  (void)iwork;
5210  (void)ifail;
5211  (void)info;
5212  Assert(false, LAPACKSupport::ExcMissing("ssygvx"));
5213 #endif // DEAL_II_WITH_LAPACK
5214 }
5215 
5216 
5217 
5218 inline void
5219 sygvx(const ::types::blas_int *itype,
5220  const char * jobz,
5221  const char * range,
5222  const char * uplo,
5223  const ::types::blas_int *n,
5224  double * a,
5225  const ::types::blas_int *lda,
5226  double * b,
5227  const ::types::blas_int *ldb,
5228  const double * vl,
5229  const double * vu,
5230  const ::types::blas_int *il,
5231  const ::types::blas_int *iu,
5232  const double * abstol,
5233  ::types::blas_int * m,
5234  double * w,
5235  double * z,
5236  const ::types::blas_int *ldz,
5237  double * work,
5238  const ::types::blas_int *lwork,
5239  ::types::blas_int * iwork,
5240  ::types::blas_int * ifail,
5241  ::types::blas_int * info)
5242 {
5243 #ifdef DEAL_II_WITH_LAPACK
5244  dsygvx_(itype,
5245  jobz,
5246  range,
5247  uplo,
5248  n,
5249  a,
5250  lda,
5251  b,
5252  ldb,
5253  vl,
5254  vu,
5255  il,
5256  iu,
5257  abstol,
5258  m,
5259  w,
5260  z,
5261  ldz,
5262  work,
5263  lwork,
5264  iwork,
5265  ifail,
5266  info);
5267 #else
5268  (void)itype;
5269  (void)jobz;
5270  (void)range;
5271  (void)uplo;
5272  (void)n;
5273  (void)a;
5274  (void)lda;
5275  (void)b;
5276  (void)ldb;
5277  (void)vl;
5278  (void)vu;
5279  (void)il;
5280  (void)iu;
5281  (void)abstol;
5282  (void)m;
5283  (void)w;
5284  (void)z;
5285  (void)ldz;
5286  (void)work;
5287  (void)lwork;
5288  (void)iwork;
5289  (void)ifail;
5290  (void)info;
5291  Assert(false, LAPACKSupport::ExcMissing("dsygvx"));
5292 #endif // DEAL_II_WITH_LAPACK
5293 }
5294 
5295 
5296 
5297 template <typename number1, typename number2, typename number3>
5298 inline void
5299 syr(const char *,
5300  const ::types::blas_int *,
5301  const number1 *,
5302  const number2 *,
5303  const ::types::blas_int *,
5304  number3 *,
5305  const ::types::blas_int *)
5306 {
5307  Assert(false, ExcNotImplemented());
5308 }
5309 
5310 
5311 
5312 inline void
5313 syr(const char * uplo,
5314  const ::types::blas_int *n,
5315  const float * alpha,
5316  const float * x,
5317  const ::types::blas_int *incx,
5318  float * a,
5319  const ::types::blas_int *lda)
5320 {
5321 #ifdef DEAL_II_WITH_LAPACK
5322  ssyr_(uplo, n, alpha, x, incx, a, lda);
5323 #else
5324  (void)uplo;
5325  (void)n;
5326  (void)alpha;
5327  (void)x;
5328  (void)incx;
5329  (void)a;
5330  (void)lda;
5331  Assert(false, LAPACKSupport::ExcMissing("ssyr"));
5332 #endif // DEAL_II_WITH_LAPACK
5333 }
5334 
5335 
5336 
5337 inline void
5338 syr(const char * uplo,
5339  const ::types::blas_int *n,
5340  const double * alpha,
5341  const double * x,
5342  const ::types::blas_int *incx,
5343  double * a,
5344  const ::types::blas_int *lda)
5345 {
5346 #ifdef DEAL_II_WITH_LAPACK
5347  dsyr_(uplo, n, alpha, x, incx, a, lda);
5348 #else
5349  (void)uplo;
5350  (void)n;
5351  (void)alpha;
5352  (void)x;
5353  (void)incx;
5354  (void)a;
5355  (void)lda;
5356  Assert(false, LAPACKSupport::ExcMissing("dsyr"));
5357 #endif // DEAL_II_WITH_LAPACK
5358 }
5359 
5360 
5361 
5362 template <typename number1,
5363  typename number2,
5364  typename number3,
5365  typename number4>
5366 inline void
5367 syrk(const char *,
5368  const char *,
5369  const ::types::blas_int *,
5370  const ::types::blas_int *,
5371  const number1 *,
5372  const number2 *,
5373  const ::types::blas_int *,
5374  const number3 *,
5375  number4 *,
5376  const ::types::blas_int *)
5377 {
5378  Assert(false, ExcNotImplemented());
5379 }
5380 
5381 
5382 
5383 inline void
5384 syrk(const char * uplo,
5385  const char * trans,
5386  const ::types::blas_int *n,
5387  const ::types::blas_int *k,
5388  const float * alpha,
5389  const float * a,
5390  const ::types::blas_int *lda,
5391  const float * beta,
5392  float * c,
5393  const ::types::blas_int *ldc)
5394 {
5395 #ifdef DEAL_II_WITH_LAPACK
5396  ssyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5397 #else
5398  (void)uplo;
5399  (void)trans;
5400  (void)n;
5401  (void)k;
5402  (void)alpha;
5403  (void)a;
5404  (void)lda;
5405  (void)beta;
5406  (void)c;
5407  (void)ldc;
5408  Assert(false, LAPACKSupport::ExcMissing("ssyrk"));
5409 #endif // DEAL_II_WITH_LAPACK
5410 }
5411 
5412 
5413 
5414 inline void
5415 syrk(const char * uplo,
5416  const char * trans,
5417  const ::types::blas_int *n,
5418  const ::types::blas_int *k,
5419  const double * alpha,
5420  const double * a,
5421  const ::types::blas_int *lda,
5422  const double * beta,
5423  double * c,
5424  const ::types::blas_int *ldc)
5425 {
5426 #ifdef DEAL_II_WITH_LAPACK
5427  dsyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5428 #else
5429  (void)uplo;
5430  (void)trans;
5431  (void)n;
5432  (void)k;
5433  (void)alpha;
5434  (void)a;
5435  (void)lda;
5436  (void)beta;
5437  (void)c;
5438  (void)ldc;
5439  Assert(false, LAPACKSupport::ExcMissing("dsyrk"));
5440 #endif // DEAL_II_WITH_LAPACK
5441 }
5442 
5443 
5444 
5445 inline void
5446 syrk(const char * uplo,
5447  const char * trans,
5448  const ::types::blas_int *n,
5449  const ::types::blas_int *k,
5450  const std::complex<float> * alpha,
5451  const std::complex<float> * a,
5452  const ::types::blas_int *lda,
5453  const std::complex<float> * beta,
5454  std::complex<float> * c,
5455  const ::types::blas_int *ldc)
5456 {
5457 #ifdef DEAL_II_WITH_LAPACK
5458  csyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5459 #else
5460  (void)uplo;
5461  (void)trans;
5462  (void)n;
5463  (void)k;
5464  (void)alpha;
5465  (void)a;
5466  (void)lda;
5467  (void)beta;
5468  (void)c;
5469  (void)ldc;
5470  Assert(false, LAPACKSupport::ExcMissing("csyrk"));
5471 #endif // DEAL_II_WITH_LAPACK
5472 }
5473 
5474 
5475 
5476 inline void
5477 syrk(const char * uplo,
5478  const char * trans,
5479  const ::types::blas_int *n,
5480  const ::types::blas_int *k,
5481  const std::complex<double> * alpha,
5482  const std::complex<double> * a,
5483  const ::types::blas_int *lda,
5484  const std::complex<double> * beta,
5485  std::complex<double> * c,
5486  const ::types::blas_int *ldc)
5487 {
5488 #ifdef DEAL_II_WITH_LAPACK
5489  zsyrk_(uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5490 #else
5491  (void)uplo;
5492  (void)trans;
5493  (void)n;
5494  (void)k;
5495  (void)alpha;
5496  (void)a;
5497  (void)lda;
5498  (void)beta;
5499  (void)c;
5500  (void)ldc;
5501  Assert(false, LAPACKSupport::ExcMissing("zsyrk"));
5502 #endif // DEAL_II_WITH_LAPACK
5503 }
5504 
5505 
5506 
5507 template <typename number1, typename number2, typename number3>
5508 inline void
5509 trcon(const char *,
5510  const char *,
5511  const char *,
5512  const ::types::blas_int *,
5513  const number1 *,
5514  const ::types::blas_int *,
5515  number2 *,
5516  number3 *,
5517  ::types::blas_int *,
5518  ::types::blas_int *)
5519 {
5520  Assert(false, ExcNotImplemented());
5521 }
5522 
5523 
5524 
5525 inline void
5526 trcon(const char * norm,
5527  const char * uplo,
5528  const char * diag,
5529  const ::types::blas_int *n,
5530  const float * a,
5531  const ::types::blas_int *lda,
5532  float * rcond,
5533  float * work,
5534  ::types::blas_int * iwork,
5535  ::types::blas_int * info)
5536 {
5537 #ifdef DEAL_II_WITH_LAPACK
5538  strcon_(norm, uplo, diag, n, a, lda, rcond, work, iwork, info);
5539 #else
5540  (void)norm;
5541  (void)uplo;
5542  (void)diag;
5543  (void)n;
5544  (void)a;
5545  (void)lda;
5546  (void)rcond;
5547  (void)work;
5548  (void)iwork;
5549  (void)info;
5550  Assert(false, LAPACKSupport::ExcMissing("strcon"));
5551 #endif // DEAL_II_WITH_LAPACK
5552 }
5553 
5554 
5555 
5556 inline void
5557 trcon(const char * norm,
5558  const char * uplo,
5559  const char * diag,
5560  const ::types::blas_int *n,
5561  const double * a,
5562  const ::types::blas_int *lda,
5563  double * rcond,
5564  double * work,
5565  ::types::blas_int * iwork,
5566  ::types::blas_int * info)
5567 {
5568 #ifdef DEAL_II_WITH_LAPACK
5569  dtrcon_(norm, uplo, diag, n, a, lda, rcond, work, iwork, info);
5570 #else
5571  (void)norm;
5572  (void)uplo;
5573  (void)diag;
5574  (void)n;
5575  (void)a;
5576  (void)lda;
5577  (void)rcond;
5578  (void)work;
5579  (void)iwork;
5580  (void)info;
5581  Assert(false, LAPACKSupport::ExcMissing("dtrcon"));
5582 #endif // DEAL_II_WITH_LAPACK
5583 }
5584 
5585 
5586 
5587 inline void
5588 trcon(const char * norm,
5589  const char * uplo,
5590  const char * diag,
5591  const ::types::blas_int *n,
5592  const std::complex<float> * a,
5593  const ::types::blas_int *lda,
5594  float * rcond,
5595  std::complex<float> * work,
5596  float * rwork,
5597  ::types::blas_int * info)
5598 {
5599 #ifdef DEAL_II_WITH_LAPACK
5600  ctrcon_(norm, uplo, diag, n, a, lda, rcond, work, rwork, info);
5601 #else
5602  (void)norm;
5603  (void)uplo;
5604  (void)diag;
5605  (void)n;
5606  (void)a;
5607  (void)lda;
5608  (void)rcond;
5609  (void)work;
5610  (void)rwork;
5611  (void)info;
5612  Assert(false, LAPACKSupport::ExcMissing("ctrcon"));
5613 #endif // DEAL_II_WITH_LAPACK
5614 }
5615 
5616 
5617 
5618 inline void
5619 trcon(const char * norm,
5620  const char * uplo,
5621  const char * diag,
5622  const ::types::blas_int *n,
5623  const std::complex<double> * a,
5624  const ::types::blas_int *lda,
5625  double * rcond,
5626  std::complex<double> * work,
5627  double * rwork,
5628  ::types::blas_int * info)
5629 {
5630 #ifdef DEAL_II_WITH_LAPACK
5631  ztrcon_(norm, uplo, diag, n, a, lda, rcond, work, rwork, info);
5632 #else
5633  (void)norm;
5634  (void)uplo;
5635  (void)diag;
5636  (void)n;
5637  (void)a;
5638  (void)lda;
5639  (void)rcond;
5640  (void)work;
5641  (void)rwork;
5642  (void)info;
5643  Assert(false, LAPACKSupport::ExcMissing("ztrcon"));
5644 #endif // DEAL_II_WITH_LAPACK
5645 }
5646 
5647 
5648 
5649 template <typename number1, typename number2>
5650 inline void
5651 trmv(const char *,
5652  const char *,
5653  const char *,
5654  const ::types::blas_int *,
5655  const number1 *,
5656  const ::types::blas_int *,
5657  number2 *,
5658  const ::types::blas_int *)
5659 {
5660  Assert(false, ExcNotImplemented());
5661 }
5662 
5663 
5664 
5665 inline void
5666 trmv(const char * uplo,
5667  const char * trans,
5668  const char * diag,
5669  const ::types::blas_int *n,
5670  const float * a,
5671  const ::types::blas_int *lda,
5672  float * x,
5673  const ::types::blas_int *incx)
5674 {
5675 #ifdef DEAL_II_WITH_LAPACK
5676  strmv_(uplo, trans, diag, n, a, lda, x, incx);
5677 #else
5678  (void)uplo;
5679  (void)trans;
5680  (void)diag;
5681  (void)n;
5682  (void)a;
5683  (void)lda;
5684  (void)x;
5685  (void)incx;
5686  Assert(false, LAPACKSupport::ExcMissing("strmv"));
5687 #endif // DEAL_II_WITH_LAPACK
5688 }
5689 
5690 
5691 
5692 inline void
5693 trmv(const char * uplo,
5694  const char * trans,
5695  const char * diag,
5696  const ::types::blas_int *n,
5697  const double * a,
5698  const ::types::blas_int *lda,
5699  double * x,
5700  const ::types::blas_int *incx)
5701 {
5702 #ifdef DEAL_II_WITH_LAPACK
5703  dtrmv_(uplo, trans, diag, n, a, lda, x, incx);
5704 #else
5705  (void)uplo;
5706  (void)trans;
5707  (void)diag;
5708  (void)n;
5709  (void)a;
5710  (void)lda;
5711  (void)x;
5712  (void)incx;
5713  Assert(false, LAPACKSupport::ExcMissing("dtrmv"));
5714 #endif // DEAL_II_WITH_LAPACK
5715 }
5716 
5717 
5718 
5719 inline void
5720 trmv(const char * uplo,
5721  const char * trans,
5722  const char * diag,
5723  const ::types::blas_int *n,
5724  const std::complex<float> * a,
5725  const ::types::blas_int *lda,
5726  std::complex<float> * x,
5727  const ::types::blas_int *incx)
5728 {
5729 #ifdef DEAL_II_WITH_LAPACK
5730  ctrmv_(uplo, trans, diag, n, a, lda, x, incx);
5731 #else
5732  (void)uplo;
5733  (void)trans;
5734  (void)diag;
5735  (void)n;
5736  (void)a;
5737  (void)lda;
5738  (void)x;
5739  (void)incx;
5740  Assert(false, LAPACKSupport::ExcMissing("ctrmv"));
5741 #endif // DEAL_II_WITH_LAPACK
5742 }
5743 
5744 
5745 
5746 inline void
5747 trmv(const char * uplo,
5748  const char * trans,
5749  const char * diag,
5750  const ::types::blas_int *n,
5751  const std::complex<double> * a,
5752  const ::types::blas_int *lda,
5753  std::complex<double> * x,
5754  const ::types::blas_int *incx)
5755 {
5756 #ifdef DEAL_II_WITH_LAPACK
5757  ztrmv_(uplo, trans, diag, n, a, lda, x, incx);
5758 #else
5759  (void)uplo;
5760  (void)trans;
5761  (void)diag;
5762  (void)n;
5763  (void)a;
5764  (void)lda;
5765  (void)x;
5766  (void)incx;
5767  Assert(false, LAPACKSupport::ExcMissing("ztrmv"));
5768 #endif // DEAL_II_WITH_LAPACK
5769 }
5770 
5771 
5772 
5773 template <typename number1, typename number2>
5774 inline void
5775 trtrs(const char *,
5776  const char *,
5777  const char *,
5778  const ::types::blas_int *,
5779  const ::types::blas_int *,
5780  const number1 *,
5781  const ::types::blas_int *,
5782  number2 *,
5783  const ::types::blas_int *,
5784  ::types::blas_int *)
5785 {
5786  Assert(false, ExcNotImplemented());
5787 }
5788 
5789 
5790 
5791 inline void
5792 trtrs(const char * uplo,
5793  const char * trans,
5794  const char * diag,
5795  const ::types::blas_int *n,
5796  const ::types::blas_int *nrhs,
5797  const float * a,
5798  const ::types::blas_int *lda,
5799  float * b,
5800  const ::types::blas_int *ldb,
5801  ::types::blas_int * info)
5802 {
5803 #ifdef DEAL_II_WITH_LAPACK
5804  strtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5805 #else
5806  (void)uplo;
5807  (void)trans;
5808  (void)diag;
5809  (void)n;
5810  (void)nrhs;
5811  (void)a;
5812  (void)lda;
5813  (void)b;
5814  (void)ldb;
5815  (void)info;
5816  Assert(false, LAPACKSupport::ExcMissing("strtrs"));
5817 #endif // DEAL_II_WITH_LAPACK
5818 }
5819 
5820 
5821 
5822 inline void
5823 trtrs(const char * uplo,
5824  const char * trans,
5825  const char * diag,
5826  const ::types::blas_int *n,
5827  const ::types::blas_int *nrhs,
5828  const double * a,
5829  const ::types::blas_int *lda,
5830  double * b,
5831  const ::types::blas_int *ldb,
5832  ::types::blas_int * info)
5833 {
5834 #ifdef DEAL_II_WITH_LAPACK
5835  dtrtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5836 #else
5837  (void)uplo;
5838  (void)trans;
5839  (void)diag;
5840  (void)n;
5841  (void)nrhs;
5842  (void)a;
5843  (void)lda;
5844  (void)b;
5845  (void)ldb;
5846  (void)info;
5847  Assert(false, LAPACKSupport::ExcMissing("dtrtrs"));
5848 #endif // DEAL_II_WITH_LAPACK
5849 }
5850 
5851 
5852 
5853 inline void
5854 trtrs(const char * uplo,
5855  const char * trans,
5856  const char * diag,
5857  const ::types::blas_int *n,
5858  const ::types::blas_int *nrhs,
5859  const std::complex<float> * a,
5860  const ::types::blas_int *lda,
5861  std::complex<float> * b,
5862  const ::types::blas_int *ldb,
5863  ::types::blas_int * info)
5864 {
5865 #ifdef DEAL_II_WITH_LAPACK
5866  ctrtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5867 #else
5868  (void)uplo;
5869  (void)trans;
5870  (void)diag;
5871  (void)n;
5872  (void)nrhs;
5873  (void)a;
5874  (void)lda;
5875  (void)b;
5876  (void)ldb;
5877  (void)info;
5878  Assert(false, LAPACKSupport::ExcMissing("ctrtrs"));
5879 #endif // DEAL_II_WITH_LAPACK
5880 }
5881 
5882 
5883 
5884 inline void
5885 trtrs(const char * uplo,
5886  const char * trans,
5887  const char * diag,
5888  const ::types::blas_int *n,
5889  const ::types::blas_int *nrhs,
5890  const std::complex<double> * a,
5891  const ::types::blas_int *lda,
5892  std::complex<double> * b,
5893  const ::types::blas_int *ldb,
5894  ::types::blas_int * info)
5895 {
5896 #ifdef DEAL_II_WITH_LAPACK
5897  ztrtrs_(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5898 #else
5899  (void)uplo;
5900  (void)trans;
5901  (void)diag;
5902  (void)n;
5903  (void)nrhs;
5904  (void)a;
5905  (void)lda;
5906  (void)b;
5907  (void)ldb;
5908  (void)info;
5909  Assert(false, LAPACKSupport::ExcMissing("ztrtrs"));
5910 #endif // DEAL_II_WITH_LAPACK
5911 }
5912 
5913 
5914 
5915 // These overloads of lamch were added for 9.0 but are replaced by the
5916 // automatically generated versions provided above. These are manual additions
5917 // and should be kept even if this file is regenerated.
5918 template <typename number>
5919 DEAL_II_DEPRECATED inline void
5920 lamch(const char *, number &)
5921 {
5922  Assert(false, ExcNotImplemented());
5923 }
5924 
5925 
5926 
5927 DEAL_II_DEPRECATED
5928 inline void
5929 lamch(const char *cmach, float &precision)
5930 {
5931 #ifdef DEAL_II_WITH_LAPACK
5932  precision = slamch_(cmach);
5933 #else
5934  (void)cmach;
5935  (void)precision;
5936  Assert(false, LAPACKSupport::ExcMissing("slamch"));
5937 #endif // DEAL_II_WITH_LAPACK
5938 }
5939 
5940 
5941 
5942 DEAL_II_DEPRECATED
5943 inline void
5944 lamch(const char *cmach, double &precision)
5945 {
5946 #ifdef DEAL_II_WITH_LAPACK
5947  precision = dlamch_(cmach);
5948 #else
5949  (void)cmach;
5950  (void)precision;
5951  Assert(false, LAPACKSupport::ExcMissing("dlamch"));
5952 #endif // DEAL_II_WITH_LAPACK
5953 }
5954 
5955 DEAL_II_NAMESPACE_CLOSE
5956 
5957 #endif
#define Assert(cond, exc)
Definition: exceptions.h:1227
static::ExceptionBase & ExcMissing(std::string arg1)
int blas_int
static::ExceptionBase & ExcNotImplemented()