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 "-Warray-bounds"
13#pragma GCC diagnostic ignored "-Wunused-parameter"
14#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
15#if (__cplusplus >= 202002L) // only for C++20
16#pragma GCC diagnostic ignored "-Wdeprecated-enum-enum-conversion"
17#endif
18
19#ifdef __clang__
20#pragma clang diagnostic ignored "-Wconditional-uninitialized"
21#pragma clang diagnostic ignored "-Wdeprecated-copy"
22#endif
23
24#include <Vc/Vc>
25#pragma GCC diagnostic pop
26#endif
27
28#include <VecCore/VecCore>
29
30namespace ROOT {
31
32namespace Internal {
33 using ScalarBackend = vecCore::backend::Scalar;
34#ifdef VECCORE_ENABLE_VC
35 using VectorBackend = vecCore::backend::VcVector;
36#else
37 using VectorBackend = vecCore::backend::Scalar;
38#endif
39}
40 using Float_v = typename Internal::VectorBackend::Float_v;
41 using Double_v = typename Internal::VectorBackend::Double_v;
42 using Int_v = typename Internal::VectorBackend::Int_v;
43 using Int32_v = typename Internal::VectorBackend::Int32_v;
44 using UInt_v = typename Internal::VectorBackend::UInt_v;
45 using UInt32_v = typename Internal::VectorBackend::UInt32_v;
46}
47
48#else // R__HAS_VECCORE
49
50// We do not have explicit vectorisation support enabled. Fall back to regular ROOT types.
51
52#include "RtypesCore.h"
53
54namespace ROOT {
57 using Int_v = Int_t;
58 using Int32_v = Int_t; // FIXME: Should we introduce Int32_t in RtypesCore.h?
59 using UInt_v = UInt_t;
60 using UInt32_v = UInt_t; // FIXME: Should we introduce UInt32_t in RtypesCore.h?
61}
62#endif
63
64#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
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
UInt_t UInt_v
Definition Types.h:59
Int_t Int32_v
Definition Types.h:58
UInt_t UInt32_v
Definition Types.h:60
Int_t Int_v
Definition Types.h:57
Double_t Double_v
Definition Types.h:56
Float_t Float_v
Definition Types.h:55