BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmL1Def.h
Go to the documentation of this file.
1#ifndef CbmL1Def_h
2#define CbmL1Def_h 1
3
4// #define FAST_CODE // FAST_CODE = more unsafe
5
6#include <assert.h>
7
8#ifdef HAVE_SSE
10// #include "vectors/P4_F64vec2.h"
11
12#else
14#error NoSseFound
15#endif // HAVE_SSE
16
17// #include "vectors/PSEUDO_F64vec1.h"
18
19#ifdef FAST_CODE
20
21#define L1_NO_ASSERT // use with asserts, etc.
22#define L1_DYNAMIC_CAST static_cast
23
24#else // FAST_CODE
25
26#define L1_DYNAMIC_CAST dynamic_cast
27
28#endif // FAST_CODE
29
30#if 1 && defined(__GNUC__) && __GNUC__ - 0 >= 3 // for speed up conditions
31#define ISLIKELY(x) __builtin_expect(!!(x), 1)
32#define ISUNLIKELY(x) __builtin_expect(!!(x), 0)
33#else
34#define ISLIKELY(x) (x)
35#define ISUNLIKELY(x) (x)
36#endif
37
38#if defined(NDEBUG) || defined(L1_NO_ASSERT)
39#define L1_ASSERT(v, msg)
40#define L1_assert(v)
41#else
42#define L1_ASSERT(v, msg) \
43 if (v) { \
44 } else { \
45 std::cerr << __FILE__ << ":" << __LINE__ << " assertion failed: " << #v << " = " << (v) << "\n" \
46 << msg << std::endl; \
47 abort(); \
48 }
49#define L1_assert(v) assert(v)
50#endif
51
52#endif // CbmL1Def_h