IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BitwiseCastPack.h
Go to the documentation of this file.
1 // BitwiseCastPack.h:
3 // ------------
4 //
14 
15 #ifndef __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BITWISECASTPACK_H__
16 #define __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BITWISECASTPACK_H__
17 
22 
23 namespace ipsdk {
24 namespace simd {
25 namespace detail {
26 
29 
30 template <typename TIn, typename TOut>
33  TIn,
34  TOut,
35  typename boost::enable_if<
36  typename boost::mpl::equal_to<boost::mpl::int_<sizeof(TIn)>, boost::mpl::int_<sizeof(TOut)> >::type
37  >::type
38 >
39 {
40  static IPSDK_FORCEINLINE
43  {
45  out._val = *reinterpret_cast<const TOut*>(&in._val);
46  return out;
47  }
48 
49  static IPSDK_FORCEINLINE
50  void
53  {
54  out._val = *reinterpret_cast<const TOut*>(&in._val);
55  }
56 };
57 
60 
61 } // end of namespace detail
62 } // end of namespace simd
63 } // end of namespace ipsdk
64 
65 #endif // __IPSDKUTIL_INSTRUCTIONSET_DETAIL_STD_BITWISECASTPACK_H__
Defines the IPSDK_FORCEINLINE.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Definition: BitwiseCastPack.h:35
BasePack class; defines a set of scalars (for instruction set "standard") or registers (for all other...
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Definition of import/export macro for library.
compiler optimisations only
Definition: InstructionSetTypes.h:34
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29