Eigenvalue SoLvers for Petaflop-Applications (ELPA)  2017.05.003
Macros | Enumerations
elpa_constants.h File Reference

Go to the source code of this file.

Macros

#define ELPA_ENUM_ENTRY(name, value, ...)   name = value,
 
#define ELPA_ENUM_SUM(name, value, ...)   +1
 
#define ELPA_FOR_ALL_SOLVERS(X)
 
#define ELPA_NUMBER_OF_SOLVERS   (0 ELPA_FOR_ALL_SOLVERS(ELPA_ENUM_SUM))
 
#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS(X, ...)
 
#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS_AND_DEFAULT(X)
 
#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS(X, ...)
 
#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS_AND_DEFAULT(X)
 
#define ELPA_FOR_ALL_ERRORS(X)
 

Enumerations

enum  ELPA_SOLVERS { ELPA_SOLVER_1STAGE = 1, ELPA_SOLVER_2STAGE = 2 }
 
enum  ELPA_REAL_KERNELS {
  ELPA_2STAGE_REAL_GENERIC = 1, ELPA_2STAGE_REAL_GENERIC_SIMPLE = 2, ELPA_2STAGE_REAL_BGP = 3, ELPA_2STAGE_REAL_BGQ = 4,
  ELPA_2STAGE_REAL_SSE_ASSEMBLY = 5, ELPA_2STAGE_REAL_SSE_BLOCK2 = 6, ELPA_2STAGE_REAL_SSE_BLOCK4 = 7, ELPA_2STAGE_REAL_SSE_BLOCK6 = 8,
  ELPA_2STAGE_REAL_AVX_BLOCK2 = 9, ELPA_2STAGE_REAL_AVX_BLOCK4 = 10, ELPA_2STAGE_REAL_AVX_BLOCK6 = 11, ELPA_2STAGE_REAL_AVX2_BLOCK2 = 12,
  ELPA_2STAGE_REAL_AVX2_BLOCK4 = 13, ELPA_2STAGE_REAL_AVX2_BLOCK6 = 14, ELPA_2STAGE_REAL_AVX512_BLOCK2 = 15, ELPA_2STAGE_REAL_AVX512_BLOCK4 = 16,
  ELPA_2STAGE_REAL_AVX512_BLOCK6 = 17, ELPA_2STAGE_REAL_GPU = 18, ELPA_2STAGE_REAL_INVALID = -1, ELPA_2STAGE_REAL_DEFAULT = 1
}
 
enum  ELPA_COMPLEX_KERNELS {
  ELPA_2STAGE_COMPLEX_GENERIC = 1, ELPA_2STAGE_COMPLEX_GENERIC_SIMPLE = 2, ELPA_2STAGE_COMPLEX_BGP = 3, ELPA_2STAGE_COMPLEX_BGQ = 4,
  ELPA_2STAGE_COMPLEX_SSE_ASSEMBLY = 5, ELPA_2STAGE_COMPLEX_SSE_BLOCK1 = 6, ELPA_2STAGE_COMPLEX_SSE_BLOCK2 = 7, ELPA_2STAGE_COMPLEX_AVX_BLOCK1 = 8,
  ELPA_2STAGE_COMPLEX_AVX_BLOCK2 = 9, ELPA_2STAGE_COMPLEX_AVX2_BLOCK1 = 10, ELPA_2STAGE_COMPLEX_AVX2_BLOCK2 = 11, ELPA_2STAGE_COMPLEX_AVX512_BLOCK1 = 12,
  ELPA_2STAGE_COMPLEX_AVX512_BLOCK2 = 13, ELPA_2STAGE_COMPLEX_GPU = 14, ELPA_2STAGE_COMPLEX_INVALID = -1, ELPA_2STAGE_COMPLEX_DEFAULT = 1
}
 
enum  ELPA_ERRORS {
  ELPA_OK = 0, ELPA_ERROR = -1, ELPA_ERROR_ENTRY_NOT_FOUND = -2, ELPA_ERROR_ENTRY_INVALID_VALUE = -3,
  ELPA_ERROR_ENTRY_ALREADY_SET = -4, ELPA_ERROR_ENTRY_NO_STRING_REPRESENTATION = -5, ELPA_ERROR_ENTRY_READONLY = -6
}
 
enum  ELPA_CONSTANTS { ELPA_2STAGE_NUMBER_OF_COMPLEX_KERNELS = (0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 ), ELPA_2STAGE_NUMBER_OF_REAL_KERNELS = (0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 ) }
 

Macro Definition Documentation

◆ ELPA_ENUM_ENTRY

#define ELPA_ENUM_ENTRY (   name,
  value,
  ... 
)    name = value,

◆ ELPA_ENUM_SUM

#define ELPA_ENUM_SUM (   name,
  value,
  ... 
)    +1

◆ ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS

#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS (   X,
  ... 
)
Value:
X(ELPA_2STAGE_COMPLEX_GENERIC, 1, 1, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_GENERIC_SIMPLE, 2, 1, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_BGP, 3, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_BGQ, 4, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_SSE_ASSEMBLY, 5, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_SSE_BLOCK1, 6, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_SSE_BLOCK2, 7, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX_BLOCK1, 8, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX_BLOCK2, 9, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX2_BLOCK1, 10, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX2_BLOCK2, 11, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX512_BLOCK1, 12, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_AVX512_BLOCK2, 13, 0, __VA_ARGS__) \
X(ELPA_2STAGE_COMPLEX_GPU, 14, 0, __VA_ARGS__)
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75

◆ ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS_AND_DEFAULT

#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS_AND_DEFAULT (   X)
Value:
X(ELPA_2STAGE_COMPLEX_INVALID, -1, choke me) \
#define ELPA_FOR_ALL_2STAGE_COMPLEX_KERNELS(X,...)
Definition: elpa_constants.h:53
Definition: elpa_constants.h:75
Definition: elpa_constants.h:75

◆ ELPA_FOR_ALL_2STAGE_REAL_KERNELS

#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS (   X,
  ... 
)
Value:
X(ELPA_2STAGE_REAL_GENERIC, 1, 1, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_GENERIC_SIMPLE, 2, 1, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_BGP, 3, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_BGQ, 4, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_SSE_ASSEMBLY, 5, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_SSE_BLOCK2, 6, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_SSE_BLOCK4, 7, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_SSE_BLOCK6, 8, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX_BLOCK2, 9, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX_BLOCK4, 10, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX_BLOCK6, 11, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX2_BLOCK2, 12, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX2_BLOCK4, 13, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX2_BLOCK6, 14, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX512_BLOCK2, 15, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX512_BLOCK4, 16, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_AVX512_BLOCK6, 17, 0, __VA_ARGS__) \
X(ELPA_2STAGE_REAL_GPU, 18, 0, __VA_ARGS__)
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50
Definition: elpa_constants.h:50

◆ ELPA_FOR_ALL_2STAGE_REAL_KERNELS_AND_DEFAULT

#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS_AND_DEFAULT (   X)
Value:
X(ELPA_2STAGE_REAL_INVALID, -1, choke me) \
X(ELPA_2STAGE_REAL_DEFAULT, 1, choke me)
Definition: elpa_constants.h:50
#define ELPA_FOR_ALL_2STAGE_REAL_KERNELS(X,...)
Definition: elpa_constants.h:24
Definition: elpa_constants.h:50

◆ ELPA_FOR_ALL_ERRORS

#define ELPA_FOR_ALL_ERRORS (   X)
Value:
X(ELPA_OK, 0) \
X(ELPA_ERROR, -1) \
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90
Definition: elpa_constants.h:90

◆ ELPA_FOR_ALL_SOLVERS

#define ELPA_FOR_ALL_SOLVERS (   X)
Value:
Definition: elpa_constants.h:19
Definition: elpa_constants.h:19

◆ ELPA_NUMBER_OF_SOLVERS

#define ELPA_NUMBER_OF_SOLVERS   (0 ELPA_FOR_ALL_SOLVERS(ELPA_ENUM_SUM))

Enumeration Type Documentation

◆ ELPA_COMPLEX_KERNELS

Enumerator
ELPA_2STAGE_COMPLEX_GENERIC 
ELPA_2STAGE_COMPLEX_GENERIC_SIMPLE 
ELPA_2STAGE_COMPLEX_BGP 
ELPA_2STAGE_COMPLEX_BGQ 
ELPA_2STAGE_COMPLEX_SSE_ASSEMBLY 
ELPA_2STAGE_COMPLEX_SSE_BLOCK1 
ELPA_2STAGE_COMPLEX_SSE_BLOCK2 
ELPA_2STAGE_COMPLEX_AVX_BLOCK1 
ELPA_2STAGE_COMPLEX_AVX_BLOCK2 
ELPA_2STAGE_COMPLEX_AVX2_BLOCK1 
ELPA_2STAGE_COMPLEX_AVX2_BLOCK2 
ELPA_2STAGE_COMPLEX_AVX512_BLOCK1 
ELPA_2STAGE_COMPLEX_AVX512_BLOCK2 
ELPA_2STAGE_COMPLEX_GPU 
ELPA_2STAGE_COMPLEX_INVALID 
ELPA_2STAGE_COMPLEX_DEFAULT 

◆ ELPA_CONSTANTS

Enumerator
ELPA_2STAGE_NUMBER_OF_COMPLEX_KERNELS 
ELPA_2STAGE_NUMBER_OF_REAL_KERNELS 

◆ ELPA_ERRORS

Enumerator
ELPA_OK 
ELPA_ERROR 
ELPA_ERROR_ENTRY_NOT_FOUND 
ELPA_ERROR_ENTRY_INVALID_VALUE 
ELPA_ERROR_ENTRY_ALREADY_SET 
ELPA_ERROR_ENTRY_NO_STRING_REPRESENTATION 
ELPA_ERROR_ENTRY_READONLY 

◆ ELPA_REAL_KERNELS

Enumerator
ELPA_2STAGE_REAL_GENERIC 
ELPA_2STAGE_REAL_GENERIC_SIMPLE 
ELPA_2STAGE_REAL_BGP 
ELPA_2STAGE_REAL_BGQ 
ELPA_2STAGE_REAL_SSE_ASSEMBLY 
ELPA_2STAGE_REAL_SSE_BLOCK2 
ELPA_2STAGE_REAL_SSE_BLOCK4 
ELPA_2STAGE_REAL_SSE_BLOCK6 
ELPA_2STAGE_REAL_AVX_BLOCK2 
ELPA_2STAGE_REAL_AVX_BLOCK4 
ELPA_2STAGE_REAL_AVX_BLOCK6 
ELPA_2STAGE_REAL_AVX2_BLOCK2 
ELPA_2STAGE_REAL_AVX2_BLOCK4 
ELPA_2STAGE_REAL_AVX2_BLOCK6 
ELPA_2STAGE_REAL_AVX512_BLOCK2 
ELPA_2STAGE_REAL_AVX512_BLOCK4 
ELPA_2STAGE_REAL_AVX512_BLOCK6 
ELPA_2STAGE_REAL_GPU 
ELPA_2STAGE_REAL_INVALID 
ELPA_2STAGE_REAL_DEFAULT 

◆ ELPA_SOLVERS

Enumerator
ELPA_SOLVER_1STAGE 
ELPA_SOLVER_2STAGE