43 #ifndef __OPENCV_GPU_VEC_DISTANCE_DETAIL_HPP__
44 #define __OPENCV_GPU_VEC_DISTANCE_DETAIL_HPP__
46 #include "../datamov_utils.hpp"
48 namespace cv {
namespace gpu {
namespace device
50 namespace vec_distance_detail
54 template <
typename Dist,
typename T1,
typename T2>
55 static __device__
void calcCheck(
const T1* vecCached,
const T2* vecGlob,
int len, Dist&
dist,
int ind)
59 T1 val1 = *vecCached++;
64 dist.reduceIter(val1, val2);
70 template <
typename Dist,
typename T1,
typename T2>
73 T1 val1 = *vecCached++;
77 vecGlob += THREAD_DIM;
79 dist.reduceIter(val1, val2);
86 template <
typename Dist,
typename T1,
typename T2>
87 static __device__ __forceinline__
void calcCheck(
const T1*,
const T2*,
int, Dist&,
int)
91 template <
typename Dist,
typename T1,
typename T2>
100 template <
typename Dist,
typename T1,
typename T2>
101 static __device__ __forceinline__
void calc(
const T1* vecCached,
const T2* vecGlob,
int len, Dist&
dist,
int tid)
103 UnrollVecDiffCached<THREAD_DIM, MAX_LEN / THREAD_DIM>::calcCheck(vecCached, vecGlob, len, dist, tid);
108 template <
typename Dist,
typename T1,
typename T2>
109 static __device__ __forceinline__
void calc(
const T1* vecCached,
const T2* vecGlob,
int len, Dist&
dist,
int tid)
111 UnrollVecDiffCached<THREAD_DIM, MAX_LEN / THREAD_DIM>::calcWithoutCheck(vecCached, vecGlob + tid, dist);
117 #endif // __OPENCV_GPU_VEC_DISTANCE_DETAIL_HPP__
static __device__ __forceinline__ void calc(const T1 *vecCached, const T2 *vecGlob, int len, Dist &dist, int tid)
Definition: vec_distance_detail.hpp:101
static __device__ __forceinline__ void calc(const T1 *vecCached, const T2 *vecGlob, int len, Dist &dist, int tid)
Definition: vec_distance_detail.hpp:109
static __device__ __forceinline__ void calcCheck(const T1 *, const T2 *, int, Dist &, int)
Definition: vec_distance_detail.hpp:87
static __device__ __forceinline__ void calcWithoutCheck(const T1 *, const T2 *, Dist &)
Definition: vec_distance_detail.hpp:92
static __device__ void calcWithoutCheck(const T1 *vecCached, const T2 *vecGlob, Dist &dist)
Definition: vec_distance_detail.hpp:71
static __device__ void calcCheck(const T1 *vecCached, const T2 *vecGlob, int len, Dist &dist, int ind)
Definition: vec_distance_detail.hpp:55
Definition: vec_distance_detail.hpp:97
Definition: vec_distance_detail.hpp:52
false
Definition: color.hpp:230
true
Definition: color.hpp:221
CvPoint3D64f double * dist
Definition: legacy.hpp:556
__device__ static __forceinline__ void Load(const T *ptr, int offset, T &val)
Definition: datamov_utils.hpp:55