[Issue 356] New: std, math.tan doesn't preserve NaN payloads [fix included]

Don Clugston dac at nospam.com.au
Mon Sep 25 11:41:01 PDT 2006


d-bugmail at puremagic.com wrote:
> http://d.puremagic.com/issues/show_bug.cgi?id=356
> 
>            Summary: std,math.tan doesn't preserve NaN payloads [fix
>                     included]
>            Product: D
>            Version: 0.167
>           Platform: PC
>         OS/Version: Windows
>             Status: NEW
>           Severity: minor
>           Priority: P1
>          Component: Phobos
>         AssignedTo: bugzilla at digitalmars.com
>         ReportedBy: clugdbug at yahoo.com.au
> 
> 
> Currently in tan(x), it effectively does 
>   if (isnan(x)) return real.nan; 
> when it should be
>   if (isnan(x)) return x;
> 
> The good news is that all math functions preserve NaN payloads, with this one
> exception. And it's a one-line fix.

I spoke too soon. The version(linux) form of pow() should have two lines 
changed:

     if (isnan(y))
         return y;   //  <<< instead of "return real.nan" <<<<<<<<

     if (y == 0)
         return 1;       // even if x is $(NAN)
     if (isnan(x) && y != 0)
         return x; // instead of "return real.nan;"  <<<<<<



More information about the Digitalmars-d-bugs mailing list