IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
isOutOfRange.h
Go to the documentation of this file.
1 // isOutOfRange.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_ISOUTOFRANGE_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_ISOUTOFRANGE_H__
17 
19 
25 
26 namespace ipsdk {
27 namespace simd {
28 
31 
34 template <eInstructionSet::domain instructionSet, class PackT>
35 IPSDK_FORCEINLINE
36 typename Pack2MaskPackType<PackT>::Type&
37 isOutOfRange(const PackT& in, const PackT& packMin, const PackT& packMax)
38 {
39  typedef typename PackT::DataType T;
40  return detail::TernaryPackOpRetMask<instructionSet, T,
41  detail::IsOutOfRangeReg<instructionSet, T> >::act(in, packMin, packMax);
42 }
43 
44 template <eInstructionSet::domain instructionSet, class PackT>
45 IPSDK_FORCEINLINE
46 void
47 isOutOfRange(const PackT& in, const PackT& packMin, const PackT& packMax,
48  typename Pack2MaskPackType<PackT>::Type& out)
49 {
50  typedef typename PackT::DataType T;
51  detail::TernaryPackOpRetMask<instructionSet, T,
52  detail::IsOutOfRangeReg<instructionSet, T> >::act(in, packMin, packMax,
53  out);
54 }
55 
58 
59 } // end of namespace simd
60 } // end of namespace ipsdk
61 
62 #endif // __IPSDKUTIL_INSTRUCTIONSET_COMPARISON_ISOUTOFRANGE_H__
IPSDK_FORCEINLINE Pack2MaskPackType< PackT >::Type & isOutOfRange(const PackT &in, const PackT &packMin, const PackT &packMax)
isOutOfRange function; vectorized comparison ("is lower than min or " greater than" test) of data con...
Definition: isOutOfRange.h:37
Definition: IsOutOfRangeReg.h:30
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
defines template structures PromotedType<T1, T2> and PromotedType3<T1, T2, T3>; their attribute Type ...
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
Definition of import/export macro for library.
Definition: TernaryPackOpRetMask.h:31