deepmodeling / abacus-develop

An electronic structure package based on either plane wave basis or numerical atomic orbitals.
http://abacus.ustc.edu.cn
GNU Lesser General Public License v3.0
160 stars 127 forks source link

Tests of ELPA fails at compile timewith ELPA-2023.05.001 #3246

Closed yizeyi18 closed 5 months ago

yizeyi18 commented 9 months ago

Describe the Testing Issue

source/module_hsolver/test/diago_lcao_test.cpp includes myelpa.h instead of elpa/elpa.h, and fails to be compiled.

Error message ``` In file included from /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/test/diago_elpa_utils.h:18, from /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/test/diago_lcao_test.cpp:1: /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ In file included from /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:23: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:176:90: error: expected ',' or '..' before '<' token 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); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:177:90: error: expected ',' or '..' before '<' token 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); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:180:90: error: expected ',' or '..' before '<' token 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); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:181:90: error: expected ',' or '..' before '<' token 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); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:184:45: error: expected ',' or '..' before '<' token 184 | void elpa_cholesky_a_h_a_dc(elpa_t handle, double_complex *a, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:185:45: error: expected ',' or '..' before '<' token 185 | void elpa_cholesky_a_h_a_fc(elpa_t handle, float_complex *a, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:188:45: error: expected ',' or '..' before '<' token 188 | void elpa_cholesky_d_ptr_dc(elpa_t handle, double_complex *a, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:189:45: error: expected ',' or '..' before '<' token 189 | void elpa_cholesky_d_ptr_fc(elpa_t handle, float_complex *a, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:192:47: error: expected ',' or '..' before '<' token 192 | void elpa_invert_trm_a_h_a_dc(elpa_t handle, double_complex *a, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:193:47: error: expected ',' or '..' before '<' token 193 | void elpa_invert_trm_a_h_a_fc(elpa_t handle, float_complex *a, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:196:47: error: expected ',' or '..' before '<' token 196 | void elpa_invert_trm_d_ptr_dc(elpa_t handle, double_complex *a, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:197:47: error: expected ',' or '..' before '<' token 197 | void elpa_invert_trm_d_ptr_fc(elpa_t handle, float_complex *a, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:203:49: error: expected ',' or '..' before '<' token 203 | void elpa_eigenvectors_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, double_complex *q, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:204:49: error: expected ',' or '..' before '<' token 204 | void elpa_eigenvectors_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, float_complex *q, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:207:49: error: expected ',' or '..' before '<' token 207 | void elpa_eigenvectors_d_ptr_dc(elpa_t handle, double_complex *a, double *ev, double_complex *q, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:208:49: error: expected ',' or '..' before '<' token 208 | void elpa_eigenvectors_d_ptr_fc(elpa_t handle, float_complex *a, float *ev, float_complex *q, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:215:48: error: expected ',' or '..' before '<' token 215 | void elpa_eigenvalues_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:216:48: error: expected ',' or '..' before '<' token 216 | void elpa_eigenvalues_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:219:48: error: expected ',' or '..' before '<' token 219 | void elpa_eigenvalues_d_ptr_dc(elpa_t handle, double_complex *a, double *ev, int *error); | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:220:48: error: expected ',' or '..' before '<' token 220 | void elpa_eigenvalues_d_ptr_fc(elpa_t handle, float_complex *a, float *ev, int *error); | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:230:55: error: expected ',' or '..' before '<' token 230 | void elpa_generalized_eigenvectors_dc(elpa_t handle, double_complex *a, double_complex *b, double *ev, double_complex *q, | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:232:55: error: expected ',' or '..' before '<' token 232 | void elpa_generalized_eigenvectors_fc(elpa_t handle, float_complex *a, float_complex *b, float *ev, float_complex *q, | ^~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:238:54: error: expected ',' or '..' before '<' token 238 | void elpa_generalized_eigenvalues_dc(elpa_t handle, double_complex *a, double_complex *b, double *ev, | ^~~~~~~~~~~~~~ /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before '_Complex' 22 | #define complex _Complex | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:240:54: error: expected ',' or '..' before '<' token 240 | void elpa_generalized_eigenvalues_fc(elpa_t handle, float_complex *a, float_complex *b, float *ev, | ^~~~~~~~~~~~~ In file included from /home/yizeyi18/soft/abacus-develop-3.4.3/source/module_hsolver/my_elpa.h:25: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:17:13: error: conflicting declaration of C function 'void elpa_set(elpa_t, const char*, double, int*)' 17 | inline void elpa_set(elpa_t handle, const char *name, double value, int *error) | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:13:13: note: previous declaration 'void elpa_set(elpa_t, const char*, int, int*)' 13 | inline void elpa_set(elpa_t handle, const char *name, int value, int *error) | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:45:13: error: conflicting declaration of C function 'void elpa_get(elpa_t, const char*, double*, int*)' 45 | inline void elpa_get(elpa_t handle, const char *name, double *value, int *error) | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:41:13: note: previous declaration 'void elpa_get(elpa_t, const char*, int*, int*)' 41 | inline void elpa_get(elpa_t handle, const char *name, int *value, int *error) | ^~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:75:13: error: conflicting declaration of C function 'void elpa_eigenvectors(elpa_t, float*, float*, float*, int*)' 75 | inline void elpa_eigenvectors(const elpa_t handle, float *a, float *ev, float *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:70:13: note: previous declaration 'void elpa_eigenvectors(elpa_t, double*, double*, double*, int*)' 70 | inline void elpa_eigenvectors(const elpa_t handle, double *a, double *ev, double *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:80:13: error: conflicting declaration of C function 'void elpa_eigenvectors(elpa_t, std::complex*, double*, std::complex*, int*)' 80 | inline void elpa_eigenvectors(const elpa_t handle, std::complex *a, double *ev, std::complex *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:70:13: note: previous declaration 'void elpa_eigenvectors(elpa_t, double*, double*, double*, int*)' 70 | inline void elpa_eigenvectors(const elpa_t handle, double *a, double *ev, double *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_eigenvectors(elpa_t, std::complex*, double*, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:82:44: error: cannot convert 'std::complex*' to '__complex__ double' 82 | elpa_eigenvectors_a_h_a_dc(handle, a, ev, q, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:203:49: note: initializing argument 2 of 'void elpa_eigenvectors_a_h_a_dc(elpa_t, __complex__ double)' 203 | void elpa_eigenvectors_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, double_complex *q, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:85:13: error: conflicting declaration of C function 'void elpa_eigenvectors(elpa_t, std::complex*, float*, std::complex*, int*)' 85 | inline void elpa_eigenvectors(const elpa_t handle, std::complex *a, float *ev, std::complex *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:70:13: note: previous declaration 'void elpa_eigenvectors(elpa_t, double*, double*, double*, int*)' 70 | inline void elpa_eigenvectors(const elpa_t handle, double *a, double *ev, double *q, int *error) | ^~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_eigenvectors(elpa_t, std::complex*, float*, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:87:44: error: cannot convert 'std::complex*' to '__complex__ double' 87 | elpa_eigenvectors_a_h_a_fc(handle, a, ev, q, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:204:49: note: initializing argument 2 of 'void elpa_eigenvectors_a_h_a_fc(elpa_t, __complex__ double)' 204 | void elpa_eigenvectors_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, float_complex *q, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:121:13: error: conflicting declaration of C function 'void elpa_skew_eigenvectors(elpa_t, float*, float*, float*, int*)' 121 | inline void elpa_skew_eigenvectors(const elpa_t handle, float *a, float *ev, float *q, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:116:13: note: previous declaration 'void elpa_skew_eigenvectors(elpa_t, double*, double*, double*, int*)' 116 | inline void elpa_skew_eigenvectors(const elpa_t handle, double *a, double *ev, double *q, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:154:13: error: conflicting declaration of C function 'void elpa_generalized_eigenvectors(elpa_t, float*, float*, float*, float*, int, int*)' 154 | inline void elpa_generalized_eigenvectors(elpa_t handle, float *a, float *b, float *ev, float *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:149:13: note: previous declaration 'void elpa_generalized_eigenvectors(elpa_t, double*, double*, double*, double*, int, int*)' 149 | inline void elpa_generalized_eigenvectors(elpa_t handle, double *a, double *b, double *ev, double *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:159:13: error: conflicting declaration of C function 'void elpa_generalized_eigenvectors(elpa_t, std::complex*, std::complex*, double*, std::complex*, int, int*)' 159 | inline void elpa_generalized_eigenvectors(elpa_t handle, std::complex *a, std::complex *b, double *ev, std::complex *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:149:13: note: previous declaration 'void elpa_generalized_eigenvectors(elpa_t, double*, double*, double*, double*, int, int*)' 149 | inline void elpa_generalized_eigenvectors(elpa_t handle, double *a, double *b, double *ev, double *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_generalized_eigenvectors(elpa_t, std::complex*, std::complex*, double*, std::complex*, int, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:161:50: error: cannot convert 'std::complex*' to '__complex__ double' 161 | elpa_generalized_eigenvectors_dc(handle, a, b, ev, q, is_already_decomposed, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:230:55: note: initializing argument 2 of 'void elpa_generalized_eigenvectors_dc(elpa_t, __complex__ double)' 230 | void elpa_generalized_eigenvectors_dc(elpa_t handle, double_complex *a, double_complex *b, double *ev, double_complex *q, /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:164:13: error: conflicting declaration of C function 'void elpa_generalized_eigenvectors(elpa_t, std::complex*, std::complex*, float*, std::complex*, int, int*)' 164 | inline void elpa_generalized_eigenvectors(elpa_t handle, std::complex *a, std::complex *b, float *ev, std::complex *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:149:13: note: previous declaration 'void elpa_generalized_eigenvectors(elpa_t, double*, double*, double*, double*, int, int*)' 149 | inline void elpa_generalized_eigenvectors(elpa_t handle, double *a, double *b, double *ev, double *q, int is_already_decomposed, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_generalized_eigenvectors(elpa_t, std::complex*, std::complex*, float*, std::complex*, int, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:166:50: error: cannot convert 'std::complex*' to '__complex__ double' 166 | elpa_generalized_eigenvectors_fc(handle, a, b, ev, q, is_already_decomposed, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:232:55: note: initializing argument 2 of 'void elpa_generalized_eigenvectors_fc(elpa_t, __complex__ double)' 232 | void elpa_generalized_eigenvectors_fc(elpa_t handle, float_complex *a, float_complex *b, float *ev, float_complex *q, /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:198:13: error: conflicting declaration of C function 'void elpa_eigenvalues(elpa_t, float*, float*, int*)' 198 | inline void elpa_eigenvalues(elpa_t handle, float *a, float *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:194:13: note: previous declaration 'void elpa_eigenvalues(elpa_t, double*, double*, int*)' 194 | inline void elpa_eigenvalues(elpa_t handle, double *a, double *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:202:13: error: conflicting declaration of C function 'void elpa_eigenvalues(elpa_t, std::complex*, double*, int*)' 202 | inline void elpa_eigenvalues(elpa_t handle, std::complex *a, double *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:194:13: note: previous declaration 'void elpa_eigenvalues(elpa_t, double*, double*, int*)' 194 | inline void elpa_eigenvalues(elpa_t handle, double *a, double *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_eigenvalues(elpa_t, std::complex*, double*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:204:43: error: cannot convert 'std::complex*' to '__complex__ double' 204 | elpa_eigenvalues_a_h_a_dc(handle, a, ev, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:215:48: note: initializing argument 2 of 'void elpa_eigenvalues_a_h_a_dc(elpa_t, __complex__ double)' 215 | void elpa_eigenvalues_a_h_a_dc(elpa_t handle, double_complex *a, double *ev, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:206:13: error: conflicting declaration of C function 'void elpa_eigenvalues(elpa_t, std::complex*, float*, int*)' 206 | inline void elpa_eigenvalues(elpa_t handle, std::complex *a, float *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:194:13: note: previous declaration 'void elpa_eigenvalues(elpa_t, double*, double*, int*)' 194 | inline void elpa_eigenvalues(elpa_t handle, double *a, double *ev, int *error) | ^~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_eigenvalues(elpa_t, std::complex*, float*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:208:43: error: cannot convert 'std::complex*' to '__complex__ double' 208 | elpa_eigenvalues_a_h_a_fc(handle, a, ev, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:216:48: note: initializing argument 2 of 'void elpa_eigenvalues_a_h_a_fc(elpa_t, __complex__ double)' 216 | void elpa_eigenvalues_a_h_a_fc(elpa_t handle, float_complex *a, float *ev, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:240:13: error: conflicting declaration of C function 'void elpa_skew_eigenvalues(elpa_t, float*, float*, int*)' 240 | inline void elpa_skew_eigenvalues(elpa_t handle, float *a, float *ev, int *error) | ^~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:236:13: note: previous declaration 'void elpa_skew_eigenvalues(elpa_t, double*, double*, int*)' 236 | inline void elpa_skew_eigenvalues(elpa_t handle, double *a, double *ev, int *error) | ^~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:268:13: error: conflicting declaration of C function 'void elpa_cholesky(elpa_t, float*, int*)' 268 | inline void elpa_cholesky(elpa_t handle, float *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:264:13: note: previous declaration 'void elpa_cholesky(elpa_t, double*, int*)' 264 | inline void elpa_cholesky(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:272:13: error: conflicting declaration of C function 'void elpa_cholesky(elpa_t, std::complex*, int*)' 272 | inline void elpa_cholesky(elpa_t handle, std::complex *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:264:13: note: previous declaration 'void elpa_cholesky(elpa_t, double*, int*)' 264 | inline void elpa_cholesky(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_cholesky(elpa_t, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:274:40: error: cannot convert 'std::complex*' to '__complex__ double' 274 | elpa_cholesky_a_h_a_dc(handle, a, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:184:45: note: initializing argument 2 of 'void elpa_cholesky_a_h_a_dc(elpa_t, __complex__ double)' 184 | void elpa_cholesky_a_h_a_dc(elpa_t handle, double_complex *a, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:276:13: error: conflicting declaration of C function 'void elpa_cholesky(elpa_t, std::complex*, int*)' 276 | inline void elpa_cholesky(elpa_t handle, std::complex *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:264:13: note: previous declaration 'void elpa_cholesky(elpa_t, double*, int*)' 264 | inline void elpa_cholesky(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_cholesky(elpa_t, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:278:40: error: cannot convert 'std::complex*' to '__complex__ double' 278 | elpa_cholesky_a_h_a_fc(handle, a, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:185:45: note: initializing argument 2 of 'void elpa_cholesky_a_h_a_fc(elpa_t, __complex__ double)' 185 | void elpa_cholesky_a_h_a_fc(elpa_t handle, float_complex *a, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:318:13: error: conflicting declaration of C function 'void elpa_hermitian_multiply(elpa_t, char, char, int, float*, float*, int, int, float*, int, int, int*)' 318 | inline void elpa_hermitian_multiply(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) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:314:13: note: previous declaration 'void elpa_hermitian_multiply(elpa_t, char, char, int, double*, double*, int, int, double*, int, int, int*)' 314 | inline void elpa_hermitian_multiply(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) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:322:13: error: conflicting declaration of C function 'void elpa_hermitian_multiply(elpa_t, char, char, int, std::complex*, std::complex*, int, int, std::complex*, int, int, int*)' 322 | inline void elpa_hermitian_multiply(elpa_t handle, char uplo_a, char uplo_c, int ncb, std::complex *a, std::complex *b, int nrows_b, int ncols_b, std::complex *c, int nrows_c, int ncols_c, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:314:13: note: previous declaration 'void elpa_hermitian_multiply(elpa_t, char, char, int, double*, double*, int, int, double*, int, int, int*)' 314 | inline void elpa_hermitian_multiply(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) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_hermitian_multiply(elpa_t, char, char, int, std::complex*, std::complex*, int, int, std::complex*, int, int, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:324:71: error: cannot convert 'std::complex*' to '__complex__ double' 324 | elpa_hermitian_multiply_a_h_a_dc(handle, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:176:90: note: initializing argument 5 of 'void elpa_hermitian_multiply_a_h_a_dc(elpa_t, char, char, int, __complex__ double)' 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); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:326:13: error: conflicting declaration of C function 'void elpa_hermitian_multiply(elpa_t, char, char, int, std::complex*, std::complex*, int, int, std::complex*, int, int, int*)' 326 | inline void elpa_hermitian_multiply(elpa_t handle, char uplo_a, char uplo_c, int ncb, std::complex *a, std::complex *b, int nrows_b, int ncols_b, std::complex *c, int nrows_c, int ncols_c, int *error) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:314:13: note: previous declaration 'void elpa_hermitian_multiply(elpa_t, char, char, int, double*, double*, int, int, double*, int, int, int*)' 314 | inline void elpa_hermitian_multiply(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) | ^~~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_hermitian_multiply(elpa_t, char, char, int, std::complex*, std::complex*, int, int, std::complex*, int, int, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:328:71: error: cannot convert 'std::complex*' to '__complex__ double' 328 | elpa_hermitian_multiply_a_h_a_fc(handle, uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, c, nrows_c, ncols_c, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:177:90: note: initializing argument 5 of 'void elpa_hermitian_multiply_a_h_a_fc(elpa_t, char, char, int, __complex__ double)' 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); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:360:13: error: conflicting declaration of C function 'void elpa_invert_triangular(elpa_t, float*, int*)' 360 | inline void elpa_invert_triangular(elpa_t handle, float *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:356:13: note: previous declaration 'void elpa_invert_triangular(elpa_t, double*, int*)' 356 | inline void elpa_invert_triangular(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:364:13: error: conflicting declaration of C function 'void elpa_invert_triangular(elpa_t, std::complex*, int*)' 364 | inline void elpa_invert_triangular(elpa_t handle, std::complex *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:356:13: note: previous declaration 'void elpa_invert_triangular(elpa_t, double*, int*)' 356 | inline void elpa_invert_triangular(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_invert_triangular(elpa_t, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:366:42: error: cannot convert 'std::complex*' to '__complex__ double' 366 | elpa_invert_trm_a_h_a_dc(handle, a, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:192:47: note: initializing argument 2 of 'void elpa_invert_trm_a_h_a_dc(elpa_t, __complex__ double)' 192 | void elpa_invert_trm_a_h_a_dc(elpa_t handle, double_complex *a, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:368:13: error: conflicting declaration of C function 'void elpa_invert_triangular(elpa_t, std::complex*, int*)' 368 | inline void elpa_invert_triangular(elpa_t handle, std::complex *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:356:13: note: previous declaration 'void elpa_invert_triangular(elpa_t, double*, int*)' 356 | inline void elpa_invert_triangular(elpa_t handle, double *a, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: In function 'void elpa_invert_triangular(elpa_t, std::complex*, int*)': /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:370:42: error: cannot convert 'std::complex*' to '__complex__ double' 370 | elpa_invert_trm_a_h_a_fc(handle, a, error); | ^ | | | std::complex* /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generated.h:193:47: note: initializing argument 2 of 'void elpa_invert_trm_a_h_a_fc(elpa_t, __complex__ double)' 193 | void elpa_invert_trm_a_h_a_fc(elpa_t handle, float_complex *a, int *error); /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h: At global scope: /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:404:13: error: conflicting declaration of C function 'void elpa_solve_tridiagonal(elpa_t, float*, float*, float*, int*)' 404 | inline void elpa_solve_tridiagonal(elpa_t handle, float *d, float *e, float *q, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ /home/yizeyi18/soft/spack/opt/spack/linux-ubuntu22.04-zen3/gcc-13.1.0/elpa-2023.05.001-vhmgozarnpu2xjhb4qzbgd3qcromwygb/include/elpa_openmp-2023.05.001/elpa/elpa_generic.h:400:13: note: previous declaration 'void elpa_solve_tridiagonal(elpa_t, double*, double*, double*, int*)' 400 | inline void elpa_solve_tridiagonal(elpa_t handle, double *d, double *e, double *q, int *error) | ^~~~~~~~~~~~~~~~~~~~~~ ```

Additional Context

It seems that the issue comes from 2 points:

diff --git a/my_elpa.h b/elpa/elpa.h
index 0808584..b8145f9 100644
--- a/my_elpa.h
+++ b/elpa/elpa.h
@@ -3,9 +3,7 @@

 #ifdef __ELPA

-#include <complex>
 #include <elpa/elpa_version.h>
-#include <limits.h>

 struct elpa_struct;
 typedef struct elpa_struct *elpa_t;
@@ -15,14 +13,9 @@ typedef struct elpa_autotune_struct *elpa_autotune_t;

 #include <elpa/elpa_constants.h>
 #include <elpa/elpa_generated_c_api.h>
-// ELPA only provides a C interface header, causing inconsistence of complex
-// between C99 (e.g. double complex) and C++11 (std::complex).
-// Thus, we have to define a wrapper of complex over the c api
-// for compatiability.
-#define complex _Complex
 #include <elpa/elpa_generated.h>
-#undef complex
 #include <elpa/elpa_generic.h>
+#include <elpa/elpa_explicit_name.h>

 #define ELPA_2STAGE_REAL_GPU    ELPA_2STAGE_REAL_NVIDIA_GPU
 #define ELPA_2STAGE_COMPLEX_GPU ELPA_2STAGE_COMPLEX_NVIDIA_GPU

That make the test pass compile and ctest.

Task list for Issue attackers (only for developers)

kluophysics commented 8 months ago

I can confirm the same finding, with gnu environment on version 3.4.0.

The following is the first few lines of my output where errors happen:

[ 64%] Building CXX object source/module_basis/module_ao/test/CMakeFiles/ORB_nonlocal_test.dir/ORB_nonlocal_test.cpp.o
In file included from /home/kluo/Documents/repos/abacus/source/module_hsolver/test/diago_elpa_utils.h:18,
                 from /home/kluo/Documents/repos/abacus/source/module_hsolver/test/diago_lcao_test.cpp:1:
/home/kluo/Documents/repos/abacus/source/module_hsolver/my_elpa.h:22:17: error: expected identifier before ‘_Complex’
   22 | #define complex _Complex
      |                 ^~~~~~~~
In file included from /home/kluo/Documents/repos/abacus/source/module_hsolver/my_elpa.h:23:
/usr/include/elpa/elpa/elpa_generated.h:176:90: error: expected ‘,’ or ‘...’ before ‘<’ token
  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);
      |                                                                                          ^~~~~~~~~~~~~~

I have to turn off ELPA usage by

cmake .. -DBUILD_TESTING=ON -DUSE_ELPA=OFF

WHUweiqingzhou commented 5 months ago

@yizeyi18 and @kluophysics, could you have a try with develop branch after PR #3774?