]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - Vc/include/Vc/avx/const_data.h
update to Vc 0.7.3-dev
[u/mrichter/AliRoot.git] / Vc / include / Vc / avx / const_data.h
index dadc89b726f2db36d408e27123e6b0daf7d8eb1b..12c6463e00cd25aa12feedb97a9d485472ccd281 100644 (file)
@@ -21,6 +21,7 @@
 #define VC_AVX_CONST_DATA_H
 
 #include "macros.h"
+namespace AliRoot {
 namespace Vc
 {
 namespace AVX
@@ -35,35 +36,38 @@ struct STRUCT_ALIGN1(64) c_general
     static const float oneFloat;
     static const unsigned int absMaskFloat[2];
     static const unsigned int signMaskFloat[2];
+    static const unsigned int highMaskFloat;
     static const unsigned short minShort[2];
     static const unsigned short one16[2];
     static const float _2power31;
     static const double oneDouble;
     static const unsigned long long frexpMask;
+    static const unsigned long long highMaskDouble;
 } STRUCT_ALIGN2(64);
 
-template<typename T> struct c_sin
+template<typename T> struct c_trig
 {
     ALIGN(64) static const T data[];
 };
 
 template<typename T> struct c_log
 {
-    typedef float floatAlias MAY_ALIAS;
-    static inline float d(int i) { return *reinterpret_cast<const floatAlias *>(&data[i]); }
+    typedef float floatAlias Vc_MAY_ALIAS;
+    static Vc_ALWAYS_INLINE float d(int i) { return *reinterpret_cast<const floatAlias *>(&data[i]); }
     ALIGN(64) static const unsigned int data[];
 };
 
 template<> struct c_log<double>
 {
     enum VectorSize { Size = 16 / sizeof(double) };
-    typedef double doubleAlias MAY_ALIAS;
-    static inline double d(int i) { return *reinterpret_cast<const doubleAlias *>(&data[i]); }
+    typedef double doubleAlias Vc_MAY_ALIAS;
+    static Vc_ALWAYS_INLINE double d(int i) { return *reinterpret_cast<const doubleAlias *>(&data[i]); }
     ALIGN(64) static const unsigned long long data[];
 };
 
 } // namespace AVX
 } // namespace Vc
+} // namespace AliRoot
 
 #include "undomacros.h"