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