IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ExpPack.h
Go to the documentation of this file.
1 // ExpPack.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_EXPPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_EXPPACK_H__
17 
21 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/ExpReg.h>
24 
25 namespace ipsdk {
26 namespace simd {
27 namespace detail {
28 
31 
38 template <eInstructionSet::domain instructionSet,
39  eInstructionSet::domain instructionSetFma,
40  typename TIn,
41  typename Enable=void>
42 struct ExpPack
43 {
44 };
45 
47 
48 // implementation for ipReal32 type
49 template <eInstructionSet::domain instructionSet, eInstructionSet::domain instructionSetFma>
50 struct ExpPack<instructionSet, instructionSetFma, ipReal32>
51 {
52  static
53  IPSDK_FORCEINLINE
55  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in)
56  {
57  return UnaryPackOp<instructionSet, ipReal32,
59  }
60 
61  static
62  IPSDK_FORCEINLINE
63  void
64  act(const typename IS2Pack<instructionSet, ipReal32>::Type& in,
66  {
67  UnaryPackOp<instructionSet, ipReal32, ExpReg<instructionSet, instructionSetFma, ipReal32> >::act(
68  in, out);
69  }
70 };
71 
73 
76 
77 } // end of namespace detail
78 } // end of namespace simd
79 } // end of namespace ipsdk
80 
81 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_EXPPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
template structure which is specialized to implement the computation of exponential function on a sca...
Definition: ExpReg.h:39
Predefined types associated to instruction set management.
Definition of import/export macro for library.
Definition: ExpPack.h:42
Definition: UnaryPackOp.h:31
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: IS2Pack.h:34