ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
my_elpa.h
Go to the documentation of this file.
1#ifndef ELPA_H
2#define ELPA_H
3
4#ifdef __ELPA
5
6#include <complex>
7#include <elpa/elpa_version.h>
8#include <limits.h>
9
10#if ELPA_API_VERSION < 20221101
11extern "C"
12{
13#endif
14
15struct elpa_struct;
16typedef struct elpa_struct *elpa_t;
17
18struct elpa_autotune_struct;
19typedef struct elpa_autotune_struct *elpa_autotune_t;
20
21#include <elpa/elpa_constants.h>
22#include <elpa/elpa_generated_c_api.h>
23// ELPA only provides a C interface header, causing inconsistence of complex
24// between C99 (e.g. double complex) and C++11 (std::complex).
25// Thus, we have to define a wrapper of complex over the c api
26// for compatiability.
27#if ELPA_API_VERSION < 20221101
28#define complex _Complex
29#endif
30#include <elpa/elpa_generated.h>
31#if ELPA_API_VERSION < 20221101
32#undef complex
33#endif
34#include <elpa/elpa_generic.h>
35
36#define ELPA_2STAGE_REAL_GPU ELPA_2STAGE_REAL_NVIDIA_GPU
37#define ELPA_2STAGE_COMPLEX_GPU ELPA_2STAGE_COMPLEX_NVIDIA_GPU
38
39const char *elpa_strerr(int elpa_error);
40
41#if ELPA_API_VERSION < 20221101
42}//extern "C"
43#endif
44
45#endif //__ELPA
46#endif //ELPA_H
struct elpa_struct * elpa_t
Definition elpa_new.h:15
const char * elpa_strerr(int elpa_error)
struct elpa_autotune_struct * elpa_autotune_t
Definition elpa_new.h:18