aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <josmyers@redhat.com>2024-12-09 23:01:29 +0000
committerJoseph Myers <josmyers@redhat.com>2024-12-09 23:01:29 +0000
commit28d102d15c6af7f80cb1077e098e020476d26d00 (patch)
treeea46b5497d8ed73dab0ada5d3297e85410b5b097 /math
parentbe13e467641cda4bd147ef3ef3afe9e4c6a35e1d (diff)
downloadglibc-28d102d15c6af7f80cb1077e098e020476d26d00.tar.xz
glibc-28d102d15c6af7f80cb1077e098e020476d26d00.zip
Implement C23 acospi
C23 adds various <math.h> function families originally defined in TS 18661-4. Add the acospi functions (acos(x)/pi). Tested for x86_64 and x86, and with build-many-glibcs.py.
Diffstat (limited to 'math')
-rw-r--r--math/Makefile6
-rw-r--r--math/Versions2
-rw-r--r--math/auto-libm-test-in70
-rw-r--r--math/auto-libm-test-out-acospi3141
-rw-r--r--math/bits/mathcalls.h3
-rw-r--r--math/gen-auto-libm-tests.c1
-rwxr-xr-xmath/gen-tgmath-tests.py1
-rw-r--r--math/libm-test-acospi.inc55
-rw-r--r--math/s_acospi_template.c36
-rw-r--r--math/test-tgmath.c12
-rw-r--r--math/tgmath.h3
11 files changed, 3329 insertions, 1 deletions
diff --git a/math/Makefile b/math/Makefile
index d204ac254c..8209d14e37 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -93,6 +93,7 @@ gen-libm-calls = \
e_scalbF \
k_casinhF \
k_casinhF \
+ s_acospiF \
s_cacosF \
s_cacoshF \
s_canonicalizeF \
@@ -617,6 +618,7 @@ $(objpfx)libm-test-ulps.h: $(ulps-file) gen-libm-test.py
libm-test-funcs-auto = \
acos \
acosh \
+ acospi \
asin \
asinh \
atan \
@@ -925,6 +927,7 @@ tgmath3-macros = \
$(tgmath3-narrow-macros) \
acos \
acosh \
+ acospi \
asin \
asinh \
atan \
@@ -1307,6 +1310,7 @@ math-CPPFLAGS += -DNO_LONG_DOUBLE
# functions.
CFLAGS-w_acos.c += -fno-builtin-acosl
CFLAGS-w_acosh.c += -fno-builtin-acoshl
+CFLAGS-s_acospi.c += -fno-builtin-acospil
CFLAGS-w_asin.c += -fno-builtin-asinl
CFLAGS-s_asinh.c += -fno-builtin-asinhl
CFLAGS-s_atan.c += -fno-builtin-atanl
@@ -1448,6 +1452,7 @@ endif
# Likewise, for _Float32x and _Float64 aliases.
CFLAGS-w_acos.c += -fno-builtin-acosf32x -fno-builtin-acosf64
CFLAGS-w_acosh.c += -fno-builtin-acoshf32x -fno-builtin-acoshf64
+CFLAGS-s_acospi.c += -fno-builtin-acospif32x -fno-builtin-acospif64
CFLAGS-w_asin.c += -fno-builtin-asinf32x -fno-builtin-asinf64
CFLAGS-s_asinh.c += -fno-builtin-asinhf32x -fno-builtin-asinhf64
CFLAGS-s_atan.c += -fno-builtin-atanf32x -fno-builtin-atanf64
@@ -1575,6 +1580,7 @@ CFLAGS-s_yn.c += -fno-builtin-ynf32x -fno-builtin-ynf64
# Likewise, for _Float32 aliases.
CFLAGS-w_acosf.c += -fno-builtin-acosf32
CFLAGS-w_acoshf.c += -fno-builtin-acoshf32
+CFLAGS-s_acospif.c += -fno-builtin-acospif32
CFLAGS-w_asinf.c += -fno-builtin-asinf32
CFLAGS-s_asinhf.c += -fno-builtin-asinhf32
CFLAGS-s_atanf.c += -fno-builtin-atanf32
diff --git a/math/Versions b/math/Versions
index baad0a8f93..d59eb57a22 100644
--- a/math/Versions
+++ b/math/Versions
@@ -655,10 +655,12 @@ libm {
}
GLIBC_2.41 {
# Functions not involving _Float64x or _Float128, for all configurations.
+ acospi; acospif; acospil; acospif32; acospif64; acospif32x;
cospi; cospif; cospil; cospif32; cospif64; cospif32x;
sinpi; sinpif; sinpil; sinpif32; sinpif64; sinpif32x;
tanpi; tanpif; tanpil; tanpif32; tanpif64; tanpif32x;
# Functions involving _Float64x or _Float128, for some configurations.
+ acospif64x; acospif128;
cospif64x; cospif128;
sinpif64x; sinpif128;
tanpif64x; tanpif128;
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 42e75067c4..2abe9e5566 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -88,6 +88,76 @@ acos -min
acos min_subnorm
acos -min_subnorm
+acospi 0
+acospi -0
+acospi 1
+acospi -1
+acospi 0.5
+acospi -0.5
+acospi 0.75
+acospi 2e-17
+acospi 0.0625
+acospi 0x0.ffffffp0
+acospi -0x0.ffffffp0
+acospi 0x0.ffffffff8p0
+acospi -0x0.ffffffff8p0
+acospi 0x0.ffffffffffffp0
+acospi -0x0.ffffffffffffp0
+acospi 0x0.fffffffffffff8p0
+acospi -0x0.fffffffffffff8p0
+acospi 0x0.ffffffffffffffffp0
+acospi -0x0.ffffffffffffffffp0
+acospi 0x0.ffffffffffffffffffffffffffcp0
+acospi -0x0.ffffffffffffffffffffffffffcp0
+acospi 0x0.ffffffffffffffffffffffffffff8p0
+acospi -0x0.ffffffffffffffffffffffffffff8p0
+acospi 0x1p-5
+acospi 0x1p-10
+acospi 0x1p-15
+acospi 0x1p-20
+acospi 0x1p-25
+acospi 0x1p-30
+acospi 0x1p-35
+acospi 0x1p-40
+acospi 0x1p-45
+acospi 0x1p-50
+acospi 0x1p-55
+acospi 0x1p-60
+acospi 0x1p-65
+acospi 0x1p-70
+acospi 0x1p-75
+acospi 0x1p-80
+acospi 0x1p-85
+acospi 0x1p-90
+acospi 0x1p-95
+acospi 0x1p-100
+acospi 0x1p-105
+acospi 0x1p-110
+acospi 0x1p-115
+acospi 0x1p-120
+acospi -0x1p-5
+acospi -0x1p-25
+acospi -0x1p-45
+acospi -0x1p-65
+acospi -0x1p-85
+acospi -0x1p-105
+acospi -0x1p-125
+acospi -0x2.0089a4p-4
+acospi 0xf.04aeep-4
+acospi 0x5.dd258006121b8p-4
+acospi -0x2.35f051e70dbc4p-4
+acospi 0xe.9a5c0d7fabb9aa1p-4
+acospi 0xe.17513589de79b75p-4
+acospi 0x3.e57821d368ebap-4
+acospi 0x2.0bee8p-4
+acospi -0x1.da00d8p-4
+acospi 0x1.fffff3634acd6p-1
+acospi 0xf.fe00271d507ee5dp-4
+acospi min
+acospi -min
+acospi min_subnorm
+acospi -min_subnorm
+
acosh 1
acosh 0x1.000002p0
acosh 0x1.0000000000001p0
diff --git a/math/auto-libm-test-out-acospi b/math/auto-libm-test-out-acospi
new file mode 100644
index 0000000000..25c75ed10f
--- /dev/null
+++ b/math/auto-libm-test-out-acospi
@@ -0,0 +1,3141 @@
+acospi 0
+= acospi downward binary32 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary32 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary32 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary32 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward binary64 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary64 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary64 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward intel96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest intel96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero intel96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward intel96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward m68k96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest m68k96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero m68k96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward m68k96 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward binary128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward ibm128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest ibm128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero ibm128 0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward ibm128 0x0p+0 : 0x8p-4 : inexact-ok
+acospi -0
+= acospi downward binary32 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary32 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary32 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary32 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward binary64 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary64 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary64 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward intel96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest intel96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero intel96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward intel96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward m68k96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest m68k96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero m68k96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward m68k96 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward binary128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest binary128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero binary128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward binary128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi downward ibm128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi tonearest ibm128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi towardzero ibm128 -0x0p+0 : 0x8p-4 : inexact-ok
+= acospi upward ibm128 -0x0p+0 : 0x8p-4 : inexact-ok
+acospi 1
+= acospi downward binary32 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest binary32 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero binary32 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward binary32 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi downward binary64 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest binary64 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero binary64 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward binary64 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi downward intel96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest intel96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero intel96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward intel96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi downward m68k96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest m68k96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero m68k96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward m68k96 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi downward binary128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest binary128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero binary128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward binary128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi downward ibm128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi tonearest ibm128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi towardzero ibm128 0x1p+0 : 0x0p+0 : inexact-ok
+= acospi upward ibm128 0x1p+0 : 0x0p+0 : inexact-ok
+acospi -1
+= acospi downward binary32 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest binary32 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero binary32 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward binary32 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi downward binary64 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest binary64 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero binary64 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward binary64 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi downward intel96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest intel96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero intel96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward intel96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi downward m68k96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest m68k96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero m68k96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward m68k96 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi downward binary128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest binary128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero binary128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward binary128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi downward ibm128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi tonearest ibm128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi towardzero ibm128 -0x1p+0 : 0x1p+0 : inexact-ok
+= acospi upward ibm128 -0x1p+0 : 0x1p+0 : inexact-ok
+acospi 0.5
+= acospi downward binary32 0x8p-4 : 0x5.55555p-4 : inexact-ok
+= acospi tonearest binary32 0x8p-4 : 0x5.555558p-4 : inexact-ok
+= acospi towardzero binary32 0x8p-4 : 0x5.55555p-4 : inexact-ok
+= acospi upward binary32 0x8p-4 : 0x5.555558p-4 : inexact-ok
+= acospi downward binary64 0x8p-4 : 0x5.5555555555554p-4 : inexact-ok
+= acospi tonearest binary64 0x8p-4 : 0x5.5555555555554p-4 : inexact-ok
+= acospi towardzero binary64 0x8p-4 : 0x5.5555555555554p-4 : inexact-ok
+= acospi upward binary64 0x8p-4 : 0x5.5555555555558p-4 : inexact-ok
+= acospi downward intel96 0x8p-4 : 0x5.555555555555555p-4 : inexact-ok
+= acospi tonearest intel96 0x8p-4 : 0x5.5555555555555558p-4 : inexact-ok
+= acospi towardzero intel96 0x8p-4 : 0x5.555555555555555p-4 : inexact-ok
+= acospi upward intel96 0x8p-4 : 0x5.5555555555555558p-4 : inexact-ok
+= acospi downward m68k96 0x8p-4 : 0x5.555555555555555p-4 : inexact-ok
+= acospi tonearest m68k96 0x8p-4 : 0x5.5555555555555558p-4 : inexact-ok
+= acospi towardzero m68k96 0x8p-4 : 0x5.555555555555555p-4 : inexact-ok
+= acospi upward m68k96 0x8p-4 : 0x5.5555555555555558p-4 : inexact-ok
+= acospi downward binary128 0x8p-4 : 0x5.5555555555555555555555555554p-4 : inexact-ok
+= acospi tonearest binary128 0x8p-4 : 0x5.5555555555555555555555555554p-4 : inexact-ok
+= acospi towardzero binary128 0x8p-4 : 0x5.5555555555555555555555555554p-4 : inexact-ok
+= acospi upward binary128 0x8p-4 : 0x5.5555555555555555555555555558p-4 : inexact-ok
+= acospi downward ibm128 0x8p-4 : 0x5.55555555555555555555555554p-4 : inexact-ok
+= acospi tonearest ibm128 0x8p-4 : 0x5.55555555555555555555555556p-4 : inexact-ok
+= acospi towardzero ibm128 0x8p-4 : 0x5.55555555555555555555555554p-4 : inexact-ok
+= acospi upward ibm128 0x8p-4 : 0x5.55555555555555555555555556p-4 : inexact-ok
+acospi -0.5
+= acospi downward binary32 -0x8p-4 : 0xa.aaaaap-4 : inexact-ok
+= acospi tonearest binary32 -0x8p-4 : 0xa.aaaabp-4 : inexact-ok
+= acospi towardzero binary32 -0x8p-4 : 0xa.aaaaap-4 : inexact-ok
+= acospi upward binary32 -0x8p-4 : 0xa.aaaabp-4 : inexact-ok
+= acospi downward binary64 -0x8p-4 : 0xa.aaaaaaaaaaaa8p-4 : inexact-ok
+= acospi tonearest binary64 -0x8p-4 : 0xa.aaaaaaaaaaaa8p-4 : inexact-ok
+= acospi towardzero binary64 -0x8p-4 : 0xa.aaaaaaaaaaaa8p-4 : inexact-ok
+= acospi upward binary64 -0x8p-4 : 0xa.aaaaaaaaaaabp-4 : inexact-ok
+= acospi downward intel96 -0x8p-4 : 0xa.aaaaaaaaaaaaaaap-4 : inexact-ok
+= acospi tonearest intel96 -0x8p-4 : 0xa.aaaaaaaaaaaaaabp-4 : inexact-ok
+= acospi towardzero intel96 -0x8p-4 : 0xa.aaaaaaaaaaaaaaap-4 : inexact-ok
+= acospi upward intel96 -0x8p-4 : 0xa.aaaaaaaaaaaaaabp-4 : inexact-ok
+= acospi downward m68k96 -0x8p-4 : 0xa.aaaaaaaaaaaaaaap-4 : inexact-ok
+= acospi tonearest m68k96 -0x8p-4 : 0xa.aaaaaaaaaaaaaabp-4 : inexact-ok
+= acospi towardzero m68k96 -0x8p-4 : 0xa.aaaaaaaaaaaaaaap-4 : inexact-ok
+= acospi upward m68k96 -0x8p-4 : 0xa.aaaaaaaaaaaaaabp-4 : inexact-ok
+= acospi downward binary128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaaaa8p-4 : inexact-ok
+= acospi tonearest binary128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaaaa8p-4 : inexact-ok
+= acospi towardzero binary128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaaaa8p-4 : inexact-ok
+= acospi upward binary128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaaabp-4 : inexact-ok
+= acospi downward ibm128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaa8p-4 : inexact-ok
+= acospi tonearest ibm128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaacp-4 : inexact-ok
+= acospi towardzero ibm128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaa8p-4 : inexact-ok
+= acospi upward ibm128 -0x8p-4 : 0xa.aaaaaaaaaaaaaaaaaaaaaaaaacp-4 : inexact-ok
+acospi 0.75
+= acospi downward binary32 0xcp-4 : 0x3.ae4c88p-4 : inexact-ok
+= acospi tonearest binary32 0xcp-4 : 0x3.ae4c88p-4 : inexact-ok
+= acospi towardzero binary32 0xcp-4 : 0x3.ae4c88p-4 : inexact-ok
+= acospi upward binary32 0xcp-4 : 0x3.ae4c8cp-4 : inexact-ok
+= acospi downward binary64 0xcp-4 : 0x3.ae4c8868cda3ap-4 : inexact-ok
+= acospi tonearest binary64 0xcp-4 : 0x3.ae4c8868cda3ap-4 : inexact-ok
+= acospi towardzero binary64 0xcp-4 : 0x3.ae4c8868cda3ap-4 : inexact-ok
+= acospi upward binary64 0xcp-4 : 0x3.ae4c8868cda3cp-4 : inexact-ok
+= acospi downward intel96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi tonearest intel96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi towardzero intel96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi upward intel96 0xcp-4 : 0x3.ae4c8868cda3a328p-4 : inexact-ok
+= acospi downward m68k96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi tonearest m68k96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi towardzero m68k96 0xcp-4 : 0x3.ae4c8868cda3a324p-4 : inexact-ok
+= acospi upward m68k96 0xcp-4 : 0x3.ae4c8868cda3a328p-4 : inexact-ok
+= acospi downward binary128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefd42p-4 : inexact-ok
+= acospi tonearest binary128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefd44p-4 : inexact-ok
+= acospi towardzero binary128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefd42p-4 : inexact-ok
+= acospi upward binary128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefd44p-4 : inexact-ok
+= acospi downward ibm128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefdp-4 : inexact-ok
+= acospi tonearest ibm128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefdp-4 : inexact-ok
+= acospi towardzero ibm128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefdp-4 : inexact-ok
+= acospi upward ibm128 0xcp-4 : 0x3.ae4c8868cda3a32545bb41cefep-4 : inexact-ok
+acospi 2e-17
+= acospi downward binary32 0x1.70ef56p-56 : 0x7.fffff8p-4 : inexact-ok
+= acospi tonearest binary32 0x1.70ef56p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary32 0x1.70ef56p-56 : 0x7.fffff8p-4 : inexact-ok
+= acospi upward binary32 0x1.70ef56p-56 : 0x8p-4 : inexact-ok
+= acospi downward binary64 0x1.70ef56p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi tonearest binary64 0x1.70ef56p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 0x1.70ef56p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi upward binary64 0x1.70ef56p-56 : 0x8p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef56p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero m68k96 0x1.70ef56p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward m68k96 0x1.70ef56p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward binary128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4ae00cp-4 : inexact-ok
+= acospi tonearest binary128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4ae00cp-4 : inexact-ok
+= acospi towardzero binary128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4ae00cp-4 : inexact-ok
+= acospi upward binary128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4ae01p-4 : inexact-ok
+= acospi downward ibm128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4aep-4 : inexact-ok
+= acospi tonearest ibm128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4aep-4 : inexact-ok
+= acospi towardzero ibm128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4aep-4 : inexact-ok
+= acospi upward ibm128 0x1.70ef56p-56 : 0x7.fffffffffffff8a907aaff4ae2p-4 : inexact-ok
+= acospi downward binary32 0x1.70ef54p-56 : 0x7.fffff8p-4 : inexact-ok
+= acospi tonearest binary32 0x1.70ef54p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary32 0x1.70ef54p-56 : 0x7.fffff8p-4 : inexact-ok
+= acospi upward binary32 0x1.70ef54p-56 : 0x8p-4 : inexact-ok
+= acospi downward binary64 0x1.70ef54p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi tonearest binary64 0x1.70ef54p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 0x1.70ef54p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi upward binary64 0x1.70ef54p-56 : 0x8p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef54p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero m68k96 0x1.70ef54p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward m68k96 0x1.70ef54p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward binary128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316fp-4 : inexact-ok
+= acospi tonearest binary128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316f4p-4 : inexact-ok
+= acospi towardzero binary128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316fp-4 : inexact-ok
+= acospi upward binary128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316f4p-4 : inexact-ok
+= acospi downward ibm128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316p-4 : inexact-ok
+= acospi tonearest ibm128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316p-4 : inexact-ok
+= acospi towardzero ibm128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee316p-4 : inexact-ok
+= acospi upward ibm128 0x1.70ef54p-56 : 0x7.fffffffffffff8a907b52ee318p-4 : inexact-ok
+= acospi downward binary64 0x1.70ef54646d497p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi tonearest binary64 0x1.70ef54646d497p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 0x1.70ef54646d497p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi upward binary64 0x1.70ef54646d497p-56 : 0x8p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero m68k96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward m68k96 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward binary128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac44cp-4 : inexact-ok
+= acospi tonearest binary128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac45p-4 : inexact-ok
+= acospi towardzero binary128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac44cp-4 : inexact-ok
+= acospi upward binary128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac45p-4 : inexact-ok
+= acospi downward ibm128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi tonearest ibm128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi towardzero ibm128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi upward ibm128 0x1.70ef54646d497p-56 : 0x7.fffffffffffff8a907b32f6ac6p-4 : inexact-ok
+= acospi downward binary64 0x1.70ef54646d496p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi tonearest binary64 0x1.70ef54646d496p-56 : 0x8p-4 : inexact-ok
+= acospi towardzero binary64 0x1.70ef54646d496p-56 : 0x7.ffffffffffffcp-4 : inexact-ok
+= acospi upward binary64 0x1.70ef54646d496p-56 : 0x8p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero m68k96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward m68k96 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward binary128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4ap-4 : inexact-ok
+= acospi tonearest binary128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4ap-4 : inexact-ok
+= acospi towardzero binary128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4ap-4 : inexact-ok
+= acospi upward binary128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4a4p-4 : inexact-ok
+= acospi downward ibm128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi tonearest ibm128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi towardzero ibm128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi upward ibm128 0x1.70ef54646d496p-56 : 0x7.fffffffffffff8a907b32f6ac6p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero m68k96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward m68k96 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward binary128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac474p-4 : inexact-ok
+= acospi tonearest binary128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac474p-4 : inexact-ok
+= acospi towardzero binary128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac474p-4 : inexact-ok
+= acospi upward binary128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac478p-4 : inexact-ok
+= acospi downward ibm128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi tonearest ibm128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi towardzero ibm128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac4p-4 : inexact-ok
+= acospi upward ibm128 0x1.70ef54646d496894p-56 : 0x7.fffffffffffff8a907b32f6ac6p-4 : inexact-ok
+= acospi downward intel96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest intel96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi towardzero intel96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi upward intel96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8bp-4 : inexact-ok
+= acospi downward m68k96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok
+= acospi tonearest m68k96 0x1.70ef54646d496892p-56 : 0x7.fffffffffffff8a8p-4 : inexact-ok