X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmath%2Flog1pl.c;h=141b5f0b0c295a38d7ab1e1793bdbe2ec35fa2ae;hb=21a172dd36cae7a08492fd3a7500d7bf0daee13e;hp=1400d365755cd1c9d42a4a3213796aaa66c523fb;hpb=97721a5508415a2f10eb068e022093811c9ff8be;p=musl diff --git a/src/math/log1pl.c b/src/math/log1pl.c index 1400d365..141b5f0b 100644 --- a/src/math/log1pl.c +++ b/src/math/log1pl.c @@ -46,11 +46,6 @@ * 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