dune-istl  2.7.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 HAVE_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 #if SUPERLU_MIN_VERSION_5
21  GlobalLU_t*,
22 #endif
23  mem_usage_t *, SuperLUStat_t *, int *);
24 
25  extern void
26  sCreate_Dense_Matrix(SuperMatrix *, int, int, float *, int,
27  Stype_t, Dtype_t, Mtype_t);
28  extern void
29  sCreate_CompCol_Matrix(SuperMatrix *, int, int, int, float *,
30  int *, int *, Stype_t, Dtype_t, Mtype_t);
31  extern int sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
32 
33  extern void sPrint_CompCol_Matrix(char *, SuperMatrix *);
34 }
35 #endif
36 
37 #if HAVE_SLU_DDEFS_H
38 extern "C" {
39  extern void
40  dgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
41  char *, double *, double *, SuperMatrix *, SuperMatrix *,
42  void *, int, SuperMatrix *, SuperMatrix *,
43  double *, double *, double *, double *,
44 #if SUPERLU_MIN_VERSION_5
45  GlobalLU_t*,
46 #endif
47  mem_usage_t *, SuperLUStat_t *, int *);
48 
49  extern void
50  dCreate_CompCol_Matrix(SuperMatrix *, int, int, int, double *,
51  int *, int *, Stype_t, Dtype_t, Mtype_t);
52 
53  extern void
54  dCreate_Dense_Matrix(SuperMatrix *, int, int, double *, int,
55  Stype_t, Dtype_t, Mtype_t);
56 
57  extern int dQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
58 
59  extern void dPrint_CompCol_Matrix(char *, SuperMatrix *);
60 }
61 #endif
62 
63 #if HAVE_SLU_CDEFS_H
64 #include "slu_scomplex.h"
65 
66 extern "C" {
67  extern void
68  cgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
69  char *, float *, float *, SuperMatrix *, SuperMatrix *,
70  void *, int, SuperMatrix *, SuperMatrix *,
71  float *, float *, float *, float *,
72 #if SUPERLU_MIN_VERSION_5
73  GlobalLU_t*,
74 #endif
75  mem_usage_t *, SuperLUStat_t *, int *);
76 
77 
78  extern void
79  cCreate_Dense_Matrix(SuperMatrix *, int, int, ::complex *, int,
80  Stype_t, Dtype_t, Mtype_t);
81 
82 
83  extern void
84  cCreate_CompCol_Matrix(SuperMatrix *, int, int, int, ::complex *,
85  int *, int *, Stype_t, Dtype_t, Mtype_t);
86 
87  extern int cQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
88 
89  extern void cPrint_CompCol_Matrix(char *, SuperMatrix *);
90 }
91 #endif
92 
93 #if HAVE_SLU_ZDEFS_H
94 #include "slu_dcomplex.h"
95 extern "C" {
96  extern void
97  zgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
98  char *, double *, double *, SuperMatrix *, SuperMatrix *,
99  void *, int, SuperMatrix *, SuperMatrix *,
100  double *, double *, double *, double *,
101 #if SUPERLU_MIN_VERSION_5
102  GlobalLU_t*,
103 #endif
104  mem_usage_t *, SuperLUStat_t *, int *);
105 
106 
107  extern void
108  zCreate_CompCol_Matrix(SuperMatrix *, int, int, int, doublecomplex *,
109  int *, int *, Stype_t, Dtype_t, Mtype_t);
110 
111  extern void
112  zCreate_Dense_Matrix(SuperMatrix *, int, int, doublecomplex *, int,
113  Stype_t, Dtype_t, Mtype_t);
114 
115  extern int zQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
116 
117  extern void zPrint_CompCol_Matrix(char *, SuperMatrix *);
118 }
119 #endif
120 
121 
122 #endif
123 #endif