elf.h: add ELFCOMPRESS_ZSTD
[musl] / src / math / log1pl.c
index 1400d36..141b5f0 100644 (file)
  *                      Relative error:
  * arithmetic   domain     # trials      peak         rms
  *    IEEE     -1.0, 9.0    100000      8.2e-20    2.5e-20
- *
- * ERROR MESSAGES:
- *
- * log singularity:  x-1 = 0; returns -INFINITY
- * log domain:       x-1 < 0; returns NAN
  */
 
 #include "libm.h"
@@ -123,8 +118,8 @@ long double log1pl(long double xm1)
        /* Test for domain errors.  */
        if (x <= 0.0) {
                if (x == 0.0)
-                       return -INFINITY;
-               return NAN;
+                       return -1/(x*x); /* -inf with divbyzero */
+               return 0/0.0f; /* nan with invalid */
        }
 
        /* Separate mantissa from exponent.
@@ -173,4 +168,10 @@ long double log1pl(long double xm1)
        z = z + e * C1;
        return z;
 }
+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
+// TODO: broken implementation to make things compile
+long double log1pl(long double x)
+{
+       return log1p(x);
+}
 #endif