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