30 #ifndef JUCE_SNAP_TO_ZERO
32 #define JUCE_SNAP_TO_ZERO(n) if (! (n < -1.0e-8f || n > 1.0e-8f)) n = 0;
34 #define JUCE_SNAP_TO_ZERO(n) ignoreUnused (n)
37 class ScopedNoDenormals;
51 static void JUCE_CALLTYPE clear (
float* dest,
int numValues) noexcept;
54 static void JUCE_CALLTYPE clear (
double* dest,
int numValues) noexcept;
57 static void JUCE_CALLTYPE fill (
float* dest,
float valueToFill,
int numValues) noexcept;
60 static void JUCE_CALLTYPE fill (
double* dest,
double valueToFill,
int numValues) noexcept;
63 static void JUCE_CALLTYPE copy (
float* dest,
const float* src,
int numValues) noexcept;
66 static void JUCE_CALLTYPE copy (
double* dest,
const double* src,
int numValues) noexcept;
69 static void JUCE_CALLTYPE copyWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
72 static void JUCE_CALLTYPE copyWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
75 static void JUCE_CALLTYPE add (
float* dest,
float amountToAdd,
int numValues) noexcept;
78 static void JUCE_CALLTYPE add (
double* dest,
double amountToAdd,
int numValues) noexcept;
81 static void JUCE_CALLTYPE add (
float* dest,
const float* src,
float amount,
int numValues) noexcept;
84 static void JUCE_CALLTYPE add (
double* dest,
const double* src,
double amount,
int numValues) noexcept;
87 static void JUCE_CALLTYPE add (
float* dest,
const float* src,
int numValues) noexcept;
90 static void JUCE_CALLTYPE add (
double* dest,
const double* src,
int numValues) noexcept;
93 static void JUCE_CALLTYPE add (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
96 static void JUCE_CALLTYPE add (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
99 static void JUCE_CALLTYPE subtract (
float* dest,
const float* src,
int numValues) noexcept;
102 static void JUCE_CALLTYPE subtract (
double* dest,
const double* src,
int numValues) noexcept;
105 static void JUCE_CALLTYPE subtract (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
108 static void JUCE_CALLTYPE subtract (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
111 static void JUCE_CALLTYPE addWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
114 static void JUCE_CALLTYPE addWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
117 static void JUCE_CALLTYPE addWithMultiply (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
120 static void JUCE_CALLTYPE addWithMultiply (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
123 static void JUCE_CALLTYPE subtractWithMultiply (
float* dest,
const float* src,
float multiplier,
int numValues) noexcept;
126 static void JUCE_CALLTYPE subtractWithMultiply (
double* dest,
const double* src,
double multiplier,
int numValues) noexcept;
129 static void JUCE_CALLTYPE subtractWithMultiply (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
132 static void JUCE_CALLTYPE subtractWithMultiply (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
135 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src,
int numValues) noexcept;
138 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src,
int numValues) noexcept;
141 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src1,
const float* src2,
int numValues) noexcept;
144 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src1,
const double* src2,
int numValues) noexcept;
147 static void JUCE_CALLTYPE multiply (
float* dest,
float multiplier,
int numValues) noexcept;
150 static void JUCE_CALLTYPE multiply (
double* dest,
double multiplier,
int numValues) noexcept;
153 static void JUCE_CALLTYPE multiply (
float* dest,
const float* src,
float multiplier,
int num) noexcept;
156 static void JUCE_CALLTYPE multiply (
double* dest,
const double* src,
double multiplier,
int num) noexcept;
159 static void JUCE_CALLTYPE negate (
float* dest,
const float* src,
int numValues) noexcept;
162 static void JUCE_CALLTYPE negate (
double* dest,
const double* src,
int numValues) noexcept;
165 static void JUCE_CALLTYPE abs (
float* dest,
const float* src,
int numValues) noexcept;
168 static void JUCE_CALLTYPE abs (
double* dest,
const double* src,
int numValues) noexcept;
171 static void JUCE_CALLTYPE convertFixedToFloat (
float* dest,
const int* src,
float multiplier,
int numValues) noexcept;
174 static void JUCE_CALLTYPE min (
float* dest,
const float* src,
float comp,
int num) noexcept;
177 static void JUCE_CALLTYPE min (
double* dest,
const double* src,
double comp,
int num) noexcept;
180 static void JUCE_CALLTYPE min (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
183 static void JUCE_CALLTYPE min (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
186 static void JUCE_CALLTYPE max (
float* dest,
const float* src,
float comp,
int num) noexcept;
189 static void JUCE_CALLTYPE max (
double* dest,
const double* src,
double comp,
int num) noexcept;
192 static void JUCE_CALLTYPE max (
float* dest,
const float* src1,
const float* src2,
int num) noexcept;
195 static void JUCE_CALLTYPE max (
double* dest,
const double* src1,
const double* src2,
int num) noexcept;
198 static void JUCE_CALLTYPE clip (
float* dest,
const float* src,
float low,
float high,
int num) noexcept;
201 static void JUCE_CALLTYPE clip (
double* dest,
const double* src,
double low,
double high,
int num) noexcept;
204 static Range<float> JUCE_CALLTYPE findMinAndMax (
const float* src,
int numValues) noexcept;
207 static Range<double> JUCE_CALLTYPE findMinAndMax (
const double* src,
int numValues) noexcept;
210 static float JUCE_CALLTYPE findMinimum (
const float* src,
int numValues) noexcept;
213 static double JUCE_CALLTYPE findMinimum (
const double* src,
int numValues) noexcept;
216 static float JUCE_CALLTYPE findMaximum (
const float* src,
int numValues) noexcept;
219 static double JUCE_CALLTYPE findMaximum (
const double* src,
int numValues) noexcept;
222 static void JUCE_CALLTYPE enableFlushToZeroMode (
bool shouldEnable) noexcept;
230 static void JUCE_CALLTYPE disableDenormalisedNumberSupport (
bool shouldDisable =
true) noexcept;
233 static bool JUCE_CALLTYPE areDenormalsDisabled() noexcept;
238 static intptr_t JUCE_CALLTYPE getFpStatusRegister() noexcept;
239 static void JUCE_CALLTYPE setFpStatusRegister (intptr_t) noexcept;
256 #if JUCE_USE_SSE_INTRINSICS || (JUCE_USE_ARM_NEON || defined (__arm64__) || defined (__aarch64__))