15 #ifndef MRPT_CVD_INTERNAL_INC_FAST_CORNER_UTILITIES_H 16 #define MRPT_CVD_INTERNAL_INC_FAST_CORNER_UTILITIES_H 24 template <
class T1,
class T2>
static bool eval(
const T1
a,
const T2
b)
28 static int prep_t(
int pixel_val,
int barrier)
30 return pixel_val - barrier;
35 template <
class T1,
class T2>
static bool eval(
const T1
a,
const T2
b)
39 static int prep_t(
int pixel_val,
int barrier)
41 return pixel_val + barrier;
47 #define CHECK_BARRIER(lo, hi, other, flags) \ 49 __m128i diff = _mm_subs_epu8(lo, other); \ 50 __m128i diff2 = _mm_subs_epu8(other, hi); \ 51 __m128i z = _mm_setzero_si128(); \ 52 diff = _mm_cmpeq_epi8(diff, z); \ 53 diff2 = _mm_cmpeq_epi8(diff2, z); \ 54 flags = ~(_mm_movemask_epi8(diff) | (_mm_movemask_epi8(diff2) << 16)); \ 57 template <
bool Aligned>
inline __m128i
load_si128(
const void*
addr) {
return _mm_loadu_si128((
const __m128i*)
addr); }
__m128i load_si128(const void *addr)
static bool eval(const T1 a, const T2 b)
static int prep_t(int pixel_val, int barrier)
__m128i load_si128< true >(const void *addr)
static bool eval(const T1 a, const T2 b)
static int prep_t(int pixel_val, int barrier)
GLenum const GLvoid * addr
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLubyte GLubyte GLubyte a