| OpenCV 3.4.8 Open Source Computer Vision

Classes | Namespaces | Macros | Typedefs | Functions | Variables
intrin_cpp.hpp File Reference
`#include <limits>`
`#include <cstring>`
`#include <algorithm>`
`#include "opencv2/core/saturate.hpp"`

## Classes
struct | cv::v_reg< _Tp, n >

## Namespaces
| cv

## Macros
#define | OPENCV_HAL_IMPL_ARITHM_OP(func, bin_op, cast_op, _Tp2)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_BIN_OP(bin_op)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_BIT_OP(bit_op)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_INIT_VAL(_Tpvec, _Tp, suffix) inline _Tpvec v_setall_##suffix(_Tp val) { return _Tpvec::all(val); }
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_INIT_ZERO(_Tpvec, _Tp, suffix) inline _Tpvec v_setzero_##suffix() { return _Tpvec::zero(); }
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_PACK(_Tpvec, _Tpnvec, _Tpn, pack_suffix, cast)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_PACK_STORE(_Tpvec, _Tp, _Tpnvec, _Tpn, pack_suffix, cast)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_REINTERPRET(_Tpvec, _Tp, suffix)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_RSHIFTR(_Tpvec, _Tp)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_RSHR_PACK(_Tpvec, _Tp, _Tpnvec, _Tpn, pack_suffix, cast)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_RSHR_PACK_STORE(_Tpvec, _Tp, _Tpnvec, _Tpn, pack_suffix, cast)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_SHIFTL(_Tpvec, _Tp)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_C_SHIFTR(_Tpvec, _Tp)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_CMP_OP(cmp_op)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_MATH_FUNC(func, cfunc, _Tp2)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_MINMAX_FUNC(func, cfunc)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_REDUCE_MINMAX_FUNC(func, cfunc)
| Helper macro. More...
#define | OPENCV_HAL_IMPL_ROTATE_SHIFT_OP(suffix, opA, opB)
| Element shift left among vector. More...
#define | OPENCV_HAL_IMPL_SHIFT_OP(shift_op)
| Helper macro. More...

## Typedefs
typedef v_reg< float, 4 > | cv::v_float32x4
| Four 32-bit floating point values (single precision) More...
typedef v_reg< double, 2 > | cv::v_float64x2
| Two 64-bit floating point values (double precision) More...
typedef v_reg< short, 8 > | cv::v_int16x8
| Eight 16-bit signed integer values. More...
typedef v_reg< int, 4 > | cv::v_int32x4
| Four 32-bit signed integer values. More...
typedef v_reg< int64, 2 > | cv::v_int64x2
| Two 64-bit signed integer values. More...
typedef v_reg< schar, 16 > | cv::v_int8x16
| Sixteen 8-bit signed integer values. More...
typedef v_reg< ushort, 8 > | cv::v_uint16x8
| Eight 16-bit unsigned integer values. More...
typedef v_reg< unsigned, 4 > | cv::v_uint32x4
| Four 32-bit unsigned integer values. More...
typedef v_reg< uint64, 2 > | cv::v_uint64x2
| Two 64-bit unsigned integer values. More...
typedef v_reg< uchar, 16 > | cv::v_uint8x16
| Sixteen 8-bit unsigned integer values. More...

## Functions
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator!= (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Not equal comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator& (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Bitwise AND. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator&= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator* (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Multiply values. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator*= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator+ (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Add values. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator+= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator- (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Subtract values. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator-= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator/ (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Divide values. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator/= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator< (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Less-than comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator<< (const v_reg< _Tp, n > &a, int imm)
| Bitwise shift left. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator<= (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Less-than or equal comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator== (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Equal comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator> (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Greater-than comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator>= (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Greater-than or equal comparison. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator>> (const v_reg< _Tp, n > &a, int imm)
| Bitwise shift right. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator^ (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Bitwise XOR. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator^= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator| (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Bitwise OR. More...
template<typename _Tp , int n>
v_reg< _Tp, n > & | cv::operator|= (v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::operator~ (const v_reg< _Tp, n > &a)
| Bitwise NOT. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_abs (const v_reg< _Tp, n > &a)
| Absolute value of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_absdiff (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Absolute difference. More...
v_float32x4 | cv::v_absdiff (const v_float32x4 &a, const v_float32x4 &b)
v_float64x2 | cv::v_absdiff (const v_float64x2 &a, const v_float64x2 &b)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_absdiffs (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Saturating absolute difference. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_add_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Add values without saturation. More...
template<typename _Tp , int n>
v_reg< int, n > | cv::v_ceil (const v_reg< _Tp, n > &a)
| Ceil elements. More...
template<int n>
v_reg< int, n > | cv::v_ceil (const v_reg< float, n > &a)
| Ceil. More...
template<int n>
v_reg< int, n *2 > | cv::v_ceil (const v_reg< double, n > &a)
template<typename _Tp , int n>
bool | cv::v_check_all (const v_reg< _Tp, n > &a)
| Check if all packed values are less than zero. More...
template<typename _Tp , int n>
bool | cv::v_check_any (const v_reg< _Tp, n > &a)
| Check if any of packed values is less than zero. More...
void | cv::v_cleanup ()
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_combine_high (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Combine vector from last elements of two vectors. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_combine_low (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Combine vector from first elements of two vectors. More...
template<int n>
v_reg< float, n > | cv::v_cvt_f32 (const v_reg< int, n > &a)
| Convert to float. More...
template<int n>
v_reg< float, n *2 > | cv::v_cvt_f32 (const v_reg< double, n > &a, const v_reg< double, n > &b)
template<int n>
v_reg< double, n > | cv::v_cvt_f64 (const v_reg< int, n *2 > &a)
| Convert to double. More...
template<int n>
v_reg< double, n > | cv::v_cvt_f64 (const v_reg< float, n *2 > &a)
| Convert to double. More...
template<int n>
v_reg< double, n > | cv::v_cvt_f64 (const v_reg< int64, n > &a)
| Convert to double. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Dot product of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c)
| Dot product of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Dot product of elements and expand. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > &c)
| Dot product of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Fast Dot product of elements and expand. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > | cv::v_dotprod_expand_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::q_type, n/4 > &c)
| Fast Dot product of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Fast Dot product of elements. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_dotprod_fast (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c)
| Fast Dot product of elements. More...
template<typename _Tp , int n>
void | cv::v_expand (const v_reg< _Tp, n > &a, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &b0, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &b1)
| Expand values to the wider pack type. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_expand_high (const v_reg< _Tp, n > &a)
| Expand higher values to the wider pack type. More...
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > | cv::v_expand_low (const v_reg< _Tp, n > &a)
| Expand lower values to the wider pack type. More...
template<int s, typename _Tp , int n>
v_reg< _Tp, n > | cv::v_extract (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Vector extract. More...
template<typename _Tp , int n>
v_reg< int, n > | cv::v_floor (const v_reg< _Tp, n > &a)
| Floor elements. More...
template<int n>
v_reg< int, n > | cv::v_floor (const v_reg< float, n > &a)
| Floor. More...
template<int n>
v_reg< int, n *2 > | cv::v_floor (const v_reg< double, n > &a)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_fma (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c)
| Multiply and add. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_interleave_pairs (const v_reg< _Tp, n > &vec)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_interleave_quads (const v_reg< _Tp, n > &vec)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_invsqrt (const v_reg< _Tp, n > &a)
| Inversed square root. More...
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_load (const _Tp *ptr)
| Load register contents from memory. More...
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_load_aligned (const _Tp *ptr)
| Load register contents from memory (aligned) More...
template<typename _Tp , int n>
void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b)
| Load and deinterleave (2 channels) More...
template<typename _Tp , int n>
void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b, v_reg< _Tp, n > &c)
| Load and deinterleave (3 channels) More...
template<typename _Tp , int n>
void | cv::v_load_deinterleave (const _Tp *ptr, v_reg< _Tp, n > &a, v_reg< _Tp, n > &b, v_reg< _Tp, n > &c, v_reg< _Tp, n > &d)
| Load and deinterleave (4 channels) More...
template<typename _Tp >
v_reg< typename V_TypeTraits< _Tp >::w_type, V_TypeTraits< _Tp >::nlanes128/2 > | cv::v_load_expand (const _Tp *ptr)
| Load register contents from memory with double expand. More...
v_reg< float, V_TypeTraits< float >::nlanes128 > | cv::v_load_expand (const float16_t *ptr)
template<typename _Tp >
v_reg< typename V_TypeTraits< _Tp >::q_type, V_TypeTraits< _Tp >::nlanes128/4 > | cv::v_load_expand_q (const _Tp *ptr)
| Load register contents from memory with quad expand. More...
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_load_halves (const _Tp *loptr, const _Tp *hiptr)
| Load register contents from two memory blocks. More...
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_load_low (const _Tp *ptr)
| Load 64-bits of data to lower part (high part is undefined). More...
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_lut (const _Tp *tab, const int *idx)
template<int n>
v_reg< int, n > | cv::v_lut (const int *tab, const v_reg< int, n > &idx)
template<int n>
v_reg< unsigned, n > | cv::v_lut (const unsigned *tab, const v_reg< int, n > &idx)
template<int n>
v_reg< float, n > | cv::v_lut (const float *tab, const v_reg< int, n > &idx)
template<int n>
v_reg< double, n > | cv::v_lut (const double *tab, const v_reg< int, n *2 > &idx)
template<int n>
void | cv::v_lut_deinterleave (const float *tab, const v_reg< int, n > &idx, v_reg< float, n > &x, v_reg< float, n > &y)
template<int n>
void | cv::v_lut_deinterleave (const double *tab, const v_reg< int, n *2 > &idx, v_reg< double, n > &x, v_reg< double, n > &y)
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_lut_pairs (const _Tp *tab, const int *idx)
template<typename _Tp >
v_reg< _Tp, V_TypeTraits< _Tp >::nlanes128 > | cv::v_lut_quads (const _Tp *tab, const int *idx)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_magnitude (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Magnitude. More...
v_float32x4 | cv::v_matmul (const v_float32x4 &v, const v_float32x4 &m0, const v_float32x4 &m1, const v_float32x4 &m2, const v_float32x4 &m3)
| Matrix multiplication. More...
v_float32x4 | cv::v_matmuladd (const v_float32x4 &v, const v_float32x4 &m0, const v_float32x4 &m1, const v_float32x4 &m2, const v_float32x4 &m3)
| Matrix multiplication and add. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_max (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Choose max values for each pair. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_min (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Choose min values for each pair. More...
template<typename _Tp , int n>
void | cv::v_mul_expand (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &c, v_reg< typename V_TypeTraits< _Tp >::w_type, n/2 > &d)
| Multiply and expand. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_mul_hi (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Multiply and extract high part. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_mul_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Multiply values without saturation. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_muladd (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c)
| A synonym for v_fma. More...
template<int n>
v_reg< float, n > | cv::v_not_nan (const v_reg< float, n > &a)
template<int n>
v_reg< double, n > | cv::v_not_nan (const v_reg< double, n > &a)
void | cv::v_pack_store (float16_t *ptr, v_reg< float, V_TypeTraits< float >::nlanes128 > &v)
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_pack_triplets (const v_reg< _Tp, n > &vec)
template<typename _Tp , int n>
v_reg< typename V_TypeTraits< _Tp >::abs_type, n > | cv::v_popcount (const v_reg< _Tp, n > &a)
| Count the 1 bits in the vector lanes and return result as corresponding unsigned type. More...
template<typename _Tp , int n>
void | cv::v_recombine (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, v_reg< _Tp, n > &low, v_reg< _Tp, n > &high)
| Combine two vectors from lower and higher parts of two other vectors. More...
template<typename _Tp , int n>
_Tp | cv::v_reduce_max (const v_reg< _Tp, n > &a)
| Find one max value. More...
template<typename _Tp , int n>
_Tp | cv::v_reduce_min (const v_reg< _Tp, n > &a)
| Find one min value. More...
template<typename _Tp , int n>
V_TypeTraits< typename V_TypeTraits< _Tp >::abs_type >::sum_type | cv::v_reduce_sad (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Sum absolute differences of values. More...
template<typename _Tp , int n>
V_TypeTraits< _Tp >::sum_type | cv::v_reduce_sum (const v_reg< _Tp, n > &a)
| Sum packed values. More...
v_float32x4 | cv::v_reduce_sum4 (const v_float32x4 &a, const v_float32x4 &b, const v_float32x4 &c, const v_float32x4 &d)
| Sums all elements of each input vector, returns the vector of sums. More...
template<int imm, typename _Tp , int n>
v_reg< _Tp, n > | cv::v_rotate_left (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<int imm, typename _Tp , int n>
v_reg< _Tp, n > | cv::v_rotate_left (const v_reg< _Tp, n > &a)
template<int imm, typename _Tp , int n>
v_reg< _Tp, n > | cv::v_rotate_right (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
template<int imm, typename _Tp , int n>
v_reg< _Tp, n > | cv::v_rotate_right (const v_reg< _Tp, n > &a)
template<typename _Tp , int n>
v_reg< int, n > | cv::v_round (const v_reg< _Tp, n > &a)
| Round elements. More...
template<int n>
v_reg< int, n > | cv::v_round (const v_reg< float, n > &a)
| Round. More...
template<int n>
v_reg< int, n *2 > | cv::v_round (const v_reg< double, n > &a, const v_reg< double, n > &b)
template<int n>
v_reg< int, n *2 > | cv::v_round (const v_reg< double, n > &a)
template<typename _Tp , int n>
int | cv::v_scan_forward (const v_reg< _Tp, n > &a)
| Get first negative lane index. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_select (const v_reg< _Tp, n > &mask, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Per-element select (blend operation) More...
template<typename _Tp , int n>
int | cv::v_signmask (const v_reg< _Tp, n > &a)
| Get negative values mask. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_sqr_magnitude (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Square of the magnitude. More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_sqrt (const v_reg< _Tp, n > &a)
| Square root of elements. More...
template<typename _Tp , int n>
void | cv::v_store (_Tp *ptr, const v_reg< _Tp, n > &a)
| Store data to memory. More...
template<typename _Tp , int n>
void | cv::v_store_aligned (_Tp *ptr, const v_reg< _Tp, n > &a)
| Store data to memory (aligned) More...
template<typename _Tp , int n>
void | cv::v_store_aligned (_Tp *ptr, const v_reg< _Tp, n > &a, hal::StoreMode)
template<typename _Tp , int n>
void | cv::v_store_aligned_nocache (_Tp *ptr, const v_reg< _Tp, n > &a)
template<typename _Tp , int n>
void | cv::v_store_high (_Tp *ptr, const v_reg< _Tp, n > &a)
| Store data to memory (higher half) More...
template<typename _Tp , int n>
void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, hal::StoreMode=hal::STORE_UNALIGNED)
| Interleave and store (2 channels) More...
template<typename _Tp , int n>
void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c, hal::StoreMode=hal::STORE_UNALIGNED)
| Interleave and store (3 channels) More...
template<typename _Tp , int n>
void | cv::v_store_interleave (_Tp *ptr, const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b, const v_reg< _Tp, n > &c, const v_reg< _Tp, n > &d, hal::StoreMode=hal::STORE_UNALIGNED)
| Interleave and store (4 channels) More...
template<typename _Tp , int n>
void | cv::v_store_low (_Tp *ptr, const v_reg< _Tp, n > &a)
| Store data to memory (lower half) More...
template<typename _Tp , int n>
v_reg< _Tp, n > | cv::v_sub_wrap (const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
| Subtract values without saturation. More...
template<typename _Tp >
void | cv::v_transpose4x4 (v_reg< _Tp, 4 > &a0, const v_reg< _Tp, 4 > &a1, const v_reg< _Tp, 4 > &a2, const v_reg< _Tp, 4 > &a3, v_reg< _Tp, 4 > &b0, v_reg< _Tp, 4 > &b1, v_reg< _Tp, 4 > &b2, v_reg< _Tp, 4 > &b3)
| Transpose 4x4 matrix. More...
template<typename _Tp , int n>
v_reg< int, n > | cv::v_trunc (const v_reg< _Tp, n > &a)
| Truncate elements. More...
template<int n>
v_reg< int, n > | cv::v_trunc (const v_reg< float, n > &a)
| Trunc. More...
template<int n>
v_reg< int, n *2 > | cv::v_trunc (const v_reg< double, n > &a)
template<typename _Tp , int n>
void | cv::v_zip (const v_reg< _Tp, n > &a0, const v_reg< _Tp, n > &a1, v_reg< _Tp, n > &b0, v_reg< _Tp, n > &b1)
| Interleave two vectors. More...
Init with zero
Create new vector with zero elements
v_uint8x16 | cv::v_setzero_u8 ()
v_int8x16 | cv::v_setzero_s8 ()
v_uint16x8 | cv::v_setzero_u16 ()
v_int16x8 | cv::v_setzero_s16 ()
v_uint32x4 | cv::v_setzero_u32 ()
v_int32x4 | cv::v_setzero_s32 ()
v_float32x4 | cv::v_setzero_f32 ()
v_float64x2 | cv::v_setzero_f64 ()
v_uint64x2 | cv::v_setzero_u64 ()
v_int64x2 | cv::v_setzero_s64 ()
Init with value
Create new vector with elements set to a specific value
v_uint8x16 | cv::v_setall_u8 (uchar val)
v_int8x16 | cv::v_setall_s8 (schar val)
v_uint16x8 | cv::v_setall_u16 (ushort val)
v_int16x8 | cv::v_setall_s16 (short val)
v_uint32x4 | cv::v_setall_u32 (unsigned val)
v_int32x4 | cv::v_setall_s32 (int val)
v_float32x4 | cv::v_setall_f32 (float val)
v_float64x2 | cv::v_setall_f64 (double val)
v_uint64x2 | cv::v_setall_u64 (uint64 val)
v_int64x2 | cv::v_setall_s64 (int64 val)
Reinterpret
Convert vector to different type without modifying underlying data.
template<typename _Tp0 , int n0>
v_uint8x16 | cv::v_reinterpret_as_u8 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_int8x16 | cv::v_reinterpret_as_s8 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_uint16x8 | cv::v_reinterpret_as_u16 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_int16x8 | cv::v_reinterpret_as_s16 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_uint32x4 | cv::v_reinterpret_as_u32 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_int32x4 | cv::v_reinterpret_as_s32 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_float32x4 | cv::v_reinterpret_as_f32 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_float64x2 | cv::v_reinterpret_as_f64 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_uint64x2 | cv::v_reinterpret_as_u64 (const v_reg< _Tp0, n0 > &a)
template<typename _Tp0 , int n0>
v_int64x2 | cv::v_reinterpret_as_s64 (const v_reg< _Tp0, n0 > &a)
Left shift
Shift left
template<int n>
v_uint16x8 | cv::v_shl (const v_uint16x8 &a)
template<int n>
v_int16x8 | cv::v_shl (const v_int16x8 &a)
template<int n>
v_uint32x4 | cv::v_shl (const v_uint32x4 &a)
template<int n>
v_int32x4 | cv::v_shl (const v_int32x4 &a)
template<int n>
v_uint64x2 | cv::v_shl (const v_uint64x2 &a)
template<int n>
v_int64x2 | cv::v_shl (const v_int64x2 &a)
Right shift
Shift right
template<int n>
v_uint16x8 | cv::v_shr (const v_uint16x8 &a)
template<int n>
v_int16x8 | cv::v_shr (const v_int16x8 &a)
template<int n>
v_uint32x4 | cv::v_shr (const v_uint32x4 &a)
template<int n>
v_int32x4 | cv::v_shr (const v_int32x4 &a)
template<int n>
v_uint64x2 | cv::v_shr (const v_uint64x2 &a)
template<int n>
v_int64x2 | cv::v_shr (const v_int64x2 &a)
Rounding shift
Rounding shift right
template<int n>
v_uint16x8 | cv::v_rshr (const v_uint16x8 &a)
template<int n>
v_int16x8 | cv::v_rshr (const v_int16x8 &a)
template<int n>
v_uint32x4 | cv::v_rshr (const v_uint32x4 &a)
template<int n>
v_int32x4 | cv::v_rshr (const v_int32x4 &a)
template<int n>
v_uint64x2 | cv::v_rshr (const v_uint64x2 &a)
template<int n>
v_int64x2 | cv::v_rshr (const v_int64x2 &a)
Pack
Pack values from two vectors to one Return vector type have twice more elements than input vector types. Variant with u suffix also converts to corresponding unsigned type. pack: for 16-, 32- and 64-bit integer input types pack_u: for 16- and 32-bit signed integer input types Note All variants except 64-bit use saturation.
v_uint8x16 | cv::v_pack (const v_uint16x8 &a, const v_uint16x8 &b)
v_int8x16 | cv::v_pack (const v_int16x8 &a, const v_int16x8 &b)
v_uint16x8 | cv::v_pack (const v_uint32x4 &a, const v_uint32x4 &b)
v_int16x8 | cv::v_pack (const v_int32x4 &a, const v_int32x4 &b)
v_uint32x4 | cv::v_pack (const v_uint64x2 &a, const v_uint64x2 &b)
v_int32x4 | cv::v_pack (const v_int64x2 &a, const v_int64x2 &b)
v_uint8x16 | cv::v_pack_u (const v_int16x8 &a, const v_int16x8 &b)
v_uint16x8 | cv::v_pack_u (const v_int32x4 &a, const v_int32x4 &b)
Pack with rounding shift
Pack values from two vectors to one with rounding shift Values from the input vectors will be shifted right by n bits with rounding, converted to narrower type and returned in the result vector. Variant with u suffix converts to unsigned type. pack: for 16-, 32- and 64-bit integer input types pack_u: for 16- and 32-bit signed integer input types Note All variants except 64-bit use saturation.
template<int n>
v_uint8x16 | cv::v_rshr_pack (const v_uint16x8 &a, const v_uint16x8 &b)
template<int n>
v_int8x16 | cv::v_rshr_pack (const v_int16x8 &a, const v_int16x8 &b)
template<int n>
v_uint16x8 | cv::v_rshr_pack (const v_uint32x4 &a, const v_uint32x4 &b)
template<int n>
v_int16x8 | cv::v_rshr_pack (const v_int32x4 &a, const v_int32x4 &b)
template<int n>
v_uint32x4 | cv::v_rshr_pack (const v_uint64x2 &a, const v_uint64x2 &b)
template<int n>
v_int32x4 | cv::v_rshr_pack (const v_int64x2 &a, const v_int64x2 &b)
template<int n>
v_uint8x16 | cv::v_rshr_pack_u (const v_int16x8 &a, const v_int16x8 &b)
template<int n>
v_uint16x8 | cv::v_rshr_pack_u (const v_int32x4 &a, const v_int32x4 &b)
Pack and store
Store values from the input vector into memory with pack Values will be stored into memory with conversion to narrower type. Variant with u suffix converts to corresponding unsigned type. pack: for 16-, 32- and 64-bit integer input types pack_u: for 16- and 32-bit signed integer input types Note All variants except 64-bit use saturation.
void | cv::v_pack_store (uchar *ptr, const v_uint16x8 &a)
void | cv::v_pack_store (schar *ptr, const v_int16x8 &a)
void | cv::v_pack_store (ushort *ptr, const v_uint32x4 &a)
void | cv::v_pack_store (short *ptr, const v_int32x4 &a)
void | cv::v_pack_store (unsigned *ptr, const v_uint64x2 &a)
void | cv::v_pack_store (int *ptr, const v_int64x2 &a)
void | cv::v_pack_u_store (uchar *ptr, const v_int16x8 &a)
void | cv::v_pack_u_store (ushort *ptr, const v_int32x4 &a)
Pack and store with rounding shift
Store values from the input vector into memory with pack Values will be shifted n bits right with rounding, converted to narrower type and stored into memory. Variant with u suffix converts to unsigned type. pack: for 16-, 32- and 64-bit integer input types pack_u: for 16- and 32-bit signed integer input types Note All variants except 64-bit use saturation.
template<int n>
void | cv::v_rshr_pack_store (uchar *ptr, const v_uint16x8 &a)
template<int n>
void | cv::v_rshr_pack_store (schar *ptr, const v_int16x8 &a)
template<int n>
void | cv::v_rshr_pack_store (ushort *ptr, const v_uint32x4 &a)
template<int n>
void | cv::v_rshr_pack_store (short *ptr, const v_int32x4 &a)
template<int n>
void | cv::v_rshr_pack_store (unsigned *ptr, const v_uint64x2 &a)
template<int n>
void | cv::v_rshr_pack_store (int *ptr, const v_int64x2 &a)
template<int n>
void | cv::v_rshr_pack_u_store (uchar *ptr, const v_int16x8 &a)
template<int n>
void | cv::v_rshr_pack_u_store (ushort *ptr, const v_int32x4 &a)
Pack boolean values
Pack boolean values from multiple vectors to one unsigned 8-bit integer vector Note Must provide valid boolean values to guarantee same result for all architectures.
v_uint8x16 | cv::v_pack_b (const v_uint16x8 &a, const v_uint16x8 &b)
| ! For 16-bit boolean values More...
v_uint8x16 | cv::v_pack_b (const v_uint32x4 &a, const v_uint32x4 &b, const v_uint32x4 &c, const v_uint32x4 &d)
v_uint8x16 | cv::v_pack_b (const v_uint64x2 &a, const v_uint64x2 &b, const v_uint64x2 &c, const v_uint64x2 &d, const v_uint64x2 &e, const v_uint64x2 &f, const v_uint64x2 &g, const v_uint64x2 &h)

## Variables
static const unsigned char | cv::popCountTable []