1 /*******************************************************************************
2  * Copyright (c) 2018, College of William & Mary
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *     * Redistributions of source code must retain the above copyright
8  *       notice, this list of conditions and the following disclaimer.
9  *     * Redistributions in binary form must reproduce the above copyright
10  *       notice, this list of conditions and the following disclaimer in the
11  *       documentation and/or other materials provided with the distribution.
12  *     * Neither the name of the College of William & Mary nor the
13  *       names of its contributors may be used to endorse or promote products
14  *       derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL THE COLLEGE OF WILLIAM & MARY BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  * PRIMME: https://github.com/primme/primme
28  * Contact: Andreas Stathopoulos, a n d r e a s _at_ c s . w m . e d u
29  *******************************************************************************
30  *   NOTE: THIS FILE IS AUTOMATICALLY GENERATED. PLEASE DON'T MODIFY
31  ******************************************************************************/
32 
33 
34 #ifndef primme_c_H
35 #define primme_c_H
36 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Sprimme)
37 #  define Xprimme_aux_Sprimme CONCAT(Xprimme_aux_,WITH_KIND(SCALAR_SUF))
38 #endif
39 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Rprimme)
40 #  define Xprimme_aux_Rprimme CONCAT(Xprimme_aux_,WITH_KIND(REAL_SUF))
41 #endif
42 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SHprimme)
43 #  define Xprimme_aux_SHprimme CONCAT(Xprimme_aux_,WITH_KIND(HOST_SCALAR_SUF))
44 #endif
45 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RHprimme)
46 #  define Xprimme_aux_RHprimme CONCAT(Xprimme_aux_,WITH_KIND(HOST_REAL_SUF))
47 #endif
48 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SXprimme)
49 #  define Xprimme_aux_SXprimme CONCAT(Xprimme_aux_,WITH_KIND(XSCALAR_SUF))
50 #endif
51 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RXprimme)
52 #  define Xprimme_aux_RXprimme CONCAT(Xprimme_aux_,WITH_KIND(XREAL_SUF))
53 #endif
54 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Shprimme)
55 #  define Xprimme_aux_Shprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),KIND_C))
56 #endif
57 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Rhprimme)
58 #  define Xprimme_aux_Rhprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),KIND_C))
59 #endif
60 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Ssprimme)
61 #  define Xprimme_aux_Ssprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),KIND_C))
62 #endif
63 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Rsprimme)
64 #  define Xprimme_aux_Rsprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),KIND_C))
65 #endif
66 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Sdprimme)
67 #  define Xprimme_aux_Sdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),KIND_C))
68 #endif
69 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Rdprimme)
70 #  define Xprimme_aux_Rdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),KIND_C))
71 #endif
72 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Sqprimme)
73 #  define Xprimme_aux_Sqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),KIND_C))
74 #endif
75 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_Rqprimme)
76 #  define Xprimme_aux_Rqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),KIND_C))
77 #endif
78 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SXhprimme)
79 #  define Xprimme_aux_SXhprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),KIND_C))
80 #endif
81 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RXhprimme)
82 #  define Xprimme_aux_RXhprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,h),primme),KIND_C))
83 #endif
84 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SXsprimme)
85 #  define Xprimme_aux_SXsprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
86 #endif
87 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RXsprimme)
88 #  define Xprimme_aux_RXsprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
89 #endif
90 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SXdprimme)
91 #  define Xprimme_aux_SXdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
92 #endif
93 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RXdprimme)
94 #  define Xprimme_aux_RXdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
95 #endif
96 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SXqprimme)
97 #  define Xprimme_aux_SXqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
98 #endif
99 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RXqprimme)
100 #  define Xprimme_aux_RXqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
101 #endif
102 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SHhprimme)
103 #  define Xprimme_aux_SHhprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
104 #endif
105 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RHhprimme)
106 #  define Xprimme_aux_RHhprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
107 #endif
108 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SHsprimme)
109 #  define Xprimme_aux_SHsprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
110 #endif
111 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RHsprimme)
112 #  define Xprimme_aux_RHsprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
113 #endif
114 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SHdprimme)
115 #  define Xprimme_aux_SHdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
116 #endif
117 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RHdprimme)
118 #  define Xprimme_aux_RHdprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
119 #endif
120 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_SHqprimme)
121 #  define Xprimme_aux_SHqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
122 #endif
123 #if !defined(CHECK_TEMPLATE) && !defined(Xprimme_aux_RHqprimme)
124 #  define Xprimme_aux_RHqprimme CONCAT(Xprimme_aux_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
125 #endif
126 int Xprimme_aux_dprimme(void *evals, void *evecs, void *resNorms,
127             primme_params *primme, primme_op_datatype evals_resNorms_type);
128 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Sprimme)
129 #  define wrapper_Sprimme CONCAT(wrapper_,WITH_KIND(SCALAR_SUF))
130 #endif
131 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Rprimme)
132 #  define wrapper_Rprimme CONCAT(wrapper_,WITH_KIND(REAL_SUF))
133 #endif
134 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SHprimme)
135 #  define wrapper_SHprimme CONCAT(wrapper_,WITH_KIND(HOST_SCALAR_SUF))
136 #endif
137 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RHprimme)
138 #  define wrapper_RHprimme CONCAT(wrapper_,WITH_KIND(HOST_REAL_SUF))
139 #endif
140 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SXprimme)
141 #  define wrapper_SXprimme CONCAT(wrapper_,WITH_KIND(XSCALAR_SUF))
142 #endif
143 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RXprimme)
144 #  define wrapper_RXprimme CONCAT(wrapper_,WITH_KIND(XREAL_SUF))
145 #endif
146 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Shprimme)
147 #  define wrapper_Shprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),KIND_C))
148 #endif
149 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Rhprimme)
150 #  define wrapper_Rhprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),KIND_C))
151 #endif
152 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Ssprimme)
153 #  define wrapper_Ssprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),KIND_C))
154 #endif
155 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Rsprimme)
156 #  define wrapper_Rsprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),KIND_C))
157 #endif
158 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Sdprimme)
159 #  define wrapper_Sdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),KIND_C))
160 #endif
161 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Rdprimme)
162 #  define wrapper_Rdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),KIND_C))
163 #endif
164 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Sqprimme)
165 #  define wrapper_Sqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),KIND_C))
166 #endif
167 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_Rqprimme)
168 #  define wrapper_Rqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),KIND_C))
169 #endif
170 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SXhprimme)
171 #  define wrapper_SXhprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),KIND_C))
172 #endif
173 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RXhprimme)
174 #  define wrapper_RXhprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,h),primme),KIND_C))
175 #endif
176 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SXsprimme)
177 #  define wrapper_SXsprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
178 #endif
179 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RXsprimme)
180 #  define wrapper_RXsprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
181 #endif
182 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SXdprimme)
183 #  define wrapper_SXdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
184 #endif
185 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RXdprimme)
186 #  define wrapper_RXdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
187 #endif
188 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SXqprimme)
189 #  define wrapper_SXqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
190 #endif
191 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RXqprimme)
192 #  define wrapper_RXqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
193 #endif
194 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SHhprimme)
195 #  define wrapper_SHhprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
196 #endif
197 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RHhprimme)
198 #  define wrapper_RHhprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
199 #endif
200 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SHsprimme)
201 #  define wrapper_SHsprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),KIND_C))
202 #endif
203 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RHsprimme)
204 #  define wrapper_RHsprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,s),primme),KIND_C))
205 #endif
206 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SHdprimme)
207 #  define wrapper_SHdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),KIND_C))
208 #endif
209 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RHdprimme)
210 #  define wrapper_RHdprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,d),primme),KIND_C))
211 #endif
212 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_SHqprimme)
213 #  define wrapper_SHqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),KIND_C))
214 #endif
215 #if !defined(CHECK_TEMPLATE) && !defined(wrapper_RHqprimme)
216 #  define wrapper_RHqprimme CONCAT(wrapper_,CONCAT(CONCAT(CONCAT(,q),primme),KIND_C))
217 #endif
218 int wrapper_dprimme(void *evals, void *evecs, void *resNorms,
219       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
220       int *outInitSize, primme_context ctx);
221 #if !defined(CHECK_TEMPLATE) && !defined(check_input)
222 #  define check_input CONCAT(check_input,WITH_KIND(SCALAR_SUF))
223 #endif
224 int check_inputdprimme(
225       void *evals, void *evecs, void *resNorms, primme_params *primme);
226 #if !defined(CHECK_TEMPLATE) && !defined(convTestFunAbsolute)
227 #  define convTestFunAbsolute CONCAT(convTestFunAbsolute,WITH_KIND(SCALAR_SUF))
228 #endif
229 void convTestFunAbsolutedprimme(double *eval, void *evec, double *rNorm,
230       int *isConv, primme_params *primme, int *ierr);
231 #if !defined(CHECK_TEMPLATE) && !defined(default_monitor)
232 #  define default_monitor CONCAT(default_monitor,WITH_KIND(SCALAR_SUF))
233 #endif
234 void default_monitordprimme(void *basisEvals_, int *basisSize, int *basisFlags,
235       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
236       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
237       int *inner_its, void *LSRes_, const char *msg, double *time,
238       primme_event *event, primme_params *primme, int *err);
239 #if !defined(CHECK_TEMPLATE) && !defined(check_params_coherence)
240 #  define check_params_coherence CONCAT(check_params_coherence,WITH_KIND(SCALAR_SUF))
241 #endif
242 int check_params_coherencedprimme(primme_context ctx);
243 #if !defined(CHECK_TEMPLATE) && !defined(coordinated_exit)
244 #  define coordinated_exit CONCAT(coordinated_exit,WITH_KIND(SCALAR_SUF))
245 #endif
246 int coordinated_exitdprimme(int ret, primme_context ctx);
247 int Xprimme_aux_hprimme(void *evals, void *evecs, void *resNorms,
248             primme_params *primme, primme_op_datatype evals_resNorms_type);
249 int wrapper_hprimme(void *evals, void *evecs, void *resNorms,
250       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
251       int *outInitSize, primme_context ctx);
252 int check_inputhprimme(
253       void *evals, void *evecs, void *resNorms, primme_params *primme);
254 void convTestFunAbsolutehprimme(double *eval, void *evec, double *rNorm,
255       int *isConv, primme_params *primme, int *ierr);
256 void default_monitorhprimme(void *basisEvals_, int *basisSize, int *basisFlags,
257       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
258       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
259       int *inner_its, void *LSRes_, const char *msg, double *time,
260       primme_event *event, primme_params *primme, int *err);
261 int check_params_coherencehprimme(primme_context ctx);
262 int coordinated_exithprimme(int ret, primme_context ctx);
263 int Xprimme_aux_kprimme_normal(void *evals, void *evecs, void *resNorms,
264             primme_params *primme, primme_op_datatype evals_resNorms_type);
265 int wrapper_kprimme_normal(void *evals, void *evecs, void *resNorms,
266       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
267       int *outInitSize, primme_context ctx);
268 int check_inputkprimme_normal(
269       void *evals, void *evecs, void *resNorms, primme_params *primme);
270 void convTestFunAbsolutekprimme_normal(double *eval, void *evec, double *rNorm,
271       int *isConv, primme_params *primme, int *ierr);
272 void default_monitorkprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
273       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
274       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
275       int *inner_its, void *LSRes_, const char *msg, double *time,
276       primme_event *event, primme_params *primme, int *err);
277 int check_params_coherencekprimme_normal(primme_context ctx);
278 int coordinated_exitkprimme_normal(int ret, primme_context ctx);
279 int Xprimme_aux_kprimme(void *evals, void *evecs, void *resNorms,
280             primme_params *primme, primme_op_datatype evals_resNorms_type);
281 int wrapper_kprimme(void *evals, void *evecs, void *resNorms,
282       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
283       int *outInitSize, primme_context ctx);
284 int check_inputkprimme(
285       void *evals, void *evecs, void *resNorms, primme_params *primme);
286 void convTestFunAbsolutekprimme(double *eval, void *evec, double *rNorm,
287       int *isConv, primme_params *primme, int *ierr);
288 void default_monitorkprimme(void *basisEvals_, int *basisSize, int *basisFlags,
289       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
290       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
291       int *inner_its, void *LSRes_, const char *msg, double *time,
292       primme_event *event, primme_params *primme, int *err);
293 int check_params_coherencekprimme(primme_context ctx);
294 int coordinated_exitkprimme(int ret, primme_context ctx);
295 int Xprimme_aux_sprimme(void *evals, void *evecs, void *resNorms,
296             primme_params *primme, primme_op_datatype evals_resNorms_type);
297 int wrapper_sprimme(void *evals, void *evecs, void *resNorms,
298       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
299       int *outInitSize, primme_context ctx);
300 int check_inputsprimme(
301       void *evals, void *evecs, void *resNorms, primme_params *primme);
302 void convTestFunAbsolutesprimme(double *eval, void *evec, double *rNorm,
303       int *isConv, primme_params *primme, int *ierr);
304 void default_monitorsprimme(void *basisEvals_, int *basisSize, int *basisFlags,
305       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
306       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
307       int *inner_its, void *LSRes_, const char *msg, double *time,
308       primme_event *event, primme_params *primme, int *err);
309 int check_params_coherencesprimme(primme_context ctx);
310 int coordinated_exitsprimme(int ret, primme_context ctx);
311 int Xprimme_aux_cprimme_normal(void *evals, void *evecs, void *resNorms,
312             primme_params *primme, primme_op_datatype evals_resNorms_type);
313 int wrapper_cprimme_normal(void *evals, void *evecs, void *resNorms,
314       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
315       int *outInitSize, primme_context ctx);
316 int check_inputcprimme_normal(
317       void *evals, void *evecs, void *resNorms, primme_params *primme);
318 void convTestFunAbsolutecprimme_normal(double *eval, void *evec, double *rNorm,
319       int *isConv, primme_params *primme, int *ierr);
320 void default_monitorcprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
321       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
322       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
323       int *inner_its, void *LSRes_, const char *msg, double *time,
324       primme_event *event, primme_params *primme, int *err);
325 int check_params_coherencecprimme_normal(primme_context ctx);
326 int coordinated_exitcprimme_normal(int ret, primme_context ctx);
327 int Xprimme_aux_cprimme(void *evals, void *evecs, void *resNorms,
328             primme_params *primme, primme_op_datatype evals_resNorms_type);
329 int wrapper_cprimme(void *evals, void *evecs, void *resNorms,
330       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
331       int *outInitSize, primme_context ctx);
332 int check_inputcprimme(
333       void *evals, void *evecs, void *resNorms, primme_params *primme);
334 void convTestFunAbsolutecprimme(double *eval, void *evec, double *rNorm,
335       int *isConv, primme_params *primme, int *ierr);
336 void default_monitorcprimme(void *basisEvals_, int *basisSize, int *basisFlags,
337       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
338       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
339       int *inner_its, void *LSRes_, const char *msg, double *time,
340       primme_event *event, primme_params *primme, int *err);
341 int check_params_coherencecprimme(primme_context ctx);
342 int coordinated_exitcprimme(int ret, primme_context ctx);
343 int Xprimme_aux_zprimme_normal(void *evals, void *evecs, void *resNorms,
344             primme_params *primme, primme_op_datatype evals_resNorms_type);
345 int wrapper_zprimme_normal(void *evals, void *evecs, void *resNorms,
346       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
347       int *outInitSize, primme_context ctx);
348 int check_inputzprimme_normal(
349       void *evals, void *evecs, void *resNorms, primme_params *primme);
350 void convTestFunAbsolutezprimme_normal(double *eval, void *evec, double *rNorm,
351       int *isConv, primme_params *primme, int *ierr);
352 void default_monitorzprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
353       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
354       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
355       int *inner_its, void *LSRes_, const char *msg, double *time,
356       primme_event *event, primme_params *primme, int *err);
357 int check_params_coherencezprimme_normal(primme_context ctx);
358 int coordinated_exitzprimme_normal(int ret, primme_context ctx);
359 int Xprimme_aux_zprimme(void *evals, void *evecs, void *resNorms,
360             primme_params *primme, primme_op_datatype evals_resNorms_type);
361 int wrapper_zprimme(void *evals, void *evecs, void *resNorms,
362       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
363       int *outInitSize, primme_context ctx);
364 int check_inputzprimme(
365       void *evals, void *evecs, void *resNorms, primme_params *primme);
366 void convTestFunAbsolutezprimme(double *eval, void *evec, double *rNorm,
367       int *isConv, primme_params *primme, int *ierr);
368 void default_monitorzprimme(void *basisEvals_, int *basisSize, int *basisFlags,
369       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
370       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
371       int *inner_its, void *LSRes_, const char *msg, double *time,
372       primme_event *event, primme_params *primme, int *err);
373 int check_params_coherencezprimme(primme_context ctx);
374 int coordinated_exitzprimme(int ret, primme_context ctx);
375 int Xprimme_aux_magma_hprimme(void *evals, void *evecs, void *resNorms,
376             primme_params *primme, primme_op_datatype evals_resNorms_type);
377 int wrapper_magma_hprimme(void *evals, void *evecs, void *resNorms,
378       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
379       int *outInitSize, primme_context ctx);
380 int check_inputmagma_hprimme(
381       void *evals, void *evecs, void *resNorms, primme_params *primme);
382 void convTestFunAbsolutemagma_hprimme(double *eval, void *evec, double *rNorm,
383       int *isConv, primme_params *primme, int *ierr);
384 void default_monitormagma_hprimme(void *basisEvals_, int *basisSize, int *basisFlags,
385       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
386       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
387       int *inner_its, void *LSRes_, const char *msg, double *time,
388       primme_event *event, primme_params *primme, int *err);
389 int check_params_coherencemagma_hprimme(primme_context ctx);
390 int coordinated_exitmagma_hprimme(int ret, primme_context ctx);
391 int Xprimme_aux_magma_kprimme_normal(void *evals, void *evecs, void *resNorms,
392             primme_params *primme, primme_op_datatype evals_resNorms_type);
393 int wrapper_magma_kprimme_normal(void *evals, void *evecs, void *resNorms,
394       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
395       int *outInitSize, primme_context ctx);
396 int check_inputmagma_kprimme_normal(
397       void *evals, void *evecs, void *resNorms, primme_params *primme);
398 void convTestFunAbsolutemagma_kprimme_normal(double *eval, void *evec, double *rNorm,
399       int *isConv, primme_params *primme, int *ierr);
400 void default_monitormagma_kprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
401       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
402       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
403       int *inner_its, void *LSRes_, const char *msg, double *time,
404       primme_event *event, primme_params *primme, int *err);
405 int check_params_coherencemagma_kprimme_normal(primme_context ctx);
406 int coordinated_exitmagma_kprimme_normal(int ret, primme_context ctx);
407 int Xprimme_aux_magma_kprimme(void *evals, void *evecs, void *resNorms,
408             primme_params *primme, primme_op_datatype evals_resNorms_type);
409 int wrapper_magma_kprimme(void *evals, void *evecs, void *resNorms,
410       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
411       int *outInitSize, primme_context ctx);
412 int check_inputmagma_kprimme(
413       void *evals, void *evecs, void *resNorms, primme_params *primme);
414 void convTestFunAbsolutemagma_kprimme(double *eval, void *evec, double *rNorm,
415       int *isConv, primme_params *primme, int *ierr);
416 void default_monitormagma_kprimme(void *basisEvals_, int *basisSize, int *basisFlags,
417       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
418       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
419       int *inner_its, void *LSRes_, const char *msg, double *time,
420       primme_event *event, primme_params *primme, int *err);
421 int check_params_coherencemagma_kprimme(primme_context ctx);
422 int coordinated_exitmagma_kprimme(int ret, primme_context ctx);
423 int Xprimme_aux_magma_sprimme(void *evals, void *evecs, void *resNorms,
424             primme_params *primme, primme_op_datatype evals_resNorms_type);
425 int wrapper_magma_sprimme(void *evals, void *evecs, void *resNorms,
426       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
427       int *outInitSize, primme_context ctx);
428 int check_inputmagma_sprimme(
429       void *evals, void *evecs, void *resNorms, primme_params *primme);
430 void convTestFunAbsolutemagma_sprimme(double *eval, void *evec, double *rNorm,
431       int *isConv, primme_params *primme, int *ierr);
432 void default_monitormagma_sprimme(void *basisEvals_, int *basisSize, int *basisFlags,
433       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
434       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
435       int *inner_its, void *LSRes_, const char *msg, double *time,
436       primme_event *event, primme_params *primme, int *err);
437 int check_params_coherencemagma_sprimme(primme_context ctx);
438 int coordinated_exitmagma_sprimme(int ret, primme_context ctx);
439 int Xprimme_aux_magma_cprimme_normal(void *evals, void *evecs, void *resNorms,
440             primme_params *primme, primme_op_datatype evals_resNorms_type);
441 int wrapper_magma_cprimme_normal(void *evals, void *evecs, void *resNorms,
442       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
443       int *outInitSize, primme_context ctx);
444 int check_inputmagma_cprimme_normal(
445       void *evals, void *evecs, void *resNorms, primme_params *primme);
446 void convTestFunAbsolutemagma_cprimme_normal(double *eval, void *evec, double *rNorm,
447       int *isConv, primme_params *primme, int *ierr);
448 void default_monitormagma_cprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
449       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
450       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
451       int *inner_its, void *LSRes_, const char *msg, double *time,
452       primme_event *event, primme_params *primme, int *err);
453 int check_params_coherencemagma_cprimme_normal(primme_context ctx);
454 int coordinated_exitmagma_cprimme_normal(int ret, primme_context ctx);
455 int Xprimme_aux_magma_cprimme(void *evals, void *evecs, void *resNorms,
456             primme_params *primme, primme_op_datatype evals_resNorms_type);
457 int wrapper_magma_cprimme(void *evals, void *evecs, void *resNorms,
458       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
459       int *outInitSize, primme_context ctx);
460 int check_inputmagma_cprimme(
461       void *evals, void *evecs, void *resNorms, primme_params *primme);
462 void convTestFunAbsolutemagma_cprimme(double *eval, void *evec, double *rNorm,
463       int *isConv, primme_params *primme, int *ierr);
464 void default_monitormagma_cprimme(void *basisEvals_, int *basisSize, int *basisFlags,
465       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
466       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
467       int *inner_its, void *LSRes_, const char *msg, double *time,
468       primme_event *event, primme_params *primme, int *err);
469 int check_params_coherencemagma_cprimme(primme_context ctx);
470 int coordinated_exitmagma_cprimme(int ret, primme_context ctx);
471 int Xprimme_aux_magma_dprimme(void *evals, void *evecs, void *resNorms,
472             primme_params *primme, primme_op_datatype evals_resNorms_type);
473 int wrapper_magma_dprimme(void *evals, void *evecs, void *resNorms,
474       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
475       int *outInitSize, primme_context ctx);
476 int check_inputmagma_dprimme(
477       void *evals, void *evecs, void *resNorms, primme_params *primme);
478 void convTestFunAbsolutemagma_dprimme(double *eval, void *evec, double *rNorm,
479       int *isConv, primme_params *primme, int *ierr);
480 void default_monitormagma_dprimme(void *basisEvals_, int *basisSize, int *basisFlags,
481       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
482       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
483       int *inner_its, void *LSRes_, const char *msg, double *time,
484       primme_event *event, primme_params *primme, int *err);
485 int check_params_coherencemagma_dprimme(primme_context ctx);
486 int coordinated_exitmagma_dprimme(int ret, primme_context ctx);
487 int Xprimme_aux_magma_zprimme_normal(void *evals, void *evecs, void *resNorms,
488             primme_params *primme, primme_op_datatype evals_resNorms_type);
489 int wrapper_magma_zprimme_normal(void *evals, void *evecs, void *resNorms,
490       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
491       int *outInitSize, primme_context ctx);
492 int check_inputmagma_zprimme_normal(
493       void *evals, void *evecs, void *resNorms, primme_params *primme);
494 void convTestFunAbsolutemagma_zprimme_normal(double *eval, void *evec, double *rNorm,
495       int *isConv, primme_params *primme, int *ierr);
496 void default_monitormagma_zprimme_normal(void *basisEvals_, int *basisSize, int *basisFlags,
497       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
498       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
499       int *inner_its, void *LSRes_, const char *msg, double *time,
500       primme_event *event, primme_params *primme, int *err);
501 int check_params_coherencemagma_zprimme_normal(primme_context ctx);
502 int coordinated_exitmagma_zprimme_normal(int ret, primme_context ctx);
503 int Xprimme_aux_magma_zprimme(void *evals, void *evecs, void *resNorms,
504             primme_params *primme, primme_op_datatype evals_resNorms_type);
505 int wrapper_magma_zprimme(void *evals, void *evecs, void *resNorms,
506       primme_op_datatype evals_resNorms_type, primme_op_datatype evecs_type,
507       int *outInitSize, primme_context ctx);
508 int check_inputmagma_zprimme(
509       void *evals, void *evecs, void *resNorms, primme_params *primme);
510 void convTestFunAbsolutemagma_zprimme(double *eval, void *evec, double *rNorm,
511       int *isConv, primme_params *primme, int *ierr);
512 void default_monitormagma_zprimme(void *basisEvals_, int *basisSize, int *basisFlags,
513       int *iblock, int *blockSize, void *basisNorms_, int *numConverged,
514       void *lockedEvals_, int *numLocked, int *lockedFlags, void *lockedNorms_,
515       int *inner_its, void *LSRes_, const char *msg, double *time,
516       primme_event *event, primme_params *primme, int *err);
517 int check_params_coherencemagma_zprimme(primme_context ctx);
518 int coordinated_exitmagma_zprimme(int ret, primme_context ctx);
519 #endif
520