Implement C23 cospi

C23 adds various <math.h> function families originally defined in TS
18661-4.  Add the cospi functions (cos(pi*x)).

Tested for x86_64 and x86, and with build-many-glibcs.py.
This commit is contained in:
Joseph Myers 2024-12-04 10:20:44 +00:00
parent 1c4cebb84b
commit 0ae0af68d8
51 changed files with 9778 additions and 1 deletions

7
NEWS
View File

@ -31,6 +31,13 @@ Major new features:
* The iconv program now supports converting files in place. The program * The iconv program now supports converting files in place. The program
automatically uses a temporary file if required. automatically uses a temporary file if required.
* The following ISO C23 function families (introduced in TS
18661-4:2015) are now supported in <math.h>. Each family includes
functions for float, double, long double, _FloatN and _FloatNx, and a
type-generic macro in <tgmath.h>.
- Trigonometric functions: cospi.
* The GNU C Library now supports a feature test macro _ISOC2Y_SOURCE to * The GNU C Library now supports a feature test macro _ISOC2Y_SOURCE to
enable features from the draft ISO C2Y standard. Only some features from enable features from the draft ISO C2Y standard. Only some features from
this draft standard are supported by the GNU C Library, and as the draft this draft standard are supported by the GNU C Library, and as the draft

View File

@ -240,6 +240,19 @@ All these functions, including the @code{_Float@var{N}} and
should be prepared to cope with their absence. should be prepared to cope with their absence.
@end deftypefun @end deftypefun
@deftypefun double cospi (double @var{x})
@deftypefunx float cospif (float @var{x})
@deftypefunx {long double} cospil (long double @var{x})
@deftypefunx _FloatN cospifN (_Float@var{N} @var{x})
@deftypefunx _FloatNx cospifNx (_Float@var{N}x @var{x})
@standards{TS 18661-4:2015, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return the cosine of pi multiplied by @var{x}. The
return value is in the range @code{-1} to @code{1}.
The @code{cospi} functions are from TS 18661-4:2015.
@end deftypefun
@cindex complex trigonometric functions @cindex complex trigonometric functions
@w{ISO C99} defines variants of the trig functions which work on @w{ISO C99} defines variants of the trig functions which work on

View File

@ -105,6 +105,7 @@ gen-libm-calls = \
s_cexpF \ s_cexpF \
s_clog10F \ s_clog10F \
s_clogF \ s_clogF \
s_cospiF \
s_cpowF \ s_cpowF \
s_cprojF \ s_cprojF \
s_csinF \ s_csinF \
@ -635,6 +636,7 @@ libm-test-funcs-auto = \
clog10 \ clog10 \
cos \ cos \
cosh \ cosh \
cospi \
cpow \ cpow \
csin \ csin \
csinh \ csinh \
@ -932,6 +934,7 @@ tgmath3-macros = \
copysign \ copysign \
cos \ cos \
cosh \ cosh \
cospi \
cproj \ cproj \
creal \ creal \
erf \ erf \
@ -1324,6 +1327,7 @@ CFLAGS-s_conj.c += -fno-builtin-conjl
CFLAGS-s_copysign.c += -fno-builtin-copysignl CFLAGS-s_copysign.c += -fno-builtin-copysignl
CFLAGS-s_cos.c += -fno-builtin-cosl CFLAGS-s_cos.c += -fno-builtin-cosl
CFLAGS-w_cosh.c += -fno-builtin-coshl CFLAGS-w_cosh.c += -fno-builtin-coshl
CFLAGS-s_cospi.c += -fno-builtin-cospil
CFLAGS-s_cpow.c += -fno-builtin-cpowl CFLAGS-s_cpow.c += -fno-builtin-cpowl
CFLAGS-s_cproj.c += -fno-builtin-cprojl CFLAGS-s_cproj.c += -fno-builtin-cprojl
CFLAGS-s_creal.c += -fno-builtin-creall CFLAGS-s_creal.c += -fno-builtin-creall
@ -1462,6 +1466,7 @@ CFLAGS-s_conj.c += -fno-builtin-conjf32x -fno-builtin-conjf64
CFLAGS-s_copysign.c += -fno-builtin-copysignf32x -fno-builtin-copysignf64 CFLAGS-s_copysign.c += -fno-builtin-copysignf32x -fno-builtin-copysignf64
CFLAGS-s_cos.c += -fno-builtin-cosf32x -fno-builtin-cosf64 CFLAGS-s_cos.c += -fno-builtin-cosf32x -fno-builtin-cosf64
CFLAGS-w_cosh.c += -fno-builtin-coshf32x -fno-builtin-coshf64 CFLAGS-w_cosh.c += -fno-builtin-coshf32x -fno-builtin-coshf64
CFLAGS-s_cospi.c += -fno-builtin-cospif32x -fno-builtin-cospif64
CFLAGS-s_cpow.c += -fno-builtin-cpowf32x -fno-builtin-cpowf64 CFLAGS-s_cpow.c += -fno-builtin-cpowf32x -fno-builtin-cpowf64
CFLAGS-s_cproj.c += -fno-builtin-cprojf32x -fno-builtin-cprojf64 CFLAGS-s_cproj.c += -fno-builtin-cprojf32x -fno-builtin-cprojf64
CFLAGS-s_creal.c += -fno-builtin-crealf32x -fno-builtin-crealf64 CFLAGS-s_creal.c += -fno-builtin-crealf32x -fno-builtin-crealf64
@ -1586,6 +1591,7 @@ CFLAGS-s_conjf.c += -fno-builtin-conjf32
CFLAGS-s_copysignf.c += -fno-builtin-copysignf32 CFLAGS-s_copysignf.c += -fno-builtin-copysignf32
CFLAGS-s_cosf.c += -fno-builtin-cosf32 CFLAGS-s_cosf.c += -fno-builtin-cosf32
CFLAGS-w_coshf.c += -fno-builtin-coshf32 CFLAGS-w_coshf.c += -fno-builtin-coshf32
CFLAGS-s_cospif.c += -fno-builtin-cospif32
CFLAGS-s_cpowf.c += -fno-builtin-cpowf32 CFLAGS-s_cpowf.c += -fno-builtin-cpowf32
CFLAGS-s_cprojf.c += -fno-builtin-cprojf32 CFLAGS-s_cprojf.c += -fno-builtin-cprojf32
CFLAGS-s_crealf.c += -fno-builtin-crealf32 CFLAGS-s_crealf.c += -fno-builtin-crealf32

View File

@ -653,4 +653,10 @@ libm {
log10p1f64x; log10p1f128; log10p1f64x; log10p1f128;
logp1f64x; logp1f128; logp1f64x; logp1f128;
} }
GLIBC_2.41 {
# Functions not involving _Float64x or _Float128, for all configurations.
cospi; cospif; cospil; cospif32; cospif64; cospif32x;
# Functions involving _Float64x or _Float128, for some configurations.
cospif64x; cospif128;
}
} }

View File

@ -4463,6 +4463,97 @@ cos 0x2.3c6ef4p-12
# the next value generates larger error bounds on x86_64 (binary128) # the next value generates larger error bounds on x86_64 (binary128)
cos 0xe.6672d458b05edf50af4fab1a42p+40 cos 0xe.6672d458b05edf50af4fab1a42p+40
cospi 0
cospi -0
cospi min
cospi -min
cospi min_subnorm
cospi -min_subnorm
cospi max
cospi -max
cospi 1
cospi -1
cospi 2
cospi -2
cospi 3
cospi -3
cospi 0.1
cospi -0.1
cospi 0.2
cospi -0.2
cospi 0.3
cospi -0.3
cospi 0.4
cospi -0.4
cospi 0.5
cospi -0.5
cospi 0.6
cospi -0.6
cospi 0.7
cospi -0.7
cospi 0.8
cospi -0.8
cospi 0.9
cospi -0.9
cospi 1.1
cospi -1.1
cospi 1.2
cospi -1.2
cospi 1.3
cospi -1.3
cospi 1.4
cospi -1.4
cospi 1.5
cospi -1.5
cospi 2.5
cospi -2.5
cospi 3.5
cospi -3.5
cospi 4.5
cospi -4.5
cospi 0.24
cospi -0.24
cospi 0.49
cospi -0.49
cospi 0.51
cospi -0.51
cospi 0.76
cospi -0.76
cospi 1.24
cospi -1.24
cospi 1.49
cospi -1.49
cospi 1.51
cospi -1.51
cospi 1.76
cospi -1.76
cospi 100.24
cospi -100.24
cospi 100.49
cospi -100.49
cospi 100.51
cospi -100.51
cospi 100.76
cospi -100.76
cospi 1234.56
cospi -1234.56
cospi 0x1fffff.6p0
cospi -0x1fffff.6p0
cospi 0x1fffff.ap0
cospi -0x1fffff.ap0
cospi 0x3ffffffffffff.6p0
cospi -0x3ffffffffffff.6p0
cospi 0x3ffffffffffff.ap0
cospi -0x3ffffffffffff.ap0
cospi 0x1fffffffffffffff.6p0
cospi -0x1fffffffffffffff.6p0
cospi 0x1fffffffffffffff.ap0
cospi -0x1fffffffffffffff.ap0
cospi 0x3fffffffffffffffffffffffffff.6p0
cospi -0x3fffffffffffffffffffffffffff.6p0
cospi 0x3fffffffffffffffffffffffffff.ap0
cospi -0x3fffffffffffffffffffffffffff.ap0
cosh 0 cosh 0
cosh -0 cosh -0
cosh 0.75 cosh 0.75

File diff suppressed because it is too large Load Diff

View File

@ -65,6 +65,11 @@ __MATHCALL_VEC (sin,, (_Mdouble_ __x));
/* Tangent of X. */ /* Tangent of X. */
__MATHCALL_VEC (tan,, (_Mdouble_ __x)); __MATHCALL_VEC (tan,, (_Mdouble_ __x));
#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23)
/* Cosine of pi * X. */
__MATHCALL (cospi,, (_Mdouble_ __x));
#endif
/* Hyperbolic functions. */ /* Hyperbolic functions. */
/* Hyperbolic cosine of X. */ /* Hyperbolic cosine of X. */

View File

@ -553,6 +553,7 @@ static test_function test_functions[] =
FUNC_mpc_c_c ("clog10", mpc_log10, false), FUNC_mpc_c_c ("clog10", mpc_log10, false),
FUNC_mpfr_f_f ("cos", mpfr_cos, false), FUNC_mpfr_f_f ("cos", mpfr_cos, false),
FUNC_mpfr_f_f ("cosh", mpfr_cosh, false), FUNC_mpfr_f_f ("cosh", mpfr_cosh, false),
FUNC_mpfr_f_f ("cospi", mpfr_cospi, false),
FUNC ("cpow", ARGS4 (type_fp, type_fp, type_fp, type_fp), FUNC ("cpow", ARGS4 (type_fp, type_fp, type_fp, type_fp),
RET2 (type_fp, type_fp), false, true, false, RET2 (type_fp, type_fp), false, true, false,
CALC (mpc_cc_c, mpc_pow)), CALC (mpc_cc_c, mpc_pow)),

View File

@ -742,6 +742,7 @@ class Tests(object):
('_Float64x', 'f64x')): ('_Float64x', 'f64x')):
self.add_tests(prefix + fn, ret, ['r'] * args) self.add_tests(prefix + fn, ret, ['r'] * args)
# TS 18661-4 functions. # TS 18661-4 functions.
self.add_tests('cospi', 'r', ['r'])
self.add_tests('exp10', 'r', ['r']) self.add_tests('exp10', 'r', ['r'])
self.add_tests('exp2m1', 'r', ['r']) self.add_tests('exp2m1', 'r', ['r'])
self.add_tests('exp10m1', 'r', ['r']) self.add_tests('exp10m1', 'r', ['r'])

49
math/libm-test-cospi.inc Normal file
View File

@ -0,0 +1,49 @@
/* Test cospi.
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 cospi_test_data[] =
{
TEST_f_f (cospi, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (cospi, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (cospi, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (cospi, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (cospi, snan_value, qnan_value, INVALID_EXCEPTION),
TEST_f_f (cospi, -snan_value, qnan_value, INVALID_EXCEPTION),
AUTO_TESTS_f_f (cospi),
};
static void
cospi_test (void)
{
ALL_RM_TEST (cospi, 0, cospi_test_data, RUN_TEST_LOOP_f_f, END);
}
static void
do_test (void)
{
cospi_test ();
}
/*
* Local Variables:
* mode:c
* End:
*/

39
math/s_cospi_template.c Normal file
View File

@ -0,0 +1,39 @@
/* Return cosine of pi * 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>
FLOAT
M_DECL_FUNC (__cospi) (FLOAT x)
{
if (isless (M_FABS (x), M_EPSILON))
return M_LIT (1.0);
if (__glibc_unlikely (isinf (x)))
__set_errno (EDOM);
x = M_FABS (x - M_MLIT (2.0) * M_SUF (round) (M_LIT (0.5) * x));
if (islessequal (x, M_LIT (0.25)))
return M_SUF (__cos) (M_MLIT (M_PI) * x);
else if (x == M_LIT (0.5))
return M_LIT (0.0);
else if (islessequal (x, M_LIT (0.75)))
return M_SUF (__sin) (M_MLIT (M_PI) * (M_LIT (0.5) - x));
else
return -M_SUF (__cos) (M_MLIT (M_PI) * (M_LIT (1.0) - x));
}
declare_mgen_alias (__cospi, cospi);

View File

@ -48,7 +48,7 @@ volatile int count_cdouble;
volatile int count_cfloat; volatile int count_cfloat;
volatile int count_cldouble; volatile int count_cldouble;
#define NCALLS 168 #define NCALLS 170
#define NCALLS_INT 4 #define NCALLS_INT 4
#define NCCALLS 47 #define NCCALLS 47
@ -232,6 +232,7 @@ F(compile_test) (void)
uintmax_t um; uintmax_t um;
a = cos (cos (x)); a = cos (cos (x));
a = cospi (cospi (x));
b = acos (acos (a)); b = acos (acos (a));
a = sin (sin (x)); a = sin (sin (x));
b = asin (asin (a)); b = asin (asin (a));
@ -350,6 +351,7 @@ F(compile_test) (void)
if (0) if (0)
{ {
a = cos (y); a = cos (y);
a = cospi (y);
a = acos (y); a = acos (y);
a = sin (y); a = sin (y);
a = asin (y); a = asin (y);
@ -467,6 +469,14 @@ TYPE
return x; return x;
} }
TYPE
(F(cospi)) (TYPE x)
{
++count;
P ();
return x;
}
TYPE TYPE
(F(acos)) (TYPE x) (F(acos)) (TYPE x)
{ {

View File

@ -817,6 +817,10 @@
/* Tangent of X. */ /* Tangent of X. */
#define tan(Val) __TGMATH_UNARY_REAL_IMAG (Val, tan, ctan) #define tan(Val) __TGMATH_UNARY_REAL_IMAG (Val, tan, ctan)
#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23)
/* Cosine of pi * X. */
# define cospi(Val) __TGMATH_UNARY_REAL_ONLY (Val, cospi)
#endif
/* Hyperbolic functions. */ /* Hyperbolic functions. */

View File

@ -792,6 +792,30 @@ float: 2
float128: 3 float128: 3
ldouble: 3 ldouble: 3
Function: "cospi":
double: 1
float: 1
float128: 1
ldouble: 1
Function: "cospi_downward":
double: 1
float: 1
float128: 2
ldouble: 1
Function: "cospi_towardzero":
double: 1
float: 1
float128: 2
ldouble: 1
Function: "cospi_upward":
double: 1
float: 1
float128: 1
ldouble: 1
Function: Real part of "cpow": Function: Real part of "cpow":
double: 2 double: 2
float: 5 float: 5

View File

@ -144,6 +144,9 @@ libm {
__log10p1ieee128; __log10p1ieee128;
__logp1ieee128; __logp1ieee128;
} }
GLIBC_2.41 {
__cospiieee128;
}
} }
libc { libc {
LDBL_IBM128_VERSION { LDBL_IBM128_VERSION {

View File

@ -42,6 +42,7 @@ libnldbl-calls = \
copysign \ copysign \
cos \ cos \
cosh \ cosh \
cospi \
cpow \ cpow \
cproj \ cproj \
creal \ creal \
@ -280,6 +281,7 @@ CFLAGS-nldbl-conj.c = -fno-builtin-conjl
CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl
CFLAGS-nldbl-cos.c = -fno-builtin-cosl CFLAGS-nldbl-cos.c = -fno-builtin-cosl
CFLAGS-nldbl-cosh.c = -fno-builtin-coshl CFLAGS-nldbl-cosh.c = -fno-builtin-coshl
CFLAGS-nldbl-cospi.c = -fno-builtin-cospi
CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl
CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl
CFLAGS-nldbl-creal.c = -fno-builtin-creall CFLAGS-nldbl-creal.c = -fno-builtin-creall

View File

@ -0,0 +1,8 @@
#include "nldbl-compat.h"
double
attribute_hidden
cospil (double x)
{
return cospi (x);
}

View File

@ -1221,3 +1221,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1078,3 +1078,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -37,6 +37,7 @@ CFLAGS-s_cexpl.c += $(config-cflags-signaling-nans)
CFLAGS-s_csinhl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans) CFLAGS-s_csinhl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_clogl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans) CFLAGS-s_clogl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_clog10l.c += -fno-builtin-fabsl $(config-cflags-signaling-nans) CFLAGS-s_clog10l.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_cospil.c += -fno-builtin-fabsl
CFLAGS-s_csinl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans) CFLAGS-s_csinl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-s_csqrtl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans) CFLAGS-s_csqrtl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
CFLAGS-w_acosl_compat.c += -fno-builtin-fabsl CFLAGS-w_acosl_compat.c += -fno-builtin-fabsl

View File

@ -1189,3 +1189,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1348,3 +1348,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -787,3 +787,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -853,3 +853,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1228,3 +1228,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1068,3 +1068,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -914,3 +914,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1189,3 +1189,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -787,3 +787,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1025,3 +1025,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1024,3 +1024,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1018,3 +1018,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1366,3 +1366,12 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 __cospiieee128 F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1068,3 +1068,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1165,3 +1165,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1292,3 +1292,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1292,3 +1292,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -878,3 +878,9 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospil F

View File

@ -1299,3 +1299,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1189,3 +1189,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1222,3 +1222,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1222,3 +1222,11 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F GLIBC_2.40 logp1l F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
GLIBC_2.41 cospif32 F
GLIBC_2.41 cospif32x F
GLIBC_2.41 cospif64 F
GLIBC_2.41 cospif64x F
GLIBC_2.41 cospil F

View File

@ -1004,6 +1004,30 @@ float: 2
Function: "cosh_vlen8_avx2": Function: "cosh_vlen8_avx2":
float: 2 float: 2
Function: "cospi":
double: 1
float: 1
float128: 1
ldouble: 1
Function: "cospi_downward":
double: 1
float: 1
float128: 2
ldouble: 1
Function: "cospi_towardzero":
double: 1
float: 1
float128: 2
ldouble: 1
Function: "cospi_upward":
double: 1
float: 1
float128: 1
ldouble: 1
Function: Real part of "cpow": Function: Real part of "cpow":
double: 2 double: 2
float: 5 float: 5