NaNs Just Don't Get No Respect

bearophile bearophileHUGS at lycos.com
Mon Aug 20 15:38:10 PDT 2012


Peter Alexander:

> It's tricky. The only way (that I'm aware of) to get it to 
> return NaN is to explicitly test for NaN, introducing overhead 
> that is unnecessary 99.9% of the time.
>
> Unfortunately this is one of those situations where D's design 
> goals of efficiency and safety are at odds. You can't have it 
> both ways.

Few possibilities:
1) Add a second NaN-aware function pair nmax()/nmin();
2) Add a debug{} inside min()/max(), where NaNs are managed;
3) Introduce a if(version=NaNAware){} block inside the normal 
max()/min() and other Phobos functions, to be used when you want 
more NaN-correct results.

I prefer the third idea, but this probably requires a 
recompilation of Phobos.

Bye,
bearophile


More information about the Digitalmars-d-announce mailing list