ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
elpa_new.h
Go to the documentation of this file.
1#pragma once
2
3#include <elpa/elpa_version.h>
4
5
6
7#if ELPA_API_VERSION >= 20221101
8#include <elpa/elpa.h>
9#else
10extern "C"
11{
12#include <limits.h>
13
14 struct elpa_struct;
15 typedef struct elpa_struct *elpa_t;
16
17 struct elpa_autotune_struct;
18 typedef struct elpa_autotune_struct *elpa_autotune_t;
19
20#include <elpa/elpa_constants.h>
21#include <elpa/elpa_generated_c_api.h>
22// ELPA only provides a C interface header, causing inconsistence of complex
23// between C99 (e.g. double complex) and C++11 (std::complex).
24// Thus, we have to define a wrapper of complex over the c api
25// for compatiability.
26#define complex _Complex
27#include <elpa/elpa_generated.h>
28 // #include <elpa/elpa_generic.h>
29#undef complex
30
31 const char *elpa_strerr(int elpa_error);
32
33// This is a header file related to GPU support.
34// This header file was not available in the early ELPA.
35#if ELPA_API_VERSION >= 20231101
36#include <elpa/elpa_configured_options.h>
37#endif
38}
39
40
41#include "elpa_generic.hpp" // This is a wrapper for `elpa/elpa_generic.h`.
42#endif
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