26 #ifndef JUCE_SNAP_TO_ZERO
28 #define JUCE_SNAP_TO_ZERO(n) if (! (n < -1.0e-8f || n > 1.0e-8f)) n = 0;
30 #define JUCE_SNAP_TO_ZERO(n) ignoreUnused (n)
33 class ScopedNoDenormals;
47 static void JUCE_CALLTYPE clear (
float* dest,
int numValues) noexcept;
50 static void JUCE_CALLTYPE clear (
double* dest,
int numValues) noexcept;
53 static void JUCE_CALLTYPE fill (
float* dest,
float valueToFill,
int numValues) noexcept;
56 static void JUCE_CALLTYPE fill (
double* dest,
double valueToFill,
int numValues) noexcept;
59 static void JUCE_CALLTYPE copy (
float* dest,
const float* src,
int numValues) noexcept;
62 static void JUCE_CALLTYPE copy (
double* dest,
const double* src,
int numValues) noexcept;
65 static void JUCE_CALLTYPE copyWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
68 static void JUCE_CALLTYPE copyWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
71 static void JUCE_CALLTYPE add (
float* dest,
float amountToAdd,
int numValues) noexcept;
74 static void JUCE_CALLTYPE add (
double* dest,
double amountToAdd,
int numValues) noexcept;
77 static void JUCE_CALLTYPE add (
float* dest,
const float* src,
float amount,
int numValues) noexcept;
80 static void JUCE_CALLTYPE add (
double* dest,
const double* src,
double amount,
int numValues) noexcept;
83 static void JUCE_CALLTYPE add (
float* dest,
const float* src,
int numValues) noexcept;
86 static void JUCE_CALLTYPE add (
double* dest,
const double* src,
int numValues) noexcept;
89 static void JUCE_CALLTYPE add (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
92 static void JUCE_CALLTYPE add (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
95 static void JUCE_CALLTYPE subtract (
float* dest,
const float* src,
int numValues) noexcept;
98 static void JUCE_CALLTYPE subtract (
double* dest,
const double* src,
int numValues) noexcept;
101 static void JUCE_CALLTYPE subtract (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
104 static void JUCE_CALLTYPE subtract (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
107 static void JUCE_CALLTYPE addWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
110 static void JUCE_CALLTYPE addWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
113 static void JUCE_CALLTYPE addWithMultiply (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
116 static void JUCE_CALLTYPE addWithMultiply (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
119 static void JUCE_CALLTYPE subtractWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
122 static void JUCE_CALLTYPE subtractWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
125 static void JUCE_CALLTYPE subtractWithMultiply (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
128 static void JUCE_CALLTYPE subtractWithMultiply (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
131 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src,
int numValues) noexcept;
134 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src,
int numValues) noexcept;
137 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src1,
const float* src2,
int numValues) noexcept;
140 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src1,
const double* src2,
int numValues) noexcept;
143 static void JUCE_CALLTYPE multiply (
float* dest,
float multiplier,
int numValues) noexcept;
146 static void JUCE_CALLTYPE multiply (
double* dest,
double multiplier,
int numValues) noexcept;
149 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src,
float multiplier,
int num) noexcept;
152 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src,
double multiplier,
int num) noexcept;
155 static void JUCE_CALLTYPE negate (
float* dest,
const float* src,
int numValues) noexcept;
158 static void JUCE_CALLTYPE negate (
double* dest,
const double* src,
int numValues) noexcept;
161 static void JUCE_CALLTYPE abs (
float* dest,
const float* src,
int numValues) noexcept;
164 static void JUCE_CALLTYPE abs (
double* dest,
const double* src,
int numValues) noexcept;
167 static void JUCE_CALLTYPE convertFixedToFloat (
float* dest,
const int* src,
float multiplier,
int numValues) noexcept;
170 static void JUCE_CALLTYPE min (
float* dest,
const float* src,
float comp,
int num) noexcept;
173 static void JUCE_CALLTYPE min (
double* dest,
const double* src,
double comp,
int num) noexcept;
176 static void JUCE_CALLTYPE min (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
179 static void JUCE_CALLTYPE min (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
182 static void JUCE_CALLTYPE max (
float* dest,
const float* src,
float comp,
int num) noexcept;
185 static void JUCE_CALLTYPE max (
double* dest,
const double* src,
double comp,
int num) noexcept;
188 static void JUCE_CALLTYPE max (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
191 static void JUCE_CALLTYPE max (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
194 static void JUCE_CALLTYPE clip (
float* dest,
const float* src,
float low,
float high,
int num) noexcept;
197 static void JUCE_CALLTYPE clip (
double* dest,
const double* src,
double low,
double high,
int num) noexcept;
200 static Range<float> JUCE_CALLTYPE findMinAndMax (
const float* src,
int numValues) noexcept;
203 static Range<double> JUCE_CALLTYPE findMinAndMax (
const double* src,
int numValues) noexcept;
206 static float JUCE_CALLTYPE findMinimum (
const float* src,
int numValues) noexcept;
209 static double JUCE_CALLTYPE findMinimum (
const double* src,
int numValues) noexcept;
212 static float JUCE_CALLTYPE findMaximum (
const float* src,
int numValues) noexcept;
215 static double JUCE_CALLTYPE findMaximum (
const double* src,
int numValues) noexcept;
218 static void JUCE_CALLTYPE enableFlushToZeroMode (
bool shouldEnable) noexcept;
226 static void JUCE_CALLTYPE disableDenormalisedNumberSupport (
bool shouldDisable =
true) noexcept;
229 static bool JUCE_CALLTYPE areDenormalsDisabled() noexcept;
234 static intptr_t JUCE_CALLTYPE getFpStatusRegister() noexcept;
235 static void JUCE_CALLTYPE setFpStatusRegister (intptr_t) noexcept;
252 #if JUCE_USE_SSE_INTRINSICS || (JUCE_USE_ARM_NEON || defined (__arm64__) || defined (__aarch64__))