mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Implement C23 log10p1
C23 adds various <math.h> function families originally defined in TS 18661-4. Add the log10p1 functions (log10(1+x): like log1p, but for base-10 logarithms). This is directly analogous to the log2p1 implementation (except that whereas log2p1 has a smaller underflow range than log1p, log10p1 has a larger underflow range). The test inputs are copied from those for log1p and log2p1, plus a few more inputs in that wider underflow range. Tested for x86_64 and x86, and with build-many-glibcs.py.
This commit is contained in:
parent
bb014f50c4
commit
55eb99e9a9
2
NEWS
2
NEWS
@ -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, logp1.
|
||||
- Logarithmic functions: log2p1, log10p1, 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
|
||||
|
@ -780,6 +780,20 @@ near zero.
|
||||
The @code{log2p1} functions are from TS 18661-4:2015.
|
||||
@end deftypefun
|
||||
|
||||
@deftypefun double log10p1 (double @var{x})
|
||||
@deftypefunx float log10p1f (float @var{x})
|
||||
@deftypefunx {long double} log10p1l (long double @var{x})
|
||||
@deftypefunx _FloatN log10p1fN (_Float@var{N} @var{x})
|
||||
@deftypefunx _FloatNx log10p1fNx (_Float@var{N}x @var{x})
|
||||
@standards{TS 18661-4:2015, math.h}
|
||||
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
||||
These functions return a value equivalent to @w{@code{log10 (1 + @var{x})}}.
|
||||
They are computed in a way that is accurate even if @var{x} is
|
||||
near zero.
|
||||
|
||||
The @code{log10p1} functions are from TS 18661-4:2015.
|
||||
@end deftypefun
|
||||
|
||||
@cindex complex exponentiation functions
|
||||
@cindex complex logarithm functions
|
||||
|
||||
|
@ -127,6 +127,7 @@ gen-libm-calls = \
|
||||
s_fminimum_numF \
|
||||
s_fminmagF \
|
||||
s_iseqsigF \
|
||||
s_log10p1F \
|
||||
s_log2p1F \
|
||||
s_nanF \
|
||||
s_nextdownF \
|
||||
@ -651,6 +652,7 @@ libm-test-funcs-auto = \
|
||||
lgamma \
|
||||
log \
|
||||
log10 \
|
||||
log10p1 \
|
||||
log1p \
|
||||
log2 \
|
||||
log2p1 \
|
||||
@ -962,6 +964,7 @@ tgmath3-macros = \
|
||||
llround \
|
||||
log \
|
||||
log10 \
|
||||
log10p1 \
|
||||
log1p \
|
||||
log2 \
|
||||
log2p1 \
|
||||
@ -1376,6 +1379,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-s_log10p1.c += -fno-builtin-log10p1l
|
||||
CFLAGS-w_log1p.c += -fno-builtin-log1pl -fno-builtin-logp1l
|
||||
CFLAGS-e_log2.c += -fno-builtin-log2l
|
||||
CFLAGS-s_log2p1.c += -fno-builtin-log2p1l
|
||||
@ -1502,6 +1506,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-s_log10p1.c += -fno-builtin-log10p1f32x -fno-builtin-log10p1f64
|
||||
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
|
||||
@ -1617,6 +1622,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-s_log10p1f.c += -fno-builtin-log10p1f32
|
||||
CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 -fno-builtin-logp1f32
|
||||
CFLAGS-e_log2f.c += -fno-builtin-log2f32
|
||||
CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32
|
||||
|
@ -642,9 +642,11 @@ libm {
|
||||
GLIBC_2.40 {
|
||||
# Functions not involving _Float64x or _Float128, for all configurations.
|
||||
log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x;
|
||||
log10p1; log10p1f; log10p1l; log10p1f32; log10p1f64; log10p1f32x;
|
||||
logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x;
|
||||
# Functions involving _Float64x or _Float128, for some configurations.
|
||||
log2p1f64x; log2p1f128;
|
||||
log10p1f64x; log10p1f128;
|
||||
logp1f64x; logp1f128;
|
||||
}
|
||||
}
|
||||
|
@ -6576,6 +6576,63 @@ log10 0x9.b3727e3feb538p-4
|
||||
log10 0xf.bf1b2p-4
|
||||
log10 0x1.6b5f7ap+96
|
||||
|
||||
log10p1 0
|
||||
log10p1 -0
|
||||
log10p1 e-1
|
||||
log10p1 -0.25
|
||||
log10p1 -0.875
|
||||
log10p1 0x1p-5
|
||||
log10p1 0x1p-10
|
||||
log10p1 0x1p-15
|
||||
log10p1 0x1p-20
|
||||
log10p1 0x1p-25
|
||||
log10p1 0x1p-30
|
||||
log10p1 0x1p-35
|
||||
log10p1 0x1p-40
|
||||
log10p1 0x1p-45
|
||||
log10p1 0x1p-50
|
||||
log10p1 0x1p-55
|
||||
log10p1 0x1p-60
|
||||
log10p1 0x1p-100
|
||||
log10p1 0x1p-600
|
||||
log10p1 0x1p-10000
|
||||
log10p1 min
|
||||
log10p1 min_subnorm
|
||||
log10p1 -min
|
||||
log10p1 -min_subnorm
|
||||
log10p1 0x1p10
|
||||
log10p1 0x1p20
|
||||
log10p1 0x1p30
|
||||
log10p1 0x1p50
|
||||
log10p1 0x1p60
|
||||
log10p1 0x1p100
|
||||
log10p1 0x1p1000
|
||||
log10p1 0x6.a0cf42befce9ed4085ef59254b48p-4
|
||||
log10p1 max
|
||||
log10p1 0x1p-125
|
||||
log10p1 0x1p-1021
|
||||
log10p1 0x1p-16381
|
||||
log10p1 -0x1p-125
|
||||
log10p1 -0x1p-1021
|
||||
log10p1 -0x1p-16381
|
||||
|
||||
log10p1 0x7.2a4368p-4
|
||||
log10p1 0x6.d3a118p-4
|
||||
log10p1 0x5.03f228p+0
|
||||
log10p1 0x7.264963888ac9p-4
|
||||
log10p1 0x8.786bdp-4
|
||||
log10p1 0x7.89dc17790eeb4p-4
|
||||
log10p1 0x9.81ccf8887c24a7bp-4
|
||||
log10p1 0xa.5028608bd65f38dp-4
|
||||
log10p1 0x5.bf78873e20a2d468p-4
|
||||
log10p1 0x7.aa5198p-4
|
||||
log10p1 0x2.564fap+0
|
||||
log10p1 0x7.fc242a2235222ef8p-4
|
||||
log10p1 -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4
|
||||
log10p1 0x7.2eca50c4d93196362b4f37f6e8dcp-4
|
||||
log10p1 -0x6.3fef3067427e43dfcde9e48f74bcp-4
|
||||
log10p1 0x6.af53d00fd2845d4772260ef5adc4p-4
|
||||
|
||||
log1p 0
|
||||
log1p -0 no-mathvec
|
||||
log1p e-1
|
||||
|
3063
math/auto-libm-test-out-log10p1
Normal file
3063
math/auto-libm-test-out-log10p1
Normal file
File diff suppressed because it is too large
Load Diff
@ -116,6 +116,9 @@ __MATHCALL_VEC (exp10,, (_Mdouble_ __x));
|
||||
/* Return log2(1 + X). */
|
||||
__MATHCALL (log2p1,, (_Mdouble_ __x));
|
||||
|
||||
/* Return log10(1 + X). */
|
||||
__MATHCALL (log10p1,, (_Mdouble_ __x));
|
||||
|
||||
/* Return log(1 + X). */
|
||||
__MATHCALL (logp1,, (_Mdouble_ __x));
|
||||
#endif
|
||||
|
@ -578,6 +578,7 @@ static test_function test_functions[] =
|
||||
false, CALC (mpfr_f_f1, mpfr_lgamma)),
|
||||
FUNC_mpfr_f_f ("log", mpfr_log, false),
|
||||
FUNC_mpfr_f_f ("log10", mpfr_log10, false),
|
||||
FUNC_mpfr_f_f ("log10p1", mpfr_log10p1, false),
|
||||
FUNC_mpfr_f_f ("log1p", mpfr_log1p, false),
|
||||
FUNC_mpfr_f_f ("log2", mpfr_log2, false),
|
||||
FUNC_mpfr_f_f ("log2p1", mpfr_log2p1, false),
|
||||
|
@ -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('log10p1', 'r', ['r'])
|
||||
self.add_tests('logp1', 'r', ['r'])
|
||||
# C23 functions.
|
||||
self.add_tests('fmaximum', 'r', ['r', 'r'])
|
||||
|
53
math/libm-test-log10p1.inc
Normal file
53
math/libm-test-log10p1.inc
Normal file
@ -0,0 +1,53 @@
|
||||
/* Test log10p1.
|
||||
Copyright (C) 2024 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "libm-test-driver.c"
|
||||
|
||||
static const struct test_f_f_data log10p1_test_data[] =
|
||||
{
|
||||
TEST_f_f (log10p1, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
|
||||
TEST_f_f (log10p1, -2, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
|
||||
TEST_f_f (log10p1, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM|XFAIL_ROUNDING_IBM128_LIBGCC),
|
||||
TEST_f_f (log10p1, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
|
||||
|
||||
TEST_f_f (log10p1, plus_infty, plus_infty, ERRNO_UNCHANGED),
|
||||
TEST_f_f (log10p1, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_f_f (log10p1, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_f_f (log10p1, snan_value, qnan_value, INVALID_EXCEPTION),
|
||||
TEST_f_f (log10p1, -snan_value, qnan_value, INVALID_EXCEPTION),
|
||||
|
||||
AUTO_TESTS_f_f (log10p1),
|
||||
};
|
||||
|
||||
static void
|
||||
log10p1_test (void)
|
||||
{
|
||||
ALL_RM_TEST (log10p1, 0, log10p1_test_data, RUN_TEST_LOOP_f_f, END);
|
||||
}
|
||||
|
||||
static void
|
||||
do_test (void)
|
||||
{
|
||||
log10p1_test ();
|
||||
}
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode:c
|
||||
* End:
|
||||
*/
|
49
math/s_log10p1_template.c
Normal file
49
math/s_log10p1_template.c
Normal file
@ -0,0 +1,49 @@
|
||||
/* Return base-10 logarithm of 1 + X.
|
||||
Copyright (C) 2024 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <math-narrow-eval.h>
|
||||
#include <math-underflow.h>
|
||||
|
||||
FLOAT
|
||||
M_DECL_FUNC (__log10p1) (FLOAT x)
|
||||
{
|
||||
if (__glibc_unlikely (islessequal (x, M_LIT (-1.0))))
|
||||
{
|
||||
if (x == -1)
|
||||
__set_errno (ERANGE);
|
||||
else
|
||||
__set_errno (EDOM);
|
||||
}
|
||||
if (isless (M_FABS (x), M_EPSILON / 4))
|
||||
{
|
||||
/* Ensure appropriate underflows (a wider range than for log1p,
|
||||
with potential for zero results from nonzero arguments, in
|
||||
which case errno should be set based on the result with any
|
||||
excess range and precision removed) even if the result of
|
||||
multiplying by M_MLIT (M_LOG10E) is exact. */
|
||||
FLOAT ret = math_narrow_eval (M_MLIT (M_LOG10E) * x);
|
||||
math_check_force_underflow (ret);
|
||||
if (x != 0 && ret == 0)
|
||||
__set_errno (ERANGE);
|
||||
return ret;
|
||||
}
|
||||
return M_MLIT (M_LOG10E) * M_SUF (__log1p) (x);
|
||||
}
|
||||
declare_mgen_alias (__log10p1, log10p1);
|
@ -48,7 +48,7 @@ volatile int count_cdouble;
|
||||
volatile int count_cfloat;
|
||||
volatile int count_cldouble;
|
||||
|
||||
#define NCALLS 162
|
||||
#define NCALLS 164
|
||||
#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 = log10p1 (log10p1 (x));
|
||||
a = logp1 (logp1 (x));
|
||||
a = pow (pow (x, a), pow (c, b));
|
||||
b = sqrt (sqrt (a));
|
||||
@ -371,6 +372,7 @@ F(compile_test) (void)
|
||||
a = exp10 (y);
|
||||
a = log2 (y);
|
||||
a = log2p1 (y);
|
||||
a = log10p1 (y);
|
||||
a = logp1 (y);
|
||||
a = pow (y, y);
|
||||
a = sqrt (y);
|
||||
@ -653,6 +655,14 @@ TYPE
|
||||
return x;
|
||||
}
|
||||
|
||||
TYPE
|
||||
(F(log10p1)) (TYPE x)
|
||||
{
|
||||
++count;
|
||||
P ();
|
||||
return x;
|
||||
}
|
||||
|
||||
TYPE
|
||||
(F(logp1)) (TYPE x)
|
||||
{
|
||||
|
@ -878,6 +878,9 @@
|
||||
/* Return log2(1 + X). */
|
||||
#define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1)
|
||||
|
||||
/* Return log10(1 + X). */
|
||||
#define log10p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log10p1)
|
||||
|
||||
/* Return log(1 + X). */
|
||||
#define logp1(Val) __TGMATH_UNARY_REAL_ONLY (Val, logp1)
|
||||
#endif
|
||||
|
@ -1378,6 +1378,30 @@ float: 1
|
||||
float128: 1
|
||||
ldouble: 1
|
||||
|
||||
Function: "log10p1":
|
||||
double: 1
|
||||
float: 1
|
||||
float128: 3
|
||||
ldouble: 2
|
||||
|
||||
Function: "log10p1_downward":
|
||||
double: 1
|
||||
float: 1
|
||||
float128: 2
|
||||
ldouble: 4
|
||||
|
||||
Function: "log10p1_towardzero":
|
||||
double: 1
|
||||
float: 1
|
||||
float128: 2
|
||||
ldouble: 4
|
||||
|
||||
Function: "log10p1_upward":
|
||||
double: 1
|
||||
float: 1
|
||||
float128: 3
|
||||
ldouble: 3
|
||||
|
||||
Function: "log1p":
|
||||
double: 1
|
||||
float128: 3
|
||||
|
@ -139,6 +139,7 @@ libm {
|
||||
}
|
||||
GLIBC_2.40 {
|
||||
__log2p1ieee128;
|
||||
__log10p1ieee128;
|
||||
__logp1ieee128;
|
||||
}
|
||||
}
|
||||
|
@ -140,6 +140,7 @@ libnldbl-calls = \
|
||||
log \
|
||||
log2 \
|
||||
log10 \
|
||||
log10p1 \
|
||||
log1p \
|
||||
log2p1 \
|
||||
logb \
|
||||
@ -341,6 +342,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-log10p1.c = -fno-builtin-log10p1l
|
||||
CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl -fno-builtin-logp1l
|
||||
CFLAGS-nldbl-log2.c = -fno-builtin-log2l
|
||||
CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l
|
||||
|
8
sysdeps/ieee754/ldbl-opt/nldbl-log10p1.c
Normal file
8
sysdeps/ieee754/ldbl-opt/nldbl-log10p1.c
Normal file
@ -0,0 +1,8 @@
|
||||
#include "nldbl-compat.h"
|
||||
|
||||
double
|
||||
attribute_hidden
|
||||
log10p1l (double x)
|
||||
{
|
||||
return log10p1 (x);
|
||||
}
|
@ -1181,6 +1181,14 @@ GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.35 hypot F
|
||||
GLIBC_2.35 hypotf F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1038,6 +1038,14 @@ GLIBC_2.38 ynf32x F
|
||||
GLIBC_2.38 ynf64 F
|
||||
GLIBC_2.38 ynf64x F
|
||||
GLIBC_2.38 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -54,5 +54,6 @@ CFLAGS-s_fmaximum_magl.c += -fno-builtin-fabsl
|
||||
CFLAGS-s_fmaximum_mag_numl.c += -fno-builtin-fabsl
|
||||
CFLAGS-s_fminimum_magl.c += -fno-builtin-fabsl
|
||||
CFLAGS-s_fminimum_mag_numl.c += -fno-builtin-fabsl
|
||||
CFLAGS-s_log10p1l.c += -fno-builtin-fabsl
|
||||
CFLAGS-s_log2p1l.c += -fno-builtin-fabsl
|
||||
endif
|
||||
|
@ -1149,6 +1149,14 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1308,6 +1308,14 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -757,6 +757,12 @@ GLIBC_2.35 fminimumf64 F
|
||||
GLIBC_2.35 fminimuml F
|
||||
GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 yn F
|
||||
GLIBC_2.4 ynf F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 yn F
|
||||
GLIBC_2.4 ynf F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -823,6 +823,12 @@ GLIBC_2.35 fminimumf64 F
|
||||
GLIBC_2.35 fminimuml F
|
||||
GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.4 exp2l F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -1188,6 +1188,14 @@ GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.35 hypot F
|
||||
GLIBC_2.35 hypotf F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1028,6 +1028,14 @@ GLIBC_2.36 ynf32x F
|
||||
GLIBC_2.36 ynf64 F
|
||||
GLIBC_2.36 ynf64x F
|
||||
GLIBC_2.36 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 yn F
|
||||
GLIBC_2.4 ynf F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -884,6 +884,12 @@ GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.35 hypot F
|
||||
GLIBC_2.35 hypotf F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.4 exp2l F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -1149,6 +1149,14 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -757,6 +757,12 @@ GLIBC_2.35 ynf32 F
|
||||
GLIBC_2.35 ynf32x F
|
||||
GLIBC_2.35 ynf64 F
|
||||
GLIBC_2.35 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -995,6 +995,12 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -994,6 +994,12 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -988,6 +988,12 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -1321,8 +1321,17 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 __log10p1ieee128 F
|
||||
GLIBC_2.40 __log2p1ieee128 F
|
||||
GLIBC_2.40 __logp1ieee128 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1028,6 +1028,14 @@ GLIBC_2.35 fminimumf64x F
|
||||
GLIBC_2.35 fminimuml F
|
||||
GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1125,6 +1125,14 @@ GLIBC_2.35 fminimumf64x F
|
||||
GLIBC_2.35 fminimuml F
|
||||
GLIBC_2.35 fsqrt F
|
||||
GLIBC_2.35 fsqrtl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1252,6 +1252,14 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1252,6 +1252,14 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.4 exp2l F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -848,6 +848,12 @@ GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.4 exp2l F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f32 F
|
||||
|
@ -1259,6 +1259,14 @@ GLIBC_2.4 truncl F
|
||||
GLIBC_2.4 y0l F
|
||||
GLIBC_2.4 y1l F
|
||||
GLIBC_2.4 ynl F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1149,6 +1149,14 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1182,6 +1182,14 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1182,6 +1182,14 @@ GLIBC_2.35 hypotf F
|
||||
GLIBC_2.38 fmod F
|
||||
GLIBC_2.38 fmodf F
|
||||
GLIBC_2.39 exp10 F
|
||||
GLIBC_2.40 log10p1 F
|
||||
GLIBC_2.40 log10p1f F
|
||||
GLIBC_2.40 log10p1f128 F
|
||||
GLIBC_2.40 log10p1f32 F
|
||||
GLIBC_2.40 log10p1f32x F
|
||||
GLIBC_2.40 log10p1f64 F
|
||||
GLIBC_2.40 log10p1f64x F
|
||||
GLIBC_2.40 log10p1l F
|
||||
GLIBC_2.40 log2p1 F
|
||||
GLIBC_2.40 log2p1f F
|
||||
GLIBC_2.40 log2p1f128 F
|
||||
|
@ -1759,6 +1759,30 @@ float: 1
|
||||
Function: "log10_vlen8_avx2":
|
||||
float: 1
|
||||
|
||||
Function: "log10p1":
|
||||
double: 1
|
||||
float: 1
|
||||
float128: 3
|
||||
ldouble: 2
|
||||
|
||||
Function: "log10p1_downward":
|
||||
double: 2
|
||||
float: 1
|
||||
float128: 2
|
||||
ldouble: 4
|
||||
|
||||
Function: "log10p1_towardzero":
|
||||
double: 2
|
||||
float: 2
|
||||
float128: 2
|
||||
ldouble: 4
|
||||
|
||||
Function: "log10p1_upward":
|
||||
double: 2
|
||||
float: 1
|
||||
float128: 3
|
||||
ldouble: 3
|
||||
|
||||
Function: "log1p":
|
||||
double: 1
|
||||
float: 1
|
||||
|
Loading…
Reference in New Issue
Block a user