Eigenvalue SoLvers for Petaflop-Applications (ELPA) 2022.11.001.rc1
elpa_generated.h
Go to the documentation of this file.
1 // /src/elpa_impl.F90
2 #ifdef __cplusplus
3 #define double_complex std::complex<double>
4 #define float_complex std::complex<float>
5 extern "C" {
6 #else
7 #define double_complex double complex
8 #define float_complex float complex
9 #endif
26 void elpa_load_settings(elpa_t handle, const char *filename, int *error);
32 void elpa_print_settings(elpa_t handle, int *error);
38 void elpa_store_settings(elpa_t handle, const char *filename, int *error);
50 int elpa_setup(elpa_t handle);
60 void elpa_set_integer(elpa_t handle, const char *name, int value, int *error);
70 void elpa_get_integer(elpa_t handle, const char *name, int *value, int *error);
80 void elpa_set_float(elpa_t handle, const char *name, float value, int *error);
90 void elpa_get_float(elpa_t handle, const char *name, float *value, int *error);
100 void elpa_set_double(elpa_t handle, const char *name, double value, int *error);
110 void elpa_get_double(elpa_t handle, const char *name, double *value, int *error);
116 void elpa_autotune_set_api_version(elpa_t handle, int api_version, int *error);
124 elpa_autotune_t elpa_autotune_setup(elpa_t handle, int level, int domain, int *error);
132 int elpa_autotune_step(elpa_t handle, elpa_autotune_t autotune_handle, int *error);
140 void elpa_autotune_print_state(elpa_t handle, elpa_autotune_t autotune_handle, int *error);
148 void elpa_autotune_save_state(elpa_t handle, elpa_autotune_t autotune_handle, const char *filename, int *error);
156 void elpa_autotune_load_state(elpa_t handle, elpa_autotune_t autotune_handle, const char *filename, int *error);
164 void elpa_autotune_set_best(elpa_t handle, elpa_autotune_t autotune_handle, int *error);
172 void elpa_autotune_print_best(elpa_t handle, elpa_autotune_t autotune_handle, int *error);
173 // /src/elpa_impl_math_template.F90
174 void elpa_hermitian_multiply_a_h_a_d(elpa_t handle, char uplo_a, char uplo_c, int ncb, double *a, double *b, int nrows_b, int ncols_b, double *c, int nrows_c, int ncols_c, int *error);
175 void elpa_hermitian_multiply_a_h_a_f(elpa_t handle, char uplo_a, char uplo_c, int ncb, float *a, float *b, int nrows_b, int ncols_b, float *c, int nrows_c, int ncols_c, int *error);
176 void elpa_hermitian_multiply_a_h_a_dc(elpa_t handle, char uplo_a, char uplo_c, int ncb, double_complex *a, double_complex *b, int nrows_b, int ncols_b, double_complex *c, int nrows_c, int ncols_c, int *error);
177 void elpa_hermitian_multiply_a_h_a_fc(elpa_t handle, char uplo_a, char uplo_c, int ncb, float_complex *a, float_complex *b, int nrows_b, int ncols_b, float_complex *c, int nrows_c, int ncols_c, int *error);
178 void elpa_hermitian_multiply_d_ptr_d(elpa_t handle, char uplo_a, char uplo_c, int ncb, double *a, double *b, int nrows_b, int ncols_b, double *c, int nrows_c, int ncols_c, int *error);
179 void elpa_hermitian_multiply_d_ptr_f(elpa_t handle, char uplo_a, char uplo_c, int ncb, float *a, float *b, int nrows_b, int ncols_b, float *c, int nrows_c, int ncols_c, int *error);
180 void elpa_hermitian_multiply_d_ptr_dc(elpa_t handle, char uplo_a, char uplo_c, int ncb, double_complex *a, double_complex *b, int nrows_b, int ncols_b, double_complex *c, int nrows_c, int ncols_c, int *error);
181 void elpa_hermitian_multiply_d_ptr_fc(elpa_t handle, char uplo_a, char uplo_c, int ncb, float_complex *a, float_complex *b, int nrows_b, int ncols_b, float_complex *c, int nrows_c, int ncols_c, int *error);
182 void elpa_cholesky_a_h_a_d(elpa_t handle, double *a, int *error);
183 void elpa_cholesky_a_h_a_f(elpa_t handle, float *a, int *error);
184 void elpa_cholesky_a_h_a_dc(elpa_t handle, double_complex *a, int *error);
185 void elpa_cholesky_a_h_a_fc(elpa_t handle, float_complex *a, int *error);
186 void elpa_cholesky_d_ptr_d(elpa_t handle, double *a, int *error);
187 void elpa_cholesky_d_ptr_f(elpa_t handle, float *a, int *error);
188 void elpa_cholesky_d_ptr_dc(elpa_t handle, double_complex *a, int *error);
189 void elpa_cholesky_d_ptr_fc(elpa_t handle, float_complex *a, int *error);
190 void elpa_invert_trm_a_h_a_d(elpa_t handle, double *a, int *error);
191 void elpa_invert_trm_a_h_a_f(elpa_t handle, float *a, int *error);
192 void elpa_invert_trm_a_h_a_dc(elpa_t handle, double_complex *a, int *error);
193 void elpa_invert_trm_a_h_a_fc(elpa_t handle, float_complex *a, int *error);
194 void elpa_invert_trm_d_ptr_d(elpa_t handle, double *a, int *error);
195 void elpa_invert_trm_d_ptr_f(elpa_t handle, float *a, int *error);
196 void elpa_invert_trm_d_ptr_dc(elpa_t handle, double_complex *a, int *error);
197 void elpa_invert_trm_d_ptr_fc(elpa_t handle, float_complex *a, int *error);
198 void elpa_solve_tridiagonal_d(elpa_t handle, double *d, double *e, double *q, int *error);
199 void elpa_solve_tridiagonal_f(elpa_t handle, float *d, float *e, float *q, int *error);
200 // /src/elpa_impl_math_solvers_template.F90
201 void elpa_eigenvectors_a_h_a_d(elpa_t handle, double *a, double *ev, double *q, int *error);
202 void elpa_eigenvectors_a_h_a_f(elpa_t handle, float *a, float *ev, float *q, int *error);
203 void elpa_eigenvectors_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, double_complex *q, int *error);
204 void elpa_eigenvectors_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, float_complex *q, int *error);
205 void elpa_eigenvectors_d_ptr_d(elpa_t handle, double *a, double *ev, double *q, int *error);
206 void elpa_eigenvectors_d_ptr_f(elpa_t handle, float *a, float *ev, float *q, int *error);
207 void elpa_eigenvectors_d_ptr_dc(elpa_t handle, double_complex *a, double *ev, double_complex *q, int *error);
208 void elpa_eigenvectors_d_ptr_fc(elpa_t handle, float_complex *a, float *ev, float_complex *q, int *error);
209 void elpa_skew_eigenvectors_a_h_a_d(elpa_t handle, double *a, double *ev, double *q, int *error);
210 void elpa_skew_eigenvectors_a_h_a_f(elpa_t handle, float *a, float *ev, float *q, int *error);
211 void elpa_skew_eigenvectors_d_ptr_d(elpa_t handle, double *a, double *ev, double *q, int *error);
212 void elpa_skew_eigenvectors_d_ptr_f(elpa_t handle, float *a, float *ev, float *q, int *error);
213 void elpa_eigenvalues_a_h_a_d(elpa_t handle, double *a, double *ev, int *error);
214 void elpa_eigenvalues_a_h_a_f(elpa_t handle, float *a, float *ev, int *error);
215 void elpa_eigenvalues_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, int *error);
216 void elpa_eigenvalues_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, int *error);
217 void elpa_eigenvalues_d_ptr_d(elpa_t handle, double *a, double *ev, int *error);
218 void elpa_eigenvalues_d_ptr_f(elpa_t handle, float *a, float *ev, int *error);
219 void elpa_eigenvalues_d_ptr_dc(elpa_t handle, double_complex *a, double *ev, int *error);
220 void elpa_eigenvalues_d_ptr_fc(elpa_t handle, float_complex *a, float *ev, int *error);
221 void elpa_skew_eigenvalues_a_h_a_d(elpa_t handle, double *a, double *ev, int *error);
222 void elpa_skew_eigenvalues_a_h_a_f(elpa_t handle, float *a, float *ev, int *error);
223 void elpa_skew_eigenvalues_d_ptr_d(elpa_t handle, double *a, double *ev, int *error);
224 void elpa_skew_eigenvalues_d_ptr_f(elpa_t handle, float *a, float *ev, int *error);
225 // /src/elpa_impl_math_generalized_template.F90
226 void elpa_generalized_eigenvectors_d(elpa_t handle, double *a, double *b, double *ev, double *q,
227 int is_already_decomposed, int *error);
228 void elpa_generalized_eigenvectors_f(elpa_t handle, float *a, float *b, float *ev, float *q,
229 int is_already_decomposed, int *error);
231 int is_already_decomposed, int *error);
233 int is_already_decomposed, int *error);
234 void elpa_generalized_eigenvalues_d(elpa_t handle, double *a, double *b, double *ev,
235 int is_already_decomposed, int *error);
236 void elpa_generalized_eigenvalues_f(elpa_t handle, float *a, float *b, float *ev,
237 int is_already_decomposed, int *error);
239 int is_already_decomposed, int *error);
241 int is_already_decomposed, int *error);
242 // /src/elpa_api.F90
243 int elpa_init(int api_version);
244 // c_o: /src/elpa_impl.F90
245 #if OPTIONAL_C_ERROR_ARGUMENT == 1
246 #define elpa_allocate(...) CONC(elpa_allocate, NARGS(__VA_ARGS__))(__VA_ARGS__)
247 #endif
248 #if OPTIONAL_C_ERROR_ARGUMENT == 1
249 #if OPTIONAL_C_ERROR_ARGUMENT == 1
250 #define NARGS(...) NARGS_(5, ##__VA_ARGS__, 4, 3, 2, 1, 0)
251 #define NARGS_(_5, _4, _3, _2, _1, N, ...) N
252 #define CONC(A, B) CONC_(A, B)
253 #define CONC_(A, B) A##B
254 elpa_t elpa_allocate1(int *error);
255 elpa_t elpa_allocate0();
256 #endif
257 #define elpa_deallocate(...) CONC(elpa_deallocate, NARGS(__VA_ARGS__))(__VA_ARGS__)
258 #endif
259 #if OPTIONAL_C_ERROR_ARGUMENT == 1
260 void elpa_deallocate2(elpa_t handle, int *error);
261 void elpa_deallocate1(elpa_t handle);
262 #endif
263 #if OPTIONAL_C_ERROR_ARGUMENT == 1
264 #define elpa_autotune_deallocate(...) CONC(elpa_autotune_deallocate, NARGS(__VA_ARGS__))(__VA_ARGS__)
265 #endif
266 #if OPTIONAL_C_ERROR_ARGUMENT == 1
267 void elpa_autotune_deallocate2(elpa_autotune_t handle, int *error);
268 void elpa_autotune_deallocate1(elpa_autotune_t handle);
269 #endif
270 // c_o: /src/elpa_api.F90
271 #if OPTIONAL_C_ERROR_ARGUMENT == 1
272 #define elpa_uninit(...) CONC(elpa_uninit, NARGS(__VA_ARGS__))(__VA_ARGS__)
273 #endif
274 #if OPTIONAL_C_ERROR_ARGUMENT == 1
275 void elpa_uninit1(int *error);
276 void elpa_uninit0();
277 #endif
278 // c_no: /src/elpa_impl.F90
279 #if OPTIONAL_C_ERROR_ARGUMENT != 1
281 #endif
282 #if OPTIONAL_C_ERROR_ARGUMENT != 1
283 void elpa_deallocate(elpa_t handle, int *error);
284 #endif
285 #if OPTIONAL_C_ERROR_ARGUMENT != 1
287 #endif
288 // c_no: /src/elpa_api.F90
289 #if OPTIONAL_C_ERROR_ARGUMENT != 1
290 void elpa_uninit(int *error);
291 #endif
292 #ifdef __cplusplus
293 }
294 #endif
struct elpa_struct * elpa_t
Definition: elpa.h:10
struct elpa_autotune_struct * elpa_autotune_t
Definition: elpa.h:13
void elpa_set_integer(elpa_t handle, const char *name, int value, int *error)
C interface for the implementation of the elpa_set_integer method This method is available to the use...
void elpa_set_float(elpa_t handle, const char *name, float value, int *error)
C interface for the implementation of the elpa_set_float method This method is available to the user ...
void elpa_autotune_print_state(elpa_t handle, elpa_autotune_t autotune_handle, int *error)
C interface for the implementation of the elpa_autotune_print_state method.
void elpa_cholesky_d_ptr_fc(elpa_t handle, float complex *a, int *error)
void elpa_invert_trm_a_h_a_dc(elpa_t handle, double complex *a, int *error)
void elpa_hermitian_multiply_a_h_a_fc(elpa_t handle, char uplo_a, char uplo_c, int ncb, float complex *a, float complex *b, int nrows_b, int ncols_b, float complex *c, int nrows_c, int ncols_c, int *error)
void elpa_skew_eigenvectors_d_ptr_f(elpa_t handle, float *a, float *ev, float *q, int *error)
void elpa_hermitian_multiply_d_ptr_f(elpa_t handle, char uplo_a, char uplo_c, int ncb, float *a, float *b, int nrows_b, int ncols_b, float *c, int nrows_c, int ncols_c, int *error)
void elpa_get_integer(elpa_t handle, const char *name, int *value, int *error)
C interface for the implementation of the elpa_get_integer method This method is available to the use...
void elpa_eigenvalues_a_h_a_fc(elpa_t handle, float complex *a, float *ev, int *error)
void elpa_cholesky_a_h_a_d(elpa_t handle, double *a, int *error)
int elpa_setup(elpa_t handle)
C interface for the implementation of the elpa_autotune_deallocate method.
void elpa_eigenvectors_a_h_a_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error)
void elpa_eigenvectors_a_h_a_fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error)
void elpa_uninit(int *error)
void elpa_generalized_eigenvectors_f(elpa_t handle, float *a, float *b, float *ev, float *q, int is_already_decomposed, int *error)
void elpa_eigenvalues_d_ptr_f(elpa_t handle, float *a, float *ev, int *error)
void elpa_print_settings(elpa_t handle, int *error)
C interface for the implementation of the elpa_print_settings method.
void elpa_cholesky_d_ptr_f(elpa_t handle, float *a, int *error)
void elpa_deallocate(elpa_t handle, int *error)
int elpa_init(int api_version)
void elpa_generalized_eigenvectors_fc(elpa_t handle, float complex *a, float complex *b, float *ev, float complex *q, int is_already_decomposed, int *error)
void elpa_eigenvalues_d_ptr_d(elpa_t handle, double *a, double *ev, int *error)
void elpa_load_settings(elpa_t handle, const char *filename, int *error)
C interface for the implementation of the elpa_allocate method.
void elpa_generalized_eigenvectors_dc(elpa_t handle, double complex *a, double complex *b, double *ev, double complex *q, int is_already_decomposed, int *error)
void elpa_invert_trm_d_ptr_f(elpa_t handle, float *a, int *error)
void elpa_cholesky_d_ptr_dc(elpa_t handle, double complex *a, int *error)
void elpa_autotune_print_best(elpa_t handle, elpa_autotune_t autotune_handle, int *error)
C interface for the implementation of the elpa_autotune_print_best method.
void elpa_eigenvalues_d_ptr_fc(elpa_t handle, float complex *a, float *ev, int *error)
void elpa_hermitian_multiply_d_ptr_dc(elpa_t handle, char uplo_a, char uplo_c, int ncb, double complex *a, double complex *b, int nrows_b, int ncols_b, double complex *c, int nrows_c, int ncols_c, int *error)
void elpa_eigenvalues_d_ptr_dc(elpa_t handle, double complex *a, double *ev, int *error)
void elpa_invert_trm_a_h_a_d(elpa_t handle, double *a, int *error)
void elpa_generalized_eigenvalues_d(elpa_t handle, double *a, double *b, double *ev, int is_already_decomposed, int *error)
void elpa_generalized_eigenvalues_f(elpa_t handle, float *a, float *b, float *ev, int is_already_decomposed, int *error)
void elpa_autotune_set_best(elpa_t handle, elpa_autotune_t autotune_handle, int *error)
C interface for the implementation of the elpa_autotune_set_best method.
void elpa_hermitian_multiply_a_h_a_d(elpa_t handle, char uplo_a, char uplo_c, int ncb, double *a, double *b, int nrows_b, int ncols_b, double *c, int nrows_c, int ncols_c, int *error)
void elpa_autotune_set_api_version(elpa_t handle, int api_version, int *error)
C interface for the implementation of the elpa_autotune_set_api_version method.
void elpa_eigenvectors_a_h_a_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_invert_trm_d_ptr_dc(elpa_t handle, double complex *a, int *error)
void elpa_eigenvalues_a_h_a_f(elpa_t handle, float *a, float *ev, int *error)
void elpa_skew_eigenvalues_a_h_a_d(elpa_t handle, double *a, double *ev, int *error)
void elpa_hermitian_multiply_a_h_a_f(elpa_t handle, char uplo_a, char uplo_c, int ncb, float *a, float *b, int nrows_b, int ncols_b, float *c, int nrows_c, int ncols_c, int *error)
void elpa_skew_eigenvalues_d_ptr_f(elpa_t handle, float *a, float *ev, int *error)
void elpa_eigenvectors_d_ptr_f(elpa_t handle, float *a, float *ev, float *q, int *error)
void elpa_cholesky_a_h_a_f(elpa_t handle, float *a, int *error)
void elpa_skew_eigenvectors_a_h_a_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_eigenvectors_d_ptr_fc(elpa_t handle, float complex *a, float *ev, float complex *q, int *error)
void elpa_eigenvectors_d_ptr_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_generalized_eigenvalues_fc(elpa_t handle, float complex *a, float complex *b, float *ev, int is_already_decomposed, int *error)
void elpa_solve_tridiagonal_d(elpa_t handle, double *d, double *e, double *q, int *error)
#define float_complex
Definition: elpa_generated.h:8
void elpa_cholesky_a_h_a_fc(elpa_t handle, float complex *a, int *error)
void elpa_autotune_load_state(elpa_t handle, elpa_autotune_t autotune_handle, const char *filename, int *error)
C interface for the implementation of the elpa_autotune_load_state method.
void elpa_skew_eigenvectors_a_h_a_f(elpa_t handle, float *a, float *ev, float *q, int *error)
int elpa_autotune_step(elpa_t handle, elpa_autotune_t autotune_handle, int *error)
C interface for the implementation of the elpa_autotune_step method.
void elpa_generalized_eigenvalues_dc(elpa_t handle, double complex *a, double complex *b, double *ev, int is_already_decomposed, int *error)
void elpa_invert_trm_a_h_a_f(elpa_t handle, float *a, int *error)
elpa_autotune_t elpa_autotune_setup(elpa_t handle, int level, int domain, int *error)
C interface for the implementation of the elpa_autotune_setup method.
void elpa_invert_trm_d_ptr_d(elpa_t handle, double *a, int *error)
void elpa_eigenvectors_a_h_a_f(elpa_t handle, float *a, float *ev, float *q, int *error)
void elpa_autotune_save_state(elpa_t handle, elpa_autotune_t autotune_handle, const char *filename, int *error)
C interface for the implementation of the elpa_autotune_save_state method.
void elpa_eigenvalues_a_h_a_dc(elpa_t handle, double complex *a, double *ev, int *error)
void elpa_skew_eigenvectors_d_ptr_d(elpa_t handle, double *a, double *ev, double *q, int *error)
void elpa_cholesky_d_ptr_d(elpa_t handle, double *a, int *error)
void elpa_cholesky_a_h_a_dc(elpa_t handle, double complex *a, int *error)
void elpa_invert_trm_d_ptr_fc(elpa_t handle, float complex *a, int *error)
void elpa_hermitian_multiply_d_ptr_d(elpa_t handle, char uplo_a, char uplo_c, int ncb, double *a, double *b, int nrows_b, int ncols_b, double *c, int nrows_c, int ncols_c, int *error)
void elpa_hermitian_multiply_a_h_a_dc(elpa_t handle, char uplo_a, char uplo_c, int ncb, double complex *a, double complex *b, int nrows_b, int ncols_b, double complex *c, int nrows_c, int ncols_c, int *error)
void elpa_invert_trm_a_h_a_fc(elpa_t handle, float complex *a, int *error)
void elpa_eigenvectors_d_ptr_dc(elpa_t handle, double complex *a, double *ev, double complex *q, int *error)
void elpa_store_settings(elpa_t handle, const char *filename, int *error)
C interface for the implementation of the elpa_store_settings method.
void elpa_set_double(elpa_t handle, const char *name, double value, int *error)
C interface for the implementation of the elpa_set_double method This method is available to the user...
void elpa_eigenvalues_a_h_a_d(elpa_t handle, double *a, double *ev, int *error)
void elpa_get_double(elpa_t handle, const char *name, double *value, int *error)
C interface for the implementation of the elpa_get_double method This method is available to the user...
void elpa_get_float(elpa_t handle, const char *name, float *value, int *error)
C interface for the implementation of the elpa_get_float method This method is available to the user ...
elpa_t elpa_allocate(int *error)
void elpa_generalized_eigenvectors_d(elpa_t handle, double *a, double *b, double *ev, double *q, int is_already_decomposed, int *error)
void elpa_hermitian_multiply_d_ptr_fc(elpa_t handle, char uplo_a, char uplo_c, int ncb, float complex *a, float complex *b, int nrows_b, int ncols_b, float complex *c, int nrows_c, int ncols_c, int *error)
void elpa_autotune_deallocate(elpa_autotune_t handle, int *error)
void elpa_solve_tridiagonal_f(elpa_t handle, float *d, float *e, float *q, int *error)
void elpa_skew_eigenvalues_a_h_a_f(elpa_t handle, float *a, float *ev, int *error)
void elpa_skew_eigenvalues_d_ptr_d(elpa_t handle, double *a, double *ev, int *error)
#define double_complex
Definition: elpa_generated.h:7