Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Types.h
Go to the documentation of this file.
1#ifndef ROOT_Math_VecTypes
2#define ROOT_Math_VecTypes
3
4#include "RConfigure.h"
5
6#ifdef R__HAS_VECCORE
7
8#if defined(R__HAS_VC)
9
10#pragma GCC diagnostic push
11#pragma GCC diagnostic ignored "-Wall"
12#pragma GCC diagnostic ignored "-Wunused-parameter"
13#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
14#if (__cplusplus >= 202002L) // only for C++20
15#pragma GCC diagnostic ignored "-Wdeprecated-enum-enum-conversion"
16#endif
17
18#ifdef __clang__
19#pragma clang diagnostic ignored "-Wconditional-uninitialized"
20#pragma clang diagnostic ignored "-Wdeprecated-copy"
21#endif
22
23#include <Vc/Vc>
24#pragma GCC diagnostic pop
25#endif
26
27#include <VecCore/VecCore>
28
29namespace ROOT {
30
31namespace Internal {
32 using ScalarBackend = vecCore::backend::Scalar;
33#ifdef VECCORE_ENABLE_VC
34 using VectorBackend = vecCore::backend::VcVector;
35#else
36 using VectorBackend = vecCore::backend::Scalar;
37#endif
38}
39 using Float_v = typename Internal::VectorBackend::Float_v;
40 using Double_v = typename Internal::VectorBackend::Double_v;
41 using Int_v = typename Internal::VectorBackend::Int_v;
42 using Int32_v = typename Internal::VectorBackend::Int32_v;
43 using UInt_v = typename Internal::VectorBackend::UInt_v;
44 using UInt32_v = typename Internal::VectorBackend::UInt32_v;
45}
46
47#else // R__HAS_VECCORE
48
49// We do not have explicit vectorisation support enabled. Fall back to regular ROOT types.
50
51#include "RtypesCore.h"
52
53namespace ROOT {
56 using Int_v = Int_t;
57 using Int32_v = Int_t; // FIXME: Should we introduce Int32_t in RtypesCore.h?
58 using UInt_v = UInt_t;
59 using UInt32_v = UInt_t; // FIXME: Should we introduce UInt32_t in RtypesCore.h?
60}
61#endif
62
63#endif // ROOT_Math_VecTypes
int Int_t
Definition RtypesCore.h:45
unsigned int UInt_t
Definition RtypesCore.h:46
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
UInt_t UInt_v
Definition Types.h:58
Int_t Int32_v
Definition Types.h:57
UInt_t UInt32_v
Definition Types.h:59
Int_t Int_v
Definition Types.h:56
Double_t Double_v
Definition Types.h:55
Float_t Float_v
Definition Types.h:54