27#if ! defined( _TMS320C6X )
29#if _MSC_VER && !defined(__INTEL_COMPILER)
30#define _MM_FUNCTIONALITY
35#elif defined(__arm64__)
49#if ! defined( _TMS320C6X )
52static const double cDouble2IntBias = ldexpf(1,52)*1.5;
53static const double cOneHalfOffset = 0.5;
57static const double kExponentMagicDelta = 1.5e-8;
58static const double kBigMantissaMagicFloat = 6755399441055744.0;
59static const int64_t kBigMantissaMagicMask = 0x1fffffffffffffLL;
60static const int64_t kBigMantissaMagicInt = 0x18000000000000LL;
75#if defined( _TMS320C6X )
77 const int32_t r = _dpint(iVal);
80 iVal += cDouble2IntBias;
81 return (
reinterpret_cast<int32_t*
>(&iVal))[cMantisaWord];
95#if defined( _TMS320C6X )
97 const int32_t r = _spint(iVal);
126#if defined( _TMS320C6X )
128 const int32_t r = _dpint(iVal - 0.5);
145#if defined( _TMS320C6X )
147 const int32_t r = _spint(iVal - 0.5f);
151 r = _mm_cvtt_ss2si( _mm_load_ss(&iVal) );
154 return static_cast<int32_t
>(iVal);
169#if defined( _TMS320C6X )
170 return (int64_t)(iVal > 0.0 ? iVal + 0.5 : iVal - 0.5);
172 iVal += kExponentMagicDelta;
173 iVal += kBigMantissaMagicFloat;
174 int64_t result = *
reinterpret_cast<int64_t*
>(&iVal);
175 result &= kBigMantissaMagicMask;
176 result -= kBigMantissaMagicInt;
Various utility definitions for AAX.
Signal processing constants.
Definition: AAX_EnvironmentUtilities.h:59
int64_t FastRound2Int64(double iVal)
Round to Int64.
Definition: AAX_Quantize.h:167
int32_t FastTrunc2Int32(double iVal)
Float to Int conversion with truncation.
Definition: AAX_Quantize.h:124
int32_t FastRndDbl2Int32(double iVal)
Definition: AAX_Quantize.h:107
int32_t FastRound2Int32(double iVal)
Round to Int32.
Definition: AAX_Quantize.h:73
const int cBigEndian
Definition: AAX_Constants.h:44