|
|
|
|
|
by a_e_k
1255 days ago
|
|
The standard for comparison with NaNs is to always return false [0]. So that entirely depends on how max() is implemented. A naive implementation of max() might just as easily instead return NaN for that. Or if max(NaN, x) is x, then it may give NaN for max(x, NaN). Note that the fact that comparisons always return false also means that sorting an array of floating point values that contain NaNs can very easily break a comparison-based sorting algorithm!! (I've seen std::sort() in C++, for example, crash because NaNs break the strict weak ordering [1] requirement.) [0] https://en.wikipedia.org/wiki/NaN#Comparison_with_NaN [1] https://en.cppreference.com/w/cpp/named_req/Compare |
|
maximumMagnitude (and a few similar ones) replace it but behave similarly.