Logo ROOT   6.12/07
Reference Guide
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 
14 #ifdef __clang__
15 #pragma clang diagnostic ignored "-Wconditional-uninitialized"
16 #endif
17 
18 #include <Vc/Vc>
19 #pragma GCC diagnostic pop
20 #endif
21 
22 #include <VecCore/VecCore>
23 
24 namespace ROOT {
25 
26 namespace Internal {
27  using ScalarBackend = vecCore::backend::Scalar;
28 #ifdef VECCORE_ENABLE_VC
29  using VectorBackend = vecCore::backend::VcVector;
30 #else
31  using VectorBackend = vecCore::backend::Scalar;
32 #endif
33 }
36  using Int_v = typename Internal::VectorBackend::Int_v;
38  using UInt_v = typename Internal::VectorBackend::UInt_v;
40 }
41 
42 #else // R__HAS_VECCORE
43 
44 // We do not have explicit vectorisation support enabled. Fall back to regular ROOT types.
45 
46 #include "Rtypes.h"
47 
48 namespace ROOT {
49  using Float_v = Float_t;
50  using Double_v = Double_t;
51  using Int_v = Int_t;
52  using Int32_v = Int_t; // FIXME: Should we introduce Int32_t in RtypesCore.h?
53  using UInt_v = UInt_t;
54  using UInt32_v = UInt_t; // FIXME: Should we introduce UInt32_t in RtypesCore.h?
55 }
56 #endif
57 
58 #endif // ROOT_Math_VecTypes
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
Int_t Int_v
Definition: Types.h:51
float Float_t
Definition: RtypesCore.h:53
int Int_t
Definition: RtypesCore.h:41
Double_t Double_v
Definition: Types.h:50
UInt_t UInt32_v
Definition: Types.h:54
Float_t Float_v
Definition: Types.h:49
Int_t Int32_v
Definition: Types.h:52
unsigned int UInt_t
Definition: RtypesCore.h:42
double Double_t
Definition: RtypesCore.h:55
UInt_t UInt_v
Definition: Types.h:53
Rotation3D::Scalar Scalar