Viet-Trung Luu | 96b05c1 | 2016-01-11 11:26:36 -0800 | [diff] [blame] | 1 | #include <math.h> |
2 | |||||
George Kulakowski | 17e3b04 | 2016-02-18 15:59:50 -0800 | [diff] [blame] | 3 | double fmax(double x, double y) { |
4 | if (isnan(x)) | ||||
5 | return y; | ||||
6 | if (isnan(y)) | ||||
7 | return x; | ||||
8 | /* handle signed zeros, see C99 Annex F.9.9.2 */ | ||||
9 | if (signbit(x) != signbit(y)) | ||||
10 | return signbit(x) ? y : x; | ||||
11 | return x < y ? y : x; | ||||
Viet-Trung Luu | 96b05c1 | 2016-01-11 11:26:36 -0800 | [diff] [blame] | 12 | } |