Always false float comparisons

Guillaume Piolat via Digitalmars-d digitalmars-d at puremagic.com
Mon May 16 13:43:10 PDT 2016


On Monday, 16 May 2016 at 17:50:22 UTC, Walter Bright wrote:
>
> The needs of numerical analysts have often been neglected by 
> the C/C++ community. The community has been very slow to 
> recognize IEEE, by about a decade. It wasn't until fairly 
> recently that C/C++ compilers even handled NaN properly. It's 
> no surprise that FORTRAN reigned as the choice of numerical 
> analysts.
>
> (On the other hand, the needs of game developers have received 
> strong support.)
>

I have regression scripts that check audio computations against 
the previous baseline. The goal is to ensure the results are 
consistent between compilers and bitness, and to check for the 
validity of sound-altering optimization (usually within 80 dB 
peak difference is OK). And of course not to utterly break things 
during optimization work.

I've been harmed once by the x87 promotion of a float to real, 
which made an algorithm sound better on 32-bit than 64-bit. On 
64-bit DMD used SSE which avoided the internal precision boost. 
If I had tested only in 32-bit I could have inferred float 
precision was enough.

This is one time I would have preferred if D would never promoted 
float to double or to real. I understand that the x87 code would 
go much slower if restricted precision was ensured. So how about 
using SSE like in 64-bit code?

Free bits of precision may lead to think things are better than 
they are.




More information about the Digitalmars-d mailing list