Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
lapack_templates.h
Go to the documentation of this file.
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 
23 
24 #ifdef DEAL_II_HAVE_FP_EXCEPTIONS
25 # include <cfenv>
26 #endif
27 
28 extern "C"
29 {
30  void
32  const float * sa,
33  const float * sx,
35  float * sy,
37 
38  void
40  const double * da,
41  const double * dx,
43  double * dy,
45 
46  void
48  const std::complex<float> * ca,
49  const std::complex<float> * cx,
51  std::complex<float> * cy,
53 
54  void
56  const std::complex<double> * za,
57  const std::complex<double> * zx,
59  std::complex<double> * zy,
61 
62  void
63  sgeev_(const char * jobvl,
64  const char * jobvr,
66  float * a,
68  float * wr,
69  float * wi,
70  float * vl,
72  float * vr,
74  float * work,
76  ::types::blas_int * info);
77 
78  void
79  dgeev_(const char * jobvl,
80  const char * jobvr,
82  double * a,
84  double * wr,
85  double * wi,
86  double * vl,
88  double * vr,
90  double * work,
92  ::types::blas_int * info);
93 
94  void
95  cgeev_(const char * jobvl,
96  const char * jobvr,
98  std::complex<float> * a,
100  std::complex<float> * w,
101  std::complex<float> * vl,
103  std::complex<float> * vr,
105  std::complex<float> * work,
107  float * rwork,
108  ::types::blas_int * info);
109 
110  void
111  zgeev_(const char * jobvl,
112  const char * jobvr,
114  std::complex<double> * a,
116  std::complex<double> * w,
117  std::complex<double> * vl,
119  std::complex<double> * vr,
121  std::complex<double> * work,
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,
132  float * a,
134  float * wr,
135  float * wi,
136  float * vl,
138  float * vr,
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,
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,
157  double * a,
159  double * wr,
160  double * wi,
161  double * vl,
163  double * vr,
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,
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,
182  std::complex<float> * a,
184  std::complex<float> * w,
185  std::complex<float> * vl,
187  std::complex<float> * vr,
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,
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,
206  std::complex<double> * a,
208  std::complex<double> * w,
209  std::complex<double> * vl,
211  std::complex<double> * vr,
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,
221  double * rwork,
222  ::types::blas_int * info);
223 
224  void
228  float * a,
230  float * b,
232  float * s,
233  const float * rcond,
234  ::types::blas_int * rank,
235  float * work,
237  ::types::blas_int * iwork,
238  ::types::blas_int * info);
239 
240  void
244  double * a,
246  double * b,
248  double * s,
249  const double * rcond,
250  ::types::blas_int * rank,
251  double * work,
253  ::types::blas_int * iwork,
254  ::types::blas_int * info);
255 
256  void
260  std::complex<float> * a,
262  std::complex<float> * b,
264  float * s,
265  const float * rcond,
266  ::types::blas_int * rank,
267  std::complex<float> * work,
269  float * rwork,
270  ::types::blas_int * iwork,
271  ::types::blas_int * info);
272 
273  void
277  std::complex<double> * a,
279  std::complex<double> * b,
281  double * s,
282  const double * rcond,
283  ::types::blas_int * rank,
284  std::complex<double> * work,
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,
296  const float * alpha,
297  const float * a,
299  const float * b,
301  const float * beta,
302  float * c,
304 
305  void
306  dgemm_(const char * transa,
307  const char * transb,
311  const double * alpha,
312  const double * a,
314  const double * b,
316  const double * beta,
317  double * c,
319 
320  void
321  cgemm_(const char * transa,
322  const char * transb,
326  const std::complex<float> * alpha,
327  const std::complex<float> * a,
329  const std::complex<float> * b,
331  const std::complex<float> * beta,
332  std::complex<float> * c,
334 
335  void
336  zgemm_(const char * transa,
337  const char * transb,
341  const std::complex<double> * alpha,
342  const std::complex<double> * a,
344  const std::complex<double> * b,
346  const std::complex<double> * beta,
347  std::complex<double> * c,
349 
350  void
351  sgemv_(const char * trans,
354  const float * alpha,
355  const float * a,
357  const float * x,
359  const float * beta,
360  float * y,
362 
363  void
364  dgemv_(const char * trans,
367  const double * alpha,
368  const double * a,
370  const double * x,
372  const double * beta,
373  double * y,
375 
376  void
377  cgemv_(const char * trans,
380  const std::complex<float> * alpha,
381  const std::complex<float> * a,
383  const std::complex<float> * x,
385  const std::complex<float> * beta,
386  std::complex<float> * y,
388 
389  void
390  zgemv_(const char * trans,
393  const std::complex<double> * alpha,
394  const std::complex<double> * a,
396  const std::complex<double> * x,
398  const std::complex<double> * beta,
399  std::complex<double> * y,
401 
402  void
405  float * a,
407  float * tau,
408  float * work,
410  ::types::blas_int * info);
411 
412  void
415  double * a,
417  double * tau,
418  double * work,
420  ::types::blas_int * info);
421 
422  void
425  std::complex<float> * a,
427  std::complex<float> * tau,
428  std::complex<float> * work,
430  ::types::blas_int * info);
431 
432  void
435  std::complex<double> * a,
437  std::complex<double> * tau,
438  std::complex<double> * work,
440  ::types::blas_int * info);
441 
442  void
443  sgesdd_(const char * jobz,
446  float * a,
448  float * s,
449  float * u,
451  float * vt,
453  float * work,
455  ::types::blas_int * iwork,
456  ::types::blas_int * info);
457 
458  void
459  dgesdd_(const char * jobz,
462  double * a,
464  double * s,
465  double * u,
467  double * vt,
469  double * work,
471  ::types::blas_int * iwork,
472  ::types::blas_int * info);
473 
474  void
475  cgesdd_(const char * jobz,
478  std::complex<float> * a,
480  float * s,
481  std::complex<float> * u,
483  std::complex<float> * vt,
485  std::complex<float> * work,
487  float * rwork,
488  ::types::blas_int * iwork,
489  ::types::blas_int * info);
490 
491  void
492  zgesdd_(const char * jobz,
495  std::complex<double> * a,
497  double * s,
498  std::complex<double> * u,
500  std::complex<double> * vt,
502  std::complex<double> * work,
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,
513  float * a,
515  float * s,
516  float * u,
518  float * vt,
520  float * work,
522  ::types::blas_int * info);
523 
524  void
525  dgesvd_(const char * jobu,
526  const char * jobvt,
529  double * a,
531  double * s,
532  double * u,
534  double * vt,
536  double * work,
538  ::types::blas_int * info);
539 
540  void
541  cgesvd_(const char * jobu,
542  const char * jobvt,
545  std::complex<float> * a,
547  float * s,
548  std::complex<float> * u,
550  std::complex<float> * vt,
552  std::complex<float> * work,
554  float * rwork,
555  ::types::blas_int * info);
556 
557  void
558  zgesvd_(const char * jobu,
559  const char * jobvt,
562  std::complex<double> * a,
564  double * s,
565  std::complex<double> * u,
567  std::complex<double> * vt,
569  std::complex<double> * work,
571  double * rwork,
572  ::types::blas_int * info);
573 
574  void
577  float * a,
579  ::types::blas_int * ipiv,
580  ::types::blas_int * info);
581 
582  void
585  double * a,
587  ::types::blas_int * ipiv,
588  ::types::blas_int * info);
589 
590  void
593  std::complex<float> * a,
595  ::types::blas_int * ipiv,
596  ::types::blas_int * info);
597 
598  void
601  std::complex<double> * a,
603  ::types::blas_int * ipiv,
604  ::types::blas_int * info);
605 
606  void
608  float * a,
611  float * work,
613  ::types::blas_int * info);
614 
615  void
617  double * a,
620  double * work,
622  ::types::blas_int * info);
623 
624  void
626  std::complex<float> * a,
629  std::complex<float> * work,
631  ::types::blas_int * info);
632 
633  void
635  std::complex<double> * a,
638  std::complex<double> * work,
640  ::types::blas_int * info);
641 
642  void
643  sgetrs_(const char * trans,
646  const float * a,
649  float * b,
651  ::types::blas_int * info);
652 
653  void
654  dgetrs_(const char * trans,
657  const double * a,
660  double * b,
662  ::types::blas_int * info);
663 
664  void
665  cgetrs_(const char * trans,
668  const std::complex<float> * a,
671  std::complex<float> * b,
673  ::types::blas_int * info);
674 
675  void
676  zgetrs_(const char * trans,
679  const std::complex<double> * a,
682  std::complex<double> * b,
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,
696  const float * a,
698  float * work);
699 
700  double
701  dlange_(const char * norm,
704  const double * a,
706  double * work);
707 
708  float
709  clange_(const char * norm,
712  const std::complex<float> * a,
714  float * work);
715 
716  double
717  zlange_(const char * norm,
720  const std::complex<double> * a,
722  double * work);
723 
724  float
725  slansy_(const char * norm,
726  const char * uplo,
728  const float * a,
730  float * work);
731 
732  double
733  dlansy_(const char * norm,
734  const char * uplo,
736  const double * a,
738  double * work);
739 
740  float
741  clansy_(const char * norm,
742  const char * uplo,
744  const std::complex<float> * a,
746  float * work);
747 
748  double
749  zlansy_(const char * norm,
750  const char * uplo,
752  const std::complex<double> * a,
754  double * work);
755 
756  void
757  slascl_(const char * type,
760  const float * cfrom,
761  const float * cto,
764  float * a,
766  ::types::blas_int * info);
767 
768  void
769  dlascl_(const char * type,
772  const double * cfrom,
773  const double * cto,
776  double * a,
778  ::types::blas_int * info);
779 
780  void
781  clascl_(const char * type,
784  const float * cfrom,
785  const float * cto,
788  std::complex<float> * a,
790  ::types::blas_int * info);
791 
792  void
793  zlascl_(const char * type,
796  const double * cfrom,
797  const double * cto,
800  std::complex<double> * a,
802  ::types::blas_int * info);
803 
804  void
808  float * a,
810  const float * tau,
811  float * work,
813  ::types::blas_int * info);
814 
815  void
819  double * a,
821  const double * tau,
822  double * work,
824  ::types::blas_int * info);
825 
826  void
827  sormqr_(const char * side,
828  const char * trans,
832  const float * a,
834  const float * tau,
835  float * c,
837  float * work,
839  ::types::blas_int * info);
840 
841  void
842  dormqr_(const char * side,
843  const char * trans,
847  const double * a,
849  const double * tau,
850  double * c,
852  double * work,
854  ::types::blas_int * info);
855 
856  void
857  spocon_(const char * uplo,
859  const float * a,
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,
870  const double * a,
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,
881  const std::complex<float> * a,
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,
892  const std::complex<double> * a,
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,
903  float * a,
905  ::types::blas_int * info);
906 
907  void
908  dpotrf_(const char * uplo,
910  double * a,
912  ::types::blas_int * info);
913 
914  void
915  cpotrf_(const char * uplo,
917  std::complex<float> * a,
919  ::types::blas_int * info);
920 
921  void
922  zpotrf_(const char * uplo,
924  std::complex<double> * a,
926  ::types::blas_int * info);
927 
928  void
929  spotri_(const char * uplo,
931  float * a,
933  ::types::blas_int * info);
934 
935  void
936  dpotri_(const char * uplo,
938  double * a,
940  ::types::blas_int * info);
941 
942  void
943  cpotri_(const char * uplo,
945  std::complex<float> * a,
947  ::types::blas_int * info);
948 
949  void
950  zpotri_(const char * uplo,
952  std::complex<double> * a,
954  ::types::blas_int * info);
955 
956  void
957  spotrs_(const char * uplo,
960  const float * a,
962  float * b,
964  ::types::blas_int * info);
965 
966  void
967  dpotrs_(const char * uplo,
970  const double * a,
972  double * b,
974  ::types::blas_int * info);
975 
976  void
977  cpotrs_(const char * uplo,
980  const std::complex<float> * a,
982  std::complex<float> * b,
984  ::types::blas_int * info);
985 
986  void
987  zpotrs_(const char * uplo,
990  const std::complex<double> * a,
992  std::complex<double> * b,
994  ::types::blas_int * info);
995 
996  void
997  sstev_(const char * jobz,
999  float * d,
1000  float * e,
1001  float * z,
1003  float * work,
1004  ::types::blas_int * info);
1005 
1006  void
1007  dstev_(const char * jobz,
1009  double * d,
1010  double * e,
1011  double * z,
1013  double * work,
1014  ::types::blas_int * info);
1015 
1016  void
1017  ssyev_(const char * jobz,
1018  const char * uplo,
1020  float * a,
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,
1031  double * a,
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,
1043  float * a,
1045  const float * vl,
1046  const float * vu,
1049  const float * abstol,
1050  ::types::blas_int * m,
1051  float * w,
1052  float * z,
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,
1066  double * a,
1068  const double * vl,
1069  const double * vu,
1072  const double * abstol,
1073  ::types::blas_int * m,
1074  double * w,
1075  double * z,
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,
1089  float * a,
1091  const float * vl,
1092  const float * vu,
1095  const float * abstol,
1096  ::types::blas_int * m,
1097  float * w,
1098  float * z,
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,
1111  double * a,
1113  const double * vl,
1114  const double * vu,
1117  const double * abstol,
1118  ::types::blas_int * m,
1119  double * w,
1120  double * z,
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
1130  const char * jobz,
1131  const char * uplo,
1133  float * a,
1135  float * b,
1137  float * w,
1138  float * work,
1139  const ::types::blas_int *lwork,
1140  ::types::blas_int * info);
1141 
1142  void
1144  const char * jobz,
1145  const char * uplo,
1147  double * a,
1149  double * b,
1151  double * w,
1152  double * work,
1153  const ::types::blas_int *lwork,
1154  ::types::blas_int * info);
1155 
1156  void
1158  const char * jobz,
1159  const char * range,
1160  const char * uplo,
1162  float * a,
1164  float * b,
1166  const float * vl,
1167  const float * vu,
1170  const float * abstol,
1171  ::types::blas_int * m,
1172  float * w,
1173  float * z,
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
1183  const char * jobz,
1184  const char * range,
1185  const char * uplo,
1187  double * a,
1189  double * b,
1191  const double * vl,
1192  const double * vu,
1195  const double * abstol,
1196  ::types::blas_int * m,
1197  double * w,
1198  double * z,
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,
1209  const float * alpha,
1210  const float * x,
1212  float * a,
1214 
1215  void
1216  dsyr_(const char * uplo,
1218  const double * alpha,
1219  const double * x,
1221  double * a,
1223 
1224  void
1225  ssyrk_(const char * uplo,
1226  const char * trans,
1229  const float * alpha,
1230  const float * a,
1232  const float * beta,
1233  float * c,
1235 
1236  void
1237  dsyrk_(const char * uplo,
1238  const char * trans,
1241  const double * alpha,
1242  const double * a,
1244  const double * beta,
1245  double * c,
1247 
1248  void
1249  csyrk_(const char * uplo,
1250  const char * trans,
1253  const std::complex<float> * alpha,
1254  const std::complex<float> * a,
1256  const std::complex<float> * beta,
1257  std::complex<float> * c,
1259 
1260  void
1261  zsyrk_(const char * uplo,
1262  const char * trans,
1265  const std::complex<double> * alpha,
1266  const std::complex<double> * a,
1268  const std::complex<double> * beta,
1269  std::complex<double> * c,
1271 
1272  void
1273  strcon_(const char * norm,
1274  const char * uplo,
1275  const char * diag,
1277  const float * a,
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,
1289  const double * a,
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,
1301  const std::complex<float> * a,
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,
1313  const std::complex<double> * a,
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,
1325  const float * a,
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,
1335  const double * a,
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,
1345  const std::complex<float> * a,
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,
1355  const std::complex<double> * a,
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,
1366  const float * a,
1368  float * b,
1370  ::types::blas_int * info);
1371 
1372  void
1373  dtrtrs_(const char * uplo,
1374  const char * trans,
1375  const char * diag,
1378  const double * a,
1380  double * b,
1382  ::types::blas_int * info);
1383 
1384  void
1385  ctrtrs_(const char * uplo,
1386  const char * trans,
1387  const char * diag,
1390  const std::complex<float> * a,
1392  std::complex<float> * b,
1394  ::types::blas_int * info);
1395 
1396  void
1397  ztrtrs_(const char * uplo,
1398  const char * trans,
1399  const char * diag,
1402  const std::complex<double> * a,
1404  std::complex<double> * b,
1406  ::types::blas_int * info);
1407 }
1408 
1410 
1411 
1412 
1413 template <typename number1, typename number2, typename number3>
1414 inline void
1416  const number1 *,
1417  const number2 *,
1419  number3 *,
1421 {
1422  Assert(false, ExcNotImplemented());
1423 }
1424 
1425 
1426 
1427 inline void
1429  const float * sa,
1430  const float * sx,
1432  float * sy,
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
1452  const double * da,
1453  const double * dx,
1455  double * dy,
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
1475  const std::complex<float> * ca,
1476  const std::complex<float> * cx,
1478  std::complex<float> * cy,
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
1498  const std::complex<double> * za,
1499  const std::complex<double> * zx,
1501  std::complex<double> * zy,
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 *,
1529  number1 *,
1531  number2 *,
1532  number3 *,
1533  number4 *,
1535  number5 *,
1537  number6 *,
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,
1550  float * a,
1552  float * wr,
1553  float * wi,
1554  float * vl,
1556  float * vr,
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,
1590  double * a,
1592  double * wr,
1593  double * wi,
1594  double * vl,
1596  double * vr,
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,
1630  std::complex<float> * a,
1632  std::complex<float> * w,
1633  std::complex<float> * vl,
1635  std::complex<float> * vr,
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,
1670  std::complex<double> * a,
1672  std::complex<double> * w,
1673  std::complex<double> * vl,
1675  std::complex<double> * vr,
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 *,
1722  number1 *,
1724  number2 *,
1725  number3 *,
1726  number4 *,
1728  number5 *,
1730  ::types::blas_int *,
1731  ::types::blas_int *,
1732  number6 *,
1733  number7 *,
1734  number8 *,
1735  number9 *,
1736  number10 *,
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,
1752  float * a,
1754  float * wr,
1755  float * wi,
1756  float * vl,
1758  float * vr,
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,
1831  double * a,
1833  double * wr,
1834  double * wi,
1835  double * vl,
1837  double * vr,
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,
1910  std::complex<float> * a,
1912  std::complex<float> * w,
1913  std::complex<float> * vl,
1915  std::complex<float> * vr,
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,
1986  std::complex<double> * a,
1988  std::complex<double> * w,
1989  std::complex<double> * vl,
1991  std::complex<double> * vr,
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
2065  number1 *,
2067  number2 *,
2069  number3 *,
2070  const number4 *,
2071  ::types::blas_int *,
2072  number5 *,
2074  ::types::blas_int *,
2075  ::types::blas_int *)
2076 {
2077  Assert(false, ExcNotImplemented());
2078 }
2079 
2080 
2081 
2082 inline void
2086  float * a,
2088  float * b,
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
2125  double * a,
2127  double * b,
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
2164  std::complex<float> * a,
2166  std::complex<float> * b,
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
2219  std::complex<double> * a,
2221  std::complex<double> * b,
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 *,
2281  const number1 *,
2282  const number2 *,
2284  const number3 *,
2286  const number4 *,
2287  number5 *,
2289 {
2290  Assert(false, ExcNotImplemented());
2291 }
2292 
2293 
2294 
2295 inline void
2296 gemm(const char * transa,
2297  const char * transb,
2301  const float * alpha,
2302  const float * a,
2304  const float * b,
2306  const float * beta,
2307  float * c,
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,
2338  const double * alpha,
2339  const double * a,
2341  const double * b,
2343  const double * beta,
2344  double * c,
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,
2375  const std::complex<float> * alpha,
2376  const std::complex<float> * a,
2378  const std::complex<float> * b,
2380  const std::complex<float> * beta,
2381  std::complex<float> * c,
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,
2412  const std::complex<double> * alpha,
2413  const std::complex<double> * a,
2415  const std::complex<double> * b,
2417  const std::complex<double> * beta,
2418  std::complex<double> * c,
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 *,
2452  const number1 *,
2453  const number2 *,
2455  const number3 *,
2457  const number4 *,
2458  number5 *,
2460 {
2461  Assert(false, ExcNotImplemented());
2462 }
2463 
2464 
2465 
2466 inline void
2467 gemv(const char * trans,
2470  const float * alpha,
2471  const float * a,
2473  const float * x,
2475  const float * beta,
2476  float * y,
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,
2503  const double * alpha,
2504  const double * a,
2506  const double * x,
2508  const double * beta,
2509  double * y,
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,
2536  const std::complex<float> * alpha,
2537  const std::complex<float> * a,
2539  const std::complex<float> * x,
2541  const std::complex<float> * beta,
2542  std::complex<float> * y,
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,
2569  const std::complex<double> * alpha,
2570  const std::complex<double> * a,
2572  const std::complex<double> * x,
2574  const std::complex<double> * beta,
2575  std::complex<double> * y,
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
2602  number1 *,
2604  number2 *,
2605  number3 *,
2607  ::types::blas_int *)
2608 {
2609  Assert(false, ExcNotImplemented());
2610 }
2611 
2612 
2613 
2614 inline void
2617  float * a,
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
2644  double * a,
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
2671  std::complex<float> * a,
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
2698  std::complex<double> * a,
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 *,
2731  number1 *,
2733  number2 *,
2734  number3 *,
2736  number4 *,
2738  number5 *,
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,
2752  float * a,
2754  float * s,
2755  float * u,
2757  float * vt,
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,
2791  double * a,
2793  double * s,
2794  double * u,
2796  double * vt,
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,
2830  std::complex<float> * a,
2832  float * s,
2833  std::complex<float> * u,
2835  std::complex<float> * vt,
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,
2872  std::complex<double> * a,
2874  double * s,
2875  std::complex<double> * u,
2877  std::complex<double> * vt,
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 *,
2920  number1 *,
2922  number2 *,
2923  number3 *,
2925  number4 *,
2927  number5 *,
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,
2941  float * a,
2943  float * s,
2944  float * u,
2946  float * vt,
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,
2980  double * a,
2982  double * s,
2983  double * u,
2985  double * vt,
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,
3019  std::complex<float> * a,
3021  float * s,
3022  std::complex<float> * u,
3024  std::complex<float> * vt,
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,
3061  std::complex<double> * a,
3063  double * s,
3064  std::complex<double> * u,
3066  std::complex<double> * vt,
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
3102  number1 *,
3104  ::types::blas_int *,
3105  ::types::blas_int *)
3106 {
3107  Assert(false, ExcNotImplemented());
3108 }
3109 
3110 
3111 
3112 inline void
3115  float * a,
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
3138  double * a,
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
3161  std::complex<float> * a,
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
3184  std::complex<double> * a,
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
3207  number1 *,
3210  number2 *,
3212  ::types::blas_int *)
3213 {
3214  Assert(false, ExcNotImplemented());
3215 }
3216 
3217 
3218 
3219 inline void
3221  float * a,
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
3246  double * a,
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
3271  std::complex<float> * a,
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
3296  std::complex<double> * a,
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 *,
3324  const number1 *,
3327  number2 *,
3329  ::types::blas_int *)
3330 {
3331  Assert(false, ExcNotImplemented());
3332 }
3333 
3334 
3335 
3336 inline void
3337 getrs(const char * trans,
3340  const float * a,
3343  float * b,
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,
3369  const double * a,
3372  double * b,
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,
3398  const std::complex<float> * a,
3401  std::complex<float> * b,
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,
3427  const std::complex<double> * a,
3430  std::complex<double> * b,
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 *,
3497  const number1 *,
3499  number2 *)
3500 {
3501  Assert(false, ExcNotImplemented());
3502  return number1();
3503 }
3504 
3505 
3506 
3507 inline float
3508 lange(const char * norm,
3511  const float * a,
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,
3535  const double * a,
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,
3559  const std::complex<float> * a,
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,
3583  const std::complex<double> * a,
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 *,
3608  const number1 *,
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,
3622  const float * a,
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,
3646  const double * a,
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,
3670  const std::complex<float> * a,
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,
3694  const std::complex<double> * a,
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 *,
3719  const number1 *,
3720  const number2 *,
3723  number3 *,
3725  ::types::blas_int *)
3726 {
3727  Assert(false, ExcNotImplemented());
3728 }
3729 
3730 
3731 
3732 inline void
3733 lascl(const char * type,
3736  const float * cfrom,
3737  const float * cto,
3740  float * a,
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,
3767  const double * cfrom,
3768  const double * cto,
3771  double * a,
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,
3798  const float * cfrom,
3799  const float * cto,
3802  std::complex<float> * a,
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,
3829  const double * cfrom,
3830  const double * cto,
3833  std::complex<double> * a,
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
3861  number1 *,
3863  const number2 *,
3864  number3 *,
3866  ::types::blas_int *)
3867 {
3868  Assert(false, ExcNotImplemented());
3869 }
3870 
3871 
3872 
3873 inline void
3877  float * a,
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
3906  double * a,
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 *,
3941  const number1 *,
3943  const number2 *,
3944  number3 *,
3946  number4 *,
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,
3961  const float * a,
3963  const float * tau,
3964  float * c,
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,
3998  const double * a,
4000  const double * tau,
4001  double * c,
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 *,
4036  const number1 *,
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,
4052  const float * a,
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,
4081  const double * a,
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,
4110  const std::complex<float> * a,
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,
4139  const std::complex<double> * a,
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 *,
4169  number1 *,
4171  ::types::blas_int *)
4172 {
4173  Assert(false, ExcNotImplemented());
4174 }
4175 
4176 
4177 
4178 inline void
4179 potrf(const char * uplo,
4181  float * a,
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,
4202  double * a,
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,
4223  std::complex<float> * a,
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,
4244  std::complex<double> * a,
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 *,
4266  number1 *,
4268  ::types::blas_int *)
4269 {
4270  Assert(false, ExcNotImplemented());
4271 }
4272 
4273 
4274 
4275 inline void
4276 potri(const char * uplo,
4278  float * a,
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,
4299  double * a,
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,
4320  std::complex<float> * a,
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,
4341  std::complex<double> * a,
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 *,
4364  const number1 *,
4366  number2 *,
4368  ::types::blas_int *)
4369 {
4370  Assert(false, ExcNotImplemented());
4371 }
4372 
4373 
4374 
4375 inline void
4376 potrs(const char * uplo,
4379  const float * a,
4381  float * b,
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,
4406  const double * a,
4408  double * b,
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,
4433  const std::complex<float> * a,
4435  std::complex<float> * b,
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,
4460  const std::complex<double> * a,
4462  std::complex<double> * b,
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 *,
4490  number1 *,
4491  number2 *,
4492  number3 *,
4494  number4 *,
4495  ::types::blas_int *)
4496 {
4497  Assert(false, ExcNotImplemented());
4498 }
4499 
4500 
4501 
4502 inline void
4503 stev(const char * jobz,
4505  float * d,
4506  float * e,
4507  float * z,
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,
4532  double * d,
4533  double * e,
4534  double * z,
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 *,
4561  number1 *,
4563  number2 *,
4564  number3 *,
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,
4577  float * a,
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,
4606  double * a,
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 *,
4643  number1 *,
4645  const number2 *,
4646  const number3 *,
4649  const number4 *,
4650  ::types::blas_int *,
4651  number5 *,
4652  number6 *,
4654  ::types::blas_int *,
4655  number7 *,
4657  ::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,
4671  float * a,
4673  const float * vl,
4674  const float * vu,
4677  const float * abstol,
4678  ::types::blas_int * m,
4679  float * w,
4680  float * z,
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,
4755  double * a,
4757  const double * vl,
4758  const double * vu,
4761  const double * abstol,
4762  ::types::blas_int * m,
4763  double * w,
4764  double * z,
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 *,
4846  number1 *,
4848  const number2 *,
4849  const number3 *,
4852  const number4 *,
4853  ::types::blas_int *,
4854  number5 *,
4855  number6 *,
4857  number7 *,
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,
4873  float * a,
4875  const float * vl,
4876  const float * vu,
4879  const float * abstol,
4880  ::types::blas_int * m,
4881  float * w,
4882  float * z,
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,
4943  double * a,
4945  const double * vl,
4946  const double * vu,
4949  const double * abstol,
4950  ::types::blas_int * m,
4951  double * w,
4952  double * z,
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
5014  const char *,
5015  const char *,
5017  number1 *,
5019  number2 *,
5021  number3 *,
5022  number4 *,
5024  ::types::blas_int *)
5025 {
5026  Assert(false, ExcNotImplemented());
5027 }
5028 
5029 
5030 
5031 inline void
5033  const char * jobz,
5034  const char * uplo,
5036  float * a,
5038  float * b,
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
5068  const char * jobz,
5069  const char * uplo,
5071  double * a,
5073  double * b,
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
5111  const char *,
5112  const char *,
5113  const char *,
5115  number1 *,
5117  number2 *,
5119  const number3 *,
5120  const number4 *,
5123  const number5 *,
5124  ::types::blas_int *,
5125  number6 *,
5126  number7 *,
5128  number8 *,
5130  ::types::blas_int *,
5131  ::types::blas_int *,
5132  ::types::blas_int *)
5133 {
5134  Assert(false, ExcNotImplemented());
5135 }
5136 
5137 
5138 
5139 inline void
5141  const char * jobz,
5142  const char * range,
5143  const char * uplo,
5145  float * a,
5147  float * b,
5149  const float * vl,
5150  const float * vu,
5153  const float * abstol,
5154  ::types::blas_int * m,
5155  float * w,
5156  float * z,
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
5220  const char * jobz,
5221  const char * range,
5222  const char * uplo,
5224  double * a,
5226  double * b,
5228  const double * vl,
5229  const double * vu,
5232  const double * abstol,
5233  ::types::blas_int * m,
5234  double * w,
5235  double * z,
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 *,
5301  const number1 *,
5302  const number2 *,
5304  number3 *,
5306 {
5307  Assert(false, ExcNotImplemented());
5308 }
5309 
5310 
5311 
5312 inline void
5313 syr(const char * uplo,
5315  const float * alpha,
5316  const float * x,
5318  float * a,
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,
5340  const double * alpha,
5341  const double * x,
5343  double * a,
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 *,
5371  const number1 *,
5372  const number2 *,
5374  const number3 *,
5375  number4 *,
5377 {
5378  Assert(false, ExcNotImplemented());
5379 }
5380 
5381 
5382 
5383 inline void
5384 syrk(const char * uplo,
5385  const char * trans,
5388  const float * alpha,
5389  const float * a,
5391  const float * beta,
5392  float * c,
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,
5419  const double * alpha,
5420  const double * a,
5422  const double * beta,
5423  double * c,
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,
5450  const std::complex<float> * alpha,
5451  const std::complex<float> * a,
5453  const std::complex<float> * beta,
5454  std::complex<float> * c,
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,
5481  const std::complex<double> * alpha,
5482  const std::complex<double> * a,
5484  const std::complex<double> * beta,
5485  std::complex<double> * c,
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 *,
5513  const number1 *,
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,
5530  const float * a,
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,
5561  const double * a,
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,
5592  const std::complex<float> * a,
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,
5623  const std::complex<double> * a,
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 *,
5655  const number1 *,
5657  number2 *,
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,
5670  const float * a,
5672  float * x,
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,
5697  const double * a,
5699  double * x,
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,
5724  const std::complex<float> * a,
5726  std::complex<float> * x,
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,
5751  const std::complex<double> * a,
5753  std::complex<double> * x,
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 *,
5780  const number1 *,
5782  number2 *,
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,
5797  const float * a,
5799  float * b,
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,
5828  const double * a,
5830  double * b,
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,
5859  const std::complex<float> * a,
5861  std::complex<float> * b,
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,
5890  const std::complex<double> * a,
5892  std::complex<double> * b,
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 
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 
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 
5956 
5957 #endif
void stev(const char *, const ::types::blas_int *, number1 *, number2 *, number3 *, const ::types::blas_int *, number4 *, ::types::blas_int *)
double zlansy_(const char *norm, const char *uplo, const ::types::blas_int *n, const std::complex< double > *a, const ::types::blas_int *lda, double *work)
void cgetrf_(const ::types::blas_int *m, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, ::types::blas_int *ipiv, ::types::blas_int *info)
void sgeev_(const char *jobvl, const char *jobvr, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *wr, float *wi, float *vl, const ::types::blas_int *ldvl, float *vr, const ::types::blas_int *ldvr, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void trmv(const char *, const char *, const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *)
void cpocon_(const char *uplo, const ::types::blas_int *n, const std::complex< float > *a, const ::types::blas_int *lda, const float *anorm, float *rcond, std::complex< float > *work, float *rwork, ::types::blas_int *info)
void zlascl_(const char *type, const ::types::blas_int *kl, const ::types::blas_int *ku, const double *cfrom, const double *cto, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, ::types::blas_int *info)
void strcon_(const char *norm, const char *uplo, const char *diag, const ::types::blas_int *n, const float *a, const ::types::blas_int *lda, float *rcond, float *work, ::types::blas_int *iwork, ::types::blas_int *info)
void dgeqrf_(const ::types::blas_int *m, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *tau, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void ssyr_(const char *uplo, const ::types::blas_int *n, const float *alpha, const float *x, const ::types::blas_int *incx, float *a, const ::types::blas_int *lda)
void trcon(const char *, const char *, const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *, number3 *, ::types::blas_int *, ::types::blas_int *)
void ctrcon_(const char *norm, const char *uplo, const char *diag, const ::types::blas_int *n, const std::complex< float > *a, const ::types::blas_int *lda, float *rcond, std::complex< float > *work, float *rwork, ::types::blas_int *info)
double zlange_(const char *norm, const ::types::blas_int *m, const ::types::blas_int *n, const std::complex< double > *a, const ::types::blas_int *lda, double *work)
void dgetri_(const ::types::blas_int *n, double *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void zaxpy_(const ::types::blas_int *n, const std::complex< double > *za, const std::complex< double > *zx, const ::types::blas_int *incx, std::complex< double > *zy, const ::types::blas_int *incy)
void ormqr(const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, const number2 *, number3 *, const ::types::blas_int *, number4 *, const ::types::blas_int *, ::types::blas_int *)
void dsyevx_(const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, const double *vl, const double *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const double *abstol, ::types::blas_int *m, double *w, double *z, const ::types::blas_int *ldz, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *ifail, ::types::blas_int *info)
void dsygv_(const ::types::blas_int *itype, const char *jobz, const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *b, const ::types::blas_int *ldb, double *w, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void axpy(const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, number3 *, const ::types::blas_int *)
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
double dlange_(const char *norm, const ::types::blas_int *m, const ::types::blas_int *n, const double *a, const ::types::blas_int *lda, double *work)
void sygvx(const ::types::blas_int *, const char *, const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *, const number3 *, const number4 *, const ::types::blas_int *, const ::types::blas_int *, const number5 *, ::types::blas_int *, number6 *, number7 *, const ::types::blas_int *, number8 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
void dlascl_(const char *type, const ::types::blas_int *kl, const ::types::blas_int *ku, const double *cfrom, const double *cto, const ::types::blas_int *m, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, ::types::blas_int *info)
void sgeqrf_(const ::types::blas_int *m, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *tau, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void dtrcon_(const char *norm, const char *uplo, const char *diag, const ::types::blas_int *n, const double *a, const ::types::blas_int *lda, double *rcond, double *work, ::types::blas_int *iwork, ::types::blas_int *info)
void syev(const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, ::types::blas_int *)
void scale(const double scaling_factor, Triangulation< dim, spacedim > &triangulation)
Definition: grid_tools.cc:837
void dgelsd_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *nrhs, double *a, const ::types::blas_int *lda, double *b, const ::types::blas_int *ldb, double *s, const double *rcond, ::types::blas_int *rank, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void cgetri_(const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, std::complex< float > *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void dgetrs_(const char *trans, const ::types::blas_int *n, const ::types::blas_int *nrhs, const double *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, double *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void sgelsd_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *nrhs, float *a, const ::types::blas_int *lda, float *b, const ::types::blas_int *ldb, float *s, const float *rcond, ::types::blas_int *rank, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void zgetrs_(const char *trans, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< double > *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, std::complex< double > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
double norm(const FEValuesBase< dim > &fe, const ArrayView< const std::vector< Tensor< 1, dim >>> &Du)
Definition: divergence.h:548
void syrk(const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, const number3 *, number4 *, const ::types::blas_int *)
void dgesdd_(const char *jobz, const ::types::blas_int *m, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *s, double *u, const ::types::blas_int *ldu, double *vt, const ::types::blas_int *ldvt, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void sgemv_(const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const float *alpha, const float *a, const ::types::blas_int *lda, const float *x, const ::types::blas_int *incx, const float *beta, float *y, const ::types::blas_int *incy)
void dsyr_(const char *uplo, const ::types::blas_int *n, const double *alpha, const double *x, const ::types::blas_int *incx, double *a, const ::types::blas_int *lda)
void gemv(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, const number3 *, const ::types::blas_int *, const number4 *, number5 *, const ::types::blas_int *)
void pocon(const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, const number2 *, number3 *, number4 *, ::types::blas_int *, ::types::blas_int *)
void caxpy_(const ::types::blas_int *n, const std::complex< float > *ca, const std::complex< float > *cx, const ::types::blas_int *incx, std::complex< float > *cy, const ::types::blas_int *incy)
void cgesvd_(const char *jobu, const char *jobvt, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, float *s, std::complex< float > *u, const ::types::blas_int *ldu, std::complex< float > *vt, const ::types::blas_int *ldvt, std::complex< float > *work, const ::types::blas_int *lwork, float *rwork, ::types::blas_int *info)
void geevx(const char *, const char *, const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, number4 *, const ::types::blas_int *, number5 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *, number6 *, number7 *, number8 *, number9 *, number10 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
void dpocon_(const char *uplo, const ::types::blas_int *n, const double *a, const ::types::blas_int *lda, const double *anorm, double *rcond, double *work, ::types::blas_int *iwork, ::types::blas_int *info)
void ztrmv_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *x, const ::types::blas_int *incx)
void zsyrk_(const char *uplo, const char *trans, const ::types::blas_int *n, const ::types::blas_int *k, const std::complex< double > *alpha, const std::complex< double > *a, const ::types::blas_int *lda, const std::complex< double > *beta, std::complex< double > *c, const ::types::blas_int *ldc)
void cgelsd_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *nrhs, std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *b, const ::types::blas_int *ldb, float *s, const float *rcond, ::types::blas_int *rank, std::complex< float > *work, const ::types::blas_int *lwork, float *rwork, ::types::blas_int *iwork, ::types::blas_int *info)
void gemm(const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, const number3 *, const ::types::blas_int *, const number4 *, number5 *, const ::types::blas_int *)
void sgeevx_(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *wr, float *wi, float *vl, const ::types::blas_int *ldvl, float *vr, const ::types::blas_int *ldvr, ::types::blas_int *ilo, ::types::blas_int *ihi, float *scale, float *abnrm, float *rconde, float *rcondv, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void zgetrf_(const ::types::blas_int *m, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, ::types::blas_int *ipiv, ::types::blas_int *info)
void sgetrf_(const ::types::blas_int *m, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, ::types::blas_int *ipiv, ::types::blas_int *info)
void potri(const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, ::types::blas_int *)
void cgeevx_(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *w, std::complex< float > *vl, const ::types::blas_int *ldvl, std::complex< float > *vr, const ::types::blas_int *ldvr, ::types::blas_int *ilo, ::types::blas_int *ihi, float *scale, float *abnrm, float *rconde, float *rcondv, std::complex< float > *work, const ::types::blas_int *lwork, float *rwork, ::types::blas_int *info)
void sgetrs_(const char *trans, const ::types::blas_int *n, const ::types::blas_int *nrhs, const float *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, float *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void dpotri_(const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, ::types::blas_int *info)
void trtrs(const char *, const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *, ::types::blas_int *)
void spotri_(const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, ::types::blas_int *info)
void dgeevx_(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *wr, double *wi, double *vl, const ::types::blas_int *ldvl, double *vr, const ::types::blas_int *ldvr, ::types::blas_int *ilo, ::types::blas_int *ihi, double *scale, double *abnrm, double *rconde, double *rcondv, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void gesvd(const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, number4 *, const ::types::blas_int *, number5 *, const ::types::blas_int *, ::types::blas_int *)
void dsyrk_(const char *uplo, const char *trans, const ::types::blas_int *n, const ::types::blas_int *k, const double *alpha, const double *a, const ::types::blas_int *lda, const double *beta, double *c, const ::types::blas_int *ldc)
void potrf(const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, ::types::blas_int *)
float slange_(const char *norm, const ::types::blas_int *m, const ::types::blas_int *n, const float *a, const ::types::blas_int *lda, float *work)
void getrs(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, const ::types::blas_int *, number2 *, const ::types::blas_int *, ::types::blas_int *)
void zgemv_(const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const std::complex< double > *alpha, const std::complex< double > *a, const ::types::blas_int *lda, const std::complex< double > *x, const ::types::blas_int *incx, const std::complex< double > *beta, std::complex< double > *y, const ::types::blas_int *incy)
void syr(const char *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, number3 *, const ::types::blas_int *)
void zgelsd_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *nrhs, std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *b, const ::types::blas_int *ldb, double *s, const double *rcond, ::types::blas_int *rank, std::complex< double > *work, const ::types::blas_int *lwork, double *rwork, ::types::blas_int *iwork, ::types::blas_int *info)
void zgesvd_(const char *jobu, const char *jobvt, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, double *s, std::complex< double > *u, const ::types::blas_int *ldu, std::complex< double > *vt, const ::types::blas_int *ldvt, std::complex< double > *work, const ::types::blas_int *lwork, double *rwork, ::types::blas_int *info)
void zgetri_(const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, std::complex< double > *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void cpotri_(const char *uplo, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, ::types::blas_int *info)
void zpotri_(const char *uplo, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, ::types::blas_int *info)
void potrs(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *, ::types::blas_int *)
void zgesdd_(const char *jobz, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, double *s, std::complex< double > *u, const ::types::blas_int *ldu, std::complex< double > *vt, const ::types::blas_int *ldvt, std::complex< double > *work, const ::types::blas_int *lwork, double *rwork, ::types::blas_int *iwork, ::types::blas_int *info)
void dgemm_(const char *transa, const char *transb, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const double *alpha, const double *a, const ::types::blas_int *lda, const double *b, const ::types::blas_int *ldb, const double *beta, double *c, const ::types::blas_int *ldc)
void cpotrf_(const char *uplo, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, ::types::blas_int *info)
#define Assert(cond, exc)
Definition: exceptions.h:1419
float clange_(const char *norm, const ::types::blas_int *m, const ::types::blas_int *n, const std::complex< float > *a, const ::types::blas_int *lda, float *work)
void dgesvd_(const char *jobu, const char *jobvt, const ::types::blas_int *m, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *s, double *u, const ::types::blas_int *ldu, double *vt, const ::types::blas_int *ldvt, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void sygv(const ::types::blas_int *, const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *, number3 *, number4 *, const ::types::blas_int *, ::types::blas_int *)
void dgemv_(const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const double *alpha, const double *a, const ::types::blas_int *lda, const double *x, const ::types::blas_int *incx, const double *beta, double *y, const ::types::blas_int *incy)
void saxpy_(const ::types::blas_int *n, const float *sa, const float *sx, const ::types::blas_int *incx, float *sy, const ::types::blas_int *incy)
double dlamch_(const char *cmach)
void getrf(const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
void getri(const ::types::blas_int *, number1 *, const ::types::blas_int *, const ::types::blas_int *, number2 *, const ::types::blas_int *, ::types::blas_int *)
void slascl_(const char *type, const ::types::blas_int *kl, const ::types::blas_int *ku, const float *cfrom, const float *cto, const ::types::blas_int *m, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, ::types::blas_int *info)
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:359
void dgeev_(const char *jobvl, const char *jobvr, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *wr, double *wi, double *vl, const ::types::blas_int *ldvl, double *vr, const ::types::blas_int *ldvr, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
static ::ExceptionBase & ExcMissing(std::string arg1)
void ctrmv_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *x, const ::types::blas_int *incx)
void orgqr(const ::types::blas_int *, const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, const number2 *, number3 *, const ::types::blas_int *, ::types::blas_int *)
void zgeqrf_(const ::types::blas_int *m, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *tau, std::complex< double > *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void cpotrs_(const char *uplo, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void zgemm_(const char *transa, const char *transb, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const std::complex< double > *alpha, const std::complex< double > *a, const ::types::blas_int *lda, const std::complex< double > *b, const ::types::blas_int *ldb, const std::complex< double > *beta, std::complex< double > *c, const ::types::blas_int *ldc)
void ssyrk_(const char *uplo, const char *trans, const ::types::blas_int *n, const ::types::blas_int *k, const float *alpha, const float *a, const ::types::blas_int *lda, const float *beta, float *c, const ::types::blas_int *ldc)
void dtrtrs_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const ::types::blas_int *nrhs, const double *a, const ::types::blas_int *lda, double *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void cgeqrf_(const ::types::blas_int *m, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *tau, std::complex< float > *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void sgetri_(const ::types::blas_int *n, float *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void dstev_(const char *jobz, const ::types::blas_int *n, double *d, double *e, double *z, const ::types::blas_int *ldz, double *work, ::types::blas_int *info)
float slansy_(const char *norm, const char *uplo, const ::types::blas_int *n, const float *a, const ::types::blas_int *lda, float *work)
void syevx(const char *, const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, const number2 *, const number3 *, const ::types::blas_int *, const ::types::blas_int *, const number4 *, ::types::blas_int *, number5 *, number6 *, const ::types::blas_int *, number7 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
void spocon_(const char *uplo, const ::types::blas_int *n, const float *a, const ::types::blas_int *lda, const float *anorm, float *rcond, float *work, ::types::blas_int *iwork, ::types::blas_int *info)
void strtrs_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const ::types::blas_int *nrhs, const float *a, const ::types::blas_int *lda, float *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void spotrf_(const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, ::types::blas_int *info)
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
void gelsd(const ::types::blas_int *, const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *, number3 *, const number4 *, ::types::blas_int *, number5 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
void clascl_(const char *type, const ::types::blas_int *kl, const ::types::blas_int *ku, const float *cfrom, const float *cto, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, ::types::blas_int *info)
void spotrs_(const char *uplo, const ::types::blas_int *n, const ::types::blas_int *nrhs, const float *a, const ::types::blas_int *lda, float *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void ztrtrs_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
void dpotrs_(const char *uplo, const ::types::blas_int *n, const ::types::blas_int *nrhs, const double *a, const ::types::blas_int *lda, double *b, const ::types::blas_int *ldb, ::types::blas_int *info)
double dlansy_(const char *norm, const char *uplo, const ::types::blas_int *n, const double *a, const ::types::blas_int *lda, double *work)
void ztrcon_(const char *norm, const char *uplo, const char *diag, const ::types::blas_int *n, const std::complex< double > *a, const ::types::blas_int *lda, double *rcond, std::complex< double > *work, double *rwork, ::types::blas_int *info)
void lascl(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, const ::types::blas_int *, number3 *, const ::types::blas_int *, ::types::blas_int *)
Tensor< 2, dim, Number > w(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
void zpocon_(const char *uplo, const ::types::blas_int *n, const std::complex< double > *a, const ::types::blas_int *lda, const double *anorm, double *rcond, std::complex< double > *work, double *rwork, ::types::blas_int *info)
void syevr(const char *, const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, const number2 *, const number3 *, const ::types::blas_int *, const ::types::blas_int *, const number4 *, ::types::blas_int *, number5 *, number6 *, const ::types::blas_int *, ::types::blas_int *, number7 *, const ::types::blas_int *, ::types::blas_int *, const ::types::blas_int *, ::types::blas_int *)
void sgesvd_(const char *jobu, const char *jobvt, const ::types::blas_int *m, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *s, float *u, const ::types::blas_int *ldu, float *vt, const ::types::blas_int *ldvt, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void sgesdd_(const char *jobz, const ::types::blas_int *m, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *s, float *u, const ::types::blas_int *ldu, float *vt, const ::types::blas_int *ldvt, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *info)
void dsygvx_(const ::types::blas_int *itype, const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *b, const ::types::blas_int *ldb, const double *vl, const double *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const double *abstol, ::types::blas_int *m, double *w, double *z, const ::types::blas_int *ldz, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *ifail, ::types::blas_int *info)
void dorgqr_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, double *a, const ::types::blas_int *lda, const double *tau, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void zpotrs_(const char *uplo, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void ssyevr_(const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, const float *vl, const float *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const float *abstol, ::types::blas_int *m, float *w, float *z, const ::types::blas_int *ldz, ::types::blas_int *isuppz, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, const ::types::blas_int *liwork, ::types::blas_int *info)
void dgetrf_(const ::types::blas_int *m, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, ::types::blas_int *ipiv, ::types::blas_int *info)
void cgesdd_(const char *jobz, const ::types::blas_int *m, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, float *s, std::complex< float > *u, const ::types::blas_int *ldu, std::complex< float > *vt, const ::types::blas_int *ldvt, std::complex< float > *work, const ::types::blas_int *lwork, float *rwork, ::types::blas_int *iwork, ::types::blas_int *info)
void ctrtrs_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
number1 lange(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *)
int blas_int
void zgeevx_(const char *balanc, const char *jobvl, const char *jobvr, const char *sense, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *w, std::complex< double > *vl, const ::types::blas_int *ldvl, std::complex< double > *vr, const ::types::blas_int *ldvr, ::types::blas_int *ilo, ::types::blas_int *ihi, double *scale, double *abnrm, double *rconde, double *rcondv, std::complex< double > *work, const ::types::blas_int *lwork, double *rwork, ::types::blas_int *info)
void strmv_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const float *a, const ::types::blas_int *lda, float *x, const ::types::blas_int *incx)
void dpotrf_(const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, ::types::blas_int *info)
void zpotrf_(const char *uplo, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, ::types::blas_int *info)
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:358
void cgemm_(const char *transa, const char *transb, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const std::complex< float > *alpha, const std::complex< float > *a, const ::types::blas_int *lda, const std::complex< float > *b, const ::types::blas_int *ldb, const std::complex< float > *beta, std::complex< float > *c, const ::types::blas_int *ldc)
void csyrk_(const char *uplo, const char *trans, const ::types::blas_int *n, const ::types::blas_int *k, const std::complex< float > *alpha, const std::complex< float > *a, const ::types::blas_int *lda, const std::complex< float > *beta, std::complex< float > *c, const ::types::blas_int *ldc)
void ssyevx_(const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, const float *vl, const float *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const float *abstol, ::types::blas_int *m, float *w, float *z, const ::types::blas_int *ldz, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *ifail, ::types::blas_int *info)
void sstev_(const char *jobz, const ::types::blas_int *n, float *d, float *e, float *z, const ::types::blas_int *ldz, float *work, ::types::blas_int *info)
void dormqr_(const char *side, const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const double *a, const ::types::blas_int *lda, const double *tau, double *c, const ::types::blas_int *ldc, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
float slamch_(const char *cmach)
number1 lansy(const char *, const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *)
void sgemm_(const char *transa, const char *transb, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const float *alpha, const float *a, const ::types::blas_int *lda, const float *b, const ::types::blas_int *ldb, const float *beta, float *c, const ::types::blas_int *ldc)
static ::ExceptionBase & ExcNotImplemented()
float clansy_(const char *norm, const char *uplo, const ::types::blas_int *n, const std::complex< float > *a, const ::types::blas_int *lda, float *work)
void geqrf(const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, ::types::blas_int *)
void gesdd(const char *, const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, number4 *, const ::types::blas_int *, number5 *, const ::types::blas_int *, ::types::blas_int *, ::types::blas_int *)
number1 lamch(const char *)
void cgemv_(const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const std::complex< float > *alpha, const std::complex< float > *a, const ::types::blas_int *lda, const std::complex< float > *x, const ::types::blas_int *incx, const std::complex< float > *beta, std::complex< float > *y, const ::types::blas_int *incy)
void daxpy_(const ::types::blas_int *n, const double *da, const double *dx, const ::types::blas_int *incx, double *dy, const ::types::blas_int *incy)
void cgetrs_(const char *trans, const ::types::blas_int *n, const ::types::blas_int *nrhs, const std::complex< float > *a, const ::types::blas_int *lda, const ::types::blas_int *ipiv, std::complex< float > *b, const ::types::blas_int *ldb, ::types::blas_int *info)
void dtrmv_(const char *uplo, const char *trans, const char *diag, const ::types::blas_int *n, const double *a, const ::types::blas_int *lda, double *x, const ::types::blas_int *incx)
void cgeev_(const char *jobvl, const char *jobvr, const ::types::blas_int *n, std::complex< float > *a, const ::types::blas_int *lda, std::complex< float > *w, std::complex< float > *vl, const ::types::blas_int *ldvl, std::complex< float > *vr, const ::types::blas_int *ldvr, std::complex< float > *work, const ::types::blas_int *lwork, float *rwork, ::types::blas_int *info)
void ssyev_(const char *jobz, const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *w, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void sormqr_(const char *side, const char *trans, const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, const float *a, const ::types::blas_int *lda, const float *tau, float *c, const ::types::blas_int *ldc, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void ssygvx_(const ::types::blas_int *itype, const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *b, const ::types::blas_int *ldb, const float *vl, const float *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const float *abstol, ::types::blas_int *m, float *w, float *z, const ::types::blas_int *ldz, float *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, ::types::blas_int *ifail, ::types::blas_int *info)
#define DEAL_II_DEPRECATED
Definition: config.h:98
void geev(const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, number4 *, const ::types::blas_int *, number5 *, const ::types::blas_int *, number6 *, const ::types::blas_int *, ::types::blas_int *)
void dsyevr_(const char *jobz, const char *range, const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, const double *vl, const double *vu, const ::types::blas_int *il, const ::types::blas_int *iu, const double *abstol, ::types::blas_int *m, double *w, double *z, const ::types::blas_int *ldz, ::types::blas_int *isuppz, double *work, const ::types::blas_int *lwork, ::types::blas_int *iwork, const ::types::blas_int *liwork, ::types::blas_int *info)
void dsyev_(const char *jobz, const char *uplo, const ::types::blas_int *n, double *a, const ::types::blas_int *lda, double *w, double *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void zgeev_(const char *jobvl, const char *jobvr, const ::types::blas_int *n, std::complex< double > *a, const ::types::blas_int *lda, std::complex< double > *w, std::complex< double > *vl, const ::types::blas_int *ldvl, std::complex< double > *vr, const ::types::blas_int *ldvr, std::complex< double > *work, const ::types::blas_int *lwork, double *rwork, ::types::blas_int *info)
void sorgqr_(const ::types::blas_int *m, const ::types::blas_int *n, const ::types::blas_int *k, float *a, const ::types::blas_int *lda, const float *tau, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)
void ssygv_(const ::types::blas_int *itype, const char *jobz, const char *uplo, const ::types::blas_int *n, float *a, const ::types::blas_int *lda, float *b, const ::types::blas_int *ldb, float *w, float *work, const ::types::blas_int *lwork, ::types::blas_int *info)