After tracking down a bug in my Fortran program, I found that it

assumed

max(NaN,0.) = 0.

This makes no sense, as the outcome of the operation is undefined and

should be NaN.

max(NaN,0.) = NaN

After researching, it appears the first outcome is accepted behavior,

and might be included in the revised IEEE 754 standard, which affects

not only Fortran. The discussion posted at

http://www.cs.berkeley.edu/~ejr/Proj...21.html#minmax

suggests that "There is no mathematical reason to prefer one reason to

another."

But I think otherwise, for the following reason. Suppose the NaN is

produced by x/y, where x=0 came from an underflow and y=0 came from an

underflow. Then x/y would be a well-defined number that could be

postive or negative. The convetion max(NaN,0.) = 0. is wrong at least

half the time.