octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #59149] [octave forge] (signal) Resampling fro


From: anonymous
Subject: [Octave-bug-tracker] [bug #59149] [octave forge] (signal) Resampling from 22050 to 48000 Hz introduces strange and unexpected artifacts
Date: Thu, 24 Sep 2020 10:49:48 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0

Follow-up Comment #29, bug #59149 (project octave):

It turns out that this problem is completely independent of Octave.

Here's a very small test that shows the effect of -ffast-math.


#include <iostream>

int main()
{
        double a = 1.0, b = (a + 1e-3) - 1e-3;
        if (a==b)
                std::cout << "Equal\n";
        else
                std::cout << "Unequal\n";
}


With -ffast-math they're equal. Without it they're unequal.

The use of == with floating point is unwise, but somehow -ffast-math makes the
intended logic work properly.

The quick workaround that a user can do to get usable results is to use
-ffast-math when building packages that use == on doubles. The better fix for
the package is to change "a==b" with "abs(a-b) <= 1e-4" or a similar
tolerance, which will then work without -ffast-math.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59149>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]