IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LogPack.h
Go to the documentation of this file.
1 // LogPack.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_LOGPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_LOGPACK_H__
17 
20 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/LogReg.h>
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
38 template <eInstructionSet::domain instructionSet, eInstructionSet::domain instructionSetFma, typename TIn,
39  typename Enable=void>
40 struct LogPack
41 {
42 };
43 
45 
46 // implementation for ipReal32 type
47 template <eInstructionSet::domain instructionSet, eInstructionSet::domain instructionSetFma>
48 struct LogPack<instructionSet, instructionSetFma, ipReal32>
49 {
50  static
51  IPSDK_FORCEINLINE
53  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in)
54  {
55  return UnaryPackOp<instructionSet, ipReal32,
57  }
58 
59  static
60  IPSDK_FORCEINLINE
61  void
62  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in,
64  {
65  UnaryPackOp<instructionSet, ipReal32, LogReg<instructionSet, instructionSetFma, ipReal32> >::act(
66  in, out);
67  }
68 };
69 
71 
74 
75 } // end of namespace detail
76 } // end of namespace simd
77 } // end of namespace ipsdk
78 
79 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_LOGPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: LogPack.h:40
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
Definition of import/export macro for library.
Definition: UnaryPackOp.h:31
template structure which is specialized to implement the computation of natural logarithm on a scalar...
Definition: LogReg.h:40
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: IS2Pack.h:34