17 #ifndef PNDFTSVECTOR_H 
   18 #define PNDFTSVECTOR_H 
   26   return static_cast<int_v
>( 
v ) >= int_v( 
Vc::Zero );
 
   31   template<> 
inline Vc::int_v Abs  <Vc::int_v >( 
const Vc::int_v &
x ) { 
return Vc::abs( 
x ); }
 
   32 #define SPECIALIZATION( T ) \ 
   33   template<> inline Vc::T Min  <Vc::T>( const Vc::T &x, const Vc::T &y ) { return Vc::min( x, y ); } \ 
   34   template<> inline Vc::T Max  <Vc::T>( const Vc::T &x, const Vc::T &y ) { return Vc::max( x, y ); } 
   38 #define SPECIALIZATION( T ) \ 
   39   template<> inline T Min  <T>( const T &x, const T &y ) { return Vc::min( x, y ); } \ 
   40   template<> inline T Max  <T>( const T &x, const T &y ) { return Vc::max( x, y ); } \ 
   41   template<> inline T Sqrt <T>( const T &x ) { return Vc::sqrt( x ); } \ 
   42   template<> inline T Abs  <T>( const T &x ) { return Vc::abs( x ); } \ 
   43   template<> inline T Log  <T>( const T &x ) { return Vc::log( x ); } \ 
   44   template<> inline T Reciprocal<T>( const T &x ) { return Vc::reciprocal( x ); } \ 
   45   template<> inline T Round<T>( const T &x ) { return Vc::round( x ); } \ 
   46   template<> inline T RSqrt<T>( const T &x ) { return Vc::rsqrt( x ); } \ 
   47   template<> struct FiniteReturnTypeHelper<T> { typedef T::Mask R; }; \ 
   48   template<> inline FiniteReturnTypeHelper<T>::R Finite<T>( const T &x ) { return Vc::isfinite( x ); } \ 
   49   template<> inline T ATan2<T>( const T &x, const T &y ) { return Vc::atan2( x, y ); } \ 
   50   template<> inline T ASin<T> ( const T &x ) { return Vc::asin( x ); } \ 
   51   template<> inline T Sin  <T>( const T &x ) { return Vc::sin( x ); } \ 
   52   template<> inline T Cos  <T>( const T &x ) { return Vc::cos( x ); } 
   59   static void AtomicMax( 
unsigned int volatile *addr, uint_v 
val ) {
 
   60     for ( 
int i = 0; 
i < uint_v::Size; ++
i ) {
 
   61       AtomicMax( &addr[
i], val[i] );
 
   67 #endif // PNDFTSVECTOR_H 
#define SPECIALIZATION(T)
Double_t val[nBoxes][nFEBox]
static uint_m validHitIndexes(const uint_v &v)