IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
bitwiseXOr.h
Go to the documentation of this file.
1 // bitwiseXOr.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_BITWISEXOR_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_BITWISEXOR_H__
17 
24 
25 namespace ipsdk {
26 namespace simd {
27 
28 template <eInstructionSet::domain instructionSet, class PackT>
29 IPSDK_FORCEINLINE
30 PackT
31 bitwiseXOr(const PackT& in1, const PackT& in2);
32 
33 template <eInstructionSet::domain instructionSet, class PackT>
34 IPSDK_FORCEINLINE
35 void
36 bitwiseXOr(const PackT& in1, const PackT& in2, PackT& out);
37 
38 /*
39 template <eInstructionSet::domain instructionSet, typename T>
40 IPSDK_FORCEINLINE
41 typename IS2Pack<instructionSet, T>::Type
42 operator^(const typename IS2Pack<instructionSet, T>::Type& in1,
43  const typename IS2Pack<instructionSet, T>::Type& in2);
44 */
45 
46 } // end of namespace simd
47 } // end of namespace ipsdk
48 
53 
54 namespace ipsdk {
55 namespace simd {
56 
59 
62 
63 template <eInstructionSet::domain instructionSet, class PackT>
64 IPSDK_FORCEINLINE
65 PackT
66 bitwiseXOr(const PackT& in1, const PackT& in2)
67 {
68  typedef typename PackT::DataType T;
69  return detail::BinaryPackOp<instructionSet, T,
71 }
72 
73 template <eInstructionSet::domain instructionSet, class PackT>
74 IPSDK_FORCEINLINE
75 void
76 bitwiseXOr(const PackT& in1, const PackT& in2, PackT& out)
77 {
78  typedef typename PackT::DataType T;
79  detail::BinaryPackOp<instructionSet, T,
80  detail::BitwiseXOrReg<instructionSet, T> >::act(in1, in2, out);
81 }
82 
83 /*
84 template <eInstructionSet::domain instructionSet, typename T>
85 IPSDK_FORCEINLINE
86 typename IS2Pack<instructionSet, T>::Type
87 operator^(const typename IS2Pack<instructionSet, T>::Type& in1,
88  const typename IS2Pack<instructionSet, T>::Type& in2)
89 {
90  typename IS2Pack<instructionSet, T>::Type out;
91  bitwiseXOr<instructionSet, T>(in1, in2, out);
92  return out;
93 }*/
94 
97 
98 } // end of namespace simd
99 } // end of namespace ipsdk
100 
101 #endif // __IPSDKUTIL_INSTRUCTIONSET_LOGICAL_BITWISEXOR_H__
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 ...
Predefined types associated to instruction set management.
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
Definition: BitwiseXOrReg.h:30
Definition of import/export macro for library.
IPSDK_FORCEINLINE PackT bitwiseXOr(const PackT &in1, const PackT &in2)
bitwiseXOr function; vectorized arithmetic addition of data contained in 2 Register structures ...
Definition: bitwiseXOr.h:66
Definition: BinaryPackOp.h:31