IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Namespaces | Functions
CastReg.h File Reference
#include <IPSDKUtil/IPSDKUtilExports.h>
#include <IPSDKUtil/InstructionSet/detail/CastReg.h>
#include <IPSDKUtil/Tools/ForceInline.h>
#include <boost/mpl/and.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
#include <boost/type_traits/is_signed.hpp>

Go to the source code of this file.

Classes

struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, TOut, typename boost::enable_if_c< boost::is_same< TIn, TOut >::value||(boost::is_integral< TIn >::value &&boost::is_integral< TOut >::value &&sizeof(TIn)==sizeof(TOut)) >::type >
 specialization of CastReg for SSE2 instruction set; input and output have same type More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipUInt8, TOut, typename boost::enable_if< typename boost::mpl::equal_to< boost::mpl::int_< sizeof(TOut)>, boost::mpl::int_< 2 > >::type >::type >
 specialization of CastReg for SSE2 instruction set; input is of type uint8, output is of type int16 or uint16 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipInt8, TOut, typename boost::enable_if_c< sizeof(TOut)==2 >::type >
 specialization of CastReg for SSE2 instructionSet; input of type int8, output of type int16 or uint16 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipInt32, ipReal32 >
 specialization of CastReg for SSE2 instructionSet; input of type int32, output of type real32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipUInt32, ipReal32 >
 specialization of CastReg for SSE2 instructionSet; input of type uint32, output of type real32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal32, ipInt32 >
 specialization of CastReg for SSE2 instructionSet; input of type real32, output of type int32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal32, ipUInt32 >
 specialization of CastReg for SSE2 instructionSet; input of type real32, output of type uint32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipInt32, ipReal64 >
 specialization of CastReg for SSE instructionSet; input of type int32, output of type real64 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipUInt32, ipReal64 >
 specialization of CastReg for SSE instructionSet; input of type uint32, output of type real64 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal64, ipInt32 >
 specialization of CastReg for SSE2 instructionSet; input of type real64, output of type int32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal64, ipUInt32 >
 specialization of CastReg for SSE2 instructionSet; input of type real64, output of type uint32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipInt32, TOut, typename boost::enable_if_c< sizeof(TOut)==8 &&boost::is_integral< TOut >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type int32, output of type int64 or uint64 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipUInt32, TOut, typename boost::enable_if_c< sizeof(TOut)==8 &&boost::is_integral< TOut >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type uint32, output of type int64 or uint64 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipInt16, TOut, typename boost::enable_if_c< sizeof(TOut)==4 &&boost::is_integral< TOut >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type int16, output of type int32 or uint32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipUInt16, TOut, typename boost::enable_if_c< sizeof(TOut)==4 &&boost::is_integral< TOut >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type uint16, output of type int32 or uint32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, ipReal32, typename boost::enable_if_c< sizeof(TIn)==2 &&boost::is_integral< TIn >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type uint16 or int16, output of type real32 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal32, ipReal64 >
 specialization of CastReg for SSE instructionSet; input of type real32, output of type real64 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, ipUInt8, typename boost::enable_if_c< sizeof(TIn)==2 >::type >
 specialization of CastReg for SSE2 instructionSet; input of type uint16 or int16, output of type int8 or uint8; at least input or output is unsigned More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, ipInt8, typename boost::enable_if_c< sizeof(TIn)==2 >::type >
 specialization of CastReg for SSE2 instructionSet; input of type int16, output of type int8 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, ipInt16, typename boost::enable_if_c< sizeof(TIn)==4 &&boost::is_integral< TIn >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type int32 or uint32, output of type ipInt16 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, TIn, ipUInt16, typename boost::enable_if_c< sizeof(TIn)==4 &&boost::is_integral< TIn >::value >::type >
 specialization of CastReg for SSE instructionSet; input of type int32 or uint32, output of type ipUInt16 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal32, TOut, typename boost::enable_if_c< sizeof(TOut)==2 >::type >
 specialization of CastReg for SSE instructionSet; input of type real32, output of type uint16 or int16 More...
 
struct  ipsdk::simd::detail::CastReg< eInstructionSet::eIS_Sse2, ipReal64, ipReal32 >
 specialization of CastReg for SSE instructionSet; input of type real64, output of type real32 More...
 

Namespaces

 ipsdk
 Main namespace for IPSDK library.
 
 ipsdk::simd
 Namespace agregating IPSDK SIMD routines and classes.
 

Functions

IPSDK_FORCEINLINE __m128 ipsdk::simd::detail::_custom_mm_cvtepu32_ps (const __m128i v)
 
IPSDK_FORCEINLINE void ipsdk::simd::detail::_custom_mm_cvtepu32_ps (const __m128i v, __m128 &out)
 
IPSDK_FORCEINLINE __m128i ipsdk::simd::detail::_custom_mm_cvttps_epu32 (__m128 f)
 
IPSDK_FORCEINLINE void ipsdk::simd::detail::_custom_mm_cvttps_epu32 (__m128 f, __m128i &out)
 
IPSDK_FORCEINLINE __m128d ipsdk::simd::detail::_custom_mm_cvtepu32_pd (const __m128i v)
 
IPSDK_FORCEINLINE void ipsdk::simd::detail::_custom_mm_cvtepu32_pd (const __m128i v, __m128d &out)
 
IPSDK_FORCEINLINE __m128i ipsdk::simd::detail::_custom_mm_cvttpd_epu32 (__m128d f)
 
IPSDK_FORCEINLINE void ipsdk::simd::detail::_custom_mm_cvttpd_epu32 (__m128d f, __m128i &out)
 
IPSDK_FORCEINLINE __m128i ipsdk::simd::detail::_custom_mm_packus_epi32 (__m128i v0, __m128i v1)
 
IPSDK_FORCEINLINE void ipsdk::simd::detail::_custom_mm_packus_epi32 (__m128i v0, __m128i v1, __m128i &out)
 

Detailed Description

Author
H. Delestre
Date
2014/11/21