17 #ifndef ALIHLTVECTOR_H 18 #define ALIHLTVECTOR_H 25 return static_cast<int_v
>(
v) >= int_v(Vc::Zero);
30 inline Vc::int_v Abs<Vc::int_v>(
const Vc::int_v &x)
34 #define SPECIALIZATION(T) \ 36 inline Vc::T Min<Vc::T>(const Vc::T &x, const Vc::T &y) \ 38 return Vc::min(x, y); \ 41 inline Vc::T Max<Vc::T>(const Vc::T &x, const Vc::T &y) \ 43 return Vc::max(x, y); \ 47 #ifndef ENABLE_LARRABEE 51 #endif // ENABLE_LARRABEE 53 #define SPECIALIZATION(T) \ 55 inline T Min<T>(const T &x, const T &y) \ 57 return Vc::min(x, y); \ 60 inline T Max<T>(const T &x, const T &y) \ 62 return Vc::max(x, y); \ 65 inline T Sqrt<T>(const T &x) \ 70 inline T Abs<T>(const T &x) \ 75 inline T Log<T>(const T &x) \ 80 inline T Reciprocal<T>(const T &x) \ 82 return Vc::reciprocal(x); \ 85 inline T Round<T>(const T &x) \ 87 return Vc::round(x); \ 90 inline T RSqrt<T>(const T &x) \ 92 return Vc::rsqrt(x); \ 95 struct FiniteReturnTypeHelper<T> { \ 99 inline FiniteReturnTypeHelper<T>::R Finite<T>(const T &x) \ 101 return Vc::isfinite(x); \ 104 inline T ATan2<T>(const T &x, const T &y) \ 106 return Vc::atan2(x, y); \ 109 inline T ASin<T>(const T &x) \ 111 return Vc::asin(x); \ 114 inline T Sin<T>(const T &x) \ 119 inline T Cos<T>(const T &x) \ 127 #endif // VC_IMPL_SSE 129 #undef SPECIALIZATION 132 static void AtomicMax(
unsigned int volatile *addr, uint_v val)
134 for (
int i = 0;
i < uint_v::Size; ++
i) {
135 AtomicMax(&addr[
i], val[i]);
141 #endif // ALIHLTVECTOR_H
#define SPECIALIZATION(T)
static uint_m validHitIndexes(const uint_v &v)