19 #ifndef __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SATURATEDROUNDPACK_H__ 20 #define __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SATURATEDROUNDPACK_H__ 25 #include <IPSDKUtil/InstructionSet/saturated_cast.h> 41 template <eInstructionSet::domain instructionSet,
42 typename TIn,
typename TOut,
typename Enable=
void>
47 template <eInstructionSet::domain instructionSet,
48 typename TIn,
typename TOut>
50 typename
boost::enable_if_c<!boost::is_integral<TIn>::value && boost::is_integral<TOut>::value>::type>
58 assign<instructionSet>(zero, 0);
59 assign<instructionSet>(half, .5);
60 assign<instructionSet>(mHalf, -.5);
64 isLess<instructionSet>(in, zero, ltz);
65 ifElse<instructionSet>(ltz, mHalf, half, addRes);
66 add<instructionSet>(in, addRes, addRes);
77 assign<instructionSet>(zero, 0);
78 assign<instructionSet>(half, .5);
79 assign<instructionSet>(mHalf, -.5);
83 isLess<instructionSet>(in, zero, ltz);
84 ifElse<instructionSet>(ltz, mHalf, half, addRes);
85 add<instructionSet>(in, addRes, addRes);
90 template <eInstructionSet::domain instructionSet,
91 typename TIn,
typename TOut>
93 typename
boost::enable_if_c<!boost::is_integral<TIn>::value && !boost::is_integral<TOut>::value>::type>
120 #endif // __IPSDKUTIL_INSTRUCTIONSET_ARITHMETIC_DETAIL_SATURATEDROUNDPACK_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
structure containing set of masks for vectorized operations
Definition: BaseMaskPackDecl.h:29
Definition: DataItemNodeHdrMacrosDetails.h:48
function assigning a given value of type T to a given Pack<instructionSet, T>
IPSDK_FORCEINLINE ipsdk::simd::IS2Pack< instructionSet, TOut >::Type saturated_cast(const PackIn &in)
casts from PackIn type to PackOut type
Definition: saturated_cast.h:36
Predefined types associated to instruction set management.
Definition: PackTypes.h:56
Definition of import/export macro for library.
add function; returns the result of an arithmetic add operation on all the elements of 2 input pack o...
Definition: SaturatedRoundPack.h:43
structure containing intrinsic registers used to store vectorized data
Definition: BasePackDecl.h:29