ROCK 1.9.1
Relativistic Oscillator Calculation Kit
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1
2
3#ifndef ROCK_CONFIG_H
4#define ROCK_CONFIG_H
5
6#define ROCK_STRINGFY(X) #X
7#define ROCK_STRING_CAT2(a, b) a b
8#define ROCK_STRING_CAT3(a, b, c) a b c
9#define ROCK_APPEND_COMMA(x) x,
10#define ROCK_APPLY_ARG(func, arg) func(arg)
11
12#define ROCK_CAT2_(a, b) a##b
13#define ROCK_CAT2(a, b) ROCK_APPLY_ARG(ROCK_CAT2_, ROCK_APPEND_COMMA(a) b)
14#define ROCK_CAT3_(a, b, c) a##b##c
15#define ROCK_CAT3(a, b, c) \
16 ROCK_APPLY_ARG(ROCK_CAT3_, ROCK_APPEND_COMMA(a) ROCK_APPEND_COMMA(b) c)
17
18// clang-format off
22#define ROCK_VERSION_MAJOR 1
26#define ROCK_VERSION_MINOR 9
27#define ROCK_VERSION_PATCH 1
28
30#define ROCK_REAL_TYPE DBL
31#define ROCK_PARALLELIZATION 1
32
33#define ROCK_ENABLE_GPU 0
34// clang-format on
35
37#define ROCK_ENABLE_FIELD_REFINEMENT 0
38
39// 32 bytes == 256 bit
40#define ROCK_ALIGNMENT 32
41
42#if ((ROCK_ALIGNMENT) < 8) || ((ROCK_ALIGNMENT) & ((ROCK_ALIGNMENT) - 1))
43#error Alignment must be potential of 2 to allow bit operations in size calculation
44#endif
45
48#define ROCK_STRIDE(TYPE, DIM) \
49 (((DIM) + ((ROCK_ALIGNMENT) / sizeof(TYPE) - 1)) \
50 & ~((ROCK_ALIGNMENT) / sizeof(TYPE) - 1))
51#define TDM_STRIDE(rows) ROCK_STRIDE(real, rows)
52#define DIM_TDM(rows) (TDM_STRIDE(rows) * 3)
53
65#define ROCK_ENABLE_FAST_BESL 1
68#define ROCK_ENABLE_FAST_HYPOT 1
74#define ROCK_ENABLE_FAST_ATAN2 0
77#define ROCK_ENABLE_GAUSSIAN_ALPHA_GAMMA 1
78
80#define ROCK_BEAMLET_MAX_CORRECTOR_STEP 2
81
86#define MIN_HARM 0
92#define DIM_HARM 4
93
94#define MAX_HARM (MIN_HARM + DIM_HARM - 1)
95
96#endif