17 #ifdef EXPLICIT_VECTORIZATION
18 #include "../vectorclass/vectorclass.h"
21 #if !defined(POSITIONS_IN_32BIT) && !defined(POSITIONS_IN_64BIT) && !defined(POSITIONS_IN_128BIT)
23 #ifndef DOUBLEPRECISION
24 #define POSITIONS_IN_32BIT
26 #define POSITIONS_IN_64BIT
34 #ifdef POSITIONS_IN_32BIT
37 #define BITS_FOR_POSITIONS 32
38 #ifdef EXPLICIT_VECTORIZATION
39 typedef Vec4ui Vec4MyIntPosType;
40 typedef Vec4i Vec4MySignedIntPosType;
44 #ifdef POSITIONS_IN_64BIT
47 #define BITS_FOR_POSITIONS 64
48 #ifdef EXPLICIT_VECTORIZATION
49 typedef Vec4uq Vec4MyIntPosType;
50 typedef Vec4q Vec4MySignedIntPosType;
54 #ifdef POSITIONS_IN_128BIT
57 #define BITS_FOR_POSITIONS 128
58 #ifdef EXPLICIT_VECTORIZATION
59 #error "EXPLICIT_VECTORIZATION and POSITIONS_IN_128BIT do not work together"
63 #if !defined(IDS_32BIT) && !defined(IDS_48BIT) && !defined(IDS_64BIT)
73 #ifdef FOF_ALLOW_HUGE_GROUPLENGTH
79 #ifdef USE_SINGLEPRECISION_INTERNALLY
85 #ifndef DOUBLEPRECISION
89 #define MPI_MYFLOAT MPI_FLOAT
90 #define MPI_MYDOUBLE MPI_FLOAT
91 #define H5T_NATIVE_MYFLOAT H5T_NATIVE_FLOAT
92 #define H5T_NATIVE_MYDOUBLE H5T_NATIVE_FLOAT
94 #if(DOUBLEPRECISION == 2)
98 #define MPI_MYFLOAT MPI_FLOAT
99 #define MPI_MYDOUBLE MPI_DOUBLE
100 #define H5T_NATIVE_MYFLOAT H5T_NATIVE_FLOAT
101 #define H5T_NATIVE_MYDOUBLE H5T_NATIVE_DOUBLE
106 #define MPI_MYFLOAT MPI_DOUBLE
107 #define MPI_MYDOUBLE MPI_DOUBLE
108 #define H5T_NATIVE_MYFLOAT H5T_NATIVE_DOUBLE
109 #define H5T_NATIVE_MYDOUBLE H5T_NATIVE_DOUBLE
113 #ifdef ENLARGE_DYNAMIC_RANGE_IN_TIME
117 (((long long)1) << TIMEBINS)
122 #define TIMEBASE (1 << TIMEBINS)
125 #ifndef NUMBER_OF_MPI_LISTENERS_PER_NODE
126 #define NUMBER_OF_MPI_LISTENERS_PER_NODE 1
129 #ifndef MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY
130 #define MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY 64
133 #if MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY <= 32
135 #elif MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY <= 64
138 #error "unsupported MAX_NUMBER_OF_RANKS_WITH_SHARED_MEMORY setting"
283 else if(is_bits <= 0)
294 else if(hs_bits <= 0)
358 #define LONG_X (1 << (LONG_X_BITS))
359 #define MAX_LONG_X_BITS LONG_X_BITS
362 #define MAX_LONG_X_BITS 0
366 #define LONG_Y (1 << (LONG_Y_BITS))
367 #define MAX_LONG_Y_BITS LONG_Y_BITS
370 #define MAX_LONG_Y_BITS 0
374 #define LONG_Z (1 << (LONG_Z_BITS))
375 #define MAX_LONG_Z_BITS LONG_Z_BITS
378 #define MAX_LONG_Z_BITS 0
381 #define LONG_BITS_MAX(A, B) (((A) > (B)) ? (A) : (B))
383 #define LEVEL_ALWAYS_OPEN LONG_BITS_MAX(MAX_LONG_X_BITS, LONG_BITS_MAX(MAX_LONG_Y_BITS, MAX_LONG_Z_BITS))
385 #ifdef GRAVITY_TALLBOX
387 #if(GRAVITY_TALLBOX == 0)
390 #define BOXX (1.0 / LONG_Y)
391 #define BOXY (1.0 / LONG_Z)
397 #if(GRAVITY_TALLBOX == 1)
400 #define BOXX (1.0 / LONG_X)
401 #define BOXY (1.0 / LONG_Z)
407 #if(GRAVITY_TALLBOX == 2)
410 #define BOXX (1.0 / LONG_X)
411 #define BOXY (1.0 / LONG_Y)
peanokey get_peanokey_offset(unsigned int j, int bits)
bool operator<(const location &left, const location &right)
@ MOST_BOUND_PARTICLE_SNAPHOT
@ MOST_BOUND_PARTICLE_SNAPHOT_REORDERED
int32_t MySignedIntPosType
bool operator>=(const peanokey &a, const peanokey &b)
peanokey operator+(const peanokey &a, const peanokey &b)
bool operator!=(const location &left, const location &right)
#define BITS_FOR_POSITIONS
bool operator==(const location &left, const location &right)
offset_tuple(const char x)
offset_tuple(const char x, const char y, const char z)
int * TreePoints_CostCount