Audacity 3.2.0
Namespaces | Functions | Variables
SimdComplexConversions_sse2.h File Reference
#include <emmintrin.h>
#include <xmmintrin.h>
#include <array>
#include <complex>
#include <type_traits>
#include <memory>
#include <utility>
Include dependency graph for SimdComplexConversions_sse2.h:

Go to the source code of this file.

Namespaces

namespace  simd_complex_conversions
 
namespace  simd_complex_conversions::details
 

Functions

template<class To , class From >
std::enable_if_t< sizeof(To)==sizeof(From) &&std::is_trivially_copyable_v< From > &&std::is_trivially_copyable_v< To >, To > simd_complex_conversions::details::bit_cast (const From &src) noexcept
 
__m128 simd_complex_conversions::atan_ps (__m128 x)
 
__m128 simd_complex_conversions::atan2_ps (__m128 y, __m128 x)
 
std::pair< __m128, __m128 > simd_complex_conversions::sincos_ps (__m128 x)
 
float simd_complex_conversions::atan2_ss (float y, float x)
 
std::pair< float, float > simd_complex_conversions::sincos_ss (float angle)
 
__m128 simd_complex_conversions::norm (__m128 x, __m128 y)
 
float simd_complex_conversions::sqrt_ss (float x)
 
template<typename fnc >
void simd_complex_conversions::perform_parallel_simd_aligned (const std::complex< float > *input, float *output, int n, const fnc &f)
 
void simd_complex_conversions::rotate_parallel_simd_aligned (const float *oldPhase, const float *newPhase, std::complex< float > *output, int n)
 

Variables

constexpr float simd_complex_conversions::details::PIF = 3.141592653589793238f
 
constexpr float simd_complex_conversions::details::PIO2F = 1.5707963267948966192f
 
constexpr float simd_complex_conversions::details::cephes_PIF = 3.141592653589793238f
 
constexpr float simd_complex_conversions::details::cephes_PIO2F = 1.5707963267948966192f
 
constexpr float simd_complex_conversions::details::cephes_PIO4F = 0.7853981633974483096f
 
constexpr float simd_complex_conversions::details::cephes_FOPI = 1.27323954473516f
 
constexpr float simd_complex_conversions::details::minus_cephes_DP1 = -0.78515625f
 
constexpr float simd_complex_conversions::details::minus_cephes_DP2 = -2.4187564849853515625e-4f
 
constexpr float simd_complex_conversions::details::minus_cephes_DP3 = -3.77489497744594108e-8f
 
constexpr float simd_complex_conversions::details::sincof_p0 = -1.9515295891e-4f
 
constexpr float simd_complex_conversions::details::sincof_p1 = 8.3321608736e-3f
 
constexpr float simd_complex_conversions::details::sincof_p2 = -1.6666654611e-1f
 
constexpr float simd_complex_conversions::details::coscof_p0 = 2.443315711809948e-005f
 
constexpr float simd_complex_conversions::details::coscof_p1 = -1.388731625493765e-003f
 
constexpr float simd_complex_conversions::details::coscof_p2 = 4.166664568298827e-002f
 
constexpr float simd_complex_conversions::details::atancof_p0 = 8.05374449538e-2f
 
constexpr float simd_complex_conversions::details::atancof_p1 = 1.38776856032e-1f
 
constexpr float simd_complex_conversions::details::atancof_p2 = 1.99777106478e-1f
 
constexpr float simd_complex_conversions::details::atancof_p3 = 3.33329491539e-1f
 
static const float simd_complex_conversions::details::sign_mask = bit_cast<float>(0x80000000)
 
static const float simd_complex_conversions::details::inv_sign_mask = bit_cast<float>(~0x80000000)