1#ifndef VECCORE_BACKEND_INTERFACE_H
2#define VECCORE_BACKEND_INTERFACE_H
73template <
typename T,
typename S = Scalar<T>>
78template <
typename T,
typename S = Scalar<T>>
103T
Blend(
const Mask<T> &mask,
const T &src1,
const T &src2);
#define VECCORE_ATT_HOST_DEVICE
#define VECCORE_FORCE_INLINE
VECCORE_ATT_HOST_DEVICE bool MaskEmpty(const M &mask)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void MaskedAssign(T &dst, const Mask< T > &mask, const T &src)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > Get(const T &v, size_t i)
typename TypeTraits< T >::ScalarType Scalar
typename TypeTraits< T >::MaskType Mask
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T Blend(const Mask< T > &mask, const T &src1, const T &src2)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void Set(T &v, size_t i, Scalar< T > const val)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > ReduceMax(const T &v)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void Scatter(T const &v, S *ptr, Index< T > const &idx)
VECCORE_ATT_HOST_DEVICE bool MaskFull(const M &mask)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr size_t VectorSize()
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > * End(T &v)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void Load(T &v, Scalar< T > const *ptr)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr bool EarlyReturnAllowed()
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > * Begin(T &v)
typename TypeTraits< T >::IndexType Index
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T Gather(S const *ptr, Index< T > const &idx)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr bool EarlyReturnMaxLength(T &, size_t n)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > ReduceMin(const T &v)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void Store(T const &v, Scalar< T > *ptr)
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Scalar< T > ReduceAdd(const T &v)