initial cmath code and minor libm.h update
[libm] / src / math / nexttowardf.c
index fc0948c..c52ef3a 100644 (file)
@@ -12,9 +12,9 @@
 
 #include "libm.h"
 
-#if LD64
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
 // FIXME
-#elif LD80 || LD128
+#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
 #define LDBL_INFNAN_EXP (LDBL_MAX_EXP * 2 - 1)
 
 float nexttowardf(float x, long double y)
@@ -42,9 +42,9 @@ float nexttowardf(float x, long double y)
                return x;
        }
        if (hx >= 0 ^ x < y)  /* x -= ulp */
-               hx -= 1;
+               hx--;
        else                  /* x += ulp */
-               hx += 1;
+               hx++;
        ix = hx & 0x7f800000;
        if (ix >= 0x7f800000)  /* overflow  */
                return x+x;