Macros | Functions
vil_math_sse.h File Reference

Various mathematical manipulations of 2D images implemented with SSE intrinsic functions. More...

Go to the source code of this file.

Macros

#define VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_DECL(aT, bT, dT)
 
#define VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_IMPL(aT, bT, dT)
 

Functions

template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d_generic (const aT *pxA, std::ptrdiff_t isA, const bT *pxB, std::ptrdiff_t isB, dT *pxD, std::ptrdiff_t isD, unsigned len)
 Compute absolute difference of two 1D images (imD = |imA-imB|). More...
 
template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d_sse (const aT *pxA, const bT *pxB, dT *pxD, unsigned len)
 
template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d (const aT *pxA, std::ptrdiff_t isA, const bT *pxB, std::ptrdiff_t isB, dT *pxD, std::ptrdiff_t isD, unsigned len)
 Compute absolute difference of two 1D images (im_sum = |imA-imB|). More...
 

Detailed Description

Various mathematical manipulations of 2D images implemented with SSE intrinsic functions.

Author
Chuck Atkins

Definition in file vil_math_sse.h.

Macro Definition Documentation

◆ VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_DECL

#define VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_DECL (   aT,
  bT,
  dT 
)
Value:
template<> \
void vil_math_image_abs_difference_1d_sse<aT,bT,dT>( \
const aT* pxA, const bT* pxB, dT* pxD, \
unsigned len); \
template<> \
void vil_math_image_abs_difference_1d<aT,bT,dT>( \
const aT* pxA, std::ptrdiff_t isA, \
const bT* pxB, std::ptrdiff_t isB, \
dT* pxD, std::ptrdiff_t isD, \
unsigned len);

Definition at line 53 of file vil_math_sse.h.

◆ VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_IMPL

#define VIL_MATH_IMAGE_ABS_DIFF_1D_SSE_SPECIALIZE_IMPL (   aT,
  bT,
  dT 
)
Value:
template<> \
inline void vil_math_image_abs_difference_1d<aT,bT,dT>( \
const aT* pxA, std::ptrdiff_t isA, \
const bT* pxB, std::ptrdiff_t isB, \
dT* pxD, std::ptrdiff_t isD, \
unsigned len) \
{ \
if (isA == 1 && isB == 1 && isD == 1) \
{ \
vil_math_image_abs_difference_1d_sse<aT,bT,dT>(pxA, pxB, pxD, len); \
} \
else \
{ \
vil_math_image_abs_difference_1d_generic<aT,bT,dT>( \
pxA, isA, pxB, isB, pxD, isD, len); \
} \
}

Definition at line 70 of file vil_math_sse.h.

Function Documentation

◆ vil_math_image_abs_difference_1d()

template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d ( const aT *  pxA,
std::ptrdiff_t  isA,
const bT *  pxB,
std::ptrdiff_t  isB,
dT *  pxD,
std::ptrdiff_t  isD,
unsigned  len 
)
inline

Compute absolute difference of two 1D images (im_sum = |imA-imB|).

Specialize this function for an optimized implementation

Definition at line 941 of file vil_math.h.

◆ vil_math_image_abs_difference_1d_generic()

template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d_generic ( const aT *  pxA,
std::ptrdiff_t  isA,
const bT *  pxB,
std::ptrdiff_t  isB,
dT *  pxD,
std::ptrdiff_t  isD,
unsigned  len 
)
inline

Compute absolute difference of two 1D images (imD = |imA-imB|).

Compute absolute difference of two 1D images (imD = |imA-imB|).

Definition at line 924 of file vil_math.h.

◆ vil_math_image_abs_difference_1d_sse()

template<class aT , class bT , class dT >
void vil_math_image_abs_difference_1d_sse ( const aT *  pxA,
const bT *  pxB,
dT *  pxD,
unsigned  len 
)