IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
fmadd.h
Go to the documentation of this file.
1 // fmadd.h:
3 // -----------------
4 //
22 
23 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_FMADD_H__
24 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_FMADD_H__
25 
27 
31 
32 namespace ipsdk {
33 namespace simd {
34 
37 
38 template <eInstructionSet::domain instructionSet,
39  class PackT>
40 IPSDK_FORCEINLINE
41 PackT
42 fmadd(const PackT& in1, const PackT& in2, const PackT& in3)
43 {
44  typedef typename PackT::DataType T;
45  return detail::FmaddPack<instructionSet, T>::act(in1, in2, in3);
46 }
47 
48 template <eInstructionSet::domain instructionSet,
49  class PackT>
50 IPSDK_FORCEINLINE
51 void
52 fmadd(const PackT& in1, const PackT& in2, const PackT& in3, PackT& out)
53 {
54  typedef typename PackT::DataType T;
55  detail::FmaddPack<instructionSet, T>::act(in1, in2, in3, out);
56 }
57 
60 
61 } // end of namespace simd
62 } // end of namespace ipsdk
63 
64 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_FMADD_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 ...
Vector DataType
data type used for estimation
Definition: EstimationTypes.h:58
Definition of import/export macro for library.
FmaddPack<eInstructionSet::domain instructionSet, typename TIn, typename Enable=void> structure...