1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <math.h> #include <float.h> #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 long double fdiml(long double x, long double y) { return fdim(x, y); } #else long double fdiml(long double x, long double y) { if (isnan(x)) return x; if (isnan(y)) return y; return x > y ? x - y : 0; } #endif