20 #ifndef VC_SSE_DEBUG_H
21 #define VC_SSE_DEBUG_H
46 template<
typename T,
typename V>
static void printVector(V _x)
48 enum {
Size =
sizeof(V) /
sizeof(
T) };
49 union { V
v;
T m[
Size]; }
x = { _x };
50 std::cerr <<
'[' << std::setprecision(24) <<
x.m[0];
51 for (
int i = 1; i <
Size; ++i) {
52 std::cerr <<
", " << std::setprecision(24) <<
x.m[i];
59 std::cerr <<
"\033[1;40;33mDEBUG: " << file <<
':' << line <<
' ' << func <<
' ';
65 printVector<float, __m128>(
x);
69 printVector<double, __m128d>(
x);
73 printVector<unsigned int, __m128i>(
x);
79 std::cerr <<
"\033[0m" << std::endl;
84 #define VC_DEBUG ::ROOT::Vc::SSE::DebugStream(__PRETTY_FUNCTION__, __FILE__, __LINE__)
90 #endif // VC_SSE_DEBUG_H
Namespace for new ROOT classes and functions.
DebugStream(const char *func, const char *file, int line)
DebugStream & operator<<(__m128 x)
DebugStream & operator<<(const T &x)
double func(double *x, double *p)
DebugStream & operator<<(__m128d x)
DebugStream & operator<<(__m128i x)
static void printVector(V _x)