diff options
80 files changed, 725 insertions, 12 deletions
@@ -26,7 +26,7 @@ Major new features: functions for float, double, long double, _FloatN and _FloatNx, and a type-generic macro in <tgmath.h>. - - Logarithmic functions: log2p1. + - Logarithmic functions: log2p1, logp1. * A new tunable, glibc.rtld.enable_secure, used to run a program as if it were a setuid process. This is currently a testing tool to allow diff --git a/manual/math.texi b/manual/math.texi index c99501c..56f2295 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -745,13 +745,25 @@ to subtraction of two numbers that are nearly equal. @deftypefunx {long double} log1pl (long double @var{x}) @deftypefunx _FloatN log1pfN (_Float@var{N} @var{x}) @deftypefunx _FloatNx log1pfNx (_Float@var{N}x @var{x}) +@deftypefunx double logp1 (double @var{x}) +@deftypefunx float logp1f (float @var{x}) +@deftypefunx {long double} logp1l (long double @var{x}) +@deftypefunx _FloatN logp1fN (_Float@var{N} @var{x}) +@deftypefunx _FloatNx logp1fNx (_Float@var{N}x @var{x}) @standards{ISO, math.h} @standardsx{log1pfN, TS 18661-3:2015, math.h} @standardsx{log1pfNx, TS 18661-3:2015, math.h} +@standardsx{logp1, TS 18661-4:2015, math.h} +@standardsx{logp1f, TS 18661-4:2015, math.h} +@standardsx{logp1l, TS 18661-4:2015, math.h} +@standardsx{logp1fN, TS 18661-4:2015, math.h} +@standardsx{logp1fNx, TS 18661-4:2015, math.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} These functions return a value equivalent to @w{@code{log (1 + @var{x})}}. They are computed in a way that is accurate even if @var{x} is near zero. + +The @code{logp1} names for these functions are from TS 18661-4:2015. @end deftypefun @deftypefun double log2p1 (double @var{x}) diff --git a/math/Makefile b/math/Makefile index 58e5c07..c55976c 100644 --- a/math/Makefile +++ b/math/Makefile @@ -966,6 +966,7 @@ tgmath3-macros = \ log2 \ log2p1 \ logb \ + logp1 \ lrint \ lround \ nearbyint \ @@ -1145,7 +1146,7 @@ $(foreach t,$(libm-tests-vector),$(objpfx)$(t).c): $(objpfx)test-%.c: type_func=$*; \ type=$${type_func%-*}; \ func=$${type_func##*-}; \ - func_args=$$(grep ALL_RM_TEST libm-test-$$func.inc \ + func_args=$$(grep "ALL_RM_TEST ($$func," libm-test-$$func.inc \ | sed 's/.*RUN_TEST_LOOP_//;s/_.*//'); \ ( \ echo "#include <test-$$type.h>"; \ @@ -1375,7 +1376,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintl CFLAGS-s_llround.c += -fno-builtin-llroundl CFLAGS-e_log.c += -fno-builtin-logl CFLAGS-w_log10.c += -fno-builtin-log10l -CFLAGS-w_log1p.c += -fno-builtin-log1pl +CFLAGS-w_log1p.c += -fno-builtin-log1pl -fno-builtin-logp1l CFLAGS-e_log2.c += -fno-builtin-log2l CFLAGS-s_log2p1.c += -fno-builtin-log2p1l CFLAGS-s_logb.c += -fno-builtin-logbl @@ -1501,7 +1502,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintf32x -fno-builtin-llrintf64 CFLAGS-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64 CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64 CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64 -CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 +CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 -fno-builtin-logp1f32x -fno-builtin-logp1f64 CFLAGS-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64 CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64 CFLAGS-s_logb.c += -fno-builtin-logbf32x -fno-builtin-logbf64 @@ -1616,7 +1617,7 @@ CFLAGS-s_llrintf.c += -fno-builtin-llrintf32 CFLAGS-s_llroundf.c += -fno-builtin-llroundf32 CFLAGS-e_logf.c += -fno-builtin-logf32 CFLAGS-w_log10f.c += -fno-builtin-log10f32 -CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 +CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 -fno-builtin-logp1f32 CFLAGS-e_log2f.c += -fno-builtin-log2f32 CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32 CFLAGS-s_logbf.c += -fno-builtin-logbf32 diff --git a/math/Versions b/math/Versions index 46b9b87..f6ddd2f 100644 --- a/math/Versions +++ b/math/Versions @@ -642,7 +642,9 @@ libm { GLIBC_2.40 { # Functions not involving _Float64x or _Float128, for all configurations. log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x; + logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x; # Functions involving _Float64x or _Float128, for some configurations. log2p1f64x; log2p1f128; + logp1f64x; logp1f128; } } diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index fbfc27a..40f9cf3 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -115,6 +115,9 @@ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); + +/* Return log(1 + X). */ +__MATHCALL (logp1,, (_Mdouble_ __x)); #endif #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py index 1131481..307b657 100755 --- a/math/gen-tgmath-tests.py +++ b/math/gen-tgmath-tests.py @@ -744,6 +744,7 @@ class Tests(object): # TS 18661-4 functions. self.add_tests('exp10', 'r', ['r']) self.add_tests('log2p1', 'r', ['r']) + self.add_tests('logp1', 'r', ['r']) # C23 functions. self.add_tests('fmaximum', 'r', ['r', 'r']) self.add_tests('fmaximum_mag', 'r', ['r', 'r']) diff --git a/math/libm-test-log1p.inc b/math/libm-test-log1p.inc index 67ad03f..bcac6ff 100644 --- a/math/libm-test-log1p.inc +++ b/math/libm-test-log1p.inc @@ -40,10 +40,22 @@ log1p_test (void) ALL_RM_TEST (log1p, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END); } +#if !TEST_MATHVEC +static void +logp1_test (void) +{ + /* logp1 uses the same test data as log1p. */ + ALL_RM_TEST (logp1, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END); +} +#endif + static void do_test (void) { log1p_test (); +#if !TEST_MATHVEC + logp1_test (); +#endif } /* diff --git a/math/test-tgmath.c b/math/test-tgmath.c index 141e96b..290e9cb 100644 --- a/math/test-tgmath.c +++ b/math/test-tgmath.c @@ -48,7 +48,7 @@ volatile int count_cdouble; volatile int count_cfloat; volatile int count_cldouble; -#define NCALLS 160 +#define NCALLS 162 #define NCALLS_INT 4 #define NCCALLS 47 @@ -256,6 +256,7 @@ F(compile_test) (void) a = exp10 (exp10 (x)); b = log2 (log2 (a)); a = log2p1 (log2p1 (x)); + a = logp1 (logp1 (x)); a = pow (pow (x, a), pow (c, b)); b = sqrt (sqrt (a)); a = hypot (hypot (x, b), hypot (c, a)); @@ -370,6 +371,7 @@ F(compile_test) (void) a = exp10 (y); a = log2 (y); a = log2p1 (y); + a = logp1 (y); a = pow (y, y); a = sqrt (y); a = hypot (y, y); @@ -652,6 +654,14 @@ TYPE } TYPE +(F(logp1)) (TYPE x) +{ + ++count; + P (); + return x; +} + +TYPE (F(pow)) (TYPE x, TYPE y) { ++count; diff --git a/math/tgmath.h b/math/tgmath.h index d9ee3e3..78fd2f5 100644 --- a/math/tgmath.h +++ b/math/tgmath.h @@ -877,6 +877,9 @@ /* Return log2(1 + X). */ #define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1) + +/* Return log(1 + X). */ +#define logp1(Val) __TGMATH_UNARY_REAL_ONLY (Val, logp1) #endif diff --git a/math/w_log1p_template.c b/math/w_log1p_template.c index bfdedb0..100f2cd 100644 --- a/math/w_log1p_template.c +++ b/math/w_log1p_template.c @@ -33,3 +33,5 @@ M_DECL_FUNC (__w_log1p) (FLOAT x) return M_SUF (__log1p) (x); } declare_mgen_alias (__w_log1p, log1p) +strong_alias (M_SUF (__w_log1p), M_SUF (__w_logp1)) +declare_mgen_alias (__w_logp1, logp1) diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps index 656d4b0..bcae276 100644 --- a/sysdeps/aarch64/libm-test-ulps +++ b/sysdeps/aarch64/libm-test-ulps @@ -1412,6 +1412,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps index f2929d6..392d23f 100644 --- a/sysdeps/alpha/fpu/libm-test-ulps +++ b/sysdeps/alpha/fpu/libm-test-ulps @@ -1221,6 +1221,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/arc/fpu/libm-test-ulps b/sysdeps/arc/fpu/libm-test-ulps index 56ff914..41c8ef1 100644 --- a/sysdeps/arc/fpu/libm-test-ulps +++ b/sysdeps/arc/fpu/libm-test-ulps @@ -979,6 +979,22 @@ Function: "log_upward": double: 1 float: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 1 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps index 6ac2830..d3f4595 100644 --- a/sysdeps/arc/nofpu/libm-test-ulps +++ b/sysdeps/arc/nofpu/libm-test-ulps @@ -234,6 +234,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": double: 1 diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps index fc7ba14..c96ec03 100644 --- a/sysdeps/arm/libm-test-ulps +++ b/sysdeps/arm/libm-test-ulps @@ -991,6 +991,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/csky/fpu/libm-test-ulps b/sysdeps/csky/fpu/libm-test-ulps index 6e1356e..fc634f8 100644 --- a/sysdeps/csky/fpu/libm-test-ulps +++ b/sysdeps/csky/fpu/libm-test-ulps @@ -950,6 +950,22 @@ double: 2 Function: "log2_upward": double: 3 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/csky/nofpu/libm-test-ulps b/sysdeps/csky/nofpu/libm-test-ulps index 8a2de74..a1e28c8 100644 --- a/sysdeps/csky/nofpu/libm-test-ulps +++ b/sysdeps/csky/nofpu/libm-test-ulps @@ -964,6 +964,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps index 3d60fc2..8b4dfb6 100644 --- a/sysdeps/hppa/fpu/libm-test-ulps +++ b/sysdeps/hppa/fpu/libm-test-ulps @@ -1000,6 +1000,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index f2139fc..ef85156 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -1436,6 +1436,29 @@ double: 1 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 1 +float: 1 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float128: 2 diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps index b892c43..e2b2492 100644 --- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -1463,6 +1463,29 @@ double: 1 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 1 +float: 1 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 1 +float: 1 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float128: 2 diff --git a/sysdeps/ieee754/float128/Makefile b/sysdeps/ieee754/float128/Makefile index f869e80..f0f6aae 100644 --- a/sysdeps/ieee754/float128/Makefile +++ b/sysdeps/ieee754/float128/Makefile @@ -100,7 +100,7 @@ CFLAGS-s_llrintf128.c += -fno-builtin-llrintf64x CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x CFLAGS-e_logf128.c += -fno-builtin-logf64x CFLAGS-w_log10f128.c += -fno-builtin-log10f64x -CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2f128.c += -fno-builtin-log2f64x CFLAGS-s_logbf128.c += -fno-builtin-logbf64x CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h index 38a8bdd..19aa6c4 100644 --- a/sysdeps/ieee754/float128/float128_private.h +++ b/sysdeps/ieee754/float128/float128_private.h @@ -358,6 +358,7 @@ #define llroundl llroundf128 #define log1pl log1pf128 #define logbl logbf128 +#define logp1l logp1f128 #define logl logf128 #define lrintl lrintf128 #define lroundl lroundf128 diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile index 9cbfc7f..1901238 100644 --- a/sysdeps/ieee754/ldbl-128/Makefile +++ b/sysdeps/ieee754/ldbl-128/Makefile @@ -89,7 +89,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x -fno-builtin-llrintf128 CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128 CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128 CFLAGS-w_log10l.c += -fno-builtin-log10f64x -fno-builtin-log10f128 -CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128 +CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128 -fno-builtin-logp1f64x -fno-builtin-logp1f128 CFLAGS-e_log2l.c += -fno-builtin-log2f64x -fno-builtin-log2f128 CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128 CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128 diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions index c9a7436..018e0a8 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -139,6 +139,7 @@ libm { } GLIBC_2.40 { __log2p1ieee128; + __logp1ieee128; } } libc { diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile index 170e77b..a3ec2c5 100644 --- a/sysdeps/ieee754/ldbl-96/Makefile +++ b/sysdeps/ieee754/ldbl-96/Makefile @@ -110,7 +110,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x CFLAGS-e_logl.c += -fno-builtin-logf64x CFLAGS-w_log10l.c += -fno-builtin-log10f64x -CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2l.c += -fno-builtin-log2f64x CFLAGS-s_logbl.c += -fno-builtin-logbf64x CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index d1eda5d..9c204ff 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -341,7 +341,7 @@ CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl CFLAGS-nldbl-llround.c = -fno-builtin-llroundl CFLAGS-nldbl-log.c = -fno-builtin-logl CFLAGS-nldbl-log10.c = -fno-builtin-log10l -CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl +CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl -fno-builtin-logp1l CFLAGS-nldbl-log2.c = -fno-builtin-log2l CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l CFLAGS-nldbl-logb.c = -fno-builtin-logbl diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c b/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c index 455b25a..b0de985 100644 --- a/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c +++ b/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c @@ -6,3 +6,4 @@ log1pl (double x) { return log1p (x); } +weak_alias (log1pl, logp1l) diff --git a/sysdeps/loongarch/lp64/libm-test-ulps b/sysdeps/loongarch/lp64/libm-test-ulps index 185c5b4..f9db4d3 100644 --- a/sysdeps/loongarch/lp64/libm-test-ulps +++ b/sysdeps/loongarch/lp64/libm-test-ulps @@ -1232,6 +1232,26 @@ Function: "log_upward": double: 1 ldouble: 2 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps index ad3649f..1b25a70 100644 --- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps +++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps @@ -134,6 +134,9 @@ float: 2 Function: "log1p": float: 1 +Function: "logp1": +float: 1 + Function: "sincos": double: 1 float: 1 diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 113daa4..88010e5 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1189,3 +1189,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist index 0c7ffd4..394e598 100644 --- a/sysdeps/mach/hurd/x86_64/libm.abilist +++ b/sysdeps/mach/hurd/x86_64/libm.abilist @@ -1046,3 +1046,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/microblaze/libm-test-ulps b/sysdeps/microblaze/libm-test-ulps index faa3184..d3666eb 100644 --- a/sysdeps/microblaze/libm-test-ulps +++ b/sysdeps/microblaze/libm-test-ulps @@ -231,6 +231,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": float: 1 diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps index 5720e73..2984d0d 100644 --- a/sysdeps/mips/mips32/libm-test-ulps +++ b/sysdeps/mips/mips32/libm-test-ulps @@ -975,6 +975,22 @@ Function: "log_upward": double: 1 float: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps index 933aba4..f2fd058 100644 --- a/sysdeps/mips/mips64/libm-test-ulps +++ b/sysdeps/mips/mips64/libm-test-ulps @@ -1223,6 +1223,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/nios2/libm-test-ulps b/sysdeps/nios2/libm-test-ulps index 2cbef48..c8d1a72 100644 --- a/sysdeps/nios2/libm-test-ulps +++ b/sysdeps/nios2/libm-test-ulps @@ -237,6 +237,10 @@ Function: "log2": double: 2 float: 1 +Function: "logp1": +double: 1 +float: 1 + Function: "pow": double: 1 float: 3 diff --git a/sysdeps/or1k/fpu/libm-test-ulps b/sysdeps/or1k/fpu/libm-test-ulps index 948ec01..59b9f07 100644 --- a/sysdeps/or1k/fpu/libm-test-ulps +++ b/sysdeps/or1k/fpu/libm-test-ulps @@ -955,6 +955,22 @@ double: 1 Function: "log2_upward": double: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps index 785bae7..726855f 100644 --- a/sysdeps/or1k/nofpu/libm-test-ulps +++ b/sysdeps/or1k/nofpu/libm-test-ulps @@ -953,6 +953,22 @@ double: 1 Function: "log2_upward": double: 1 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_downward": +double: 2 +float: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 + +Function: "logp1_upward": +double: 2 +float: 2 + Function: "pow": double: 1 diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 78e9a9a..e41e585 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -1546,6 +1546,30 @@ float: 2 float128: 1 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 1 +float: 2 +float128: 3 +ldouble: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 +float128: 3 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +float128: 2 +ldouble: 3 + Function: "mul_downward_ldouble": double: 1 float: 1 diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps index 35a1e7b..94d737a 100644 --- a/sysdeps/powerpc/nofpu/libm-test-ulps +++ b/sysdeps/powerpc/nofpu/libm-test-ulps @@ -1260,6 +1260,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 2 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 2 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 2 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "mul_downward_ldouble": double: 1 float: 1 diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile index b59c4b2..43d9e5f 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile @@ -295,7 +295,7 @@ CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x -CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x +CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x CFLAGS-e_log2f128-ifunc.c += -fno-builtin-log2f64x CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h index 40df525..155aabc 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h @@ -33,6 +33,10 @@ extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128); #define __ldexpf128 F128_SFX_APPEND (__ldexpf128) +extern __typeof (log1pf128) F128_SFX_APPEND (__w_log1pf128); + +#define __w_log1pf128 F128_SFX_APPEND (__w_log1pf128) + /* libm_hidden_proto is disabled by the time we reach here. Ensure some internally called functions are still called without going through the PLT. Note, this code is only diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h index ce337e4..f235f82 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h @@ -138,7 +138,9 @@ /* Ensure the wrapper functions get exposed via IFUNC, not the wrappee (e.g __w_log1pf128_power8 instead of __log1pf128_power8. */ -#define DECL_ALIAS_w_log1p(x) MAKE_IFUNCP_WRAP_R(w_,x,) +#define DECL_ALIAS_w_log1p(x) \ + MAKE_IFUNCP_WRAP_R (w_, x, ) \ + MAKE_IFUNCP_WRAP_R (w_, logp1, ) #define DECL_ALIAS_w_scalbln(x) MAKE_IFUNCP_WRAP_R(w_,x,) /* These are declared in their respective jX objects. */ diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h index 790d974..0506db0 100644 --- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h +++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h @@ -106,11 +106,13 @@ F128_REDIR (__remainderf128); extern _Float128 __wrap_scalbnf128 (_Float128, int); extern _Float128 __w_scalblnf128 (_Float128, long int); extern _Float128 __w_log1pf128 (_Float128); +extern _Float128 __w_logp1f128 (_Float128); extern _Float128 __scalbf128 (_Float128, _Float128); F128_REDIR (__scalbf128); F128_REDIR (__wrap_scalbnf128); F128_REDIR (__w_scalblnf128); F128_REDIR (__w_log1pf128); +F128_REDIR (__w_logp1f128); /* Include the redirects shared with math_private.h users. */ #include <float128-ifunc-redirects.h> diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps index bc7e615..d8cff3e 100644 --- a/sysdeps/riscv/nofpu/libm-test-ulps +++ b/sysdeps/riscv/nofpu/libm-test-ulps @@ -1208,6 +1208,26 @@ Function: "log_upward": double: 1 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps index a3a05a8..fced981 100644 --- a/sysdeps/riscv/rvd/libm-test-ulps +++ b/sysdeps/riscv/rvd/libm-test-ulps @@ -1212,6 +1212,26 @@ Function: "log_upward": double: 1 ldouble: 2 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps index e24adb9..f2da849 100644 --- a/sysdeps/s390/fpu/libm-test-ulps +++ b/sysdeps/s390/fpu/libm-test-ulps @@ -1230,6 +1230,26 @@ ldouble: 2 Function: "log_upward": ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 1 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 ldouble: 2 diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps index 9c297f4..3c84259 100644 --- a/sysdeps/sh/libm-test-ulps +++ b/sysdeps/sh/libm-test-ulps @@ -475,6 +475,14 @@ float: 1 Function: "log2_towardzero": double: 2 +Function: "logp1": +double: 1 +float: 1 + +Function: "logp1_towardzero": +double: 2 +float: 2 + Function: "pow": double: 1 float: 1 diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps index 2d490e0..d6a6b70 100644 --- a/sysdeps/sparc/fpu/libm-test-ulps +++ b/sysdeps/sparc/fpu/libm-test-ulps @@ -1223,6 +1223,26 @@ double: 1 float: 2 ldouble: 1 +Function: "logp1": +double: 1 +float: 1 +ldouble: 3 + +Function: "logp1_downward": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_towardzero": +double: 2 +float: 2 +ldouble: 3 + +Function: "logp1_upward": +double: 2 +float: 2 +ldouble: 2 + Function: "pow": double: 1 float: 3 diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index a4bb539..40027fc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 8ff65e3..5967de8 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1316,3 +1316,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist index af9df26..57affc3 100644 --- a/sysdeps/unix/sysv/linux/arc/libm.abilist +++ b/sysdeps/unix/sysv/linux/arc/libm.abilist @@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 0e46025..e225b99 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 0e46025..e225b99 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist index 4c12160..2a9f9a6 100644 --- a/sysdeps/unix/sysv/linux/csky/libm.abilist +++ b/sysdeps/unix/sysv/linux/csky/libm.abilist @@ -829,3 +829,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 3ea5b61..6fa8003 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 696e52e..b6b1aa0 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1196,3 +1196,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist index 1c6f02a..b225d61 100644 --- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist @@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 0e46025..e225b99 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index be8262b..cd4cafb 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -890,3 +890,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index cc091b2..604af40 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index cc091b2..604af40 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 4d442a9..56ec45feb0 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index ae7b4a7..e97dd13 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 9ed3fbd..1603d16 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist index 69655f7..7565572 100644 --- a/sysdeps/unix/sysv/linux/or1k/libm.abilist +++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist @@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 564eb87..1f61a9c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1001,3 +1001,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index a57eedb..c9af2d2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1000,3 +1000,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 7564069..b0af67d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -994,3 +994,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index b02a711..28f3ee6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1322,6 +1322,7 @@ GLIBC_2.38 fmod F GLIBC_2.38 fmodf F GLIBC_2.39 exp10 F GLIBC_2.40 __log2p1ieee128 F +GLIBC_2.40 __logp1ieee128 F GLIBC_2.40 log2p1 F GLIBC_2.40 log2p1f F GLIBC_2.40 log2p1f128 F @@ -1330,3 +1331,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist index 7bf0bd7..dae4531 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist @@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index c22d9bb..dc506b8 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1133,3 +1133,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 2fb712e..818e2c4 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 4048958..03d51e1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index a5363e90..b6a03d1 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index a5363e90..b6a03d1 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 9bda9bd..312544d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1267,3 +1267,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 61d2aa0..391b583 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index bbf646f..47b5b91 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 7c7b884..809c5f4 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1l F +GLIBC_2.40 logp1 F +GLIBC_2.40 logp1f F +GLIBC_2.40 logp1f128 F +GLIBC_2.40 logp1f32 F +GLIBC_2.40 logp1f32x F +GLIBC_2.40 logp1f64 F +GLIBC_2.40 logp1f64x F +GLIBC_2.40 logp1l F diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 893c22b..97876ca 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -1907,6 +1907,30 @@ float: 3 Function: "log_vlen8_avx2": float: 3 +Function: "logp1": +double: 1 +float: 1 +float128: 3 +ldouble: 2 + +Function: "logp1_downward": +double: 2 +float: 2 +float128: 3 +ldouble: 4 + +Function: "logp1_towardzero": +double: 2 +float: 2 +float128: 3 +ldouble: 4 + +Function: "logp1_upward": +double: 2 +float: 2 +float128: 2 +ldouble: 3 + Function: "pow": double: 1 float: 1 |