Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:13:50

0001 #ifndef VECCORE_BACKEND_UMESIMD_H
0002 #define VECCORE_BACKEND_UMESIMD_H
0003 
0004 #ifdef VECCORE_ENABLE_UMESIMD
0005 
0006 #include <umesimd/UMESimd.h>
0007 
0008 namespace vecCore {
0009 
0010 namespace backend {
0011 
0012 // a UME::SIMD backend with automatically chosen SIMD sizes
0013 class UMESimd {
0014 public:
0015   using Real_v   = UME::SIMD::SIMDVec<Real_s, SIMDWidth<Real_s>()>;
0016   using Float_v  = UME::SIMD::SIMDVec<float, SIMDWidth<float>()>;
0017   using Double_v = UME::SIMD::SIMDVec<double, SIMDWidth<double>()>;
0018 
0019   using Int_v   = UME::SIMD::SIMDVec<int, SIMDWidth<int>()>;
0020   using Int16_v = UME::SIMD::SIMDVec<int16_t, SIMDWidth<int16_t>()>;
0021   using Int32_v = UME::SIMD::SIMDVec<int32_t, SIMDWidth<int32_t>()>;
0022   using Int64_v = UME::SIMD::SIMDVec<int64_t, SIMDWidth<int64_t>()>;
0023 
0024   using UInt_v   = UME::SIMD::SIMDVec<unsigned int, SIMDWidth<unsigned int>()>;
0025   using UInt16_v = UME::SIMD::SIMDVec<uint16_t, SIMDWidth<uint16_t>()>;
0026   using UInt32_v = UME::SIMD::SIMDVec<uint32_t, SIMDWidth<uint32_t>()>;
0027   using UInt64_v = UME::SIMD::SIMDVec<uint64_t, SIMDWidth<uint64_t>()>;
0028 };
0029 
0030 } // namespace backend
0031 
0032 } // namespace vecCore
0033 
0034 // bring in common implementation
0035 #include "UMESimdCommon.h"
0036 
0037 #endif
0038 #endif