dune-istl  2.9.0
superlufunctions.hh
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
2 // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4 // vi: set et ts=4 sw=2 sts=2:
5 #ifndef DUNE_ISTL_SUPERLUFUNCTIONS_HH
6 #define DUNE_ISTL_SUPERLUFUNCTIONS_HH
7 #if HAVE_SUPERLU
8 
9 
10 #define int_t SUPERLU_INT_TYPE
11 #include "supermatrix.h"
12 #include "slu_util.h"
13 #undef int_t
14 
15 #if __has_include("slu_sdefs.h")
16 extern "C" {
17  extern void
18  sgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
19  char *, float *, float *, SuperMatrix *, SuperMatrix *,
20  void *, int, SuperMatrix *, SuperMatrix *,
21  float *, float *, float *, float *,
22  GlobalLU_t*, mem_usage_t *, SuperLUStat_t *, int *);
23 
24  extern void
25  sCreate_Dense_Matrix(SuperMatrix *, int, int, float *, int,
26  Stype_t, Dtype_t, Mtype_t);
27  extern void
28  sCreate_CompCol_Matrix(SuperMatrix *, int, int, int, float *,
29  int *, int *, Stype_t, Dtype_t, Mtype_t);
30  extern int sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
31 
32  extern void sPrint_CompCol_Matrix(char *, SuperMatrix *);
33 }
34 #endif
35 
36 #if __has_include("slu_ddefs.h")
37 extern "C" {
38  extern void
39  dgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
40  char *, double *, double *, SuperMatrix *, SuperMatrix *,
41  void *, int, SuperMatrix *, SuperMatrix *,
42  double *, double *, double *, double *,
43  GlobalLU_t*, mem_usage_t *, SuperLUStat_t *, int *);
44 
45  extern void
46  dCreate_CompCol_Matrix(SuperMatrix *, int, int, int, double *,
47  int *, int *, Stype_t, Dtype_t, Mtype_t);
48 
49  extern void
50  dCreate_Dense_Matrix(SuperMatrix *, int, int, double *, int,
51  Stype_t, Dtype_t, Mtype_t);
52 
53  extern int dQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
54 
55  extern void dPrint_CompCol_Matrix(char *, SuperMatrix *);
56 }
57 #endif
58 
59 #if __has_include("slu_cdefs.h")
60 #include "slu_scomplex.h"
61 
62 extern "C" {
63  extern void
64  cgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
65  char *, float *, float *, SuperMatrix *, SuperMatrix *,
66  void *, int, SuperMatrix *, SuperMatrix *,
67  float *, float *, float *, float *,
68  GlobalLU_t*, mem_usage_t *, SuperLUStat_t *, int *);
69 
70 
71  extern void
72  cCreate_Dense_Matrix(SuperMatrix *, int, int, ::complex *, int,
73  Stype_t, Dtype_t, Mtype_t);
74 
75 
76  extern void
77  cCreate_CompCol_Matrix(SuperMatrix *, int, int, int, ::complex *,
78  int *, int *, Stype_t, Dtype_t, Mtype_t);
79 
80  extern int cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
81 
82  extern void cPrint_CompCol_Matrix(char *, SuperMatrix *);
83 }
84 #endif
85 
86 #if __has_include("slu_zdefs.h")
87 #include "slu_dcomplex.h"
88 extern "C" {
89  extern void
90  zgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
91  char *, double *, double *, SuperMatrix *, SuperMatrix *,
92  void *, int, SuperMatrix *, SuperMatrix *,
93  double *, double *, double *, double *,
94  GlobalLU_t*, mem_usage_t *, SuperLUStat_t *, int *);
95 
96 
97  extern void
98  zCreate_CompCol_Matrix(SuperMatrix *, int, int, int, doublecomplex *,
99  int *, int *, Stype_t, Dtype_t, Mtype_t);
100 
101  extern void
102  zCreate_Dense_Matrix(SuperMatrix *, int, int, doublecomplex *, int,
103  Stype_t, Dtype_t, Mtype_t);
104 
105  extern int zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
106 
107  extern void zPrint_CompCol_Matrix(char *, SuperMatrix *);
108 }
109 #endif
110 
111 
112 #endif
113 #endif