40#if ! defined( _TMS320C6X )
42#if _MSC_VER && !defined(__INTEL_COMPILER)
43#define _MM_FUNCTIONALITY
48#elif defined(__arm64__)
62#if ! defined( _TMS320C6X )
65static const double cDouble2IntBias = ldexpf(1,52)*1.5;
66static const double cOneHalfOffset = 0.5;
70static const double kExponentMagicDelta = 1.5e-8;
71static const double kBigMantissaMagicFloat = 6755399441055744.0;
72static const int64_t kBigMantissaMagicMask = 0x1fffffffffffffLL;
73static const int64_t kBigMantissaMagicInt = 0x18000000000000LL;
88#if defined( _TMS320C6X )
90 const int32_t r = _dpint(iVal);
93 iVal += cDouble2IntBias;
94 return (
reinterpret_cast<int32_t*
>(&iVal))[cMantisaWord];
108#if defined( _TMS320C6X )
110 const int32_t r = _spint(iVal);
139#if defined( _TMS320C6X )
141 const int32_t r = _dpint(iVal - 0.5);
158#if defined( _TMS320C6X )
160 const int32_t r = _spint(iVal - 0.5f);
164 r = _mm_cvtt_ss2si( _mm_load_ss(&iVal) );
167 return static_cast<int32_t
>(iVal);
182#if defined( _TMS320C6X )
183 return (int64_t)(iVal > 0.0 ? iVal + 0.5 : iVal - 0.5);
185 iVal += kExponentMagicDelta;
186 iVal += kBigMantissaMagicFloat;
187 int64_t result = *
reinterpret_cast<int64_t*
>(&iVal);
188 result &= kBigMantissaMagicMask;
189 result -= kBigMantissaMagicInt;
Various utility definitions for AAX.
Signal processing constants.
Definition: AAX_EnvironmentUtilities.h:72
int64_t FastRound2Int64(double iVal)
Round to Int64.
Definition: AAX_Quantize.h:180
int32_t FastTrunc2Int32(double iVal)
Float to Int conversion with truncation.
Definition: AAX_Quantize.h:137
int32_t FastRndDbl2Int32(double iVal)
Definition: AAX_Quantize.h:120
int32_t FastRound2Int32(double iVal)
Round to Int32.
Definition: AAX_Quantize.h:86
const int cBigEndian
Definition: AAX_Constants.h:57