56#define JUCE_DSP_H_INCLUDED
61#if defined(_M_X64) || defined(__amd64__) || defined(__SSE2__) || (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__riscv) || defined(__EMSCRIPTEN__)
63 #if defined(_M_X64) || defined(__amd64__)
70 #define JUCE_USE_SIMD 1
74 #include <immintrin.h>
77#elif defined (__ARM_NEON__) || defined (__ARM_NEON) || defined (__arm64__) || defined (__aarch64__)
80 #define JUCE_USE_SIMD 1
89 #define JUCE_USE_SIMD 0
94#ifndef JUCE_VECTOR_CALLTYPE
97 #if _MSC_VER && JUCE_USE_SIMD && ! (defined(_M_X64) || defined(__amd64__))
98 #define JUCE_VECTOR_CALLTYPE __vectorcall
100 #define JUCE_VECTOR_CALLTYPE
117#ifndef JUCE_ASSERTION_FIRFILTER
118 #define JUCE_ASSERTION_FIRFILTER 1
132#ifndef JUCE_DSP_USE_INTEL_MKL
133 #define JUCE_DSP_USE_INTEL_MKL 0
148 #ifndef JUCE_DSP_USE_SHARED_FFTW
149 #define JUCE_DSP_USE_SHARED_FFTW 0
163#ifndef JUCE_DSP_USE_STATIC_FFTW
164 #define JUCE_DSP_USE_STATIC_FFTW 0
179#ifndef JUCE_DSP_ENABLE_SNAP_TO_ZERO
180 #define JUCE_DSP_ENABLE_SNAP_TO_ZERO 1
193 template <
typename Type>
202 #if JUCE_DSP_ENABLE_SNAP_TO_ZERO
212 inline void snapToZero (
long double&
x)
noexcept { ignoreUnused (
x); }
224 #if defined(__i386__) || defined(__amd64__) || defined(_M_X64) || defined(_X86_) || defined(_M_IX86) || defined(__riscv) || defined(__EMSCRIPTEN__)
230 #elif defined(__arm__) || defined(_M_ARM) || defined (__arm64__) || defined (__aarch64__)
233 #error "SIMD register support not implemented for this platform"
unsigned x[BMAX+1]
Definition inflate.c:1586
#define JUCE_SNAP_TO_ZERO(n)
Definition juce_FloatVectorOperations.h:30
Definition juce_SIMDRegister_Impl.h:165
void snapToZero(SIMDRegister< Type > &) noexcept
Definition juce_SIMDRegister_Impl.h:167
std::complex< Type > Complex
Definition juce_dsp.h:194
Definition carla_juce.cpp:31
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333