Reference documentation for deal.II version 9.3.3
\(\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 - 2021 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// DEAL_II_FORTRAN_MANGLE confuses doxygen a lot and these functions aren't part
29// of our public API anyway, so don't generate any doxygen for them
30#ifndef DOXYGEN
31extern "C"
32{
33 void DEAL_II_FORTRAN_MANGLE(saxpy,
35 const float * sa,
36 const float * sx,
38 float * sy,
40
41 void DEAL_II_FORTRAN_MANGLE(daxpy,
43 const double * da,
44 const double * dx,
46 double * dy,
48
49 void DEAL_II_FORTRAN_MANGLE(caxpy,
51 const std::complex<float> * ca,
52 const std::complex<float> * cx,
54 std::complex<float> * cy,
56
57 void DEAL_II_FORTRAN_MANGLE(zaxpy,
59 const std::complex<double> * za,
60 const std::complex<double> * zx,
62 std::complex<double> * zy,
64
65 void DEAL_II_FORTRAN_MANGLE(sgeev,
66 SGEEV)(const char * jobvl,
67 const char * jobvr,
69 float * a,
71 float * wr,
72 float * wi,
73 float * vl,
75 float * vr,
77 float * work,
79 ::types::blas_int * info);
80
81 void DEAL_II_FORTRAN_MANGLE(dgeev,
82 DGEEV)(const char * jobvl,
83 const char * jobvr,
85 double * a,
87 double * wr,
88 double * wi,
89 double * vl,
91 double * vr,
93 double * work,
95 ::types::blas_int * info);
96
97 void DEAL_II_FORTRAN_MANGLE(cgeev,
98 CGEEV)(const char * jobvl,
99 const char * jobvr,
101 std::complex<float> * a,
103 std::complex<float> * w,
104 std::complex<float> * vl,
106 std::complex<float> * vr,
108 std::complex<float> * work,
110 float * rwork,
111 ::types::blas_int * info);
112
113 void DEAL_II_FORTRAN_MANGLE(zgeev,
114 ZGEEV)(const char * jobvl,
115 const char * jobvr,
117 std::complex<double> * a,
119 std::complex<double> * w,
120 std::complex<double> * vl,
122 std::complex<double> * vr,
124 std::complex<double> * work,
126 double * rwork,
127 ::types::blas_int * info);
128
129 void DEAL_II_FORTRAN_MANGLE(sgeevx,
130 SGEEVX)(const char * balanc,
131 const char * jobvl,
132 const char * jobvr,
133 const char * sense,
135 float * a,
137 float * wr,
138 float * wi,
139 float * vl,
141 float * vr,
143 ::types::blas_int * ilo,
144 ::types::blas_int * ihi,
145 float * scale,
146 float * abnrm,
147 float * rconde,
148 float * rcondv,
149 float * work,
151 ::types::blas_int * iwork,
152 ::types::blas_int * info);
153
154 void DEAL_II_FORTRAN_MANGLE(dgeevx,
155 DGEEVX)(const char * balanc,
156 const char * jobvl,
157 const char * jobvr,
158 const char * sense,
160 double * a,
162 double * wr,
163 double * wi,
164 double * vl,
166 double * vr,
168 ::types::blas_int * ilo,
169 ::types::blas_int * ihi,
170 double * scale,
171 double * abnrm,
172 double * rconde,
173 double * rcondv,
174 double * work,
176 ::types::blas_int * iwork,
177 ::types::blas_int * info);
178
179 void DEAL_II_FORTRAN_MANGLE(cgeevx,
180 CGEEVX)(const char * balanc,
181 const char * jobvl,
182 const char * jobvr,
183 const char * sense,
185 std::complex<float> * a,
187 std::complex<float> * w,
188 std::complex<float> * vl,
190 std::complex<float> * vr,
192 ::types::blas_int * ilo,
193 ::types::blas_int * ihi,
194 float * scale,
195 float * abnrm,
196 float * rconde,
197 float * rcondv,
198 std::complex<float> * work,
200 float * rwork,
201 ::types::blas_int * info);
202
203 void DEAL_II_FORTRAN_MANGLE(zgeevx,
204 ZGEEVX)(const char * balanc,
205 const char * jobvl,
206 const char * jobvr,
207 const char * sense,
209 std::complex<double> * a,
211 std::complex<double> * w,
212 std::complex<double> * vl,
214 std::complex<double> * vr,
216 ::types::blas_int * ilo,
217 ::types::blas_int * ihi,
218 double * scale,
219 double * abnrm,
220 double * rconde,
221 double * rcondv,
222 std::complex<double> * work,
224 double * rwork,
225 ::types::blas_int * info);
226
227 void DEAL_II_FORTRAN_MANGLE(sgelsd,
228 SGELSD)(const ::types::blas_int *m,
231 float * a,
233 float * b,
235 float * s,
236 const float * rcond,
237 ::types::blas_int * rank,
238 float * work,
240 ::types::blas_int * iwork,
241 ::types::blas_int * info);
242
243 void DEAL_II_FORTRAN_MANGLE(dgelsd,
244 DGELSD)(const ::types::blas_int *m,
247 double * a,
249 double * b,
251 double * s,
252 const double * rcond,
253 ::types::blas_int * rank,
254 double * work,
256 ::types::blas_int * iwork,
257 ::types::blas_int * info);
258
259 void DEAL_II_FORTRAN_MANGLE(cgelsd,
260 CGELSD)(const ::types::blas_int *m,
263 std::complex<float> * a,
265 std::complex<float> * b,
267 float * s,
268 const float * rcond,
269 ::types::blas_int * rank,
270 std::complex<float> * work,
272 float * rwork,
273 ::types::blas_int * iwork,
274 ::types::blas_int * info);
275
276 void DEAL_II_FORTRAN_MANGLE(zgelsd,
277 ZGELSD)(const ::types::blas_int *m,
280 std::complex<double> * a,
282 std::complex<double> * b,
284 double * s,
285 const double * rcond,
286 ::types::blas_int * rank,
287 std::complex<double> * work,
289 double * rwork,
290 ::types::blas_int * iwork,
291 ::types::blas_int * info);
292
293 void DEAL_II_FORTRAN_MANGLE(sgemm, SGEMM)(const char *transa,
294 const char *transb,
298 const float *alpha,
299 const float *a,
301 const float * b,
303 const float * beta,
304 float * c,
306
307 void DEAL_II_FORTRAN_MANGLE(dgemm, DGEMM)(const char *transa,
308 const char *transb,
312 const double *alpha,
313 const double *a,
315 const double * b,
317 const double * beta,
318 double * c,
320
321 void DEAL_II_FORTRAN_MANGLE(cgemm, 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 DEAL_II_FORTRAN_MANGLE(zgemm, ZGEMM)(const char *transa,
336 const char *transb,
340 const std::complex<double> *alpha,
341 const std::complex<double> *a,
343 const std::complex<double> * b,
345 const std::complex<double> * beta,
346 std::complex<double> * c,
348
349 void DEAL_II_FORTRAN_MANGLE(sgemv,
350 SGEMV)(const char * trans,
353 const float * alpha,
354 const float * a,
356 const float * x,
358 const float * beta,
359 float * y,
361
362 void DEAL_II_FORTRAN_MANGLE(dgemv,
363 DGEMV)(const char * trans,
366 const double * alpha,
367 const double * a,
369 const double * x,
371 const double * beta,
372 double * y,
374
375 void DEAL_II_FORTRAN_MANGLE(cgemv,
376 CGEMV)(const char * trans,
379 const std::complex<float> * alpha,
380 const std::complex<float> * a,
382 const std::complex<float> * x,
384 const std::complex<float> * beta,
385 std::complex<float> * y,
387
388 void DEAL_II_FORTRAN_MANGLE(zgemv,
389 ZGEMV)(const char * trans,
392 const std::complex<double> * alpha,
393 const std::complex<double> * a,
395 const std::complex<double> * x,
397 const std::complex<double> * beta,
398 std::complex<double> * y,
400
401 void DEAL_II_FORTRAN_MANGLE(sgeqrf,
402 SGEQRF)(const ::types::blas_int *m,
404 float * a,
406 float * tau,
407 float * work,
409 ::types::blas_int * info);
410
411 void DEAL_II_FORTRAN_MANGLE(dgeqrf,
412 DGEQRF)(const ::types::blas_int *m,
414 double * a,
416 double * tau,
417 double * work,
419 ::types::blas_int * info);
420
421 void DEAL_II_FORTRAN_MANGLE(cgeqrf,
422 CGEQRF)(const ::types::blas_int *m,
424 std::complex<float> * a,
426 std::complex<float> * tau,
427 std::complex<float> * work,
429 ::types::blas_int * info);
430
431 void DEAL_II_FORTRAN_MANGLE(zgeqrf,
432 ZGEQRF)(const ::types::blas_int *m,
434 std::complex<double> * a,
436 std::complex<double> * tau,
437 std::complex<double> * work,
439 ::types::blas_int * info);
440
441 void DEAL_II_FORTRAN_MANGLE(sgesdd,
442 SGESDD)(const char * jobz,
445 float * a,
447 float * s,
448 float * u,
450 float * vt,
452 float * work,
454 ::types::blas_int * iwork,
455 ::types::blas_int * info);
456
457 void DEAL_II_FORTRAN_MANGLE(dgesdd,
458 DGESDD)(const char * jobz,
461 double * a,
463 double * s,
464 double * u,
466 double * vt,
468 double * work,
470 ::types::blas_int * iwork,
471 ::types::blas_int * info);
472
473 void DEAL_II_FORTRAN_MANGLE(cgesdd,
474 CGESDD)(const char * jobz,
477 std::complex<float> * a,
479 float * s,
480 std::complex<float> * u,
482 std::complex<float> * vt,
484 std::complex<float> * work,
486 float * rwork,
487 ::types::blas_int * iwork,
488 ::types::blas_int * info);
489
490 void DEAL_II_FORTRAN_MANGLE(zgesdd,
491 ZGESDD)(const char * jobz,
494 std::complex<double> * a,
496 double * s,
497 std::complex<double> * u,
499 std::complex<double> * vt,
501 std::complex<double> * work,
503 double * rwork,
504 ::types::blas_int * iwork,
505 ::types::blas_int * info);
506
507 void DEAL_II_FORTRAN_MANGLE(sgesvd,
508 SGESVD)(const char * jobu,
509 const char * jobvt,
512 float * a,
514 float * s,
515 float * u,
517 float * vt,
519 float * work,
521 ::types::blas_int * info);
522
523 void DEAL_II_FORTRAN_MANGLE(dgesvd,
524 DGESVD)(const char * jobu,
525 const char * jobvt,
528 double * a,
530 double * s,
531 double * u,
533 double * vt,
535 double * work,
537 ::types::blas_int * info);
538
539 void DEAL_II_FORTRAN_MANGLE(cgesvd,
540 CGESVD)(const char * jobu,
541 const char * jobvt,
544 std::complex<float> * a,
546 float * s,
547 std::complex<float> * u,
549 std::complex<float> * vt,
551 std::complex<float> * work,
553 float * rwork,
554 ::types::blas_int * info);
555
556 void DEAL_II_FORTRAN_MANGLE(zgesvd,
557 ZGESVD)(const char * jobu,
558 const char * jobvt,
561 std::complex<double> * a,
563 double * s,
564 std::complex<double> * u,
566 std::complex<double> * vt,
568 std::complex<double> * work,
570 double * rwork,
571 ::types::blas_int * info);
572
573 void DEAL_II_FORTRAN_MANGLE(sgetrf,
574 SGETRF)(const ::types::blas_int *m,
576 float * a,
578 ::types::blas_int * ipiv,
579 ::types::blas_int * info);
580
581 void DEAL_II_FORTRAN_MANGLE(dgetrf,
582 DGETRF)(const ::types::blas_int *m,
584 double * a,
586 ::types::blas_int * ipiv,
587 ::types::blas_int * info);
588
589 void DEAL_II_FORTRAN_MANGLE(cgetrf,
590 CGETRF)(const ::types::blas_int *m,
592 std::complex<float> * a,
594 ::types::blas_int * ipiv,
595 ::types::blas_int * info);
596
597 void DEAL_II_FORTRAN_MANGLE(zgetrf,
598 ZGETRF)(const ::types::blas_int *m,
600 std::complex<double> * a,
602 ::types::blas_int * ipiv,
603 ::types::blas_int * info);
604
605 void DEAL_II_FORTRAN_MANGLE(sgetri,
606 SGETRI)(const ::types::blas_int *n,
607 float * a,
610 float * work,
612 ::types::blas_int * info);
613
614 void DEAL_II_FORTRAN_MANGLE(dgetri,
615 DGETRI)(const ::types::blas_int *n,
616 double * a,
619 double * work,
621 ::types::blas_int * info);
622
623 void DEAL_II_FORTRAN_MANGLE(cgetri,
624 CGETRI)(const ::types::blas_int *n,
625 std::complex<float> * a,
628 std::complex<float> * work,
630 ::types::blas_int * info);
631
632 void DEAL_II_FORTRAN_MANGLE(zgetri,
633 ZGETRI)(const ::types::blas_int *n,
634 std::complex<double> * a,
637 std::complex<double> * work,
639 ::types::blas_int * info);
640
641 void DEAL_II_FORTRAN_MANGLE(sgetrs,
642 SGETRS)(const char * trans,
645 const float * a,
648 float * b,
650 ::types::blas_int * info);
651
652 void DEAL_II_FORTRAN_MANGLE(dgetrs,
653 DGETRS)(const char * trans,
656 const double * a,
659 double * b,
661 ::types::blas_int * info);
662
663 void DEAL_II_FORTRAN_MANGLE(cgetrs,
664 CGETRS)(const char * trans,
667 const std::complex<float> * a,
670 std::complex<float> * b,
672 ::types::blas_int * info);
673
674 void DEAL_II_FORTRAN_MANGLE(zgetrs,
675 ZGETRS)(const char * trans,
678 const std::complex<double> * a,
681 std::complex<double> * b,
683 ::types::blas_int * info);
684
685 float DEAL_II_FORTRAN_MANGLE(slamch, SLAMCH)(const char *cmach);
686
687 double DEAL_II_FORTRAN_MANGLE(dlamch, DLAMCH)(const char *cmach);
688
689 float DEAL_II_FORTRAN_MANGLE(slange,
690 SLANGE)(const char * norm,
693 const float * a,
695 float * work);
696
697 double DEAL_II_FORTRAN_MANGLE(dlange,
698 DLANGE)(const char * norm,
701 const double * a,
703 double * work);
704
705 float DEAL_II_FORTRAN_MANGLE(clange,
706 CLANGE)(const char * norm,
709 const std::complex<float> * a,
711 float * work);
712
713 double DEAL_II_FORTRAN_MANGLE(zlange,
714 ZLANGE)(const char * norm,
717 const std::complex<double> * a,
719 double * work);
720
721 float DEAL_II_FORTRAN_MANGLE(slansy,
722 SLANSY)(const char * norm,
723 const char * uplo,
725 const float * a,
727 float * work);
728
729 double DEAL_II_FORTRAN_MANGLE(dlansy,
730 DLANSY)(const char * norm,
731 const char * uplo,
733 const double * a,
735 double * work);
736
737 float DEAL_II_FORTRAN_MANGLE(clansy,
738 CLANSY)(const char * norm,
739 const char * uplo,
741 const std::complex<float> * a,
743 float * work);
744
745 double DEAL_II_FORTRAN_MANGLE(zlansy,
746 ZLANSY)(const char * norm,
747 const char * uplo,
749 const std::complex<double> * a,
751 double * work);
752
753 void DEAL_II_FORTRAN_MANGLE(slascl,
754 SLASCL)(const char * type,
757 const float * cfrom,
758 const float * cto,
761 float * a,
763 ::types::blas_int * info);
764
765 void DEAL_II_FORTRAN_MANGLE(dlascl,
766 DLASCL)(const char * type,
769 const double * cfrom,
770 const double * cto,
773 double * a,
775 ::types::blas_int * info);
776
777 void DEAL_II_FORTRAN_MANGLE(clascl,
778 CLASCL)(const char * type,
781 const float * cfrom,
782 const float * cto,
785 std::complex<float> * a,
787 ::types::blas_int * info);
788
789 void DEAL_II_FORTRAN_MANGLE(zlascl,
790 ZLASCL)(const char * type,
793 const double * cfrom,
794 const double * cto,
797 std::complex<double> * a,
799 ::types::blas_int * info);
800
801 void DEAL_II_FORTRAN_MANGLE(sorgqr,
802 SORGQR)(const ::types::blas_int *m,
805 float * a,
807 const float * tau,
808 float * work,
810 ::types::blas_int * info);
811
812 void DEAL_II_FORTRAN_MANGLE(dorgqr,
813 DORGQR)(const ::types::blas_int *m,
816 double * a,
818 const double * tau,
819 double * work,
821 ::types::blas_int * info);
822
823 void DEAL_II_FORTRAN_MANGLE(sormqr,
824 SORMQR)(const char * side,
825 const char * trans,
829 const float * a,
831 const float * tau,
832 float * c,
834 float * work,
836 ::types::blas_int * info);
837
838 void DEAL_II_FORTRAN_MANGLE(dormqr,
839 DORMQR)(const char * side,
840 const char * trans,
844 const double * a,
846 const double * tau,
847 double * c,
849 double * work,
851 ::types::blas_int * info);
852
853 void DEAL_II_FORTRAN_MANGLE(spocon,
854 SPOCON)(const char * uplo,
856 const float * a,
858 const float * anorm,
859 float * rcond,
860 float * work,
861 ::types::blas_int * iwork,
862 ::types::blas_int * info);
863
864 void DEAL_II_FORTRAN_MANGLE(dpocon,
865 DPOCON)(const char * uplo,
867 const double * a,
869 const double * anorm,
870 double * rcond,
871 double * work,
872 ::types::blas_int * iwork,
873 ::types::blas_int * info);
874
875 void DEAL_II_FORTRAN_MANGLE(cpocon,
876 CPOCON)(const char * uplo,
878 const std::complex<float> * a,
880 const float * anorm,
881 float * rcond,
882 std::complex<float> * work,
883 float * rwork,
884 ::types::blas_int * info);
885
886 void DEAL_II_FORTRAN_MANGLE(zpocon,
887 ZPOCON)(const char * uplo,
889 const std::complex<double> * a,
891 const double * anorm,
892 double * rcond,
893 std::complex<double> * work,
894 double * rwork,
895 ::types::blas_int * info);
896
897 void DEAL_II_FORTRAN_MANGLE(spotrf,
898 SPOTRF)(const char * uplo,
900 float * a,
902 ::types::blas_int * info);
903
904 void DEAL_II_FORTRAN_MANGLE(dpotrf,
905 DPOTRF)(const char * uplo,
907 double * a,
909 ::types::blas_int * info);
910
911 void DEAL_II_FORTRAN_MANGLE(cpotrf,
912 CPOTRF)(const char * uplo,
914 std::complex<float> * a,
916 ::types::blas_int * info);
917
918 void DEAL_II_FORTRAN_MANGLE(zpotrf,
919 ZPOTRF)(const char * uplo,
921 std::complex<double> * a,
923 ::types::blas_int * info);
924
925 void DEAL_II_FORTRAN_MANGLE(spotri,
926 SPOTRI)(const char * uplo,
928 float * a,
930 ::types::blas_int * info);
931
932 void DEAL_II_FORTRAN_MANGLE(dpotri,
933 DPOTRI)(const char * uplo,
935 double * a,
937 ::types::blas_int * info);
938
939 void DEAL_II_FORTRAN_MANGLE(cpotri,
940 CPOTRI)(const char * uplo,
942 std::complex<float> * a,
944 ::types::blas_int * info);
945
946 void DEAL_II_FORTRAN_MANGLE(zpotri,
947 ZPOTRI)(const char * uplo,
949 std::complex<double> * a,
951 ::types::blas_int * info);
952
953 void DEAL_II_FORTRAN_MANGLE(spotrs,
954 SPOTRS)(const char * uplo,
957 const float * a,
959 float * b,
961 ::types::blas_int * info);
962
963 void DEAL_II_FORTRAN_MANGLE(dpotrs,
964 DPOTRS)(const char * uplo,
967 const double * a,
969 double * b,
971 ::types::blas_int * info);
972
973 void DEAL_II_FORTRAN_MANGLE(cpotrs,
974 CPOTRS)(const char * uplo,
977 const std::complex<float> * a,
979 std::complex<float> * b,
981 ::types::blas_int * info);
982
983 void DEAL_II_FORTRAN_MANGLE(zpotrs,
984 ZPOTRS)(const char * uplo,
987 const std::complex<double> * a,
989 std::complex<double> * b,
991 ::types::blas_int * info);
992
993 void DEAL_II_FORTRAN_MANGLE(sstev, SSTEV)(const char * jobz,
995 float * d,
996 float * e,
997 float * z,
999 float * work,
1000 ::types::blas_int *info);
1001
1002 void DEAL_II_FORTRAN_MANGLE(dstev, DSTEV)(const char * jobz,
1004 double * d,
1005 double * e,
1006 double * z,
1008 double * work,
1009 ::types::blas_int *info);
1010
1011 void DEAL_II_FORTRAN_MANGLE(ssyev,
1012 SSYEV)(const char * jobz,
1013 const char * uplo,
1015 float * a,
1017 float * w,
1018 float * work,
1020 ::types::blas_int * info);
1021
1022 void DEAL_II_FORTRAN_MANGLE(dsyev,
1023 DSYEV)(const char * jobz,
1024 const char * uplo,
1026 double * a,
1028 double * w,
1029 double * work,
1031 ::types::blas_int * info);
1032
1033 void DEAL_II_FORTRAN_MANGLE(ssyevr,
1034 SSYEVR)(const char * jobz,
1035 const char * range,
1036 const char * uplo,
1038 float * a,
1040 const float * vl,
1041 const float * vu,
1044 const float * abstol,
1046 float * w,
1047 float * z,
1049 ::types::blas_int * isuppz,
1050 float * work,
1052 ::types::blas_int * iwork,
1054 ::types::blas_int * info);
1055
1056 void DEAL_II_FORTRAN_MANGLE(dsyevr,
1057 DSYEVR)(const char * jobz,
1058 const char * range,
1059 const char * uplo,
1061 double * a,
1063 const double * vl,
1064 const double * vu,
1067 const double * abstol,
1069 double * w,
1070 double * z,
1072 ::types::blas_int * isuppz,
1073 double * work,
1075 ::types::blas_int * iwork,
1077 ::types::blas_int * info);
1078
1079 void DEAL_II_FORTRAN_MANGLE(ssyevx,
1080 SSYEVX)(const char * jobz,
1081 const char * range,
1082 const char * uplo,
1084 float * a,
1086 const float * vl,
1087 const float * vu,
1090 const float * abstol,
1092 float * w,
1093 float * z,
1095 float * work,
1097 ::types::blas_int * iwork,
1098 ::types::blas_int * ifail,
1099 ::types::blas_int * info);
1100
1101 void DEAL_II_FORTRAN_MANGLE(dsyevx,
1102 DSYEVX)(const char * jobz,
1103 const char * range,
1104 const char * uplo,
1106 double * a,
1108 const double * vl,
1109 const double * vu,
1112 const double * abstol,
1114 double * w,
1115 double * z,
1117 double * work,
1119 ::types::blas_int * iwork,
1120 ::types::blas_int * ifail,
1121 ::types::blas_int * info);
1122
1123 void DEAL_II_FORTRAN_MANGLE(ssygv,
1124 SSYGV)(const ::types::blas_int *itype,
1125 const char * jobz,
1126 const char * uplo,
1128 float * a,
1130 float * b,
1132 float * w,
1133 float * work,
1135 ::types::blas_int * info);
1136
1137 void DEAL_II_FORTRAN_MANGLE(dsygv,
1138 DSYGV)(const ::types::blas_int *itype,
1139 const char * jobz,
1140 const char * uplo,
1142 double * a,
1144 double * b,
1146 double * w,
1147 double * work,
1149 ::types::blas_int * info);
1150
1151 void DEAL_II_FORTRAN_MANGLE(ssygvx,
1152 SSYGVX)(const ::types::blas_int *itype,
1153 const char * jobz,
1154 const char * range,
1155 const char * uplo,
1157 float * a,
1159 float * b,
1161 const float * vl,
1162 const float * vu,
1165 const float * abstol,
1167 float * w,
1168 float * z,
1170 float * work,
1172 ::types::blas_int * iwork,
1173 ::types::blas_int * ifail,
1174 ::types::blas_int * info);
1175
1176 void DEAL_II_FORTRAN_MANGLE(dsygvx,
1177 DSYGVX)(const ::types::blas_int *itype,
1178 const char * jobz,
1179 const char * range,
1180 const char * uplo,
1182 double * a,
1184 double * b,
1186 const double * vl,
1187 const double * vu,
1190 const double * abstol,
1192 double * w,
1193 double * z,
1195 double * work,
1197 ::types::blas_int * iwork,
1198 ::types::blas_int * ifail,
1199 ::types::blas_int * info);
1200
1201 void DEAL_II_FORTRAN_MANGLE(ssyr, SSYR)(const char * uplo,
1203 const float * alpha,
1204 const float * x,
1206 float * a,
1208
1209 void DEAL_II_FORTRAN_MANGLE(dsyr, DSYR)(const char * uplo,
1211 const double * alpha,
1212 const double * x,
1214 double * a,
1216
1217 void DEAL_II_FORTRAN_MANGLE(ssyrk, SSYRK)(const char *uplo,
1218 const char *trans,
1221 const float *alpha,
1222 const float *a,
1224 const float * beta,
1225 float * c,
1227
1228 void DEAL_II_FORTRAN_MANGLE(dsyrk, DSYRK)(const char *uplo,
1229 const char *trans,
1232 const double *alpha,
1233 const double *a,
1235 const double * beta,
1236 double * c,
1238
1239 void DEAL_II_FORTRAN_MANGLE(csyrk, CSYRK)(const char *uplo,
1240 const char *trans,
1243 const std::complex<float> *alpha,
1244 const std::complex<float> *a,
1246 const std::complex<float> * beta,
1247 std::complex<float> * c,
1249
1250 void DEAL_II_FORTRAN_MANGLE(zsyrk, ZSYRK)(const char *uplo,
1251 const char *trans,
1254 const std::complex<double> *alpha,
1255 const std::complex<double> *a,
1257 const std::complex<double> * beta,
1258 std::complex<double> * c,
1260
1261 void DEAL_II_FORTRAN_MANGLE(strcon,
1262 STRCON)(const char * norm,
1263 const char * uplo,
1264 const char * diag,
1266 const float * a,
1268 float * rcond,
1269 float * work,
1270 ::types::blas_int * iwork,
1271 ::types::blas_int * info);
1272
1273 void DEAL_II_FORTRAN_MANGLE(dtrcon,
1274 DTRCON)(const char * norm,
1275 const char * uplo,
1276 const char * diag,
1278 const double * a,
1280 double * rcond,
1281 double * work,
1282 ::types::blas_int * iwork,
1283 ::types::blas_int * info);
1284
1285 void DEAL_II_FORTRAN_MANGLE(ctrcon,
1286 CTRCON)(const char * norm,
1287 const char * uplo,
1288 const char * diag,
1290 const std::complex<float> * a,
1292 float * rcond,
1293 std::complex<float> * work,
1294 float * rwork,
1295 ::types::blas_int * info);
1296
1297 void DEAL_II_FORTRAN_MANGLE(ztrcon,
1298 ZTRCON)(const char * norm,
1299 const char * uplo,
1300 const char * diag,
1302 const std::complex<double> * a,
1304 double * rcond,
1305 std::complex<double> * work,
1306 double * rwork,
1307 ::types::blas_int * info);
1308
1309 void DEAL_II_FORTRAN_MANGLE(strmv,
1310 STRMV)(const char * uplo,
1311 const char * trans,
1312 const char * diag,
1314 const float * a,
1316 float * x,
1318
1319 void DEAL_II_FORTRAN_MANGLE(dtrmv,
1320 DTRMV)(const char * uplo,
1321 const char * trans,
1322 const char * diag,
1324 const double * a,
1326 double * x,
1328
1329 void DEAL_II_FORTRAN_MANGLE(ctrmv,
1330 CTRMV)(const char * uplo,
1331 const char * trans,
1332 const char * diag,
1334 const std::complex<float> * a,
1336 std::complex<float> * x,
1338
1339 void DEAL_II_FORTRAN_MANGLE(ztrmv,
1340 ZTRMV)(const char * uplo,
1341 const char * trans,
1342 const char * diag,
1344 const std::complex<double> * a,
1346 std::complex<double> * x,
1348
1349 void DEAL_II_FORTRAN_MANGLE(strtrs,
1350 STRTRS)(const char * uplo,
1351 const char * trans,
1352 const char * diag,
1355 const float * a,
1357 float * b,
1359 ::types::blas_int * info);
1360
1361 void DEAL_II_FORTRAN_MANGLE(dtrtrs,
1362 DTRTRS)(const char * uplo,
1363 const char * trans,
1364 const char * diag,
1367 const double * a,
1369 double * b,
1371 ::types::blas_int * info);
1372
1373 void DEAL_II_FORTRAN_MANGLE(ctrtrs,
1374 CTRTRS)(const char * uplo,
1375 const char * trans,
1376 const char * diag,
1379 const std::complex<float> * a,
1381 std::complex<float> * b,
1383 ::types::blas_int * info);
1384
1385 void DEAL_II_FORTRAN_MANGLE(ztrtrs,
1386 ZTRTRS)(const char * uplo,
1387 const char * trans,
1388 const char * diag,
1391 const std::complex<double> * a,
1393 std::complex<double> * b,
1395 ::types::blas_int * info);
1396}
1397#endif
1398
1400
1401
1402
1403template <typename number1, typename number2, typename number3>
1404inline void
1406 const number1 *,
1407 const number2 *,
1409 number3 *,
1411{
1412 Assert(false, ExcNotImplemented());
1413}
1414
1415
1416
1417inline void
1419 const float * sa,
1420 const float * sx,
1422 float * sy,
1424{
1425#ifdef DEAL_II_WITH_LAPACK
1426 DEAL_II_FORTRAN_MANGLE(saxpy, SAXPY)(n, sa, sx, incx, sy, incy);
1427#else
1428 (void)n;
1429 (void)sa;
1430 (void)sx;
1431 (void)incx;
1432 (void)sy;
1433 (void)incy;
1434 Assert(false, LAPACKSupport::ExcMissing("saxpy"));
1435#endif // DEAL_II_WITH_LAPACK
1436}
1437
1438
1439
1440inline void
1442 const double * da,
1443 const double * dx,
1445 double * dy,
1447{
1448#ifdef DEAL_II_WITH_LAPACK
1449 DEAL_II_FORTRAN_MANGLE(daxpy, DAXPY)(n, da, dx, incx, dy, incy);
1450#else
1451 (void)n;
1452 (void)da;
1453 (void)dx;
1454 (void)incx;
1455 (void)dy;
1456 (void)incy;
1457 Assert(false, LAPACKSupport::ExcMissing("daxpy"));
1458#endif // DEAL_II_WITH_LAPACK
1459}
1460
1461
1462
1463inline void
1465 const std::complex<float> * ca,
1466 const std::complex<float> * cx,
1468 std::complex<float> * cy,
1470{
1471#ifdef DEAL_II_WITH_LAPACK
1472 DEAL_II_FORTRAN_MANGLE(caxpy, CAXPY)(n, ca, cx, incx, cy, incy);
1473#else
1474 (void)n;
1475 (void)ca;
1476 (void)cx;
1477 (void)incx;
1478 (void)cy;
1479 (void)incy;
1480 Assert(false, LAPACKSupport::ExcMissing("caxpy"));
1481#endif // DEAL_II_WITH_LAPACK
1482}
1483
1484
1485
1486inline void
1488 const std::complex<double> * za,
1489 const std::complex<double> * zx,
1491 std::complex<double> * zy,
1493{
1494#ifdef DEAL_II_WITH_LAPACK
1495 DEAL_II_FORTRAN_MANGLE(zaxpy, ZAXPY)(n, za, zx, incx, zy, incy);
1496#else
1497 (void)n;
1498 (void)za;
1499 (void)zx;
1500 (void)incx;
1501 (void)zy;
1502 (void)incy;
1503 Assert(false, LAPACKSupport::ExcMissing("zaxpy"));
1504#endif // DEAL_II_WITH_LAPACK
1505}
1506
1507
1508
1509template <typename number1,
1510 typename number2,
1511 typename number3,
1512 typename number4,
1513 typename number5,
1514 typename number6>
1515inline void
1516geev(const char *,
1517 const char *,
1519 number1 *,
1521 number2 *,
1522 number3 *,
1523 number4 *,
1525 number5 *,
1527 number6 *,
1530{
1531 Assert(false, ExcNotImplemented());
1532}
1533
1534
1535
1536inline void
1537geev(const char * jobvl,
1538 const char * jobvr,
1540 float * a,
1542 float * wr,
1543 float * wi,
1544 float * vl,
1546 float * vr,
1548 float * work,
1550 ::types::blas_int * info)
1551{
1552#ifdef DEAL_II_WITH_LAPACK
1553 DEAL_II_FORTRAN_MANGLE(sgeev, SGEEV)
1554 (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
1555#else
1556 (void)jobvl;
1557 (void)jobvr;
1558 (void)n;
1559 (void)a;
1560 (void)lda;
1561 (void)wr;
1562 (void)wi;
1563 (void)vl;
1564 (void)ldvl;
1565 (void)vr;
1566 (void)ldvr;
1567 (void)work;
1568 (void)lwork;
1569 (void)info;
1570 Assert(false, LAPACKSupport::ExcMissing("sgeev"));
1571#endif // DEAL_II_WITH_LAPACK
1572}
1573
1574
1575
1576inline void
1577geev(const char * jobvl,
1578 const char * jobvr,
1580 double * a,
1582 double * wr,
1583 double * wi,
1584 double * vl,
1586 double * vr,
1588 double * work,
1590 ::types::blas_int * info)
1591{
1592#ifdef DEAL_II_WITH_LAPACK
1593 DEAL_II_FORTRAN_MANGLE(dgeev, DGEEV)
1594 (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info);
1595#else
1596 (void)jobvl;
1597 (void)jobvr;
1598 (void)n;
1599 (void)a;
1600 (void)lda;
1601 (void)wr;
1602 (void)wi;
1603 (void)vl;
1604 (void)ldvl;
1605 (void)vr;
1606 (void)ldvr;
1607 (void)work;
1608 (void)lwork;
1609 (void)info;
1610 Assert(false, LAPACKSupport::ExcMissing("dgeev"));
1611#endif // DEAL_II_WITH_LAPACK
1612}
1613
1614
1615
1616inline void
1617geev(const char * jobvl,
1618 const char * jobvr,
1620 std::complex<float> * a,
1622 std::complex<float> * w,
1623 std::complex<float> * vl,
1625 std::complex<float> * vr,
1627 std::complex<float> * work,
1629 float * rwork,
1630 ::types::blas_int * info)
1631{
1632#ifdef DEAL_II_WITH_LAPACK
1633 DEAL_II_FORTRAN_MANGLE(cgeev, CGEEV)
1634 (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
1635#else
1636 (void)jobvl;
1637 (void)jobvr;
1638 (void)n;
1639 (void)a;
1640 (void)lda;
1641 (void)w;
1642 (void)vl;
1643 (void)ldvl;
1644 (void)vr;
1645 (void)ldvr;
1646 (void)work;
1647 (void)lwork;
1648 (void)rwork;
1649 (void)info;
1650 Assert(false, LAPACKSupport::ExcMissing("cgeev"));
1651#endif // DEAL_II_WITH_LAPACK
1652}
1653
1654
1655
1656inline void
1657geev(const char * jobvl,
1658 const char * jobvr,
1660 std::complex<double> * a,
1662 std::complex<double> * w,
1663 std::complex<double> * vl,
1665 std::complex<double> * vr,
1667 std::complex<double> * work,
1669 double * rwork,
1670 ::types::blas_int * info)
1671{
1672#ifdef DEAL_II_WITH_LAPACK
1673 DEAL_II_FORTRAN_MANGLE(zgeev, ZGEEV)
1674 (jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info);
1675#else
1676 (void)jobvl;
1677 (void)jobvr;
1678 (void)n;
1679 (void)a;
1680 (void)lda;
1681 (void)w;
1682 (void)vl;
1683 (void)ldvl;
1684 (void)vr;
1685 (void)ldvr;
1686 (void)work;
1687 (void)lwork;
1688 (void)rwork;
1689 (void)info;
1690 Assert(false, LAPACKSupport::ExcMissing("zgeev"));
1691#endif // DEAL_II_WITH_LAPACK
1692}
1693
1694
1695
1696template <typename number1,
1697 typename number2,
1698 typename number3,
1699 typename number4,
1700 typename number5,
1701 typename number6,
1702 typename number7,
1703 typename number8,
1704 typename number9,
1705 typename number10>
1706inline void
1707geevx(const char *,
1708 const char *,
1709 const char *,
1710 const char *,
1712 number1 *,
1714 number2 *,
1715 number3 *,
1716 number4 *,
1718 number5 *,
1722 number6 *,
1723 number7 *,
1724 number8 *,
1725 number9 *,
1726 number10 *,
1730{
1731 Assert(false, ExcNotImplemented());
1732}
1733
1734
1735
1736inline void
1737geevx(const char * balanc,
1738 const char * jobvl,
1739 const char * jobvr,
1740 const char * sense,
1742 float * a,
1744 float * wr,
1745 float * wi,
1746 float * vl,
1748 float * vr,
1750 ::types::blas_int * ilo,
1751 ::types::blas_int * ihi,
1752 float * scale,
1753 float * abnrm,
1754 float * rconde,
1755 float * rcondv,
1756 float * work,
1758 ::types::blas_int * iwork,
1759 ::types::blas_int * info)
1760{
1761#ifdef DEAL_II_WITH_LAPACK
1762 DEAL_II_FORTRAN_MANGLE(sgeevx, SGEEVX)
1763 (balanc,
1764 jobvl,
1765 jobvr,
1766 sense,
1767 n,
1768 a,
1769 lda,
1770 wr,
1771 wi,
1772 vl,
1773 ldvl,
1774 vr,
1775 ldvr,
1776 ilo,
1777 ihi,
1778 scale,
1779 abnrm,
1780 rconde,
1781 rcondv,
1782 work,
1783 lwork,
1784 iwork,
1785 info);
1786#else
1787 (void)balanc;
1788 (void)jobvl;
1789 (void)jobvr;
1790 (void)sense;
1791 (void)n;
1792 (void)a;
1793 (void)lda;
1794 (void)wr;
1795 (void)wi;
1796 (void)vl;
1797 (void)ldvl;
1798 (void)vr;
1799 (void)ldvr;
1800 (void)ilo;
1801 (void)ihi;
1802 (void)scale;
1803 (void)abnrm;
1804 (void)rconde;
1805 (void)rcondv;
1806 (void)work;
1807 (void)lwork;
1808 (void)iwork;
1809 (void)info;
1810 Assert(false, LAPACKSupport::ExcMissing("sgeevx"));
1811#endif // DEAL_II_WITH_LAPACK
1812}
1813
1814
1815
1816inline void
1817geevx(const char * balanc,
1818 const char * jobvl,
1819 const char * jobvr,
1820 const char * sense,
1822 double * a,
1824 double * wr,
1825 double * wi,
1826 double * vl,
1828 double * vr,
1830 ::types::blas_int * ilo,
1831 ::types::blas_int * ihi,
1832 double * scale,
1833 double * abnrm,
1834 double * rconde,
1835 double * rcondv,
1836 double * work,
1838 ::types::blas_int * iwork,
1839 ::types::blas_int * info)
1840{
1841#ifdef DEAL_II_WITH_LAPACK
1842 DEAL_II_FORTRAN_MANGLE(dgeevx, DGEEVX)
1843 (balanc,
1844 jobvl,
1845 jobvr,
1846 sense,
1847 n,
1848 a,
1849 lda,
1850 wr,
1851 wi,
1852 vl,
1853 ldvl,
1854 vr,
1855 ldvr,
1856 ilo,
1857 ihi,
1858 scale,
1859 abnrm,
1860 rconde,
1861 rcondv,
1862 work,
1863 lwork,
1864 iwork,
1865 info);
1866#else
1867 (void)balanc;
1868 (void)jobvl;
1869 (void)jobvr;
1870 (void)sense;
1871 (void)n;
1872 (void)a;
1873 (void)lda;
1874 (void)wr;
1875 (void)wi;
1876 (void)vl;
1877 (void)ldvl;
1878 (void)vr;
1879 (void)ldvr;
1880 (void)ilo;
1881 (void)ihi;
1882 (void)scale;
1883 (void)abnrm;
1884 (void)rconde;
1885 (void)rcondv;
1886 (void)work;
1887 (void)lwork;
1888 (void)iwork;
1889 (void)info;
1890 Assert(false, LAPACKSupport::ExcMissing("dgeevx"));
1891#endif // DEAL_II_WITH_LAPACK
1892}
1893
1894
1895
1896inline void
1897geevx(const char * balanc,
1898 const char * jobvl,
1899 const char * jobvr,
1900 const char * sense,
1902 std::complex<float> * a,
1904 std::complex<float> * w,
1905 std::complex<float> * vl,
1907 std::complex<float> * vr,
1909 ::types::blas_int * ilo,
1910 ::types::blas_int * ihi,
1911 float * scale,
1912 float * abnrm,
1913 float * rconde,
1914 float * rcondv,
1915 std::complex<float> * work,
1917 float * rwork,
1918 ::types::blas_int * info)
1919{
1920#ifdef DEAL_II_WITH_LAPACK
1921 DEAL_II_FORTRAN_MANGLE(cgeevx, CGEEVX)
1922 (balanc,
1923 jobvl,
1924 jobvr,
1925 sense,
1926 n,
1927 a,
1928 lda,
1929 w,
1930 vl,
1931 ldvl,
1932 vr,
1933 ldvr,
1934 ilo,
1935 ihi,
1936 scale,
1937 abnrm,
1938 rconde,
1939 rcondv,
1940 work,
1941 lwork,
1942 rwork,
1943 info);
1944#else
1945 (void)balanc;
1946 (void)jobvl;
1947 (void)jobvr;
1948 (void)sense;
1949 (void)n;
1950 (void)a;
1951 (void)lda;
1952 (void)w;
1953 (void)vl;
1954 (void)ldvl;
1955 (void)vr;
1956 (void)ldvr;
1957 (void)ilo;
1958 (void)ihi;
1959 (void)scale;
1960 (void)abnrm;
1961 (void)rconde;
1962 (void)rcondv;
1963 (void)work;
1964 (void)lwork;
1965 (void)rwork;
1966 (void)info;
1967 Assert(false, LAPACKSupport::ExcMissing("cgeevx"));
1968#endif // DEAL_II_WITH_LAPACK
1969}
1970
1971
1972
1973inline void
1974geevx(const char * balanc,
1975 const char * jobvl,
1976 const char * jobvr,
1977 const char * sense,
1979 std::complex<double> * a,
1981 std::complex<double> * w,
1982 std::complex<double> * vl,
1984 std::complex<double> * vr,
1986 ::types::blas_int * ilo,
1987 ::types::blas_int * ihi,
1988 double * scale,
1989 double * abnrm,
1990 double * rconde,
1991 double * rcondv,
1992 std::complex<double> * work,
1994 double * rwork,
1995 ::types::blas_int * info)
1996{
1997#ifdef DEAL_II_WITH_LAPACK
1998 DEAL_II_FORTRAN_MANGLE(zgeevx, ZGEEVX)
1999 (balanc,
2000 jobvl,
2001 jobvr,
2002 sense,
2003 n,
2004 a,
2005 lda,
2006 w,
2007 vl,
2008 ldvl,
2009 vr,
2010 ldvr,
2011 ilo,
2012 ihi,
2013 scale,
2014 abnrm,
2015 rconde,
2016 rcondv,
2017 work,
2018 lwork,
2019 rwork,
2020 info);
2021#else
2022 (void)balanc;
2023 (void)jobvl;
2024 (void)jobvr;
2025 (void)sense;
2026 (void)n;
2027 (void)a;
2028 (void)lda;
2029 (void)w;
2030 (void)vl;
2031 (void)ldvl;
2032 (void)vr;
2033 (void)ldvr;
2034 (void)ilo;
2035 (void)ihi;
2036 (void)scale;
2037 (void)abnrm;
2038 (void)rconde;
2039 (void)rcondv;
2040 (void)work;
2041 (void)lwork;
2042 (void)rwork;
2043 (void)info;
2044 Assert(false, LAPACKSupport::ExcMissing("zgeevx"));
2045#endif // DEAL_II_WITH_LAPACK
2046}
2047
2048
2049
2050template <typename number1,
2051 typename number2,
2052 typename number3,
2053 typename number4,
2054 typename number5>
2055inline void
2059 number1 *,
2061 number2 *,
2063 number3 *,
2064 const number4 *,
2066 number5 *,
2070{
2071 Assert(false, ExcNotImplemented());
2072}
2073
2074
2075
2076inline void
2080 float * a,
2082 float * b,
2084 float * s,
2085 const float * rcond,
2086 ::types::blas_int * rank,
2087 float * work,
2089 ::types::blas_int * iwork,
2090 ::types::blas_int * info)
2091{
2092#ifdef DEAL_II_WITH_LAPACK
2093 DEAL_II_FORTRAN_MANGLE(sgelsd, SGELSD)
2094 (m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, iwork, info);
2095#else
2096 (void)m;
2097 (void)n;
2098 (void)nrhs;
2099 (void)a;
2100 (void)lda;
2101 (void)b;
2102 (void)ldb;
2103 (void)s;
2104 (void)rcond;
2105 (void)rank;
2106 (void)work;
2107 (void)lwork;
2108 (void)iwork;
2109 (void)info;
2110 Assert(false, LAPACKSupport::ExcMissing("sgelsd"));
2111#endif // DEAL_II_WITH_LAPACK
2112}
2113
2114
2115
2116inline void
2120 double * a,
2122 double * b,
2124 double * s,
2125 const double * rcond,
2126 ::types::blas_int * rank,
2127 double * work,
2129 ::types::blas_int * iwork,
2130 ::types::blas_int * info)
2131{
2132#ifdef DEAL_II_WITH_LAPACK
2133 DEAL_II_FORTRAN_MANGLE(dgelsd, DGELSD)
2134 (m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, iwork, info);
2135#else
2136 (void)m;
2137 (void)n;
2138 (void)nrhs;
2139 (void)a;
2140 (void)lda;
2141 (void)b;
2142 (void)ldb;
2143 (void)s;
2144 (void)rcond;
2145 (void)rank;
2146 (void)work;
2147 (void)lwork;
2148 (void)iwork;
2149 (void)info;
2150 Assert(false, LAPACKSupport::ExcMissing("dgelsd"));
2151#endif // DEAL_II_WITH_LAPACK
2152}
2153
2154
2155
2156inline void
2160 std::complex<float> * a,
2162 std::complex<float> * b,
2164 float * s,
2165 const float * rcond,
2166 ::types::blas_int * rank,
2167 std::complex<float> * work,
2169 float * rwork,
2170 ::types::blas_int * iwork,
2171 ::types::blas_int * info)
2172{
2173#ifdef DEAL_II_WITH_LAPACK
2174 DEAL_II_FORTRAN_MANGLE(cgelsd, CGELSD)
2175 (m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, rwork, iwork, info);
2176#else
2177 (void)m;
2178 (void)n;
2179 (void)nrhs;
2180 (void)a;
2181 (void)lda;
2182 (void)b;
2183 (void)ldb;
2184 (void)s;
2185 (void)rcond;
2186 (void)rank;
2187 (void)work;
2188 (void)lwork;
2189 (void)rwork;
2190 (void)iwork;
2191 (void)info;
2192 Assert(false, LAPACKSupport::ExcMissing("cgelsd"));
2193#endif // DEAL_II_WITH_LAPACK
2194}
2195
2196
2197
2198inline void
2202 std::complex<double> * a,
2204 std::complex<double> * b,
2206 double * s,
2207 const double * rcond,
2208 ::types::blas_int * rank,
2209 std::complex<double> * work,
2211 double * rwork,
2212 ::types::blas_int * iwork,
2213 ::types::blas_int * info)
2214{
2215#ifdef DEAL_II_WITH_LAPACK
2216 DEAL_II_FORTRAN_MANGLE(zgelsd, ZGELSD)
2217 (m, n, nrhs, a, lda, b, ldb, s, rcond, rank, work, lwork, rwork, iwork, info);
2218#else
2219 (void)m;
2220 (void)n;
2221 (void)nrhs;
2222 (void)a;
2223 (void)lda;
2224 (void)b;
2225 (void)ldb;
2226 (void)s;
2227 (void)rcond;
2228 (void)rank;
2229 (void)work;
2230 (void)lwork;
2231 (void)rwork;
2232 (void)iwork;
2233 (void)info;
2234 Assert(false, LAPACKSupport::ExcMissing("zgelsd"));
2235#endif // DEAL_II_WITH_LAPACK
2236}
2237
2238
2239
2240template <typename number1,
2241 typename number2,
2242 typename number3,
2243 typename number4,
2244 typename number5>
2245inline void
2246gemm(const char *,
2247 const char *,
2251 const number1 *,
2252 const number2 *,
2254 const number3 *,
2256 const number4 *,
2257 number5 *,
2259{
2260 Assert(false, ExcNotImplemented());
2261}
2262
2263
2264
2265inline void
2266gemm(const char * transa,
2267 const char * transb,
2271 const float * alpha,
2272 const float * a,
2274 const float * b,
2276 const float * beta,
2277 float * c,
2279{
2280#ifdef DEAL_II_WITH_LAPACK
2281 DEAL_II_FORTRAN_MANGLE(sgemm, SGEMM)
2282 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2283#else
2284 (void)transa;
2285 (void)transb;
2286 (void)m;
2287 (void)n;
2288 (void)k;
2289 (void)alpha;
2290 (void)a;
2291 (void)lda;
2292 (void)b;
2293 (void)ldb;
2294 (void)beta;
2295 (void)c;
2296 (void)ldc;
2297 Assert(false, LAPACKSupport::ExcMissing("sgemm"));
2298#endif // DEAL_II_WITH_LAPACK
2299}
2300
2301
2302
2303inline void
2304gemm(const char * transa,
2305 const char * transb,
2309 const double * alpha,
2310 const double * a,
2312 const double * b,
2314 const double * beta,
2315 double * c,
2317{
2318#ifdef DEAL_II_WITH_LAPACK
2319 DEAL_II_FORTRAN_MANGLE(dgemm, DGEMM)
2320 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2321#else
2322 (void)transa;
2323 (void)transb;
2324 (void)m;
2325 (void)n;
2326 (void)k;
2327 (void)alpha;
2328 (void)a;
2329 (void)lda;
2330 (void)b;
2331 (void)ldb;
2332 (void)beta;
2333 (void)c;
2334 (void)ldc;
2335 Assert(false, LAPACKSupport::ExcMissing("dgemm"));
2336#endif // DEAL_II_WITH_LAPACK
2337}
2338
2339
2340
2341inline void
2342gemm(const char * transa,
2343 const char * transb,
2347 const std::complex<float> * alpha,
2348 const std::complex<float> * a,
2350 const std::complex<float> * b,
2352 const std::complex<float> * beta,
2353 std::complex<float> * c,
2355{
2356#ifdef DEAL_II_WITH_LAPACK
2357 DEAL_II_FORTRAN_MANGLE(cgemm, CGEMM)
2358 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2359#else
2360 (void)transa;
2361 (void)transb;
2362 (void)m;
2363 (void)n;
2364 (void)k;
2365 (void)alpha;
2366 (void)a;
2367 (void)lda;
2368 (void)b;
2369 (void)ldb;
2370 (void)beta;
2371 (void)c;
2372 (void)ldc;
2373 Assert(false, LAPACKSupport::ExcMissing("cgemm"));
2374#endif // DEAL_II_WITH_LAPACK
2375}
2376
2377
2378
2379inline void
2380gemm(const char * transa,
2381 const char * transb,
2385 const std::complex<double> * alpha,
2386 const std::complex<double> * a,
2388 const std::complex<double> * b,
2390 const std::complex<double> * beta,
2391 std::complex<double> * c,
2393{
2394#ifdef DEAL_II_WITH_LAPACK
2395 DEAL_II_FORTRAN_MANGLE(zgemm, ZGEMM)
2396 (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc);
2397#else
2398 (void)transa;
2399 (void)transb;
2400 (void)m;
2401 (void)n;
2402 (void)k;
2403 (void)alpha;
2404 (void)a;
2405 (void)lda;
2406 (void)b;
2407 (void)ldb;
2408 (void)beta;
2409 (void)c;
2410 (void)ldc;
2411 Assert(false, LAPACKSupport::ExcMissing("zgemm"));
2412#endif // DEAL_II_WITH_LAPACK
2413}
2414
2415
2416
2417template <typename number1,
2418 typename number2,
2419 typename number3,
2420 typename number4,
2421 typename number5>
2422inline void
2423gemv(const char *,
2426 const number1 *,
2427 const number2 *,
2429 const number3 *,
2431 const number4 *,
2432 number5 *,
2434{
2435 Assert(false, ExcNotImplemented());
2436}
2437
2438
2439
2440inline void
2441gemv(const char * trans,
2444 const float * alpha,
2445 const float * a,
2447 const float * x,
2449 const float * beta,
2450 float * y,
2452{
2453#ifdef DEAL_II_WITH_LAPACK
2454 DEAL_II_FORTRAN_MANGLE(sgemv, SGEMV)
2455 (trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2456#else
2457 (void)trans;
2458 (void)m;
2459 (void)n;
2460 (void)alpha;
2461 (void)a;
2462 (void)lda;
2463 (void)x;
2464 (void)incx;
2465 (void)beta;
2466 (void)y;
2467 (void)incy;
2468 Assert(false, LAPACKSupport::ExcMissing("sgemv"));
2469#endif // DEAL_II_WITH_LAPACK
2470}
2471
2472
2473
2474inline void
2475gemv(const char * trans,
2478 const double * alpha,
2479 const double * a,
2481 const double * x,
2483 const double * beta,
2484 double * y,
2486{
2487#ifdef DEAL_II_WITH_LAPACK
2488 DEAL_II_FORTRAN_MANGLE(dgemv, DGEMV)
2489 (trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2490#else
2491 (void)trans;
2492 (void)m;
2493 (void)n;
2494 (void)alpha;
2495 (void)a;
2496 (void)lda;
2497 (void)x;
2498 (void)incx;
2499 (void)beta;
2500 (void)y;
2501 (void)incy;
2502 Assert(false, LAPACKSupport::ExcMissing("dgemv"));
2503#endif // DEAL_II_WITH_LAPACK
2504}
2505
2506
2507
2508inline void
2509gemv(const char * trans,
2512 const std::complex<float> * alpha,
2513 const std::complex<float> * a,
2515 const std::complex<float> * x,
2517 const std::complex<float> * beta,
2518 std::complex<float> * y,
2520{
2521#ifdef DEAL_II_WITH_LAPACK
2522 DEAL_II_FORTRAN_MANGLE(cgemv, CGEMV)
2523 (trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2524#else
2525 (void)trans;
2526 (void)m;
2527 (void)n;
2528 (void)alpha;
2529 (void)a;
2530 (void)lda;
2531 (void)x;
2532 (void)incx;
2533 (void)beta;
2534 (void)y;
2535 (void)incy;
2536 Assert(false, LAPACKSupport::ExcMissing("cgemv"));
2537#endif // DEAL_II_WITH_LAPACK
2538}
2539
2540
2541
2542inline void
2543gemv(const char * trans,
2546 const std::complex<double> * alpha,
2547 const std::complex<double> * a,
2549 const std::complex<double> * x,
2551 const std::complex<double> * beta,
2552 std::complex<double> * y,
2554{
2555#ifdef DEAL_II_WITH_LAPACK
2556 DEAL_II_FORTRAN_MANGLE(zgemv, ZGEMV)
2557 (trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
2558#else
2559 (void)trans;
2560 (void)m;
2561 (void)n;
2562 (void)alpha;
2563 (void)a;
2564 (void)lda;
2565 (void)x;
2566 (void)incx;
2567 (void)beta;
2568 (void)y;
2569 (void)incy;
2570 Assert(false, LAPACKSupport::ExcMissing("zgemv"));
2571#endif // DEAL_II_WITH_LAPACK
2572}
2573
2574
2575
2576template <typename number1, typename number2, typename number3>
2577inline void
2580 number1 *,
2582 number2 *,
2583 number3 *,
2586{
2587 Assert(false, ExcNotImplemented());
2588}
2589
2590
2591
2592inline void
2595 float * a,
2597 float * tau,
2598 float * work,
2600 ::types::blas_int * info)
2601{
2602#ifdef DEAL_II_WITH_LAPACK
2603 DEAL_II_FORTRAN_MANGLE(sgeqrf, SGEQRF)(m, n, a, lda, tau, work, lwork, info);
2604#else
2605 (void)m;
2606 (void)n;
2607 (void)a;
2608 (void)lda;
2609 (void)tau;
2610 (void)work;
2611 (void)lwork;
2612 (void)info;
2613 Assert(false, LAPACKSupport::ExcMissing("sgeqrf"));
2614#endif // DEAL_II_WITH_LAPACK
2615}
2616
2617
2618
2619inline void
2622 double * a,
2624 double * tau,
2625 double * work,
2627 ::types::blas_int * info)
2628{
2629#ifdef DEAL_II_WITH_LAPACK
2630 DEAL_II_FORTRAN_MANGLE(dgeqrf, DGEQRF)(m, n, a, lda, tau, work, lwork, info);
2631#else
2632 (void)m;
2633 (void)n;
2634 (void)a;
2635 (void)lda;
2636 (void)tau;
2637 (void)work;
2638 (void)lwork;
2639 (void)info;
2640 Assert(false, LAPACKSupport::ExcMissing("dgeqrf"));
2641#endif // DEAL_II_WITH_LAPACK
2642}
2643
2644
2645
2646inline void
2649 std::complex<float> * a,
2651 std::complex<float> * tau,
2652 std::complex<float> * work,
2654 ::types::blas_int * info)
2655{
2656#ifdef DEAL_II_WITH_LAPACK
2657 DEAL_II_FORTRAN_MANGLE(cgeqrf, CGEQRF)(m, n, a, lda, tau, work, lwork, info);
2658#else
2659 (void)m;
2660 (void)n;
2661 (void)a;
2662 (void)lda;
2663 (void)tau;
2664 (void)work;
2665 (void)lwork;
2666 (void)info;
2667 Assert(false, LAPACKSupport::ExcMissing("cgeqrf"));
2668#endif // DEAL_II_WITH_LAPACK
2669}
2670
2671
2672
2673inline void
2676 std::complex<double> * a,
2678 std::complex<double> * tau,
2679 std::complex<double> * work,
2681 ::types::blas_int * info)
2682{
2683#ifdef DEAL_II_WITH_LAPACK
2684 DEAL_II_FORTRAN_MANGLE(zgeqrf, ZGEQRF)(m, n, a, lda, tau, work, lwork, info);
2685#else
2686 (void)m;
2687 (void)n;
2688 (void)a;
2689 (void)lda;
2690 (void)tau;
2691 (void)work;
2692 (void)lwork;
2693 (void)info;
2694 Assert(false, LAPACKSupport::ExcMissing("zgeqrf"));
2695#endif // DEAL_II_WITH_LAPACK
2696}
2697
2698
2699
2700template <typename number1,
2701 typename number2,
2702 typename number3,
2703 typename number4,
2704 typename number5>
2705inline void
2706gesdd(const char *,
2709 number1 *,
2711 number2 *,
2712 number3 *,
2714 number4 *,
2716 number5 *,
2720{
2721 Assert(false, ExcNotImplemented());
2722}
2723
2724
2725
2726inline void
2727gesdd(const char * jobz,
2730 float * a,
2732 float * s,
2733 float * u,
2735 float * vt,
2737 float * work,
2739 ::types::blas_int * iwork,
2740 ::types::blas_int * info)
2741{
2742#ifdef DEAL_II_WITH_LAPACK
2743 DEAL_II_FORTRAN_MANGLE(sgesdd, SGESDD)
2744 (jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info);
2745#else
2746 (void)jobz;
2747 (void)m;
2748 (void)n;
2749 (void)a;
2750 (void)lda;
2751 (void)s;
2752 (void)u;
2753 (void)ldu;
2754 (void)vt;
2755 (void)ldvt;
2756 (void)work;
2757 (void)lwork;
2758 (void)iwork;
2759 (void)info;
2760 Assert(false, LAPACKSupport::ExcMissing("sgesdd"));
2761#endif // DEAL_II_WITH_LAPACK
2762}
2763
2764
2765
2766inline void
2767gesdd(const char * jobz,
2770 double * a,
2772 double * s,
2773 double * u,
2775 double * vt,
2777 double * work,
2779 ::types::blas_int * iwork,
2780 ::types::blas_int * info)
2781{
2782#ifdef DEAL_II_WITH_LAPACK
2783 DEAL_II_FORTRAN_MANGLE(dgesdd, DGESDD)
2784 (jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info);
2785#else
2786 (void)jobz;
2787 (void)m;
2788 (void)n;
2789 (void)a;
2790 (void)lda;
2791 (void)s;
2792 (void)u;
2793 (void)ldu;
2794 (void)vt;
2795 (void)ldvt;
2796 (void)work;
2797 (void)lwork;
2798 (void)iwork;
2799 (void)info;
2800 Assert(false, LAPACKSupport::ExcMissing("dgesdd"));
2801#endif // DEAL_II_WITH_LAPACK
2802}
2803
2804
2805
2806inline void
2807gesdd(const char * jobz,
2810 std::complex<float> * a,
2812 float * s,
2813 std::complex<float> * u,
2815 std::complex<float> * vt,
2817 std::complex<float> * work,
2819 float * rwork,
2820 ::types::blas_int * iwork,
2821 ::types::blas_int * info)
2822{
2823#ifdef DEAL_II_WITH_LAPACK
2824 DEAL_II_FORTRAN_MANGLE(cgesdd, CGESDD)
2825 (jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info);
2826#else
2827 (void)jobz;
2828 (void)m;
2829 (void)n;
2830 (void)a;
2831 (void)lda;
2832 (void)s;
2833 (void)u;
2834 (void)ldu;
2835 (void)vt;
2836 (void)ldvt;
2837 (void)work;
2838 (void)lwork;
2839 (void)rwork;
2840 (void)iwork;
2841 (void)info;
2842 Assert(false, LAPACKSupport::ExcMissing("cgesdd"));
2843#endif // DEAL_II_WITH_LAPACK
2844}
2845
2846
2847
2848inline void
2849gesdd(const char * jobz,
2852 std::complex<double> * a,
2854 double * s,
2855 std::complex<double> * u,
2857 std::complex<double> * vt,
2859 std::complex<double> * work,
2861 double * rwork,
2862 ::types::blas_int * iwork,
2863 ::types::blas_int * info)
2864{
2865#ifdef DEAL_II_WITH_LAPACK
2866 DEAL_II_FORTRAN_MANGLE(zgesdd, ZGESDD)
2867 (jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info);
2868#else
2869 (void)jobz;
2870 (void)m;
2871 (void)n;
2872 (void)a;
2873 (void)lda;
2874 (void)s;
2875 (void)u;
2876 (void)ldu;
2877 (void)vt;
2878 (void)ldvt;
2879 (void)work;
2880 (void)lwork;
2881 (void)rwork;
2882 (void)iwork;
2883 (void)info;
2884 Assert(false, LAPACKSupport::ExcMissing("zgesdd"));
2885#endif // DEAL_II_WITH_LAPACK
2886}
2887
2888
2889
2890template <typename number1,
2891 typename number2,
2892 typename number3,
2893 typename number4,
2894 typename number5>
2895inline void
2896gesvd(const char *,
2897 const char *,
2900 number1 *,
2902 number2 *,
2903 number3 *,
2905 number4 *,
2907 number5 *,
2910{
2911 Assert(false, ExcNotImplemented());
2912}
2913
2914
2915
2916inline void
2917gesvd(const char * jobu,
2918 const char * jobvt,
2921 float * a,
2923 float * s,
2924 float * u,
2926 float * vt,
2928 float * work,
2930 ::types::blas_int * info)
2931{
2932#ifdef DEAL_II_WITH_LAPACK
2933 DEAL_II_FORTRAN_MANGLE(sgesvd, SGESVD)
2934 (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
2935#else
2936 (void)jobu;
2937 (void)jobvt;
2938 (void)m;
2939 (void)n;
2940 (void)a;
2941 (void)lda;
2942 (void)s;
2943 (void)u;
2944 (void)ldu;
2945 (void)vt;
2946 (void)ldvt;
2947 (void)work;
2948 (void)lwork;
2949 (void)info;
2950 Assert(false, LAPACKSupport::ExcMissing("sgesvd"));
2951#endif // DEAL_II_WITH_LAPACK
2952}
2953
2954
2955
2956inline void
2957gesvd(const char * jobu,
2958 const char * jobvt,
2961 double * a,
2963 double * s,
2964 double * u,
2966 double * vt,
2968 double * work,
2970 ::types::blas_int * info)
2971{
2972#ifdef DEAL_II_WITH_LAPACK
2973 DEAL_II_FORTRAN_MANGLE(dgesvd, DGESVD)
2974 (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info);
2975#else
2976 (void)jobu;
2977 (void)jobvt;
2978 (void)m;
2979 (void)n;
2980 (void)a;
2981 (void)lda;
2982 (void)s;
2983 (void)u;
2984 (void)ldu;
2985 (void)vt;
2986 (void)ldvt;
2987 (void)work;
2988 (void)lwork;
2989 (void)info;
2990 Assert(false, LAPACKSupport::ExcMissing("dgesvd"));
2991#endif // DEAL_II_WITH_LAPACK
2992}
2993
2994
2995
2996inline void
2997gesvd(const char * jobu,
2998 const char * jobvt,
3001 std::complex<float> * a,
3003 float * s,
3004 std::complex<float> * u,
3006 std::complex<float> * vt,
3008 std::complex<float> * work,
3010 float * rwork,
3011 ::types::blas_int * info)
3012{
3013#ifdef DEAL_II_WITH_LAPACK
3014 DEAL_II_FORTRAN_MANGLE(cgesvd, CGESVD)
3015 (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
3016#else
3017 (void)jobu;
3018 (void)jobvt;
3019 (void)m;
3020 (void)n;
3021 (void)a;
3022 (void)lda;
3023 (void)s;
3024 (void)u;
3025 (void)ldu;
3026 (void)vt;
3027 (void)ldvt;
3028 (void)work;
3029 (void)lwork;
3030 (void)rwork;
3031 (void)info;
3032 Assert(false, LAPACKSupport::ExcMissing("cgesvd"));
3033#endif // DEAL_II_WITH_LAPACK
3034}
3035
3036
3037
3038inline void
3039gesvd(const char * jobu,
3040 const char * jobvt,
3043 std::complex<double> * a,
3045 double * s,
3046 std::complex<double> * u,
3048 std::complex<double> * vt,
3050 std::complex<double> * work,
3052 double * rwork,
3053 ::types::blas_int * info)
3054{
3055#ifdef DEAL_II_WITH_LAPACK
3056 DEAL_II_FORTRAN_MANGLE(zgesvd, ZGESVD)
3057 (jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info);
3058#else
3059 (void)jobu;
3060 (void)jobvt;
3061 (void)m;
3062 (void)n;
3063 (void)a;
3064 (void)lda;
3065 (void)s;
3066 (void)u;
3067 (void)ldu;
3068 (void)vt;
3069 (void)ldvt;
3070 (void)work;
3071 (void)lwork;
3072 (void)rwork;
3073 (void)info;
3074 Assert(false, LAPACKSupport::ExcMissing("zgesvd"));
3075#endif // DEAL_II_WITH_LAPACK
3076}
3077
3078
3079
3080template <typename number1>
3081inline void
3084 number1 *,
3088{
3089 Assert(false, ExcNotImplemented());
3090}
3091
3092
3093
3094inline void
3097 float * a,
3099 ::types::blas_int * ipiv,
3100 ::types::blas_int * info)
3101{
3102#ifdef DEAL_II_WITH_LAPACK
3103 DEAL_II_FORTRAN_MANGLE(sgetrf, SGETRF)(m, n, a, lda, ipiv, info);
3104#else
3105 (void)m;
3106 (void)n;
3107 (void)a;
3108 (void)lda;
3109 (void)ipiv;
3110 (void)info;
3111 Assert(false, LAPACKSupport::ExcMissing("sgetrf"));
3112#endif // DEAL_II_WITH_LAPACK
3113}
3114
3115
3116
3117inline void
3120 double * a,
3122 ::types::blas_int * ipiv,
3123 ::types::blas_int * info)
3124{
3125#ifdef DEAL_II_WITH_LAPACK
3126 DEAL_II_FORTRAN_MANGLE(dgetrf, DGETRF)(m, n, a, lda, ipiv, info);
3127#else
3128 (void)m;
3129 (void)n;
3130 (void)a;
3131 (void)lda;
3132 (void)ipiv;
3133 (void)info;
3134 Assert(false, LAPACKSupport::ExcMissing("dgetrf"));
3135#endif // DEAL_II_WITH_LAPACK
3136}
3137
3138
3139
3140inline void
3143 std::complex<float> * a,
3145 ::types::blas_int * ipiv,
3146 ::types::blas_int * info)
3147{
3148#ifdef DEAL_II_WITH_LAPACK
3149 DEAL_II_FORTRAN_MANGLE(cgetrf, CGETRF)(m, n, a, lda, ipiv, info);
3150#else
3151 (void)m;
3152 (void)n;
3153 (void)a;
3154 (void)lda;
3155 (void)ipiv;
3156 (void)info;
3157 Assert(false, LAPACKSupport::ExcMissing("cgetrf"));
3158#endif // DEAL_II_WITH_LAPACK
3159}
3160
3161
3162
3163inline void
3166 std::complex<double> * a,
3168 ::types::blas_int * ipiv,
3169 ::types::blas_int * info)
3170{
3171#ifdef DEAL_II_WITH_LAPACK
3172 DEAL_II_FORTRAN_MANGLE(zgetrf, ZGETRF)(m, n, a, lda, ipiv, info);
3173#else
3174 (void)m;
3175 (void)n;
3176 (void)a;
3177 (void)lda;
3178 (void)ipiv;
3179 (void)info;
3180 Assert(false, LAPACKSupport::ExcMissing("zgetrf"));
3181#endif // DEAL_II_WITH_LAPACK
3182}
3183
3184
3185
3186template <typename number1, typename number2>
3187inline void
3189 number1 *,
3192 number2 *,
3195{
3196 Assert(false, ExcNotImplemented());
3197}
3198
3199
3200
3201inline void
3203 float * a,
3206 float * work,
3208 ::types::blas_int * info)
3209{
3210#ifdef DEAL_II_WITH_LAPACK
3211 DEAL_II_FORTRAN_MANGLE(sgetri, SGETRI)(n, a, lda, ipiv, work, lwork, info);
3212#else
3213 (void)n;
3214 (void)a;
3215 (void)lda;
3216 (void)ipiv;
3217 (void)work;
3218 (void)lwork;
3219 (void)info;
3220 Assert(false, LAPACKSupport::ExcMissing("sgetri"));
3221#endif // DEAL_II_WITH_LAPACK
3222}
3223
3224
3225
3226inline void
3228 double * a,
3231 double * work,
3233 ::types::blas_int * info)
3234{
3235#ifdef DEAL_II_WITH_LAPACK
3236 DEAL_II_FORTRAN_MANGLE(dgetri, DGETRI)(n, a, lda, ipiv, work, lwork, info);
3237#else
3238 (void)n;
3239 (void)a;
3240 (void)lda;
3241 (void)ipiv;
3242 (void)work;
3243 (void)lwork;
3244 (void)info;
3245 Assert(false, LAPACKSupport::ExcMissing("dgetri"));
3246#endif // DEAL_II_WITH_LAPACK
3247}
3248
3249
3250
3251inline void
3253 std::complex<float> * a,
3256 std::complex<float> * work,
3258 ::types::blas_int * info)
3259{
3260#ifdef DEAL_II_WITH_LAPACK
3261 DEAL_II_FORTRAN_MANGLE(cgetri, CGETRI)(n, a, lda, ipiv, work, lwork, info);
3262#else
3263 (void)n;
3264 (void)a;
3265 (void)lda;
3266 (void)ipiv;
3267 (void)work;
3268 (void)lwork;
3269 (void)info;
3270 Assert(false, LAPACKSupport::ExcMissing("cgetri"));
3271#endif // DEAL_II_WITH_LAPACK
3272}
3273
3274
3275
3276inline void
3278 std::complex<double> * a,
3281 std::complex<double> * work,
3283 ::types::blas_int * info)
3284{
3285#ifdef DEAL_II_WITH_LAPACK
3286 DEAL_II_FORTRAN_MANGLE(zgetri, ZGETRI)(n, a, lda, ipiv, work, lwork, info);
3287#else
3288 (void)n;
3289 (void)a;
3290 (void)lda;
3291 (void)ipiv;
3292 (void)work;
3293 (void)lwork;
3294 (void)info;
3295 Assert(false, LAPACKSupport::ExcMissing("zgetri"));
3296#endif // DEAL_II_WITH_LAPACK
3297}
3298
3299
3300
3301template <typename number1, typename number2>
3302inline void
3303getrs(const char *,
3306 const number1 *,
3309 number2 *,
3312{
3313 Assert(false, ExcNotImplemented());
3314}
3315
3316
3317
3318inline void
3319getrs(const char * trans,
3322 const float * a,
3325 float * b,
3327 ::types::blas_int * info)
3328{
3329#ifdef DEAL_II_WITH_LAPACK
3330 DEAL_II_FORTRAN_MANGLE(sgetrs, SGETRS)
3331 (trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3332#else
3333 (void)trans;
3334 (void)n;
3335 (void)nrhs;
3336 (void)a;
3337 (void)lda;
3338 (void)ipiv;
3339 (void)b;
3340 (void)ldb;
3341 (void)info;
3342 Assert(false, LAPACKSupport::ExcMissing("sgetrs"));
3343#endif // DEAL_II_WITH_LAPACK
3344}
3345
3346
3347
3348inline void
3349getrs(const char * trans,
3352 const double * a,
3355 double * b,
3357 ::types::blas_int * info)
3358{
3359#ifdef DEAL_II_WITH_LAPACK
3360 DEAL_II_FORTRAN_MANGLE(dgetrs, DGETRS)
3361 (trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3362#else
3363 (void)trans;
3364 (void)n;
3365 (void)nrhs;
3366 (void)a;
3367 (void)lda;
3368 (void)ipiv;
3369 (void)b;
3370 (void)ldb;
3371 (void)info;
3372 Assert(false, LAPACKSupport::ExcMissing("dgetrs"));
3373#endif // DEAL_II_WITH_LAPACK
3374}
3375
3376
3377
3378inline void
3379getrs(const char * trans,
3382 const std::complex<float> * a,
3385 std::complex<float> * b,
3387 ::types::blas_int * info)
3388{
3389#ifdef DEAL_II_WITH_LAPACK
3390 DEAL_II_FORTRAN_MANGLE(cgetrs, CGETRS)
3391 (trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3392#else
3393 (void)trans;
3394 (void)n;
3395 (void)nrhs;
3396 (void)a;
3397 (void)lda;
3398 (void)ipiv;
3399 (void)b;
3400 (void)ldb;
3401 (void)info;
3402 Assert(false, LAPACKSupport::ExcMissing("cgetrs"));
3403#endif // DEAL_II_WITH_LAPACK
3404}
3405
3406
3407
3408inline void
3409getrs(const char * trans,
3412 const std::complex<double> * a,
3415 std::complex<double> * b,
3417 ::types::blas_int * info)
3418{
3419#ifdef DEAL_II_WITH_LAPACK
3420 DEAL_II_FORTRAN_MANGLE(zgetrs, ZGETRS)
3421 (trans, n, nrhs, a, lda, ipiv, b, ldb, info);
3422#else
3423 (void)trans;
3424 (void)n;
3425 (void)nrhs;
3426 (void)a;
3427 (void)lda;
3428 (void)ipiv;
3429 (void)b;
3430 (void)ldb;
3431 (void)info;
3432 Assert(false, LAPACKSupport::ExcMissing("zgetrs"));
3433#endif // DEAL_II_WITH_LAPACK
3434}
3435
3436
3437
3438template <typename number1>
3439inline number1
3440lamch(const char *)
3441{
3442 Assert(false, ExcNotImplemented());
3443 return number1();
3444}
3445
3446
3447
3448template <>
3449inline float
3450lamch(const char *cmach)
3451{
3452#ifdef DEAL_II_WITH_LAPACK
3453 return DEAL_II_FORTRAN_MANGLE(slamch, SLAMCH)(cmach);
3454#else
3455 (void)cmach;
3456 Assert(false, LAPACKSupport::ExcMissing("slamch"));
3457 return float();
3458#endif // DEAL_II_WITH_LAPACK
3459}
3460
3461
3462
3463template <>
3464inline double
3465lamch(const char *cmach)
3466{
3467#ifdef DEAL_II_WITH_LAPACK
3468 return DEAL_II_FORTRAN_MANGLE(dlamch, DLAMCH)(cmach);
3469#else
3470 (void)cmach;
3471 Assert(false, LAPACKSupport::ExcMissing("dlamch"));
3472 return double();
3473#endif // DEAL_II_WITH_LAPACK
3474}
3475
3476
3477
3478template <typename number1, typename number2>
3479inline number1
3480lange(const char *,
3483 const number1 *,
3485 number2 *)
3486{
3487 Assert(false, ExcNotImplemented());
3488 return number1();
3489}
3490
3491
3492
3493inline float
3494lange(const char * norm,
3497 const float * a,
3499 float * work)
3500{
3501#ifdef DEAL_II_WITH_LAPACK
3502 return DEAL_II_FORTRAN_MANGLE(slange, SLANGE)(norm, m, n, a, lda, work);
3503#else
3504 (void)norm;
3505 (void)m;
3506 (void)n;
3507 (void)a;
3508 (void)lda;
3509 (void)work;
3510 Assert(false, LAPACKSupport::ExcMissing("slange"));
3511 return float();
3512#endif // DEAL_II_WITH_LAPACK
3513}
3514
3515
3516
3517inline double
3518lange(const char * norm,
3521 const double * a,
3523 double * work)
3524{
3525#ifdef DEAL_II_WITH_LAPACK
3526 return DEAL_II_FORTRAN_MANGLE(dlange, DLANGE)(norm, m, n, a, lda, work);
3527#else
3528 (void)norm;
3529 (void)m;
3530 (void)n;
3531 (void)a;
3532 (void)lda;
3533 (void)work;
3534 Assert(false, LAPACKSupport::ExcMissing("dlange"));
3535 return double();
3536#endif // DEAL_II_WITH_LAPACK
3537}
3538
3539
3540
3541inline float
3542lange(const char * norm,
3545 const std::complex<float> * a,
3547 float * work)
3548{
3549#ifdef DEAL_II_WITH_LAPACK
3550 return DEAL_II_FORTRAN_MANGLE(clange, CLANGE)(norm, m, n, a, lda, work);
3551#else
3552 (void)norm;
3553 (void)m;
3554 (void)n;
3555 (void)a;
3556 (void)lda;
3557 (void)work;
3558 Assert(false, LAPACKSupport::ExcMissing("clange"));
3559 return float();
3560#endif // DEAL_II_WITH_LAPACK
3561}
3562
3563
3564
3565inline double
3566lange(const char * norm,
3569 const std::complex<double> * a,
3571 double * work)
3572{
3573#ifdef DEAL_II_WITH_LAPACK
3574 return DEAL_II_FORTRAN_MANGLE(zlange, ZLANGE)(norm, m, n, a, lda, work);
3575#else
3576 (void)norm;
3577 (void)m;
3578 (void)n;
3579 (void)a;
3580 (void)lda;
3581 (void)work;
3582 Assert(false, LAPACKSupport::ExcMissing("zlange"));
3583 return double();
3584#endif // DEAL_II_WITH_LAPACK
3585}
3586
3587
3588
3589template <typename number1, typename number2>
3590inline number1
3591lansy(const char *,
3592 const char *,
3594 const number1 *,
3596 number2 *)
3597{
3598 Assert(false, ExcNotImplemented());
3599 return number1();
3600}
3601
3602
3603
3604inline float
3605lansy(const char * norm,
3606 const char * uplo,
3608 const float * a,
3610 float * work)
3611{
3612#ifdef DEAL_II_WITH_LAPACK
3613 return DEAL_II_FORTRAN_MANGLE(slansy, SLANSY)(norm, uplo, n, a, lda, work);
3614#else
3615 (void)norm;
3616 (void)uplo;
3617 (void)n;
3618 (void)a;
3619 (void)lda;
3620 (void)work;
3621 Assert(false, LAPACKSupport::ExcMissing("slansy"));
3622 return float();
3623#endif // DEAL_II_WITH_LAPACK
3624}
3625
3626
3627
3628inline double
3629lansy(const char * norm,
3630 const char * uplo,
3632 const double * a,
3634 double * work)
3635{
3636#ifdef DEAL_II_WITH_LAPACK
3637 return DEAL_II_FORTRAN_MANGLE(dlansy, DLANSY)(norm, uplo, n, a, lda, work);
3638#else
3639 (void)norm;
3640 (void)uplo;
3641 (void)n;
3642 (void)a;
3643 (void)lda;
3644 (void)work;
3645 Assert(false, LAPACKSupport::ExcMissing("dlansy"));
3646 return double();
3647#endif // DEAL_II_WITH_LAPACK
3648}
3649
3650
3651
3652inline float
3653lansy(const char * norm,
3654 const char * uplo,
3656 const std::complex<float> * a,
3658 float * work)
3659{
3660#ifdef DEAL_II_WITH_LAPACK
3661 return DEAL_II_FORTRAN_MANGLE(clansy, CLANSY)(norm, uplo, n, a, lda, work);
3662#else
3663 (void)norm;
3664 (void)uplo;
3665 (void)n;
3666 (void)a;
3667 (void)lda;
3668 (void)work;
3669 Assert(false, LAPACKSupport::ExcMissing("clansy"));
3670 return float();
3671#endif // DEAL_II_WITH_LAPACK
3672}
3673
3674
3675
3676inline double
3677lansy(const char * norm,
3678 const char * uplo,
3680 const std::complex<double> * a,
3682 double * work)
3683{
3684#ifdef DEAL_II_WITH_LAPACK
3685 return DEAL_II_FORTRAN_MANGLE(zlansy, ZLANSY)(norm, uplo, n, a, lda, work);
3686#else
3687 (void)norm;
3688 (void)uplo;
3689 (void)n;
3690 (void)a;
3691 (void)lda;
3692 (void)work;
3693 Assert(false, LAPACKSupport::ExcMissing("zlansy"));
3694 return double();
3695#endif // DEAL_II_WITH_LAPACK
3696}
3697
3698
3699
3700template <typename number1, typename number2, typename number3>
3701inline void
3702lascl(const char *,
3705 const number1 *,
3706 const number2 *,
3709 number3 *,
3712{
3713 Assert(false, ExcNotImplemented());
3714}
3715
3716
3717
3718inline void
3719lascl(const char * type,
3722 const float * cfrom,
3723 const float * cto,
3726 float * a,
3728 ::types::blas_int * info)
3729{
3730#ifdef DEAL_II_WITH_LAPACK
3731 DEAL_II_FORTRAN_MANGLE(slascl, SLASCL)
3732 (type, kl, ku, cfrom, cto, m, n, a, lda, info);
3733#else
3734 (void)type;
3735 (void)kl;
3736 (void)ku;
3737 (void)cfrom;
3738 (void)cto;
3739 (void)m;
3740 (void)n;
3741 (void)a;
3742 (void)lda;
3743 (void)info;
3744 Assert(false, LAPACKSupport::ExcMissing("slascl"));
3745#endif // DEAL_II_WITH_LAPACK
3746}
3747
3748
3749
3750inline void
3751lascl(const char * type,
3754 const double * cfrom,
3755 const double * cto,
3758 double * a,
3760 ::types::blas_int * info)
3761{
3762#ifdef DEAL_II_WITH_LAPACK
3763 DEAL_II_FORTRAN_MANGLE(dlascl, DLASCL)
3764 (type, kl, ku, cfrom, cto, m, n, a, lda, info);
3765#else
3766 (void)type;
3767 (void)kl;
3768 (void)ku;
3769 (void)cfrom;
3770 (void)cto;
3771 (void)m;
3772 (void)n;
3773 (void)a;
3774 (void)lda;
3775 (void)info;
3776 Assert(false, LAPACKSupport::ExcMissing("dlascl"));
3777#endif // DEAL_II_WITH_LAPACK
3778}
3779
3780
3781
3782inline void
3783lascl(const char * type,
3786 const float * cfrom,
3787 const float * cto,
3790 std::complex<float> * a,
3792 ::types::blas_int * info)
3793{
3794#ifdef DEAL_II_WITH_LAPACK
3795 DEAL_II_FORTRAN_MANGLE(clascl, CLASCL)
3796 (type, kl, ku, cfrom, cto, m, n, a, lda, info);
3797#else
3798 (void)type;
3799 (void)kl;
3800 (void)ku;
3801 (void)cfrom;
3802 (void)cto;
3803 (void)m;
3804 (void)n;
3805 (void)a;
3806 (void)lda;
3807 (void)info;
3808 Assert(false, LAPACKSupport::ExcMissing("clascl"));
3809#endif // DEAL_II_WITH_LAPACK
3810}
3811
3812
3813
3814inline void
3815lascl(const char * type,
3818 const double * cfrom,
3819 const double * cto,
3822 std::complex<double> * a,
3824 ::types::blas_int * info)
3825{
3826#ifdef DEAL_II_WITH_LAPACK
3827 DEAL_II_FORTRAN_MANGLE(zlascl, ZLASCL)
3828 (type, kl, ku, cfrom, cto, m, n, a, lda, info);
3829#else
3830 (void)type;
3831 (void)kl;
3832 (void)ku;
3833 (void)cfrom;
3834 (void)cto;
3835 (void)m;
3836 (void)n;
3837 (void)a;
3838 (void)lda;
3839 (void)info;
3840 Assert(false, LAPACKSupport::ExcMissing("zlascl"));
3841#endif // DEAL_II_WITH_LAPACK
3842}
3843
3844
3845
3846template <typename number1, typename number2, typename number3>
3847inline void
3851 number1 *,
3853 const number2 *,
3854 number3 *,
3857{
3858 Assert(false, ExcNotImplemented());
3859}
3860
3861
3862
3863inline void
3867 float * a,
3869 const float * tau,
3870 float * work,
3872 ::types::blas_int * info)
3873{
3874#ifdef DEAL_II_WITH_LAPACK
3875 DEAL_II_FORTRAN_MANGLE(sorgqr, SORGQR)
3876 (m, n, k, a, lda, tau, work, lwork, info);
3877#else
3878 (void)m;
3879 (void)n;
3880 (void)k;
3881 (void)a;
3882 (void)lda;
3883 (void)tau;
3884 (void)work;
3885 (void)lwork;
3886 (void)info;
3887 Assert(false, LAPACKSupport::ExcMissing("sorgqr"));
3888#endif // DEAL_II_WITH_LAPACK
3889}
3890
3891
3892
3893inline void
3897 double * a,
3899 const double * tau,
3900 double * work,
3902 ::types::blas_int * info)
3903{
3904#ifdef DEAL_II_WITH_LAPACK
3905 DEAL_II_FORTRAN_MANGLE(dorgqr, DORGQR)
3906 (m, n, k, a, lda, tau, work, lwork, info);
3907#else
3908 (void)m;
3909 (void)n;
3910 (void)k;
3911 (void)a;
3912 (void)lda;
3913 (void)tau;
3914 (void)work;
3915 (void)lwork;
3916 (void)info;
3917 Assert(false, LAPACKSupport::ExcMissing("dorgqr"));
3918#endif // DEAL_II_WITH_LAPACK
3919}
3920
3921
3922
3923template <typename number1,
3924 typename number2,
3925 typename number3,
3926 typename number4>
3927inline void
3928ormqr(const char *,
3929 const char *,
3933 const number1 *,
3935 const number2 *,
3936 number3 *,
3938 number4 *,
3941{
3942 Assert(false, ExcNotImplemented());
3943}
3944
3945
3946
3947inline void
3948ormqr(const char * side,
3949 const char * trans,
3953 const float * a,
3955 const float * tau,
3956 float * c,
3958 float * work,
3960 ::types::blas_int * info)
3961{
3962#ifdef DEAL_II_WITH_LAPACK
3963 DEAL_II_FORTRAN_MANGLE(sormqr, SORMQR)
3964 (side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info);
3965#else
3966 (void)side;
3967 (void)trans;
3968 (void)m;
3969 (void)n;
3970 (void)k;
3971 (void)a;
3972 (void)lda;
3973 (void)tau;
3974 (void)c;
3975 (void)ldc;
3976 (void)work;
3977 (void)lwork;
3978 (void)info;
3979 Assert(false, LAPACKSupport::ExcMissing("sormqr"));
3980#endif // DEAL_II_WITH_LAPACK
3981}
3982
3983
3984
3985inline void
3986ormqr(const char * side,
3987 const char * trans,
3991 const double * a,
3993 const double * tau,
3994 double * c,
3996 double * work,
3998 ::types::blas_int * info)
3999{
4000#ifdef DEAL_II_WITH_LAPACK
4001 DEAL_II_FORTRAN_MANGLE(dormqr, DORMQR)
4002 (side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info);
4003#else
4004 (void)side;
4005 (void)trans;
4006 (void)m;
4007 (void)n;
4008 (void)k;
4009 (void)a;
4010 (void)lda;
4011 (void)tau;
4012 (void)c;
4013 (void)ldc;
4014 (void)work;
4015 (void)lwork;
4016 (void)info;
4017 Assert(false, LAPACKSupport::ExcMissing("dormqr"));
4018#endif // DEAL_II_WITH_LAPACK
4019}
4020
4021
4022
4023template <typename number1,
4024 typename number2,
4025 typename number3,
4026 typename number4>
4027inline void
4028pocon(const char *,
4030 const number1 *,
4032 const number2 *,
4033 number3 *,
4034 number4 *,
4037{
4038 Assert(false, ExcNotImplemented());
4039}
4040
4041
4042
4043inline void
4044pocon(const char * uplo,
4046 const float * a,
4048 const float * anorm,
4049 float * rcond,
4050 float * work,
4051 ::types::blas_int * iwork,
4052 ::types::blas_int * info)
4053{
4054#ifdef DEAL_II_WITH_LAPACK
4055 DEAL_II_FORTRAN_MANGLE(spocon, SPOCON)
4056 (uplo, n, a, lda, anorm, rcond, work, iwork, info);
4057#else
4058 (void)uplo;
4059 (void)n;
4060 (void)a;
4061 (void)lda;
4062 (void)anorm;
4063 (void)rcond;
4064 (void)work;
4065 (void)iwork;
4066 (void)info;
4067 Assert(false, LAPACKSupport::ExcMissing("spocon"));
4068#endif // DEAL_II_WITH_LAPACK
4069}
4070
4071
4072
4073inline void
4074pocon(const char * uplo,
4076 const double * a,
4078 const double * anorm,
4079 double * rcond,
4080 double * work,
4081 ::types::blas_int * iwork,
4082 ::types::blas_int * info)
4083{
4084#ifdef DEAL_II_WITH_LAPACK
4085 DEAL_II_FORTRAN_MANGLE(dpocon, DPOCON)
4086 (uplo, n, a, lda, anorm, rcond, work, iwork, info);
4087#else
4088 (void)uplo;
4089 (void)n;
4090 (void)a;
4091 (void)lda;
4092 (void)anorm;
4093 (void)rcond;
4094 (void)work;
4095 (void)iwork;
4096 (void)info;
4097 Assert(false, LAPACKSupport::ExcMissing("dpocon"));
4098#endif // DEAL_II_WITH_LAPACK
4099}
4100
4101
4102
4103inline void
4104pocon(const char * uplo,
4106 const std::complex<float> * a,
4108 const float * anorm,
4109 float * rcond,
4110 std::complex<float> * work,
4111 float * rwork,
4112 ::types::blas_int * info)
4113{
4114#ifdef DEAL_II_WITH_LAPACK
4115 DEAL_II_FORTRAN_MANGLE(cpocon, CPOCON)
4116 (uplo, n, a, lda, anorm, rcond, work, rwork, info);
4117#else
4118 (void)uplo;
4119 (void)n;
4120 (void)a;
4121 (void)lda;
4122 (void)anorm;
4123 (void)rcond;
4124 (void)work;
4125 (void)rwork;
4126 (void)info;
4127 Assert(false, LAPACKSupport::ExcMissing("cpocon"));
4128#endif // DEAL_II_WITH_LAPACK
4129}
4130
4131
4132
4133inline void
4134pocon(const char * uplo,
4136 const std::complex<double> * a,
4138 const double * anorm,
4139 double * rcond,
4140 std::complex<double> * work,
4141 double * rwork,
4142 ::types::blas_int * info)
4143{
4144#ifdef DEAL_II_WITH_LAPACK
4145 DEAL_II_FORTRAN_MANGLE(zpocon, ZPOCON)
4146 (uplo, n, a, lda, anorm, rcond, work, rwork, info);
4147#else
4148 (void)uplo;
4149 (void)n;
4150 (void)a;
4151 (void)lda;
4152 (void)anorm;
4153 (void)rcond;
4154 (void)work;
4155 (void)rwork;
4156 (void)info;
4157 Assert(false, LAPACKSupport::ExcMissing("zpocon"));
4158#endif // DEAL_II_WITH_LAPACK
4159}
4160
4161
4162
4163template <typename number1>
4164inline void
4165potrf(const char *,
4167 number1 *,
4170{
4171 Assert(false, ExcNotImplemented());
4172}
4173
4174
4175
4176inline void
4177potrf(const char * uplo,
4179 float * a,
4181 ::types::blas_int * info)
4182{
4183#ifdef DEAL_II_WITH_LAPACK
4184 DEAL_II_FORTRAN_MANGLE(spotrf, SPOTRF)(uplo, n, a, lda, info);
4185#else
4186 (void)uplo;
4187 (void)n;
4188 (void)a;
4189 (void)lda;
4190 (void)info;
4191 Assert(false, LAPACKSupport::ExcMissing("spotrf"));
4192#endif // DEAL_II_WITH_LAPACK
4193}
4194
4195
4196
4197inline void
4198potrf(const char * uplo,
4200 double * a,
4202 ::types::blas_int * info)
4203{
4204#ifdef DEAL_II_WITH_LAPACK
4205 DEAL_II_FORTRAN_MANGLE(dpotrf, DPOTRF)(uplo, n, a, lda, info);
4206#else
4207 (void)uplo;
4208 (void)n;
4209 (void)a;
4210 (void)lda;
4211 (void)info;
4212 Assert(false, LAPACKSupport::ExcMissing("dpotrf"));
4213#endif // DEAL_II_WITH_LAPACK
4214}
4215
4216
4217
4218inline void
4219potrf(const char * uplo,
4221 std::complex<float> * a,
4223 ::types::blas_int * info)
4224{
4225#ifdef DEAL_II_WITH_LAPACK
4226 DEAL_II_FORTRAN_MANGLE(cpotrf, CPOTRF)(uplo, n, a, lda, info);
4227#else
4228 (void)uplo;
4229 (void)n;
4230 (void)a;
4231 (void)lda;
4232 (void)info;
4233 Assert(false, LAPACKSupport::ExcMissing("cpotrf"));
4234#endif // DEAL_II_WITH_LAPACK
4235}
4236
4237
4238
4239inline void
4240potrf(const char * uplo,
4242 std::complex<double> * a,
4244 ::types::blas_int * info)
4245{
4246#ifdef DEAL_II_WITH_LAPACK
4247 DEAL_II_FORTRAN_MANGLE(zpotrf, ZPOTRF)(uplo, n, a, lda, info);
4248#else
4249 (void)uplo;
4250 (void)n;
4251 (void)a;
4252 (void)lda;
4253 (void)info;
4254 Assert(false, LAPACKSupport::ExcMissing("zpotrf"));
4255#endif // DEAL_II_WITH_LAPACK
4256}
4257
4258
4259
4260template <typename number1>
4261inline void
4262potri(const char *,
4264 number1 *,
4267{
4268 Assert(false, ExcNotImplemented());
4269}
4270
4271
4272
4273inline void
4274potri(const char * uplo,
4276 float * a,
4278 ::types::blas_int * info)
4279{
4280#ifdef DEAL_II_WITH_LAPACK
4281 DEAL_II_FORTRAN_MANGLE(spotri, SPOTRI)(uplo, n, a, lda, info);
4282#else
4283 (void)uplo;
4284 (void)n;
4285 (void)a;
4286 (void)lda;
4287 (void)info;
4288 Assert(false, LAPACKSupport::ExcMissing("spotri"));
4289#endif // DEAL_II_WITH_LAPACK
4290}
4291
4292
4293
4294inline void
4295potri(const char * uplo,
4297 double * a,
4299 ::types::blas_int * info)
4300{
4301#ifdef DEAL_II_WITH_LAPACK
4302 DEAL_II_FORTRAN_MANGLE(dpotri, DPOTRI)(uplo, n, a, lda, info);
4303#else
4304 (void)uplo;
4305 (void)n;
4306 (void)a;
4307 (void)lda;
4308 (void)info;
4309 Assert(false, LAPACKSupport::ExcMissing("dpotri"));
4310#endif // DEAL_II_WITH_LAPACK
4311}
4312
4313
4314
4315inline void
4316potri(const char * uplo,
4318 std::complex<float> * a,
4320 ::types::blas_int * info)
4321{
4322#ifdef DEAL_II_WITH_LAPACK
4323 DEAL_II_FORTRAN_MANGLE(cpotri, CPOTRI)(uplo, n, a, lda, info);
4324#else
4325 (void)uplo;
4326 (void)n;
4327 (void)a;
4328 (void)lda;
4329 (void)info;
4330 Assert(false, LAPACKSupport::ExcMissing("cpotri"));
4331#endif // DEAL_II_WITH_LAPACK
4332}
4333
4334
4335
4336inline void
4337potri(const char * uplo,
4339 std::complex<double> * a,
4341 ::types::blas_int * info)
4342{
4343#ifdef DEAL_II_WITH_LAPACK
4344 DEAL_II_FORTRAN_MANGLE(zpotri, ZPOTRI)(uplo, n, a, lda, info);
4345#else
4346 (void)uplo;
4347 (void)n;
4348 (void)a;
4349 (void)lda;
4350 (void)info;
4351 Assert(false, LAPACKSupport::ExcMissing("zpotri"));
4352#endif // DEAL_II_WITH_LAPACK
4353}
4354
4355
4356
4357template <typename number1, typename number2>
4358inline void
4359potrs(const char *,
4362 const number1 *,
4364 number2 *,
4367{
4368 Assert(false, ExcNotImplemented());
4369}
4370
4371
4372
4373inline void
4374potrs(const char * uplo,
4377 const float * a,
4379 float * b,
4381 ::types::blas_int * info)
4382{
4383#ifdef DEAL_II_WITH_LAPACK
4384 DEAL_II_FORTRAN_MANGLE(spotrs, SPOTRS)(uplo, n, nrhs, a, lda, b, ldb, info);
4385#else
4386 (void)uplo;
4387 (void)n;
4388 (void)nrhs;
4389 (void)a;
4390 (void)lda;
4391 (void)b;
4392 (void)ldb;
4393 (void)info;
4394 Assert(false, LAPACKSupport::ExcMissing("spotrs"));
4395#endif // DEAL_II_WITH_LAPACK
4396}
4397
4398
4399
4400inline void
4401potrs(const char * uplo,
4404 const double * a,
4406 double * b,
4408 ::types::blas_int * info)
4409{
4410#ifdef DEAL_II_WITH_LAPACK
4411 DEAL_II_FORTRAN_MANGLE(dpotrs, DPOTRS)(uplo, n, nrhs, a, lda, b, ldb, info);
4412#else
4413 (void)uplo;
4414 (void)n;
4415 (void)nrhs;
4416 (void)a;
4417 (void)lda;
4418 (void)b;
4419 (void)ldb;
4420 (void)info;
4421 Assert(false, LAPACKSupport::ExcMissing("dpotrs"));
4422#endif // DEAL_II_WITH_LAPACK
4423}
4424
4425
4426
4427inline void
4428potrs(const char * uplo,
4431 const std::complex<float> * a,
4433 std::complex<float> * b,
4435 ::types::blas_int * info)
4436{
4437#ifdef DEAL_II_WITH_LAPACK
4438 DEAL_II_FORTRAN_MANGLE(cpotrs, CPOTRS)(uplo, n, nrhs, a, lda, b, ldb, info);
4439#else
4440 (void)uplo;
4441 (void)n;
4442 (void)nrhs;
4443 (void)a;
4444 (void)lda;
4445 (void)b;
4446 (void)ldb;
4447 (void)info;
4448 Assert(false, LAPACKSupport::ExcMissing("cpotrs"));
4449#endif // DEAL_II_WITH_LAPACK
4450}
4451
4452
4453
4454inline void
4455potrs(const char * uplo,
4458 const std::complex<double> * a,
4460 std::complex<double> * b,
4462 ::types::blas_int * info)
4463{
4464#ifdef DEAL_II_WITH_LAPACK
4465 DEAL_II_FORTRAN_MANGLE(zpotrs, ZPOTRS)(uplo, n, nrhs, a, lda, b, ldb, info);
4466#else
4467 (void)uplo;
4468 (void)n;
4469 (void)nrhs;
4470 (void)a;
4471 (void)lda;
4472 (void)b;
4473 (void)ldb;
4474 (void)info;
4475 Assert(false, LAPACKSupport::ExcMissing("zpotrs"));
4476#endif // DEAL_II_WITH_LAPACK
4477}
4478
4479
4480
4481template <typename number1,
4482 typename number2,
4483 typename number3,
4484 typename number4>
4485inline void
4486stev(const char *,
4488 number1 *,
4489 number2 *,
4490 number3 *,
4492 number4 *,
4494{
4495 Assert(false, ExcNotImplemented());
4496}
4497
4498
4499
4500inline void
4501stev(const char * jobz,
4503 float * d,
4504 float * e,
4505 float * z,
4507 float * work,
4508 ::types::blas_int * info)
4509{
4510#ifdef DEAL_II_WITH_LAPACK
4511 DEAL_II_FORTRAN_MANGLE(sstev, SSTEV)(jobz, n, d, e, z, ldz, work, info);
4512#else
4513 (void)jobz;
4514 (void)n;
4515 (void)d;
4516 (void)e;
4517 (void)z;
4518 (void)ldz;
4519 (void)work;
4520 (void)info;
4521 Assert(false, LAPACKSupport::ExcMissing("sstev"));
4522#endif // DEAL_II_WITH_LAPACK
4523}
4524
4525
4526
4527inline void
4528stev(const char * jobz,
4530 double * d,
4531 double * e,
4532 double * z,
4534 double * work,
4535 ::types::blas_int * info)
4536{
4537#ifdef DEAL_II_WITH_LAPACK
4538 DEAL_II_FORTRAN_MANGLE(dstev, DSTEV)(jobz, n, d, e, z, ldz, work, info);
4539#else
4540 (void)jobz;
4541 (void)n;
4542 (void)d;
4543 (void)e;
4544 (void)z;
4545 (void)ldz;
4546 (void)work;
4547 (void)info;
4548 Assert(false, LAPACKSupport::ExcMissing("dstev"));
4549#endif // DEAL_II_WITH_LAPACK
4550}
4551
4552
4553
4554template <typename number1, typename number2, typename number3>
4555inline void
4556syev(const char *,
4557 const char *,
4559 number1 *,
4561 number2 *,
4562 number3 *,
4565{
4566 Assert(false, ExcNotImplemented());
4567}
4568
4569
4570
4571inline void
4572syev(const char * jobz,
4573 const char * uplo,
4575 float * a,
4577 float * w,
4578 float * work,
4580 ::types::blas_int * info)
4581{
4582#ifdef DEAL_II_WITH_LAPACK
4583 DEAL_II_FORTRAN_MANGLE(ssyev, SSYEV)
4584 (jobz, uplo, n, a, lda, w, work, lwork, info);
4585#else
4586 (void)jobz;
4587 (void)uplo;
4588 (void)n;
4589 (void)a;
4590 (void)lda;
4591 (void)w;
4592 (void)work;
4593 (void)lwork;
4594 (void)info;
4595 Assert(false, LAPACKSupport::ExcMissing("ssyev"));
4596#endif // DEAL_II_WITH_LAPACK
4597}
4598
4599
4600
4601inline void
4602syev(const char * jobz,
4603 const char * uplo,
4605 double * a,
4607 double * w,
4608 double * work,
4610 ::types::blas_int * info)
4611{
4612#ifdef DEAL_II_WITH_LAPACK
4613 DEAL_II_FORTRAN_MANGLE(dsyev, DSYEV)
4614 (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
4631template <typename number1,
4632 typename number2,
4633 typename number3,
4634 typename number4,
4635 typename number5,
4636 typename number6,
4637 typename number7>
4638inline void
4639syevr(const char *,
4640 const char *,
4641 const char *,
4643 number1 *,
4645 const number2 *,
4646 const number3 *,
4649 const number4 *,
4651 number5 *,
4652 number6 *,
4655 number7 *,
4660{
4661 Assert(false, ExcNotImplemented());
4662}
4663
4664
4665
4666inline void
4667syevr(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,
4679 float * w,
4680 float * z,
4682 ::types::blas_int * isuppz,
4683 float * work,
4685 ::types::blas_int * iwork,
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 DEAL_II_FORTRAN_MANGLE(ssyevr, SSYEVR)
4699 (jobz,
4700 range,
4701 uplo,
4702 n,
4703 a,
4704 lda,
4705 vl,
4706 vu,
4707 il,
4708 iu,
4709 abstol,
4710 m,
4711 w,
4712 z,
4713 ldz,
4714 isuppz,
4715 work,
4716 lwork,
4717 iwork,
4718 liwork,
4719 info);
4720# ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4721 fesetenv(&fp_exceptions);
4722# endif // DEAL_II_HAVE_FP_EXCEPTIONS
4723#else
4724 (void)jobz;
4725 (void)range;
4726 (void)uplo;
4727 (void)n;
4728 (void)a;
4729 (void)lda;
4730 (void)vl;
4731 (void)vu;
4732 (void)il;
4733 (void)iu;
4734 (void)abstol;
4735 (void)m;
4736 (void)w;
4737 (void)z;
4738 (void)ldz;
4739 (void)isuppz;
4740 (void)work;
4741 (void)lwork;
4742 (void)iwork;
4743 (void)liwork;
4744 (void)info;
4745 Assert(false, LAPACKSupport::ExcMissing("ssyevr"));
4746#endif // DEAL_II_WITH_LAPACK
4747}
4748
4749
4750
4751inline void
4752syevr(const char * jobz,
4753 const char * range,
4754 const char * uplo,
4756 double * a,
4758 const double * vl,
4759 const double * vu,
4762 const double * abstol,
4764 double * w,
4765 double * z,
4767 ::types::blas_int * isuppz,
4768 double * work,
4770 ::types::blas_int * iwork,
4772 ::types::blas_int * info)
4773{
4774#ifdef DEAL_II_WITH_LAPACK
4775 // Netlib and Atlas Lapack perform floating point tests (e.g. divide-by-zero)
4776 // within calls to some functions, which cause floating point exceptions to be
4777 // thrown (at least in debug mode). Therefore, we wrap the calls into the
4778 // following code to suppress the exception.
4779# ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4780 fenv_t fp_exceptions;
4781 feholdexcept(&fp_exceptions);
4782# endif // DEAL_II_HAVE_FP_EXCEPTIONS
4783 DEAL_II_FORTRAN_MANGLE(dsyevr, DSYEVR)
4784 (jobz,
4785 range,
4786 uplo,
4787 n,
4788 a,
4789 lda,
4790 vl,
4791 vu,
4792 il,
4793 iu,
4794 abstol,
4795 m,
4796 w,
4797 z,
4798 ldz,
4799 isuppz,
4800 work,
4801 lwork,
4802 iwork,
4803 liwork,
4804 info);
4805# ifdef DEAL_II_HAVE_FP_EXCEPTIONS
4806 fesetenv(&fp_exceptions);
4807# endif // DEAL_II_HAVE_FP_EXCEPTIONS
4808#else
4809 (void)jobz;
4810 (void)range;
4811 (void)uplo;
4812 (void)n;
4813 (void)a;
4814 (void)lda;
4815 (void)vl;
4816 (void)vu;
4817 (void)il;
4818 (void)iu;
4819 (void)abstol;
4820 (void)m;
4821 (void)w;
4822 (void)z;
4823 (void)ldz;
4824 (void)isuppz;
4825 (void)work;
4826 (void)lwork;
4827 (void)iwork;
4828 (void)liwork;
4829 (void)info;
4830 Assert(false, LAPACKSupport::ExcMissing("dsyevr"));
4831#endif // DEAL_II_WITH_LAPACK
4832}
4833
4834
4835
4836template <typename number1,
4837 typename number2,
4838 typename number3,
4839 typename number4,
4840 typename number5,
4841 typename number6,
4842 typename number7>
4843inline void
4844syevx(const char *,
4845 const char *,
4846 const char *,
4848 number1 *,
4850 const number2 *,
4851 const number3 *,
4854 const number4 *,
4856 number5 *,
4857 number6 *,
4859 number7 *,
4864{
4865 Assert(false, ExcNotImplemented());
4866}
4867
4868
4869
4870inline void
4871syevx(const char * jobz,
4872 const char * range,
4873 const char * uplo,
4875 float * a,
4877 const float * vl,
4878 const float * vu,
4881 const float * abstol,
4883 float * w,
4884 float * z,
4886 float * work,
4888 ::types::blas_int * iwork,
4889 ::types::blas_int * ifail,
4890 ::types::blas_int * info)
4891{
4892#ifdef DEAL_II_WITH_LAPACK
4893 DEAL_II_FORTRAN_MANGLE(ssyevx, SSYEVX)
4894 (jobz,
4895 range,
4896 uplo,
4897 n,
4898 a,
4899 lda,
4900 vl,
4901 vu,
4902 il,
4903 iu,
4904 abstol,
4905 m,
4906 w,
4907 z,
4908 ldz,
4909 work,
4910 lwork,
4911 iwork,
4912 ifail,
4913 info);
4914#else
4915 (void)jobz;
4916 (void)range;
4917 (void)uplo;
4918 (void)n;
4919 (void)a;
4920 (void)lda;
4921 (void)vl;
4922 (void)vu;
4923 (void)il;
4924 (void)iu;
4925 (void)abstol;
4926 (void)m;
4927 (void)w;
4928 (void)z;
4929 (void)ldz;
4930 (void)work;
4931 (void)lwork;
4932 (void)iwork;
4933 (void)ifail;
4934 (void)info;
4935 Assert(false, LAPACKSupport::ExcMissing("ssyevx"));
4936#endif // DEAL_II_WITH_LAPACK
4937}
4938
4939
4940
4941inline void
4942syevx(const char * jobz,
4943 const char * range,
4944 const char * uplo,
4946 double * a,
4948 const double * vl,
4949 const double * vu,
4952 const double * abstol,
4954 double * w,
4955 double * z,
4957 double * work,
4959 ::types::blas_int * iwork,
4960 ::types::blas_int * ifail,
4961 ::types::blas_int * info)
4962{
4963#ifdef DEAL_II_WITH_LAPACK
4964 DEAL_II_FORTRAN_MANGLE(dsyevx, DSYEVX)
4965 (jobz,
4966 range,
4967 uplo,
4968 n,
4969 a,
4970 lda,
4971 vl,
4972 vu,
4973 il,
4974 iu,
4975 abstol,
4976 m,
4977 w,
4978 z,
4979 ldz,
4980 work,
4981 lwork,
4982 iwork,
4983 ifail,
4984 info);
4985#else
4986 (void)jobz;
4987 (void)range;
4988 (void)uplo;
4989 (void)n;
4990 (void)a;
4991 (void)lda;
4992 (void)vl;
4993 (void)vu;
4994 (void)il;
4995 (void)iu;
4996 (void)abstol;
4997 (void)m;
4998 (void)w;
4999 (void)z;
5000 (void)ldz;
5001 (void)work;
5002 (void)lwork;
5003 (void)iwork;
5004 (void)ifail;
5005 (void)info;
5006 Assert(false, LAPACKSupport::ExcMissing("dsyevx"));
5007#endif // DEAL_II_WITH_LAPACK
5008}
5009
5010
5011
5012template <typename number1,
5013 typename number2,
5014 typename number3,
5015 typename number4>
5016inline void
5018 const char *,
5019 const char *,
5021 number1 *,
5023 number2 *,
5025 number3 *,
5026 number4 *,
5029{
5030 Assert(false, ExcNotImplemented());
5031}
5032
5033
5034
5035inline void
5037 const char * jobz,
5038 const char * uplo,
5040 float * a,
5042 float * b,
5044 float * w,
5045 float * work,
5047 ::types::blas_int * info)
5048{
5049#ifdef DEAL_II_WITH_LAPACK
5050 DEAL_II_FORTRAN_MANGLE(ssygv, SSYGV)
5051 (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info);
5052#else
5053 (void)itype;
5054 (void)jobz;
5055 (void)uplo;
5056 (void)n;
5057 (void)a;
5058 (void)lda;
5059 (void)b;
5060 (void)ldb;
5061 (void)w;
5062 (void)work;
5063 (void)lwork;
5064 (void)info;
5065 Assert(false, LAPACKSupport::ExcMissing("ssygv"));
5066#endif // DEAL_II_WITH_LAPACK
5067}
5068
5069
5070
5071inline void
5073 const char * jobz,
5074 const char * uplo,
5076 double * a,
5078 double * b,
5080 double * w,
5081 double * work,
5083 ::types::blas_int * info)
5084{
5085#ifdef DEAL_II_WITH_LAPACK
5086 DEAL_II_FORTRAN_MANGLE(dsygv, DSYGV)
5087 (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork, info);
5088#else
5089 (void)itype;
5090 (void)jobz;
5091 (void)uplo;
5092 (void)n;
5093 (void)a;
5094 (void)lda;
5095 (void)b;
5096 (void)ldb;
5097 (void)w;
5098 (void)work;
5099 (void)lwork;
5100 (void)info;
5101 Assert(false, LAPACKSupport::ExcMissing("dsygv"));
5102#endif // DEAL_II_WITH_LAPACK
5103}
5104
5105
5106
5107template <typename number1,
5108 typename number2,
5109 typename number3,
5110 typename number4,
5111 typename number5,
5112 typename number6,
5113 typename number7,
5114 typename number8>
5115inline void
5117 const char *,
5118 const char *,
5119 const char *,
5121 number1 *,
5123 number2 *,
5125 const number3 *,
5126 const number4 *,
5129 const number5 *,
5131 number6 *,
5132 number7 *,
5134 number8 *,
5139{
5140 Assert(false, ExcNotImplemented());
5141}
5142
5143
5144
5145inline void
5147 const char * jobz,
5148 const char * range,
5149 const char * uplo,
5151 float * a,
5153 float * b,
5155 const float * vl,
5156 const float * vu,
5159 const float * abstol,
5161 float * w,
5162 float * z,
5164 float * work,
5166 ::types::blas_int * iwork,
5167 ::types::blas_int * ifail,
5168 ::types::blas_int * info)
5169{
5170#ifdef DEAL_II_WITH_LAPACK
5171 DEAL_II_FORTRAN_MANGLE(ssygvx, SSYGVX)
5172 (itype,
5173 jobz,
5174 range,
5175 uplo,
5176 n,
5177 a,
5178 lda,
5179 b,
5180 ldb,
5181 vl,
5182 vu,
5183 il,
5184 iu,
5185 abstol,
5186 m,
5187 w,
5188 z,
5189 ldz,
5190 work,
5191 lwork,
5192 iwork,
5193 ifail,
5194 info);
5195#else
5196 (void)itype;
5197 (void)jobz;
5198 (void)range;
5199 (void)uplo;
5200 (void)n;
5201 (void)a;
5202 (void)lda;
5203 (void)b;
5204 (void)ldb;
5205 (void)vl;
5206 (void)vu;
5207 (void)il;
5208 (void)iu;
5209 (void)abstol;
5210 (void)m;
5211 (void)w;
5212 (void)z;
5213 (void)ldz;
5214 (void)work;
5215 (void)lwork;
5216 (void)iwork;
5217 (void)ifail;
5218 (void)info;
5219 Assert(false, LAPACKSupport::ExcMissing("ssygvx"));
5220#endif // DEAL_II_WITH_LAPACK
5221}
5222
5223
5224
5225inline void
5227 const char * jobz,
5228 const char * range,
5229 const char * uplo,
5231 double * a,
5233 double * b,
5235 const double * vl,
5236 const double * vu,
5239 const double * abstol,
5241 double * w,
5242 double * z,
5244 double * work,
5246 ::types::blas_int * iwork,
5247 ::types::blas_int * ifail,
5248 ::types::blas_int * info)
5249{
5250#ifdef DEAL_II_WITH_LAPACK
5251 DEAL_II_FORTRAN_MANGLE(dsygvx, DSYGVX)
5252 (itype,
5253 jobz,
5254 range,
5255 uplo,
5256 n,
5257 a,
5258 lda,
5259 b,
5260 ldb,
5261 vl,
5262 vu,
5263 il,
5264 iu,
5265 abstol,
5266 m,
5267 w,
5268 z,
5269 ldz,
5270 work,
5271 lwork,
5272 iwork,
5273 ifail,
5274 info);
5275#else
5276 (void)itype;
5277 (void)jobz;
5278 (void)range;
5279 (void)uplo;
5280 (void)n;
5281 (void)a;
5282 (void)lda;
5283 (void)b;
5284 (void)ldb;
5285 (void)vl;
5286 (void)vu;
5287 (void)il;
5288 (void)iu;
5289 (void)abstol;
5290 (void)m;
5291 (void)w;
5292 (void)z;
5293 (void)ldz;
5294 (void)work;
5295 (void)lwork;
5296 (void)iwork;
5297 (void)ifail;
5298 (void)info;
5299 Assert(false, LAPACKSupport::ExcMissing("dsygvx"));
5300#endif // DEAL_II_WITH_LAPACK
5301}
5302
5303
5304
5305template <typename number1, typename number2, typename number3>
5306inline void
5307syr(const char *,
5309 const number1 *,
5310 const number2 *,
5312 number3 *,
5314{
5315 Assert(false, ExcNotImplemented());
5316}
5317
5318
5319
5320inline void
5321syr(const char * uplo,
5323 const float * alpha,
5324 const float * x,
5326 float * a,
5328{
5329#ifdef DEAL_II_WITH_LAPACK
5330 DEAL_II_FORTRAN_MANGLE(ssyr, SSYR)(uplo, n, alpha, x, incx, a, lda);
5331#else
5332 (void)uplo;
5333 (void)n;
5334 (void)alpha;
5335 (void)x;
5336 (void)incx;
5337 (void)a;
5338 (void)lda;
5339 Assert(false, LAPACKSupport::ExcMissing("ssyr"));
5340#endif // DEAL_II_WITH_LAPACK
5341}
5342
5343
5344
5345inline void
5346syr(const char * uplo,
5348 const double * alpha,
5349 const double * x,
5351 double * a,
5353{
5354#ifdef DEAL_II_WITH_LAPACK
5355 DEAL_II_FORTRAN_MANGLE(dsyr, DSYR)(uplo, n, alpha, x, incx, a, lda);
5356#else
5357 (void)uplo;
5358 (void)n;
5359 (void)alpha;
5360 (void)x;
5361 (void)incx;
5362 (void)a;
5363 (void)lda;
5364 Assert(false, LAPACKSupport::ExcMissing("dsyr"));
5365#endif // DEAL_II_WITH_LAPACK
5366}
5367
5368
5369
5370template <typename number1,
5371 typename number2,
5372 typename number3,
5373 typename number4>
5374inline void
5375syrk(const char *,
5376 const char *,
5379 const number1 *,
5380 const number2 *,
5382 const number3 *,
5383 number4 *,
5385{
5386 Assert(false, ExcNotImplemented());
5387}
5388
5389
5390
5391inline void
5392syrk(const char * uplo,
5393 const char * trans,
5396 const float * alpha,
5397 const float * a,
5399 const float * beta,
5400 float * c,
5402{
5403#ifdef DEAL_II_WITH_LAPACK
5404 DEAL_II_FORTRAN_MANGLE(ssyrk, SSYRK)
5405 (uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5406#else
5407 (void)uplo;
5408 (void)trans;
5409 (void)n;
5410 (void)k;
5411 (void)alpha;
5412 (void)a;
5413 (void)lda;
5414 (void)beta;
5415 (void)c;
5416 (void)ldc;
5417 Assert(false, LAPACKSupport::ExcMissing("ssyrk"));
5418#endif // DEAL_II_WITH_LAPACK
5419}
5420
5421
5422
5423inline void
5424syrk(const char * uplo,
5425 const char * trans,
5428 const double * alpha,
5429 const double * a,
5431 const double * beta,
5432 double * c,
5434{
5435#ifdef DEAL_II_WITH_LAPACK
5436 DEAL_II_FORTRAN_MANGLE(dsyrk, DSYRK)
5437 (uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5438#else
5439 (void)uplo;
5440 (void)trans;
5441 (void)n;
5442 (void)k;
5443 (void)alpha;
5444 (void)a;
5445 (void)lda;
5446 (void)beta;
5447 (void)c;
5448 (void)ldc;
5449 Assert(false, LAPACKSupport::ExcMissing("dsyrk"));
5450#endif // DEAL_II_WITH_LAPACK
5451}
5452
5453
5454
5455inline void
5456syrk(const char * uplo,
5457 const char * trans,
5460 const std::complex<float> * alpha,
5461 const std::complex<float> * a,
5463 const std::complex<float> * beta,
5464 std::complex<float> * c,
5466{
5467#ifdef DEAL_II_WITH_LAPACK
5468 DEAL_II_FORTRAN_MANGLE(csyrk, CSYRK)
5469 (uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5470#else
5471 (void)uplo;
5472 (void)trans;
5473 (void)n;
5474 (void)k;
5475 (void)alpha;
5476 (void)a;
5477 (void)lda;
5478 (void)beta;
5479 (void)c;
5480 (void)ldc;
5481 Assert(false, LAPACKSupport::ExcMissing("csyrk"));
5482#endif // DEAL_II_WITH_LAPACK
5483}
5484
5485
5486
5487inline void
5488syrk(const char * uplo,
5489 const char * trans,
5492 const std::complex<double> * alpha,
5493 const std::complex<double> * a,
5495 const std::complex<double> * beta,
5496 std::complex<double> * c,
5498{
5499#ifdef DEAL_II_WITH_LAPACK
5500 DEAL_II_FORTRAN_MANGLE(zsyrk, ZSYRK)
5501 (uplo, trans, n, k, alpha, a, lda, beta, c, ldc);
5502#else
5503 (void)uplo;
5504 (void)trans;
5505 (void)n;
5506 (void)k;
5507 (void)alpha;
5508 (void)a;
5509 (void)lda;
5510 (void)beta;
5511 (void)c;
5512 (void)ldc;
5513 Assert(false, LAPACKSupport::ExcMissing("zsyrk"));
5514#endif // DEAL_II_WITH_LAPACK
5515}
5516
5517
5518
5519template <typename number1, typename number2, typename number3>
5520inline void
5521trcon(const char *,
5522 const char *,
5523 const char *,
5525 const number1 *,
5527 number2 *,
5528 number3 *,
5531{
5532 Assert(false, ExcNotImplemented());
5533}
5534
5535
5536
5537inline void
5538trcon(const char * norm,
5539 const char * uplo,
5540 const char * diag,
5542 const float * a,
5544 float * rcond,
5545 float * work,
5546 ::types::blas_int * iwork,
5547 ::types::blas_int * info)
5548{
5549#ifdef DEAL_II_WITH_LAPACK
5550 DEAL_II_FORTRAN_MANGLE(strcon, STRCON)
5551 (norm, uplo, diag, n, a, lda, rcond, work, iwork, info);
5552#else
5553 (void)norm;
5554 (void)uplo;
5555 (void)diag;
5556 (void)n;
5557 (void)a;
5558 (void)lda;
5559 (void)rcond;
5560 (void)work;
5561 (void)iwork;
5562 (void)info;
5563 Assert(false, LAPACKSupport::ExcMissing("strcon"));
5564#endif // DEAL_II_WITH_LAPACK
5565}
5566
5567
5568
5569inline void
5570trcon(const char * norm,
5571 const char * uplo,
5572 const char * diag,
5574 const double * a,
5576 double * rcond,
5577 double * work,
5578 ::types::blas_int * iwork,
5579 ::types::blas_int * info)
5580{
5581#ifdef DEAL_II_WITH_LAPACK
5582 DEAL_II_FORTRAN_MANGLE(dtrcon, DTRCON)
5583 (norm, uplo, diag, n, a, lda, rcond, work, iwork, info);
5584#else
5585 (void)norm;
5586 (void)uplo;
5587 (void)diag;
5588 (void)n;
5589 (void)a;
5590 (void)lda;
5591 (void)rcond;
5592 (void)work;
5593 (void)iwork;
5594 (void)info;
5595 Assert(false, LAPACKSupport::ExcMissing("dtrcon"));
5596#endif // DEAL_II_WITH_LAPACK
5597}
5598
5599
5600
5601inline void
5602trcon(const char * norm,
5603 const char * uplo,
5604 const char * diag,
5606 const std::complex<float> * a,
5608 float * rcond,
5609 std::complex<float> * work,
5610 float * rwork,
5611 ::types::blas_int * info)
5612{
5613#ifdef DEAL_II_WITH_LAPACK
5614 DEAL_II_FORTRAN_MANGLE(ctrcon, CTRCON)
5615 (norm, uplo, diag, n, a, lda, rcond, work, rwork, info);
5616#else
5617 (void)norm;
5618 (void)uplo;
5619 (void)diag;
5620 (void)n;
5621 (void)a;
5622 (void)lda;
5623 (void)rcond;
5624 (void)work;
5625 (void)rwork;
5626 (void)info;
5627 Assert(false, LAPACKSupport::ExcMissing("ctrcon"));
5628#endif // DEAL_II_WITH_LAPACK
5629}
5630
5631
5632
5633inline void
5634trcon(const char * norm,
5635 const char * uplo,
5636 const char * diag,
5638 const std::complex<double> * a,
5640 double * rcond,
5641 std::complex<double> * work,
5642 double * rwork,
5643 ::types::blas_int * info)
5644{
5645#ifdef DEAL_II_WITH_LAPACK
5646 DEAL_II_FORTRAN_MANGLE(ztrcon, ZTRCON)
5647 (norm, uplo, diag, n, a, lda, rcond, work, rwork, info);
5648#else
5649 (void)norm;
5650 (void)uplo;
5651 (void)diag;
5652 (void)n;
5653 (void)a;
5654 (void)lda;
5655 (void)rcond;
5656 (void)work;
5657 (void)rwork;
5658 (void)info;
5659 Assert(false, LAPACKSupport::ExcMissing("ztrcon"));
5660#endif // DEAL_II_WITH_LAPACK
5661}
5662
5663
5664
5665template <typename number1, typename number2>
5666inline void
5667trmv(const char *,
5668 const char *,
5669 const char *,
5671 const number1 *,
5673 number2 *,
5675{
5676 Assert(false, ExcNotImplemented());
5677}
5678
5679
5680
5681inline void
5682trmv(const char * uplo,
5683 const char * trans,
5684 const char * diag,
5686 const float * a,
5688 float * x,
5690{
5691#ifdef DEAL_II_WITH_LAPACK
5692 DEAL_II_FORTRAN_MANGLE(strmv, STRMV)(uplo, trans, diag, n, a, lda, x, incx);
5693#else
5694 (void)uplo;
5695 (void)trans;
5696 (void)diag;
5697 (void)n;
5698 (void)a;
5699 (void)lda;
5700 (void)x;
5701 (void)incx;
5702 Assert(false, LAPACKSupport::ExcMissing("strmv"));
5703#endif // DEAL_II_WITH_LAPACK
5704}
5705
5706
5707
5708inline void
5709trmv(const char * uplo,
5710 const char * trans,
5711 const char * diag,
5713 const double * a,
5715 double * x,
5717{
5718#ifdef DEAL_II_WITH_LAPACK
5719 DEAL_II_FORTRAN_MANGLE(dtrmv, DTRMV)(uplo, trans, diag, n, a, lda, x, incx);
5720#else
5721 (void)uplo;
5722 (void)trans;
5723 (void)diag;
5724 (void)n;
5725 (void)a;
5726 (void)lda;
5727 (void)x;
5728 (void)incx;
5729 Assert(false, LAPACKSupport::ExcMissing("dtrmv"));
5730#endif // DEAL_II_WITH_LAPACK
5731}
5732
5733
5734
5735inline void
5736trmv(const char * uplo,
5737 const char * trans,
5738 const char * diag,
5740 const std::complex<float> * a,
5742 std::complex<float> * x,
5744{
5745#ifdef DEAL_II_WITH_LAPACK
5746 DEAL_II_FORTRAN_MANGLE(ctrmv, CTRMV)(uplo, trans, diag, n, a, lda, x, incx);
5747#else
5748 (void)uplo;
5749 (void)trans;
5750 (void)diag;
5751 (void)n;
5752 (void)a;
5753 (void)lda;
5754 (void)x;
5755 (void)incx;
5756 Assert(false, LAPACKSupport::ExcMissing("ctrmv"));
5757#endif // DEAL_II_WITH_LAPACK
5758}
5759
5760
5761
5762inline void
5763trmv(const char * uplo,
5764 const char * trans,
5765 const char * diag,
5767 const std::complex<double> * a,
5769 std::complex<double> * x,
5771{
5772#ifdef DEAL_II_WITH_LAPACK
5773 DEAL_II_FORTRAN_MANGLE(ztrmv, ZTRMV)(uplo, trans, diag, n, a, lda, x, incx);
5774#else
5775 (void)uplo;
5776 (void)trans;
5777 (void)diag;
5778 (void)n;
5779 (void)a;
5780 (void)lda;
5781 (void)x;
5782 (void)incx;
5783 Assert(false, LAPACKSupport::ExcMissing("ztrmv"));
5784#endif // DEAL_II_WITH_LAPACK
5785}
5786
5787
5788
5789template <typename number1, typename number2>
5790inline void
5791trtrs(const char *,
5792 const char *,
5793 const char *,
5796 const number1 *,
5798 number2 *,
5801{
5802 Assert(false, ExcNotImplemented());
5803}
5804
5805
5806
5807inline void
5808trtrs(const char * uplo,
5809 const char * trans,
5810 const char * diag,
5813 const float * a,
5815 float * b,
5817 ::types::blas_int * info)
5818{
5819#ifdef DEAL_II_WITH_LAPACK
5820 DEAL_II_FORTRAN_MANGLE(strtrs, STRTRS)
5821 (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5822#else
5823 (void)uplo;
5824 (void)trans;
5825 (void)diag;
5826 (void)n;
5827 (void)nrhs;
5828 (void)a;
5829 (void)lda;
5830 (void)b;
5831 (void)ldb;
5832 (void)info;
5833 Assert(false, LAPACKSupport::ExcMissing("strtrs"));
5834#endif // DEAL_II_WITH_LAPACK
5835}
5836
5837
5838
5839inline void
5840trtrs(const char * uplo,
5841 const char * trans,
5842 const char * diag,
5845 const double * a,
5847 double * b,
5849 ::types::blas_int * info)
5850{
5851#ifdef DEAL_II_WITH_LAPACK
5852 DEAL_II_FORTRAN_MANGLE(dtrtrs, DTRTRS)
5853 (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5854#else
5855 (void)uplo;
5856 (void)trans;
5857 (void)diag;
5858 (void)n;
5859 (void)nrhs;
5860 (void)a;
5861 (void)lda;
5862 (void)b;
5863 (void)ldb;
5864 (void)info;
5865 Assert(false, LAPACKSupport::ExcMissing("dtrtrs"));
5866#endif // DEAL_II_WITH_LAPACK
5867}
5868
5869
5870
5871inline void
5872trtrs(const char * uplo,
5873 const char * trans,
5874 const char * diag,
5877 const std::complex<float> * a,
5879 std::complex<float> * b,
5881 ::types::blas_int * info)
5882{
5883#ifdef DEAL_II_WITH_LAPACK
5884 DEAL_II_FORTRAN_MANGLE(ctrtrs, CTRTRS)
5885 (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5886#else
5887 (void)uplo;
5888 (void)trans;
5889 (void)diag;
5890 (void)n;
5891 (void)nrhs;
5892 (void)a;
5893 (void)lda;
5894 (void)b;
5895 (void)ldb;
5896 (void)info;
5897 Assert(false, LAPACKSupport::ExcMissing("ctrtrs"));
5898#endif // DEAL_II_WITH_LAPACK
5899}
5900
5901
5902
5903inline void
5904trtrs(const char * uplo,
5905 const char * trans,
5906 const char * diag,
5909 const std::complex<double> * a,
5911 std::complex<double> * b,
5913 ::types::blas_int * info)
5914{
5915#ifdef DEAL_II_WITH_LAPACK
5916 DEAL_II_FORTRAN_MANGLE(ztrtrs, ZTRTRS)
5917 (uplo, trans, diag, n, nrhs, a, lda, b, ldb, info);
5918#else
5919 (void)uplo;
5920 (void)trans;
5921 (void)diag;
5922 (void)n;
5923 (void)nrhs;
5924 (void)a;
5925 (void)lda;
5926 (void)b;
5927 (void)ldb;
5928 (void)info;
5929 Assert(false, LAPACKSupport::ExcMissing("ztrtrs"));
5930#endif // DEAL_II_WITH_LAPACK
5931}
5933
5934#endif
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:402
#define DEAL_II_FORTRAN_MANGLE(name, NAME)
Definition: config.h:469
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:403
static ::ExceptionBase & ExcMissing(std::string arg1)
static ::ExceptionBase & ExcNotImplemented()
#define Assert(cond, exc)
Definition: exceptions.h:1465
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 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 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 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 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 syev(const char *, const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, ::types::blas_int *)
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 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 pocon(const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, const number2 *, number3 *, number4 *, ::types::blas_int *, ::types::blas_int *)
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 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 *)
void syr(const char *, const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, number3 *, const ::types::blas_int *)
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 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 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 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 *)
void axpy(const ::types::blas_int *, const number1 *, const number2 *, const ::types::blas_int *, number3 *, const ::types::blas_int *)
void trmv(const char *, const char *, const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *, const ::types::blas_int *)
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 stev(const char *, const ::types::blas_int *, number1 *, number2 *, number3 *, const ::types::blas_int *, number4 *, ::types::blas_int *)
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 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 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 *)
number1 lange(const char *, const ::types::blas_int *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *)
number1 lamch(const char *)
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 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 potri(const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, ::types::blas_int *)
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 *)
number1 lansy(const char *, const char *, const ::types::blas_int *, const number1 *, const ::types::blas_int *, number2 *)
void potrf(const char *, const ::types::blas_int *, number1 *, const ::types::blas_int *, ::types::blas_int *)
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 scale(const double scaling_factor, Triangulation< dim, spacedim > &triangulation)
Definition: grid_tools.cc:2042
double norm(const FEValuesBase< dim > &fe, const ArrayView< const std::vector< Tensor< 1, dim > > > &Du)
Definition: divergence.h:472
Tensor< 2, dim, Number > w(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
int blas_int