1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Global: Avoid floating-point equality checks where possible

This commit is contained in:
reuk 2023-03-23 12:02:38 +00:00
parent 081b1ff216
commit 28414a6af8
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
150 changed files with 762 additions and 672 deletions

View file

@ -73,7 +73,7 @@ private:
sign = (sincPosition < 0 ? -1 : 1);
}
if (sincPosition == 0.0f)
if (approximatelyEqual (sincPosition, 0.0f))
result += inputs[samplePosition];
else if (sincPosition < floatCrossings && sincPosition > -floatCrossings)
result += inputs[samplePosition] * windowedSinc (firstFrac, index);

View file

@ -237,7 +237,8 @@ public:
SmoothedValue (FloatType initialValue) noexcept
{
// Multiplicative smoothed values cannot ever reach 0!
jassert (! (std::is_same_v<SmoothingType, ValueSmoothingTypes::Multiplicative> && initialValue == 0));
jassert (! (std::is_same_v<SmoothingType, ValueSmoothingTypes::Multiplicative>
&& approximatelyEqual (initialValue, (FloatType) 0)));
// Visual Studio can't handle base class initialisation with CRTP
this->currentValue = initialValue;
@ -270,7 +271,7 @@ public:
*/
void setTargetValue (FloatType newValue) noexcept
{
if (newValue == this->target)
if (approximatelyEqual (newValue, this->target))
return;
if (stepsToTarget <= 0)
@ -280,7 +281,8 @@ public:
}
// Multiplicative smoothed values cannot ever reach 0!
jassert (! (std::is_same_v<SmoothingType, ValueSmoothingTypes::Multiplicative> && newValue == 0));
jassert (! (std::is_same_v<SmoothingType, ValueSmoothingTypes::Multiplicative>
&& approximatelyEqual (newValue, (FloatType) 0)));
this->target = newValue;
this->countdown = stepsToTarget;