diff options
| author | Konstantin <const@const.me> | 2023-01-21 18:36:34 +0100 |
|---|---|---|
| committer | Konstantin <const@const.me> | 2023-01-21 18:36:34 +0100 |
| commit | 040281bccc424341c964788aa7ca17876a5ac6a4 (patch) | |
| tree | c9ced4938a3f174a5c519ed60a9d726e32933064 /Whisper | |
| parent | b4a6e7c59a3def6b7212396cdbf5f08b2119ffa8 (diff) | |
Minor, CPU performance
Diffstat (limited to 'Whisper')
| -rw-r--r-- | Whisper/Whisper/melSpectrogram.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Whisper/Whisper/melSpectrogram.cpp b/Whisper/Whisper/melSpectrogram.cpp index 468962f..a178d16 100644 --- a/Whisper/Whisper/melSpectrogram.cpp +++ b/Whisper/Whisper/melSpectrogram.cpp @@ -280,9 +280,10 @@ float* SpectrogramContext::fftRecursion( float* temp, const float* const rsi, co out[ 2 * ( k + N / 2 ) + 0 ] = evenFft[ 2 * k + 0 ] - re * re_odd + im * im_odd; out[ 2 * ( k + N / 2 ) + 1 ] = evenFft[ 2 * k + 1 ] - re * im_odd - im * re_odd; */ - - const __m128 re = _mm_set_ss( std::cosf( theta ) ); - const __m128 im = _mm_set_ss( std::sinf( theta ) ); + float sine, cosine; + DirectX::XMScalarSinCos( &sine, &cosine, theta ); + const __m128 re = _mm_set_ss( cosine ); + const __m128 im = _mm_set_ss( sine ); __m128 reIm = _mm_shuffle_ps( re, im, _MM_SHUFFLE( 0, 0, 0, 0 ) ); // [ re, re, im, im ] reIm = _mm_xor_ps( reIm, maskNegateHigh ); |
