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
39typedef Vec4ui Vec4MyIntPosType;
40typedef Vec4i Vec4MySignedIntPosType;
44#ifdef POSITIONS_IN_64BIT
47#define BITS_FOR_POSITIONS 64
48#ifdef EXPLICIT_VECTORIZATION
49typedef Vec4uq Vec4MyIntPosType;
50typedef 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