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
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
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

View file

@ -240,6 +240,19 @@ All these functions, including the @code{_Float@var{N}} and
should be prepared to cope with their absence.
@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
@w{ISO C99} defines variants of the trig functions which work on

View file

@ -105,6 +105,7 @@ gen-libm-calls = \
s_cexpF \
s_clog10F \
s_clogF \
s_cospiF \
s_cpowF \
s_cprojF \
s_csinF \
@ -635,6 +636,7 @@ libm-test-funcs-auto = \
clog10 \
cos \
cosh \
cospi \
cpow \
csin \
csinh \
@ -932,6 +934,7 @@ tgmath3-macros = \
copysign \
cos \
cosh \
cospi \
cproj \
creal \
erf \
@ -1324,6 +1327,7 @@ CFLAGS-s_conj.c += -fno-builtin-conjl
CFLAGS-s_copysign.c += -fno-builtin-copysignl
CFLAGS-s_cos.c += -fno-builtin-cosl
CFLAGS-w_cosh.c += -fno-builtin-coshl
CFLAGS-s_cospi.c += -fno-builtin-cospil
CFLAGS-s_cpow.c += -fno-builtin-cpowl
CFLAGS-s_cproj.c += -fno-builtin-cprojl
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_cos.c += -fno-builtin-cosf32x -fno-builtin-cosf64
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_cproj.c += -fno-builtin-cprojf32x -fno-builtin-cprojf64
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_cosf.c += -fno-builtin-cosf32
CFLAGS-w_coshf.c += -fno-builtin-coshf32
CFLAGS-s_cospif.c += -fno-builtin-cospif32
CFLAGS-s_cpowf.c += -fno-builtin-cpowf32
CFLAGS-s_cprojf.c += -fno-builtin-cprojf32
CFLAGS-s_crealf.c += -fno-builtin-crealf32

View file

@ -653,4 +653,10 @@ libm {
log10p1f64x; log10p1f128;
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)
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.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. */
__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 cosine of X. */

View file

@ -553,6 +553,7 @@ static test_function test_functions[] =
FUNC_mpc_c_c ("clog10", mpc_log10, false),
FUNC_mpfr_f_f ("cos", mpfr_cos, 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),
RET2 (type_fp, type_fp), false, true, false,
CALC (mpc_cc_c, mpc_pow)),

View file

@ -742,6 +742,7 @@ class Tests(object):
('_Float64x', 'f64x')):
self.add_tests(prefix + fn, ret, ['r'] * args)
# TS 18661-4 functions.
self.add_tests('cospi', 'r', ['r'])
self.add_tests('exp10', 'r', ['r'])
self.add_tests('exp2m1', '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_cldouble;
#define NCALLS 168
#define NCALLS 170
#define NCALLS_INT 4
#define NCCALLS 47
@ -232,6 +232,7 @@ F(compile_test) (void)
uintmax_t um;
a = cos (cos (x));
a = cospi (cospi (x));
b = acos (acos (a));
a = sin (sin (x));
b = asin (asin (a));
@ -350,6 +351,7 @@ F(compile_test) (void)
if (0)
{
a = cos (y);
a = cospi (y);
a = acos (y);
a = sin (y);
a = asin (y);
@ -467,6 +469,14 @@ TYPE
return x;
}
TYPE
(F(cospi)) (TYPE x)
{
++count;
P ();
return x;
}
TYPE
(F(acos)) (TYPE x)
{

View file

@ -817,6 +817,10 @@
/* Tangent of X. */
#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. */

View file

@ -792,6 +792,30 @@ float: 2
float128: 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":
double: 2
float: 5

View file

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

View file

@ -42,6 +42,7 @@ libnldbl-calls = \
copysign \
cos \
cosh \
cospi \
cpow \
cproj \
creal \
@ -280,6 +281,7 @@ CFLAGS-nldbl-conj.c = -fno-builtin-conjl
CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl
CFLAGS-nldbl-cos.c = -fno-builtin-cosl
CFLAGS-nldbl-cosh.c = -fno-builtin-coshl
CFLAGS-nldbl-cospi.c = -fno-builtin-cospi
CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl
CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl
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 logp1f64x 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 logp1f64x 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_clogl.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_csqrtl.c += -fno-builtin-fabsl $(config-cflags-signaling-nans)
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 logp1f64x 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 logp1f64x 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64x 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 logp1f64x 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64x 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64 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 logp1f64x 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 logp1f64x 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 logp1f64x 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 logp1f64x 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 logp1f64x 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 logp1f64 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 logp1f64 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 logp1f64x 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 logp1f64x 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 logp1f64x 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 logp1f64x 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":
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":
double: 2
float: 5