[PD] different float accuracy betw. Pd-0.52-1-msw-i386 and Pd-0.52-1-msw-amd64
Christof Ressi
info at christofressi.com
Fri Feb 11 23:25:26 CET 2022
> However, what worries me is that if I run a Pd vanilla patch on
> different Pd versions (i386 or amd64) with the same floating point
> precision, I expect the same results.
Generally, you can't really expect that. Even without -ffast-math,
different CPU architectures or instruction sets will give slightly
different results (unless you jump through various hoops).
Here's an interesting article by a game developer:
https://gafferongames.com/post/floating_point_determinism/
Usually, these errors are very small, but with (suboptimal) recursive
algorithms they can get amplified significantly. Your patch is a very
striking demonstration of the problems with the direct 2 form of the
biquad filter :-)
Christof
On 11.02.2022 23:11, musil at iem.at wrote:
>
> Zitat von Christof Ressi <info at christofressi.com>:
>
>> That's only half the story. Generally, one shouldn't expect floating
>> point computations to yield the exact same result with different
>> compilers/machines. The rounding errors themselves are very small,
>> but they can accumulate over long periods of time or get amplified by
>> recursive algorithms.
>> I've made an alternative implementation [biquad2~] that uses direct
>> form 1. It shows significantly less noise than the [biquad~]
>> examples. See attachments.
>
> That's right what you wrote.
> However, what worries me is that if I run a Pd vanilla patch on
> different Pd versions (i386 or amd64) with the same floating point
> precision, I expect the same results.
>
> e.g. the test patch running on Pd-0.52-1-xxx-i386 produces -60dB low
> frequency spikes, the identical patch running on Pd-0.52-1-xxx-amd64
> produces -34dB high frequency bursts. And that's a realistic simple
> situation, a microphone signal feeds a 3rd order high pass filter.
>
> Thomas Musil
>
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
More information about the Pd-list
mailing list