EVSL  1.1.0
EigenValues Slicing Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
struct.h
Go to the documentation of this file.
1 #ifndef STRUCT_H
2 #define STRUCT_H
3 
4 #include <complex.h>
5 #include <stddef.h>
16 typedef struct _cooMat {
17  int nrows,
18  ncols,
19  nnz,
20  *ir,
21  *jc;
22  double *vv;
23 } cooMat;
24 
25 
31 typedef struct _csrMat {
32  int owndata,
33  nrows,
34  ncols,
35  *ia,
36  *ja;
37  double *a;
38 } csrMat;
39 
45 typedef struct _polparams {
48  int max_deg;
49  int min_deg ;
50  int damping;
51  double thresh_ext;
52  double thresh_int;
53  double tol;
54  double intvtol;
59  int type;
61  double *mu;
62  double cc;
63  double dd;
64  double gam;
65  double bar;
70  int deg ;
76 } polparams;
77 
86 typedef void (*SolFuncC)(int n, double *br, double *bz, double *xr, double *xz, void *data);
87 
91 typedef void (*SolFuncR)(double *b, double *x, void *data);
92 
96 typedef void (*MVFunc)(double *x, double *y, void *data);
97 
102 typedef struct _EVSLASIGMABSol {
104  void *data;
106 
112 typedef struct _ratparams {
113  /* */
114  int num;
115  int pw;
116  int method;
117  double beta;
118  double aa;
119  double bb;
120  double bar;
122  int *mulp;
123  int pow;
125  complex double *omega;
126  complex double *zk;
129 } ratparams;
130 
131 
136 typedef struct _EVSLMatvec {
138  void *data;
139 } EVSLMatvec;
140 
145 typedef struct _EVSLBSol {
147  void *data;
148 } EVSLBSol;
149 
154 typedef struct _EVSLLTSol {
156  void *data;
157 } EVSLLTSol;
158 
159 
164 typedef struct _evsldata {
165  int n;
166  int ifGenEv;
171  double *ds;
173 } evslData;
174 
175 /*
176  * Define a struct for L-S polynomial approximation to a matrix function
177  */
178 typedef struct _BSolDataPol {
179  int max_deg;
180  int deg;
181  double intv[2];
182  double cc, dd;
183  double tol;
184  double *mu;
185  double *wk;
186 } BSolDataPol;
187 
188 
189 /* global variable: evslData */
190 extern evslData evsldata;
191 
196 typedef struct _evslstat {
197  /* timing [level-1 funcs] */
198  double t_setBsv;
199  double t_setASigBsv;
200  double t_iter;
201  /* timing [level-2 funcs] */
202  double t_mvA;
203  double t_mvB;
204  double t_svB;
205  double t_svLT;
206  double t_svASigB;
207  double t_reorth;
208  double t_eig;
209  double t_blas;
210  double t_ritz;
211  double t_polAv;
212  double t_ratAv;
213  double t_sth;
214  size_t n_mvA;
215  size_t n_mvB;
216  size_t n_svB;
217  size_t n_svLT;
218  size_t n_svASigB;
219  size_t n_polAv;
220  size_t n_ratAv;
221  /* memory */
222  size_t alloced;
224  size_t alloced_max;
225 } evslStat;
226 
227 /* global variable: pevsl_stats */
228 extern evslStat evslstat;
229 #endif
int deg
Definition: struct.h:70
double tol
Definition: struct.h:183
double t_ratAv
Definition: struct.h:212
int max_deg
Definition: struct.h:179
size_t alloced_max
Definition: struct.h:224
double * mu
Definition: struct.h:184
double * mu
Definition: struct.h:61
size_t n_svASigB
Definition: struct.h:218
EVSLMatvec * Amv
Definition: struct.h:167
complex double * zk
Definition: struct.h:126
double cc
Definition: struct.h:182
int num
Definition: struct.h:114
struct _polparams polparams
parameters for polynomial filter
double bar
Definition: struct.h:120
void(* MVFunc)(double *x, double *y, void *data)
matvec function prototype
Definition: struct.h:96
int ifGenEv
Definition: struct.h:166
void(* SolFuncC)(int n, double *br, double *bz, double *xr, double *xz, void *data)
linear solver function prototype: [complex version] which is used for solving system with A-SIGMA B n...
Definition: struct.h:86
int ncols
Definition: struct.h:32
int nnz
Definition: struct.h:17
double * vv
Definition: struct.h:22
int pow
Definition: struct.h:123
double t_mvB
Definition: struct.h:203
double dd
Definition: struct.h:182
int * jc
Definition: struct.h:17
EVSLBSol * Bsol
Definition: struct.h:169
double t_blas
Definition: struct.h:209
double gam
Definition: struct.h:64
int min_deg
Definition: struct.h:49
int * ir
Definition: struct.h:17
double t_polAv
Definition: struct.h:211
void * data
Definition: struct.h:104
void * data
Definition: struct.h:138
user-provided function for solving L^{T} x = b
Definition: struct.h:154
user-provided function and data for solving B x = b
Definition: struct.h:145
int n
Definition: struct.h:165
int pw
Definition: struct.h:115
int method
Definition: struct.h:116
size_t n_svLT
Definition: struct.h:217
void * data
Definition: struct.h:156
struct _EVSLLTSol EVSLLTSol
user-provided function for solving L^{T} x = b
double t_reorth
Definition: struct.h:207
size_t alloced
Definition: struct.h:222
EVSLMatvec * Bmv
Definition: struct.h:168
double thresh_ext
Definition: struct.h:51
EVSLASIGMABSol * ASIGBsol
Definition: struct.h:127
size_t n_polAv
Definition: struct.h:219
double * wk
Definition: struct.h:185
double intv[2]
Definition: struct.h:181
struct _EVSLBSol EVSLBSol
user-provided function and data for solving B x = b
struct _evslstat evslStat
timing and memory statistics of EVSL
struct _EVSLASIGMABSol EVSLASIGMABSol
user-provided function and data for solving (A - SIGMA*B) x = b
double t_sth
Definition: struct.h:213
double dd
Definition: struct.h:63
double t_mvA
Definition: struct.h:202
double thresh_int
Definition: struct.h:52
void * data
Definition: struct.h:147
SolFuncR func
Definition: struct.h:155
double t_ritz
Definition: struct.h:210
user-provided function and data for solving (A - SIGMA*B) x = b
Definition: struct.h:102
size_t n_ratAv
Definition: struct.h:220
int type
Definition: struct.h:59
double aa
Definition: struct.h:118
evslData evsldata
global variable of EVSL
Definition: evsl.c:15
void(* SolFuncR)(double *b, double *x, void *data)
function prototype for applying the solve B x = b
Definition: struct.h:91
sparse matrix format: the compressed sparse row (CSR) format, 0-based
Definition: struct.h:31
double tol
Definition: struct.h:53
double * a
Definition: struct.h:37
int ncols
Definition: struct.h:17
int max_deg
Definition: struct.h:48
size_t alloced_total
Definition: struct.h:223
double t_svASigB
Definition: struct.h:206
int * ia
Definition: struct.h:32
double t_setBsv
Definition: struct.h:198
EVSLLTSol * LTsol
Definition: struct.h:170
MVFunc func
Definition: struct.h:137
struct _BSolDataPol BSolDataPol
double * ds
Definition: struct.h:171
struct _ratparams ratparams
parameters for rational filter
int damping
Definition: struct.h:50
size_t n_mvB
Definition: struct.h:215
int * ja
Definition: struct.h:32
int owndata
Definition: struct.h:32
int nrows
Definition: struct.h:17
struct _evsldata evslData
wrapper of all global variables in EVSL
double t_eig
Definition: struct.h:208
wrapper of all global variables in EVSL
Definition: struct.h:164
double intvtol
Definition: struct.h:54
struct _cooMat cooMat
sparse matrix format: the coordinate (COO) format, 0-based
parameters for polynomial filter
Definition: struct.h:45
double beta
Definition: struct.h:117
double t_setASigBsv
Definition: struct.h:199
double t_svLT
Definition: struct.h:205
evslStat evslstat
global statistics of EVSL
Definition: evsl.c:21
int * mulp
Definition: struct.h:122
timing and memory statistics of EVSL
Definition: struct.h:196
size_t n_mvA
Definition: struct.h:214
double t_svB
Definition: struct.h:204
SolFuncR func
Definition: struct.h:146
int nrows
Definition: struct.h:32
complex double * omega
Definition: struct.h:125
sparse matrix format: the coordinate (COO) format, 0-based
Definition: struct.h:16
user-provided Mat-Vec function and data for y = A * x or y = B * x
Definition: struct.h:136
struct _csrMat csrMat
sparse matrix format: the compressed sparse row (CSR) format, 0-based
double cc
Definition: struct.h:62
double bar
Definition: struct.h:65
SolFuncC func
Definition: struct.h:103
struct _EVSLMatvec EVSLMatvec
user-provided Mat-Vec function and data for y = A * x or y = B * x
double bb
Definition: struct.h:119
double t_iter
Definition: struct.h:200
parameters for rational filter
Definition: struct.h:112
size_t n_svB
Definition: struct.h:216