37#ifndef PCL_DEVICE_UTILS_BLOCK_HPP_
38#define PCL_DEVICE_UTILS_BLOCK_HPP_
66 template<
typename It,
typename T>
72 for(;
t < end;
t += STRIDE)
76 template<
typename OutIt,
typename T>
87 template<
typename InIt,
typename OutIt>
94 for(;
t < end;
t += STRIDE,
o += STRIDE)
98 template<
typename InIt,
typename OutIt,
class UnOp>
105 for(;
t < end;
t += STRIDE,
o += STRIDE)
109 template<
typename InIt1,
typename InIt2,
typename OutIt,
class BinOp>
117 for(;
t1 <
end1;
t1 += STRIDE,
t2 += STRIDE,
o += STRIDE)
121 template<
int CTA_SIZE,
typename T,
class BinOp>
143 template<
int CTA_SIZE,
typename T,
class BinOp>
168 template <
typename T,
class BinOp>
176 for (
unsigned int i =
sft +
ftid; i < n; i +=
sft)
186 unsigned int half = n/2;
Iterator class for point clouds with or without given indices.
static __device__ __forceinline__ void yota(OutIt beg, OutIt end, T value)
static __device__ __forceinline__ void fill(It beg, It end, const T &value)
static __device__ __forceinline__ void reduce(volatile T *buffer, BinOp op)
static __device__ __forceinline__ T reduce(volatile T *buffer, T init, BinOp op)
static __device__ __forceinline__ void sync()
static __device__ __forceinline__ void reduce_n(T *data, unsigned int n, BinOp op)
static __device__ __forceinline__ unsigned int stride()
static __device__ __forceinline__ void transform(InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op)
static __device__ __forceinline__ void copy(InIt beg, InIt end, OutIt out)
static __device__ __forceinline__ unsigned int id()
static __device__ __forceinline__ void transform(InIt beg, InIt end, OutIt out, UnOp op)
static __device__ __forceinline__ int flattenedThreadId()