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