IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
SinPack.h
Go to the documentation of this file.
1 // SinPack.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SINPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SINPACK_H__
17 
21 #include <IPSDKUtil/InstructionSet/Arithmetic/detail/SinReg.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 SinPack
41 {
42 };
43 
45 
46 // implementation for ipReal32 type
47 template <eInstructionSet::domain instructionSet, eInstructionSet::domain instructionSetFma>
48 struct SinPack<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, SinReg<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_SINPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: SinPack.h:40
Predefined types associated to instruction set management.
Definition of import/export macro for library.
template structure which is specialized to implement the computation of sine on a scalar or a registe...
Definition: SinReg.h:40
Definition: UnaryPackOp.h:31
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Definition: IS2Pack.h:34