8 #define ELPA_ENUM_ENTRY(name, value, ...) \ 10 #define ELPA_ENUM_SUM(name, value, ...) +1 14 #define ELPA_FOR_ALL_SOLVERS(X) \ 15 X(ELPA_SOLVER_1STAGE, 1) \ 16 X(ELPA_SOLVER_2STAGE, 2) 22 #define ELPA_NUMBER_OF_SOLVERS (0 ELPA_FOR_ALL_SOLVERS(ELPA_ENUM_SUM)) 25 #define ELPA_FOR_ALL_2STAGE_REAL_KERNELS(X, ...) \ 26 X(ELPA_2STAGE_REAL_GENERIC, 1, 1, __VA_ARGS__) \ 27 X(ELPA_2STAGE_REAL_GENERIC_SIMPLE, 2, 1, __VA_ARGS__) \ 28 X(ELPA_2STAGE_REAL_BGP, 3, 0, __VA_ARGS__) \ 29 X(ELPA_2STAGE_REAL_BGQ, 4, 0, __VA_ARGS__) \ 30 X(ELPA_2STAGE_REAL_SSE_ASSEMBLY, 5, 0, __VA_ARGS__) \ 31 X(ELPA_2STAGE_REAL_SSE_BLOCK2, 6, 0, __VA_ARGS__) \ 32 X(ELPA_2STAGE_REAL_SSE_BLOCK4, 7, 0, __VA_ARGS__) \ 33 X(ELPA_2STAGE_REAL_SSE_BLOCK6, 8, 0, __VA_ARGS__) \ 34 X(ELPA_2STAGE_REAL_AVX_BLOCK2, 9, 0, __VA_ARGS__) \ 35 X(ELPA_2STAGE_REAL_AVX_BLOCK4, 10, 0, __VA_ARGS__) \ 36 X(ELPA_2STAGE_REAL_AVX_BLOCK6, 11, 0, __VA_ARGS__) \ 37 X(ELPA_2STAGE_REAL_AVX2_BLOCK2, 12, 0, __VA_ARGS__) \ 38 X(ELPA_2STAGE_REAL_AVX2_BLOCK4, 13, 0, __VA_ARGS__) \ 39 X(ELPA_2STAGE_REAL_AVX2_BLOCK6, 14, 0, __VA_ARGS__) \ 40 X(ELPA_2STAGE_REAL_AVX512_BLOCK2, 15, 0, __VA_ARGS__) \ 41 X(ELPA_2STAGE_REAL_AVX512_BLOCK4, 16, 0, __VA_ARGS__) \ 42 X(ELPA_2STAGE_REAL_AVX512_BLOCK6, 17, 0, __VA_ARGS__) \ 43 X(ELPA_2STAGE_REAL_GPU, 18, 0, __VA_ARGS__) \ 44 X(ELPA_2STAGE_REAL_SPARC64_BLOCK2, 19, 0, __VA_ARGS__) \ 45 X(ELPA_2STAGE_REAL_SPARC64_BLOCK4, 20, 0, __VA_ARGS__) \ 46 X(ELPA_2STAGE_REAL_SPARC64_BLOCK6, 21, 0, __VA_ARGS__) \ 47 X(ELPA_2STAGE_REAL_VSX_BLOCK2, 22, 0, __VA_ARGS__) \ 48 X(ELPA_2STAGE_REAL_VSX_BLOCK4, 23, 0, __VA_ARGS__) \ 49 X(ELPA_2STAGE_REAL_VSX_BLOCK6, 24, 0, __VA_ARGS__) 51 #define ELPA_FOR_ALL_2STAGE_REAL_KERNELS_AND_DEFAULT(X) \ 52 ELPA_FOR_ALL_2STAGE_REAL_KERNELS(X) \ 53 X(ELPA_2STAGE_REAL_INVALID, -1, choke me) \ 54 X(ELPA_2STAGE_REAL_DEFAULT, 1, choke me) 61 #define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS(X, ...) \ 62 X(ELPA_2STAGE_COMPLEX_GENERIC, 1, 1, __VA_ARGS__) \ 63 X(ELPA_2STAGE_COMPLEX_GENERIC_SIMPLE, 2, 1, __VA_ARGS__) \ 64 X(ELPA_2STAGE_COMPLEX_BGP, 3, 0, __VA_ARGS__) \ 65 X(ELPA_2STAGE_COMPLEX_BGQ, 4, 0, __VA_ARGS__) \ 66 X(ELPA_2STAGE_COMPLEX_SSE_ASSEMBLY, 5, 0, __VA_ARGS__) \ 67 X(ELPA_2STAGE_COMPLEX_SSE_BLOCK1, 6, 0, __VA_ARGS__) \ 68 X(ELPA_2STAGE_COMPLEX_SSE_BLOCK2, 7, 0, __VA_ARGS__) \ 69 X(ELPA_2STAGE_COMPLEX_AVX_BLOCK1, 8, 0, __VA_ARGS__) \ 70 X(ELPA_2STAGE_COMPLEX_AVX_BLOCK2, 9, 0, __VA_ARGS__) \ 71 X(ELPA_2STAGE_COMPLEX_AVX2_BLOCK1, 10, 0, __VA_ARGS__) \ 72 X(ELPA_2STAGE_COMPLEX_AVX2_BLOCK2, 11, 0, __VA_ARGS__) \ 73 X(ELPA_2STAGE_COMPLEX_AVX512_BLOCK1, 12, 0, __VA_ARGS__) \ 74 X(ELPA_2STAGE_COMPLEX_AVX512_BLOCK2, 13, 0, __VA_ARGS__) \ 75 X(ELPA_2STAGE_COMPLEX_GPU, 14, 0, __VA_ARGS__) 77 #define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS_AND_DEFAULT(X) \ 78 ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS(X) \ 79 X(ELPA_2STAGE_COMPLEX_INVALID, -1, choke me) \ 80 X(ELPA_2STAGE_COMPLEX_DEFAULT, 1, choke me) 89 #define ELPA_FOR_ALL_ERRORS(X) \ 92 X(ELPA_ERROR_ENTRY_NOT_FOUND, -2) \ 93 X(ELPA_ERROR_ENTRY_INVALID_VALUE, -3) \ 94 X(ELPA_ERROR_ENTRY_ALREADY_SET, -4) \ 95 X(ELPA_ERROR_ENTRY_NO_STRING_REPRESENTATION, -5) \ 96 X(ELPA_ERROR_ENTRY_READONLY, -6) 107 #define ELPA_FOR_ALL_AUTOTUNE_LEVELS(X, ...) \ 108 X(ELPA_AUTOTUNE_NOT_TUNABLE, 0) \ 109 X(ELPA_AUTOTUNE_FAST, 1) \ 110 X(ELPA_AUTOTUNE_MEDIUM, 2) 117 #define ELPA_FOR_ALL_AUTOTUNE_DOMAINS(X, ...) \ 118 X(ELPA_AUTOTUNE_DOMAIN_REAL, 1) \ 119 X(ELPA_AUTOTUNE_DOMAIN_COMPLEX, 2) \ 120 X(ELPA_AUTOTUNE_DOMAIN_ANY, 3) #define ELPA_ENUM_ENTRY(name, value,...)
Definition: elpa_constants.h:8
#define ELPA_ENUM_SUM(name, value,...)
Definition: elpa_constants.h:10
ELPA_REAL_KERNELS
Definition: elpa_constants.h:55
#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS(X,...)
Definition: elpa_constants.h:59
#define ELPA_FOR_ALL_SOLVERS(X)
Definition: elpa_constants.h:14
#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS_AND_DEFAULT(X)
Definition: elpa_constants.h:50
#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS_AND_DEFAULT(X)
Definition: elpa_constants.h:75
ELPA_COMPLEX_KERNELS
Definition: elpa_constants.h:80
#define ELPA_FOR_ALL_ERRORS(X)
Definition: elpa_constants.h:86
ELPA_AUTOTUNE_DOMAINS
Definition: elpa_constants.h:117
#define ELPA_FOR_ALL_AUTOTUNE_LEVELS(X,...)
Definition: elpa_constants.h:103
ELPA_AUTOTUNE_LEVELS
Definition: elpa_constants.h:108
#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS(X,...)
Definition: elpa_constants.h:24
Definition: elpa_constants.h:100
ELPA_CONSTANTS
Definition: elpa_constants.h:98
ELPA_SOLVERS
Definition: elpa_constants.h:18
Definition: elpa_constants.h:99
#define ELPA_FOR_ALL_AUTOTUNE_DOMAINS(X,...)
Definition: elpa_constants.h:112
ELPA_ERRORS
Definition: elpa_constants.h:95