00001 #ifndef OPENMP_UTILS_H 00002 #define OPENMP_UTILS_H 00003 00004 #include <math.h> 00005 00006 template <typename T> 00007 static inline void myAtomicVecAdd(typename vec4<T>::Type& a, typename vec4<T>::Type& b) 00008 { 00009 //#pragma omp critical 00010 a += b; 00011 /* 00012 #pragma omp atomic 00013 a.x += b.x; 00014 00015 #pragma omp atomic 00016 a.y += b.y; 00017 00018 #pragma omp atomic 00019 a.z += b.z; 00020 */ 00021 } 00022 00023 #endif