summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-07-14 23:08:52 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-07-14 23:08:52 +0000
commitd02fdcc0c4985eaaef55c176490730fd04b3bfc7 (patch)
treeb8fd448a26a108ac8b000ef78a7d79e4b969a3c9
parent55889e2207b459a195c9a81a72680cba6816da74 (diff)
downloadeglibc2-d02fdcc0c4985eaaef55c176490730fd04b3bfc7.tar.gz
Merge changes between r23438 and r23517 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@23518 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r--libc/ChangeLog30
-rw-r--r--libc/INSTALL2
-rwxr-xr-xlibc/configure3
-rw-r--r--libc/configure.in2
-rw-r--r--libc/ports/ChangeLog.aarch6425
-rw-r--r--libc/ports/ChangeLog.arm6
-rw-r--r--libc/ports/ChangeLog.ia648
-rw-r--r--libc/ports/ChangeLog.tile23
-rw-r--r--libc/ports/sysdeps/aarch64/Makefile4
-rw-r--r--libc/ports/sysdeps/aarch64/libm-test-ulps46
-rw-r--r--libc/ports/sysdeps/arm/include/bits/setjmp.h6
-rw-r--r--libc/ports/sysdeps/tile/libm-test-ulps2924
-rw-r--r--libc/ports/sysdeps/tile/s_fma.c5
-rw-r--r--libc/ports/sysdeps/tile/s_fmaf.c5
-rw-r--r--libc/ports/sysdeps/tile/sfp-machine.h97
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/Makefile6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/Versions6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-static.c84
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h32
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h21
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h21
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/Makefile6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/Versions6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/dl-static.c84
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/ldsodefs.h32
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h37
-rw-r--r--libc/sysdeps/i386/fpu/libm-test-ulps392
-rw-r--r--libc/sysdeps/powerpc/fpu/libm-test-ulps168
-rw-r--r--libc/sysdeps/sparc/fpu/libm-test-ulps311
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h21
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h21
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h22
-rw-r--r--libc/sysdeps/unix/sysv/linux/sys/ptrace.h21
-rw-r--r--libc/sysdeps/x86_64/fpu/libm-test-ulps147
34 files changed, 4197 insertions, 427 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index 985502fb6..5e35974b5 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,33 @@
+2013-07-07 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Regenerate from scratch.
+
+2013-07-05 Jeroen Albers <_jeroen_@yahoo.com>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-07-04 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * configure.in (--enable-lock-elision): Fix message text.
+ * INSTALL: Regenerate.
+ * configure: Regenerate.
+
+2013-07-04 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2013-07-03 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_LISTEN): Add
+ define.
+ (PTRACE_PEEKSIGINFO): Add new value from Linux 3.10.
+ (ptrace_peeksiginfo_args): Add.
+ (__ptrace_peeksiginfo_flags): Add.
+ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
+
2013-07-03 Allan McRae <allan@archlinux.org>
* sysdeps/i386/fpu/libm-test-ulps: Update.
diff --git a/libc/INSTALL b/libc/INSTALL
index e54678fbf..85d6102b0 100644
--- a/libc/INSTALL
+++ b/libc/INSTALL
@@ -146,7 +146,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
dynamic tests so that they can be invoked directly.
`--enable-lock-elision=yes'
- Enable lock elision for pthread mutexes and rwlocks by default.
+ Enable lock elision for pthread mutexes by default.
`--build=BUILD-SYSTEM'
`--host=HOST-SYSTEM'
diff --git a/libc/configure b/libc/configure
index b904cc85e..fcfb9273d 100755
--- a/libc/configure
+++ b/libc/configure
@@ -1401,8 +1401,7 @@ Optional Features:
initialize __stack_chk_guard canary with a random
number at program start
--enable-lock-elision=yes/no
- Enable lock elision for pthread mutexes and rwlocks
- by default
+ Enable lock elision for pthread mutexes by default
--enable-add-ons[=DIRS...]
configure and build add-ons in DIR1,DIR2,... search
for add-ons if no parameter given
diff --git a/libc/configure.in b/libc/configure.in
index d1f0bf348..dded21fb2 100644
--- a/libc/configure.in
+++ b/libc/configure.in
@@ -186,7 +186,7 @@ fi
AC_ARG_ENABLE([lock-elision],
AC_HELP_STRING([--enable-lock-elision[=yes/no]],
- [Enable lock elision for pthread mutexes and rwlocks by default]),
+ [Enable lock elision for pthread mutexes by default]),
[enable_lock_elision=$enableval],
[enable_lock_elision=no])
if test "$enable_lock_elision" = yes ; then
diff --git a/libc/ports/ChangeLog.aarch64 b/libc/ports/ChangeLog.aarch64
index 25276218e..3f26cb79f 100644
--- a/libc/ports/ChangeLog.aarch64
+++ b/libc/ports/ChangeLog.aarch64
@@ -1,3 +1,28 @@
+2013-07-12 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/aarch64/Makefile (CFLAGS-backtrace.c): Define.
+
+2013-07-09 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/dl-static.c: New file to support
+ variable page size for AArch64.
+ * sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/Makefile: Build dl-static in elf.
+ * sysdeps/unix/sysv/linux/aarch64/Versions: Add _dl_var_init.
+
+2013-07-05 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/aarch64/libm-test-ulps: Regenerate.
+
+2013-07-04 Andreas Jaeger <aj@suse.de>
+
+ For ChangeLog.aarch64:
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (PTRACE_LISTEN):
+ Add define.
+ (PTRACE_PEEKSIGINFO): Add new value from Linux 3.10.
+ (ptrace_peeksiginfo_args): Add.
+ (__ptrace_peeksiginfo_flags): Add.
+
2013-06-28 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* sysdeps/aarch64/dl-machine.h (elf_machine_dynamic): De-reference
diff --git a/libc/ports/ChangeLog.arm b/libc/ports/ChangeLog.arm
index 73f32135c..1e7a35c6a 100644
--- a/libc/ports/ChangeLog.arm
+++ b/libc/ports/ChangeLog.arm
@@ -1,3 +1,9 @@
+2013-07-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/include/bits/setjmp.h [_ISOMAC] (JMP_BUF_REGLIST):
+ Do not define.
+ [_ISOMAC] (__JMP_BUF_SP): Likewise.
+
2013-07-02 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/libm-test-ulps: Regenerated.
diff --git a/libc/ports/ChangeLog.ia64 b/libc/ports/ChangeLog.ia64
index 0189858ff..92b81cba9 100644
--- a/libc/ports/ChangeLog.ia64
+++ b/libc/ports/ChangeLog.ia64
@@ -1,3 +1,11 @@
+2013-07-04 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_LISTEN):
+ Add define.
+ (PTRACE_PEEKSIGINFO): Add new value from Linux 3.10.
+ (ptrace_peeksiginfo_args): Add.
+ (__ptrace_peeksiginfo_flags): Add.
+
2013-06-27 Maciej W. Rozycki <macro@codesourcery.com>
* sysdeps/unix/sysv/linux/ia64/dl-static.c: Do not include
diff --git a/libc/ports/ChangeLog.tile b/libc/ports/ChangeLog.tile
index 978aad5f6..88da5e81d 100644
--- a/libc/ports/ChangeLog.tile
+++ b/libc/ports/ChangeLog.tile
@@ -1,3 +1,26 @@
+2013-07-03 Chris Metcalf <cmetcalf@tilera.com>
+
+ * sysdeps/unix/sysv/linux/tile/dl-static.c: New file to support
+ variable page size for tile.
+ * sysdeps/unix/sysv/linux/tile/ldsodefs.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/Makefile: Build dl-static in elf.
+ * sysdeps/unix/sysv/linux/tile/Versions: Add _dl_var_init.
+
+ * sysdeps/tile/libm-test-ulps: Update with new tests.
+
+ * sysdeps/tile/s_fma.c: Use soft-fp version instead of ieee754.
+ * sysdeps/tile/s_fmaf.c: Likewise.
+ * sysdeps/tile/sfp-machine.h: New file.
+
+2013-07-04 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/tile/sys/ptrace.h (PTRACE_PEEKSIGINFO):
+ Add new value from Linux 3.10.
+ (ptrace_peeksiginfo_args): Add.
+ (__ptrace_peeksiginfo_flags): Add.
+ (PTRACE_SETREGSET, PTRACE_SEIZE, PTRACE_INTERRUPT, PTRACE_LISTEN):
+ Add.
+
2013-06-28 Chris Metcalf <cmetcalf@tilera.com>
* sysdeps/tile/fegetenv.c: Delete now-redundant file.
diff --git a/libc/ports/sysdeps/aarch64/Makefile b/libc/ports/sysdeps/aarch64/Makefile
index ce2cedd52..5af7a1655 100644
--- a/libc/ports/sysdeps/aarch64/Makefile
+++ b/libc/ports/sysdeps/aarch64/Makefile
@@ -1,5 +1,9 @@
long-double-fcts = yes
+ifeq ($(subdir),debug)
+CFLAGS-backtrace.c += -funwind-tables
+endif
+
ifeq ($(subdir),elf)
sysdep-dl-routines += tlsdesc dl-tlsdesc
sysdep_routines += tlsdesc dl-tlsdesc
diff --git a/libc/ports/sysdeps/aarch64/libm-test-ulps b/libc/ports/sysdeps/aarch64/libm-test-ulps
index dc7dc341b..79afb310d 100644
--- a/libc/ports/sysdeps/aarch64/libm-test-ulps
+++ b/libc/ports/sysdeps/aarch64/libm-test-ulps
@@ -7704,6 +7704,20 @@ idouble: 1
Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
+Test "gamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (1.2)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
# hypot
Test "hypot (-0.7, -12.4)":
@@ -8034,6 +8048,28 @@ Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
+# pow10
+Test "pow10 (-1)":
+double: 1
+idouble: 1
+Test "pow10 (-305)":
+double: 1
+idouble: 1
+Test "pow10 (-36)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "pow10 (3)":
+double: 1
+idouble: 1
+Test "pow10 (36)":
+double: 1
+idouble: 1
+Test "pow10 (4932)":
+ildouble: 1
+ldouble: 1
+
# pow_downward
Test "pow_downward (1.5, 1.03125)":
float: 1
@@ -9928,6 +9964,10 @@ ildouble: 1
ldouble: 1
Function: "gamma":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
@@ -9989,6 +10029,12 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "pow10":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
Function: "pow_downward":
float: 1
ifloat: 1
diff --git a/libc/ports/sysdeps/arm/include/bits/setjmp.h b/libc/ports/sysdeps/arm/include/bits/setjmp.h
index 23d8f75cf..1559d7b8e 100644
--- a/libc/ports/sysdeps/arm/include/bits/setjmp.h
+++ b/libc/ports/sysdeps/arm/include/bits/setjmp.h
@@ -24,11 +24,13 @@
# include <sysdeps/arm/bits/setjmp.h>
#endif
+#ifndef _ISOMAC
/* Register list for a ldm/stm instruction to load/store
the general registers from a __jmp_buf. */
-#define JMP_BUF_REGLIST {v1-v6, sl, fp, sp, lr}
+# define JMP_BUF_REGLIST {v1-v6, sl, fp, sp, lr}
/* Index of __jmp_buf where the sp register resides. */
-#define __JMP_BUF_SP 8
+# define __JMP_BUF_SP 8
+#endif
#endif /* include/bits/setjmp.h */
diff --git a/libc/ports/sysdeps/tile/libm-test-ulps b/libc/ports/sysdeps/tile/libm-test-ulps
index 639e8d820..d95f69946 100644
--- a/libc/ports/sysdeps/tile/libm-test-ulps
+++ b/libc/ports/sysdeps/tile/libm-test-ulps
@@ -21,20 +21,16 @@ ifloat: 1
# cacos
Test "Imaginary part of: cacos (+0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
Test "Imaginary part of: cacos (+0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "Imaginary part of: cacos (+0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
@@ -47,20 +43,16 @@ Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
Test "Imaginary part of: cacos (-0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
Test "Imaginary part of: cacos (-0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "Imaginary part of: cacos (-0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
@@ -72,22 +64,619 @@ ifloat: 1
Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i)":
+Test "Real part of: cacos (-0.25 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0.25 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
+double: 1
idouble: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
+float: 1
ifloat: 1
Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
+Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i)":
+Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 + 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 - 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
# cacosh
Test "Real part of: cacosh (+0 + 0.5 i)":
@@ -134,44 +723,632 @@ ifloat: 1
Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i)":
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i)":
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i)":
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i)":
+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
float: 1
ifloat: 1
Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i)":
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0.5 - 0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i)":
+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
# casin
Test "Imaginary part of: casin (+0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
Test "Imaginary part of: casin (+0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (+0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+idouble: 1
Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
@@ -184,20 +1361,16 @@ Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
Test "Imaginary part of: casin (-0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
Test "Imaginary part of: casin (-0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (-0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+idouble: 1
Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
@@ -209,79 +1382,729 @@ ifloat: 1
Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i)":
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 + 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 - 0.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (1.5 + +0 i)":
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-
-# casinh
-Test "Real part of: casinh (-0 + 1.5 i)":
+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0 - 1.5 i)":
+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 + 0.25 i)":
double: 1
+idouble: 1
+Test "Real part of: casin (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 - 0.25 i)":
+double: 1
idouble: 1
+Test "Real part of: casin (1.0 - 0.5 i)":
+float: 1
ifloat: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+
+# casinh
+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (-0.5 + +0 i)":
-double: 2
float: 1
-idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
+float: 1
ifloat: 1
Test "Real part of: casinh (-0.5 - 0 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (-1.0 + +0 i)":
-double: 2
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0.25 i)":
float: 1
-idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
ifloat: 1
Test "Real part of: casinh (-1.0 - 0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-Test "Real part of: casinh (-1.5 + +0 i)":
-double: 2
+Test "Real part of: casinh (-1.0 - 0.25 i)":
float: 1
-idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 - 0 i)":
-double: 2
+Test "Real part of: casinh (-1.0 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
float: 1
-idouble: 2
ifloat: 1
-Test "Real part of: casinh (-2 - 3 i)":
-double: 5
+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
+double: 1
float: 1
-idouble: 5
+idouble: 1
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i)":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
+float: 1
+ifloat: 1
Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1p-105 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1p-112 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
@@ -290,37 +2113,490 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (1.0 + 0.25 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (1.0 - 0.25 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
# catan
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-13 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-13 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-13 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-13 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
# catanh
+Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
Test "Real part of: catanh (-2 - 3 i)":
-double: 4
-idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
+Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
# cbrt
Test "cbrt (-27.0)":
@@ -481,9 +2757,6 @@ ifloat: 1
Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
@@ -517,10 +2790,14 @@ ifloat: 1
# clog10
Test "Imaginary part of: clog10 (-0 + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (-0 - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
@@ -569,31 +2846,47 @@ Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
Test "Imaginary part of: clog10 (-3 + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (-3 - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf + 0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf + 1 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
+Test "Imaginary part of: clog10 (-inf + inf i)":
+double: 1
+idouble: 1
Test "Imaginary part of: clog10 (-inf - 0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf - 1 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0 + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0 - inf i)":
+double: 1
float: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i)":
-float: 1
+idouble: 1
ifloat: 1
Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
@@ -624,11 +2917,16 @@ float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
+double: 1
+idouble: 1
Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
@@ -644,17 +2942,25 @@ idouble: 1
Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
+Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
@@ -662,7 +2968,9 @@ float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
@@ -732,16 +3040,24 @@ Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
Test "Imaginary part of: clog10 (3 + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (3 - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (inf + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (inf - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
# cos
@@ -769,9 +3085,6 @@ ifloat: 1
Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-float: 1
-ifloat: 1
Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
@@ -790,11 +3103,6 @@ ifloat: 4
Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
# csin
Test "Real part of: csin (-0.75 + 710.5 i)":
@@ -1006,25 +3314,17 @@ Test "expm1 (500.0)":
double: 1
idouble: 1
-# fma
-Test "fma (-0x1.fffffffffffffp-711, 0x1.fffffffffffffp-275, 0x1.fffffe00007ffp-983)":
-double: 1
-idouble: 1
-Test "fma (0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300)":
+# gamma
+Test "gamma (0.7)":
double: 1
-idouble: 1
-Test "fma (0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022)":
-double: 1
-idouble: 1
-Test "fma (0x1.4000004p-967, 0x1p-106, 0x0.000001p-1022)":
-double: 1
-idouble: 1
-Test "fma (0x1.7ff8p+13, 0x1.000002p+0, 0x1.ffffp-24)":
float: 1
+idouble: 1
ifloat: 1
-Test "fma (0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022)":
+Test "gamma (1.2)":
double: 1
+float: 2
idouble: 1
+ifloat: 2
# hypot
Test "hypot (-0.7, -12.4)":
@@ -1250,6 +3550,23 @@ Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
+# pow10
+Test "pow10 (-1)":
+double: 1
+idouble: 1
+Test "pow10 (-305)":
+double: 1
+idouble: 1
+Test "pow10 (-36)":
+double: 1
+idouble: 1
+Test "pow10 (3)":
+double: 1
+idouble: 1
+Test "pow10 (36)":
+double: 1
+idouble: 1
+
# sin_tonearest
Test "sin_tonearest (1)":
float: 1
@@ -1280,6 +3597,185 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x0.ffffffp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x1.000002p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x1.0a32a2p+5)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x13.ffffep0)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x14.000000000001p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x14.00002p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x1e.000000000001p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x1e.00002p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x2.0000000000002p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x2.000004p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x29.00004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x3.000004p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (-0x3.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x3.ffffffffffffep0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x31.fffffffffffep0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x4.000008p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x4.fffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x5.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x6.000008p0)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x64.000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x7.0000000000004p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x7.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x7.fffff8p0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "tgamma (-0x7.ffffffffffffcp0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x9.fffffp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0xa.00001p0)":
+double: 1
+idouble: 1
+Test "tgamma (-2.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (-3.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-4.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-5.5)":
+double: 1
+idouble: 1
+Test "tgamma (-6.5)":
+float: 1
+ifloat: 1
+Test "tgamma (-7.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (-8.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-9.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "tgamma (0.5)":
float: 1
ifloat: 1
@@ -1288,6 +3784,162 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "tgamma (0x1.fffffep0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1.fffffffffffffp0)":
+double: 1
+idouble: 1
+Test "tgamma (0x1p-24)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1p-53)":
+double: 1
+idouble: 1
+Test "tgamma (0x2.30a43cp+4)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (0x2.fffffcp0)":
+float: 3
+ifloat: 3
+Test "tgamma (0x3.fffffcp0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x3.ffffffffffffep0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (0x5.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x5.000008p0)":
+float: 2
+ifloat: 2
+Test "tgamma (0x5.fffff8p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0x6.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x6.000008p0)":
+float: 2
+ifloat: 2
+Test "tgamma (0x6.fffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+Test "tgamma (0x7.0000000000004p0)":
+double: 4
+idouble: 4
+Test "tgamma (0x7.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0x7.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+Test "tgamma (10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (18.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (19.5)":
+double: 2
+idouble: 2
+Test "tgamma (2.5)":
+float: 2
+ifloat: 2
+Test "tgamma (23.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (29.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (3)":
+float: 1
+ifloat: 1
+Test "tgamma (3.5)":
+float: 2
+ifloat: 2
+Test "tgamma (30.5)":
+float: 1
+ifloat: 1
+Test "tgamma (33.5)":
+float: 1
+ifloat: 1
+Test "tgamma (34.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (4)":
+float: 1
+ifloat: 1
+Test "tgamma (4.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (6)":
+float: 1
+ifloat: 1
+Test "tgamma (6.5)":
+float: 1
+ifloat: 1
+Test "tgamma (7)":
+double: 1
+idouble: 1
+Test "tgamma (7.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (8)":
+double: 1
+idouble: 1
+Test "tgamma (8.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (9)":
+double: 1
+idouble: 1
+Test "tgamma (9.5)":
+double: 1
+idouble: 1
# y0
Test "y0 (0x1.3ffp+74)":
@@ -1459,25 +4111,27 @@ ifloat: 1
Function: Real part of "cacos":
double: 1
+float: 2
idouble: 1
+ifloat: 2
Function: Imaginary part of "cacos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Function: Real part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
Function: Imaginary part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
Function: Real part of "casin":
double: 1
@@ -1486,22 +4140,26 @@ idouble: 1
ifloat: 1
Function: Imaginary part of "casin":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Function: Real part of "casinh":
-double: 5
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "casinh":
+double: 1
float: 1
-idouble: 5
+idouble: 1
ifloat: 1
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
+Function: Real part of "catan":
+float: 1
+ifloat: 1
Function: Imaginary part of "catan":
double: 1
@@ -1510,8 +4168,14 @@ idouble: 1
ifloat: 1
Function: Real part of "catanh":
-double: 4
-idouble: 4
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catanh":
+float: 1
+ifloat: 1
Function: "cbrt":
double: 1
@@ -1592,9 +4256,7 @@ idouble: 2
ifloat: 4
Function: Imaginary part of "cpow":
-double: 2
float: 2
-idouble: 2
ifloat: 2
Function: Real part of "csin":
@@ -1683,11 +4345,11 @@ float: 1
idouble: 1
ifloat: 1
-Function: "fma":
+Function: "gamma":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
Function: "hypot":
float: 1
@@ -1731,6 +4393,10 @@ Function: "pow":
float: 1
ifloat: 1
+Function: "pow10":
+double: 1
+idouble: 1
+
Function: "sin_tonearest":
float: 1
ifloat: 1
@@ -1746,10 +4412,10 @@ double: 1
idouble: 1
Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
Function: "y0":
double: 2
diff --git a/libc/ports/sysdeps/tile/s_fma.c b/libc/ports/sysdeps/tile/s_fma.c
index c84a9bb2d..d9613fa67 100644
--- a/libc/ports/sysdeps/tile/s_fma.c
+++ b/libc/ports/sysdeps/tile/s_fma.c
@@ -1,4 +1 @@
-/* tile does not support the rounding modes required by the ieee754/dbl-64
- implementation, but it's still better than the generic implementation. */
-
-#include <sysdeps/ieee754/dbl-64/s_fma.c>
+#include <soft-fp/fmadf4.c>
diff --git a/libc/ports/sysdeps/tile/s_fmaf.c b/libc/ports/sysdeps/tile/s_fmaf.c
index 84e9adc41..aa5c9b2d9 100644
--- a/libc/ports/sysdeps/tile/s_fmaf.c
+++ b/libc/ports/sysdeps/tile/s_fmaf.c
@@ -1,4 +1 @@
-/* tile does not support the rounding modes required by the ieee754/dbl-64
- implementation, but it's still better than the generic implementation. */
-
-#include <sysdeps/ieee754/dbl-64/s_fmaf.c>
+#include <soft-fp/fmasf4.c>
diff --git a/libc/ports/sysdeps/tile/sfp-machine.h b/libc/ports/sysdeps/tile/sfp-machine.h
new file mode 100644
index 000000000..3ddc4b4c8
--- /dev/null
+++ b/libc/ports/sysdeps/tile/sfp-machine.h
@@ -0,0 +1,97 @@
+/* Machine-dependent software floating-point definitions, tile version.
+ Copyright (C) 2013 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
+ <http://www.gnu.org/licenses/>. */
+
+#include <bits/wordsize.h>
+
+#define _FP_W_TYPE_SIZE __WORDSIZE
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#if _FP_W_TYPE_SIZE == 64
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_imm(_FP_WFRACBITS_S,R,X,Y)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide_3mul(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S _FP_QNANBIT_S
+#define _FP_NANFRAC_D _FP_QNANBIT_D
+#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
+
+#else /* _FP_W_TYPE_SIZE == 32 */
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S _FP_QNANBIT_S
+#define _FP_NANFRAC_D _FP_QNANBIT_D, 0
+#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0
+
+#endif
+
+#define _FP_NANSIGN_S 1
+#define _FP_NANSIGN_D 1
+#define _FP_NANSIGN_Q 1
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/Makefile b/libc/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
index 97c179add..8a3d76be6 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -7,6 +7,12 @@ endif
ifeq ($(subdir),elf)
sysdep_routines += dl-vdso
sysdep-rtld-routines += __read_tp
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+sysdep_routines += dl-static
+sysdep-rtld-routines += dl-static
+endif
endif
ifeq ($(subdir),misc)
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/Versions b/libc/ports/sysdeps/unix/sysv/linux/aarch64/Versions
index 627ff5352..9bd87fe2d 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/Versions
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/Versions
@@ -1,3 +1,9 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
libc {
GLIBC_PRIVATE {
__vdso_clock_gettime;
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-static.c
new file mode 100644
index 000000000..13b48e933
--- /dev/null
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. AArch64 version.
+ Copyright (C) 2001-2013 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
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/libc/ports/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
new file mode 100644
index 000000000..92877e53d
--- /dev/null
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+ Copyright (C) 2001-2013 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/libc/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/libc/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 7c1e68365..71e1dec11 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -21,6 +21,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -123,7 +124,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -159,6 +164,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/libc/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
index c18d31424..d6f390841 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
@@ -21,6 +21,7 @@
#include <features.h>
#include <sys/ucontext.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -128,7 +129,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -179,6 +184,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile b/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile
index 1c0c968dc..0bcb95f63 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile
@@ -16,4 +16,10 @@ endif
ifeq ($(subdir),elf)
sysdep_routines += dl-vdso
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+sysdep_routines += dl-static
+sysdep-rtld-routines += dl-static
+endif
endif
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/Versions b/libc/ports/sysdeps/unix/sysv/linux/tile/Versions
index 1df7518c7..9b40d2839 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/Versions
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/Versions
@@ -1,3 +1,9 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
libc {
GLIBC_2.12 {
_flush_cache;
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/dl-static.c b/libc/ports/sysdeps/unix/sysv/linux/tile/dl-static.c
new file mode 100644
index 000000000..5b59a04dc
--- /dev/null
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. Tile version.
+ Copyright (C) 2001-2013 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
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/ldsodefs.h b/libc/ports/sysdeps/unix/sysv/linux/tile/ldsodefs.h
new file mode 100644
index 000000000..92877e53d
--- /dev/null
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+ Copyright (C) 2001-2013 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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/libc/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/libc/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
index 55d541dd7..5740dacfe 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
@@ -20,6 +20,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -101,8 +102,28 @@ enum __ptrace_request
#define PT_GETSIGINFO PTRACE_GETSIGINFO
/* Set new siginfo for process. */
- PTRACE_SETSIGINFO = 0x4203
+ PTRACE_SETSIGINFO = 0x4203,
#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -132,6 +153,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+}
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/sysdeps/i386/fpu/libm-test-ulps b/libc/sysdeps/i386/fpu/libm-test-ulps
index 8ab76afe5..530dbd740 100644
--- a/libc/sysdeps/i386/fpu/libm-test-ulps
+++ b/libc/sysdeps/i386/fpu/libm-test-ulps
@@ -263,9 +263,13 @@ ldouble: 1
Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
@@ -422,6 +426,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -432,6 +439,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -470,6 +480,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -481,6 +494,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -635,12 +651,16 @@ ldouble: 1
Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
@@ -799,6 +819,9 @@ idouble: 1
Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
float: 1
ifloat: 1
@@ -821,6 +844,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -831,6 +857,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -876,6 +905,9 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
double: 1
idouble: 1
@@ -897,6 +929,9 @@ idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
double: 1
idouble: 1
@@ -1058,9 +1093,13 @@ ldouble: 1
Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
@@ -1217,6 +1256,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -1227,6 +1269,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -1265,6 +1310,9 @@ ldouble: 1
Test "Imaginary part of: cacosh (-1.0 + 0.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -1276,6 +1324,9 @@ ldouble: 1
Test "Imaginary part of: cacosh (-1.0 - 0.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -1427,12 +1478,16 @@ ldouble: 1
Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
@@ -1594,6 +1649,9 @@ idouble: 1
Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
+Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
float: 1
ifloat: 1
@@ -1616,6 +1674,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -1626,6 +1687,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -1664,6 +1728,9 @@ ldouble: 1
Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
double: 1
float: 1
@@ -1685,6 +1752,9 @@ ldouble: 1
Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
double: 1
float: 1
@@ -1859,9 +1929,13 @@ ldouble: 1
Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
@@ -1914,28 +1988,52 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casin (-0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casin (-0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casin (-0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
+Test "Real part of: casin (-0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
@@ -1954,6 +2052,9 @@ ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-129 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
double: 1
float: 1
@@ -1974,6 +2075,9 @@ ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
double: 1
float: 1
@@ -2040,6 +2144,9 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casin (-0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -2060,6 +2167,9 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -2118,6 +2228,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -2131,6 +2244,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -2255,9 +2371,13 @@ ldouble: 1
Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
@@ -2310,28 +2430,52 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casin (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casin (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casin (0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
+Test "Real part of: casin (0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
@@ -2350,6 +2494,9 @@ ldouble: 1
Test "Imaginary part of: casin (0x1.fp-129 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
double: 1
float: 1
@@ -2370,6 +2517,9 @@ ldouble: 1
Test "Imaginary part of: casin (0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
double: 1
float: 1
@@ -2410,6 +2560,9 @@ idouble: 1
Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
float: 1
ifloat: 1
@@ -2442,6 +2595,9 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casin (0x1p-23 - 0.5 i)":
double: 1
float: 1
@@ -2462,6 +2618,9 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
double: 1
float: 1
@@ -2520,6 +2679,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -2533,6 +2695,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
@@ -2723,6 +2888,9 @@ ldouble: 1
Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
double: 1
float: 1
@@ -2737,11 +2905,20 @@ ldouble: 1
Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
@@ -2838,6 +3015,8 @@ ldouble: 1
Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
@@ -2849,6 +3028,8 @@ ldouble: 1
Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
@@ -2892,17 +3073,32 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
double: 1
float: 1
@@ -2941,17 +3137,32 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
double: 1
float: 1
@@ -3142,6 +3353,9 @@ ldouble: 1
Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
double: 1
float: 1
@@ -3156,11 +3370,20 @@ ldouble: 1
Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
@@ -3221,6 +3444,9 @@ idouble: 1
Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1p-23 + 0.0 i)":
ildouble: 1
ldouble: 1
@@ -3263,6 +3489,8 @@ ldouble: 1
Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
@@ -3274,6 +3502,8 @@ ldouble: 1
Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
@@ -3317,17 +3547,32 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
double: 1
float: 1
@@ -3366,17 +3611,32 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
double: 1
float: 1
@@ -3421,6 +3681,9 @@ ifloat: 1
Test "Imaginary part of: catan (-0x1.0000000000001p0 + 0x1p-27 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
double: 1
idouble: 1
@@ -3454,30 +3717,57 @@ ldouble: 1
Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-64 + 1.0 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-0x1p-64 - 1.0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-1.0 + 0x1p-64 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (-1.0 - 0x1p-13 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-1.0 - 0x1p-64 i)":
ildouble: 1
ldouble: 1
@@ -3500,6 +3790,9 @@ ifloat: 1
Test "Imaginary part of: catan (0x1.0000000000001p0 + 0x1p-27 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
double: 1
idouble: 1
@@ -3533,35 +3826,68 @@ ldouble: 1
Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-64 + 1.0 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (0x1p-64 - 1.0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (1.0 + 0x1p-64 i)":
ildouble: 1
ldouble: 1
Test "Imaginary part of: catan (1.0 - 0x1p-13 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (1.0 - 0x1p-64 i)":
ildouble: 1
ldouble: 1
# catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
ildouble: 1
ldouble: 1
@@ -3580,6 +3906,18 @@ ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
ildouble: 1
ldouble: 1
@@ -3604,6 +3942,18 @@ idouble: 1
Test "Real part of: catanh (-0x1p-13 - 1.0 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-0x1p-64 + 1.0 i)":
ildouble: 1
ldouble: 1
@@ -3616,6 +3966,9 @@ ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1p-64 i)":
ildouble: 1
ldouble: 1
@@ -3625,6 +3978,9 @@ ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1p-64 i)":
ildouble: 1
ldouble: 1
@@ -3654,6 +4010,18 @@ ldouble: 1
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
ildouble: 1
ldouble: 1
@@ -3682,12 +4050,18 @@ idouble: 1
Test "Real part of: catanh (0x1p-27 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
Test "Real part of: catanh (0x1p-27 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
@@ -3706,6 +4080,9 @@ ldouble: 1
Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (1.0 + 0x1p-64 i)":
ildouble: 1
ldouble: 1
@@ -3715,6 +4092,9 @@ ldouble: 1
Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (1.0 - 0x1p-64 i)":
ildouble: 1
ldouble: 1
@@ -3954,6 +4334,9 @@ ifloat: 1
Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
@@ -4527,6 +4910,7 @@ ldouble: 1
# cosh_upward
Test "cosh_upward (22)":
ildouble: 2
+ldouble: 1
Test "cosh_upward (23)":
ildouble: 2
ldouble: 1
@@ -5494,6 +5878,9 @@ idouble: 1
# sinh
Test "sinh (0.75)":
ildouble: 1
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
# sinh_downward
Test "sinh_downward (22)":
@@ -5754,8 +6141,8 @@ ldouble: 2
Test "tgamma (-0x1e.00002p0)":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Test "tgamma (-0x1f4.00000000000002p0)":
ildouble: 3
ldouble: 3
@@ -7062,6 +7449,7 @@ ldouble: 1
Function: "sinh":
ildouble: 1
+ldouble: 1
Function: "sinh_downward":
double: 1
diff --git a/libc/sysdeps/powerpc/fpu/libm-test-ulps b/libc/sysdeps/powerpc/fpu/libm-test-ulps
index 5475b51ca..6fdace9ee 100644
--- a/libc/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/libc/sysdeps/powerpc/fpu/libm-test-ulps
@@ -136,6 +136,9 @@ ldouble: 1
Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
+Test "atan2 (-inf, -inf)":
+ildouble: 1
+ldouble: 1
Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
@@ -147,6 +150,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "atan2 (inf, -inf)":
+ildouble: 1
+ldouble: 1
# atanh
Test "atanh (0.75)":
@@ -766,6 +772,12 @@ ifloat: 1
Test "Real part of: cacos (-2 - 3 i)":
float: 1
ifloat: 1
+Test "Real part of: cacos (-inf + inf i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-inf - inf i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (0.0 + 0x1.000000000000000000000000008p0 i)":
ildouble: 1
ldouble: 1
@@ -809,6 +821,9 @@ idouble: 1
Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
double: 1
idouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (0.5 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
@@ -850,6 +865,9 @@ idouble: 1
Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
double: 1
idouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: cacos (0.5 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
@@ -1756,6 +1774,12 @@ double: 1
float: 3
idouble: 1
ifloat: 3
+Test "Imaginary part of: cacosh (-inf + inf i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-inf - inf i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: cacosh (0.0 + 0x1.000000000000000000000000008p0 i)":
ildouble: 1
ldouble: 1
@@ -1804,6 +1828,9 @@ idouble: 1
Test "Real part of: cacosh (0.5 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
double: 1
idouble: 1
@@ -1847,6 +1874,9 @@ idouble: 1
Test "Real part of: cacosh (0.5 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
double: 1
idouble: 1
@@ -2169,6 +2199,14 @@ Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
+# carg
+Test "carg (-inf + inf i)":
+ildouble: 1
+ldouble: 1
+Test "carg (-inf - inf i)":
+ildouble: 1
+ldouble: 1
+
# casin
Test "Imaginary part of: casin (+0 + 0.5 i)":
double: 2
@@ -2511,7 +2549,9 @@ Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
float: 1
ifloat: 1
Test "Real part of: casin (-0x1p-23 + 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
float: 1
@@ -2528,7 +2568,9 @@ Test "Imaginary part of: casin (-0x1p-23 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casin (-0x1p-23 - 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
float: 1
@@ -2562,6 +2604,9 @@ ifloat: 1
Test "Real part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (-1.0 + 0.25 i)":
+double: 1
+idouble: 1
Test "Real part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
@@ -2578,6 +2623,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casin (-1.0 - 0.25 i)":
+double: 1
+idouble: 1
Test "Real part of: casin (-1.0 - 0.5 i)":
float: 1
ifloat: 1
@@ -2894,7 +2942,9 @@ Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
float: 1
ifloat: 1
Test "Real part of: casin (0x1p-23 + 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
float: 1
@@ -2911,7 +2961,9 @@ Test "Imaginary part of: casin (0x1p-23 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casin (0x1p-23 - 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
float: 1
@@ -2945,6 +2997,9 @@ ifloat: 1
Test "Real part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: casin (1.0 + 0.25 i)":
+double: 1
+idouble: 1
Test "Real part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
@@ -2961,6 +3016,9 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: casin (1.0 - 0.25 i)":
+double: 1
+idouble: 1
Test "Real part of: casin (1.0 - 0.5 i)":
float: 1
ifloat: 1
@@ -3026,6 +3084,12 @@ ldouble: 1
Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
@@ -3046,7 +3110,9 @@ Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
float: 1
ifloat: 1
Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
float: 1
@@ -3082,7 +3148,9 @@ Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
float: 1
ifloat: 1
Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
float: 1
@@ -3432,6 +3500,12 @@ ldouble: 1
Test "Imaginary part of: casinh (0.0 - 0x0.ffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
+double: 1
+idouble: 1
Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
@@ -3448,7 +3522,9 @@ Test "Real part of: casinh (0.5 + 0x1p-23 i)":
float: 1
ifloat: 1
Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: casinh (0.5 + 0x1p-52 i)":
float: 1
@@ -3480,7 +3556,9 @@ Test "Real part of: casinh (0.5 - 0x1p-23 i)":
float: 1
ifloat: 1
Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "Real part of: casinh (0.5 - 0x1p-52 i)":
float: 1
@@ -4623,6 +4701,12 @@ float: 3
ifloat: 3
ildouble: 1
ldouble: 1
+Test "Imaginary part of: clog (-inf + inf i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: clog (-inf - inf i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: clog (0.75 + 1.25 i)":
float: 2
ifloat: 2
@@ -5117,6 +5201,8 @@ double: 2
float: 1
idouble: 2
ifloat: 1
+ildouble: 2
+ldouble: 2
Test "cos (pi/2)":
double: 1
float: 1
@@ -5591,15 +5677,15 @@ double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 5
+ldouble: 5
Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 5
+ldouble: 5
# ctanh
Test "Real part of: ctanh (-2 - 3 i)":
@@ -5718,15 +5804,15 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 5
+ldouble: 5
Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 5
+ldouble: 5
# erf
Test "erf (1.25)":
@@ -5851,6 +5937,8 @@ double: 1
float: 2
idouble: 1
ifloat: 2
+ildouble: 3
+ldouble: 3
# hypot
Test "hypot (-0.7, -12.4)":
@@ -6189,6 +6277,8 @@ idouble: 1
Test "pow10 (-305)":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Test "pow10 (-36)":
double: 1
idouble: 1
@@ -6267,8 +6357,8 @@ ifloat: 1
Test "sin_towardzero (1)":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Test "sin_towardzero (10)":
float: 1
ifloat: 1
@@ -6297,8 +6387,8 @@ ldouble: 1
Test "sin_upward (1)":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Test "sin_upward (2)":
float: 2
ifloat: 2
@@ -6582,8 +6672,8 @@ Test "tgamma (-0x1.0a32a2p+5)":
float: 2
ifloat: 2
Test "tgamma (-0x13.ffffep0)":
-float: 1
-ifloat: 1
+float: 2
+ifloat: 2
Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
ildouble: 2
ldouble: 2
@@ -6647,6 +6737,9 @@ idouble: 1
Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
ildouble: 1
ldouble: 1
+Test "tgamma (-0x28.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
Test "tgamma (-0x28.000000000002p0)":
double: 1
idouble: 1
@@ -6751,11 +6844,13 @@ ldouble: 1
Test "tgamma (-0x7.0000000000004p0)":
double: 3
idouble: 3
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Test "tgamma (-0x7.000008p0)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
Test "tgamma (-0x7.fffff8p0)":
double: 3
float: 1
@@ -6778,6 +6873,8 @@ idouble: 1
ildouble: 2
ldouble: 2
Test "tgamma (-0x9.fffffp0)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "tgamma (-0x96.000000000008p0)":
@@ -6850,7 +6947,9 @@ double: 1
idouble: 1
Test "tgamma (0x2.30a43cp+4)":
double: 1
+float: 2
idouble: 1
+ifloat: 2
Test "tgamma (0x2.fffffcp0)":
float: 3
ifloat: 3
@@ -6899,9 +6998,13 @@ ldouble: 1
Test "tgamma (0x7.0000000000004p0)":
double: 4
idouble: 4
+ildouble: 1
+ldouble: 1
Test "tgamma (0x7.000008p0)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
Test "tgamma (0x7.fffff8p0)":
double: 2
float: 1
@@ -6930,12 +7033,16 @@ idouble: 1
ifloat: 1
Test "tgamma (18.5)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "tgamma (19.5)":
double: 2
idouble: 2
+ildouble: 1
+ldouble: 1
Test "tgamma (2.5)":
float: 2
ifloat: 2
@@ -6957,12 +7064,19 @@ ifloat: 1
Test "tgamma (3.5)":
float: 2
ifloat: 2
+Test "tgamma (30.5)":
+float: 1
+ifloat: 1
Test "tgamma (33.5)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "tgamma (34.5)":
double: 1
+float: 2
idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
Test "tgamma (4)":
@@ -7344,6 +7458,10 @@ float: 3
idouble: 1
ifloat: 3
+Function: "carg":
+ildouble: 1
+ldouble: 1
+
Function: Real part of "casin":
double: 1
float: 1
@@ -7491,6 +7609,8 @@ double: 2
float: 1
idouble: 2
ifloat: 1
+ildouble: 2
+ldouble: 2
Function: "cos_downward":
float: 1
@@ -7807,8 +7927,8 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 3
+ldouble: 3
Function: "hypot":
double: 1
@@ -7881,6 +8001,8 @@ ldouble: 1
Function: "pow10":
double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
Function: "pow_downward":
float: 1
@@ -7919,20 +8041,22 @@ ldouble: 1
Function: "sin_towardzero":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "sin_upward":
float: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "sincos":
double: 1
float: 1
idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Function: "sinh":
ildouble: 1
diff --git a/libc/sysdeps/sparc/fpu/libm-test-ulps b/libc/sysdeps/sparc/fpu/libm-test-ulps
index 6c80ca488..991de8c0b 100644
--- a/libc/sysdeps/sparc/fpu/libm-test-ulps
+++ b/libc/sysdeps/sparc/fpu/libm-test-ulps
@@ -123,26 +123,22 @@ ifloat: 1
# cacos
Test "Imaginary part of: cacos (+0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (+0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (+0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
@@ -161,26 +157,22 @@ idouble: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (-0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacos (-0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
@@ -856,13 +848,6 @@ ldouble: 1
Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Real part of: cacos (-2 - 3 i)":
float: 1
ifloat: 1
@@ -911,8 +896,6 @@ ldouble: 1
Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
-ildouble: 1
-ldouble: 1
Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
@@ -965,8 +948,6 @@ ldouble: 1
Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
-ildouble: 1
-ldouble: 1
Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
@@ -1016,12 +997,6 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
@@ -1507,13 +1482,6 @@ ldouble: 1
Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
# cacosh
Test "Real part of: cacosh (+0 + 0.5 i)":
@@ -1635,8 +1603,6 @@ float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: cacosh (-0.5 + +0 i)":
-double: 1
-idouble: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
@@ -1690,8 +1656,6 @@ Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
Test "Imaginary part of: cacosh (-0.5 - 0 i)":
-double: 1
-idouble: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
@@ -2246,16 +2210,6 @@ ldouble: 1
Test "Real part of: cacosh (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
@@ -2890,39 +2844,25 @@ ldouble: 1
Test "Real part of: cacosh (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
# casin
Test "Imaginary part of: casin (+0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (+0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (+0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
@@ -2941,26 +2881,22 @@ idouble: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (-0 + 0.5 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: casin (-0 + 1.0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0 + 1.5 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
@@ -3550,13 +3486,6 @@ ldouble: 1
Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
@@ -3672,9 +3601,6 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i)":
-ildouble: 1
-ldouble: 1
Test "Real part of: casin (0x0.fffffffffffff8p0 + 0.0 i)":
ildouble: 1
ldouble: 1
@@ -4146,29 +4072,8 @@ ldouble: 1
Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0 - 1.5 i)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
ildouble: 1
ldouble: 1
@@ -4198,9 +4103,7 @@ idouble: 1
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-0.5 + +0 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
@@ -4251,9 +4154,7 @@ Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
Test "Real part of: casinh (-0.5 - 0 i)":
-double: 2
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
@@ -4596,12 +4497,12 @@ Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-1.0 + +0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 + 0.25 i)":
float: 1
ifloat: 1
@@ -4670,12 +4571,12 @@ Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-1.0 - 0 i)":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.0 - 0.25 i)":
float: 1
ifloat: 1
@@ -4744,12 +4645,10 @@ Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-1.5 + +0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
@@ -4764,12 +4663,10 @@ Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
Test "Real part of: casinh (-1.5 - 0 i)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
@@ -4783,20 +4680,6 @@ ldouble: 1
Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i)":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "Imaginary part of: casinh (-2 - 3 i)":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 2
-ldouble: 2
Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
ildouble: 1
ldouble: 1
@@ -5841,13 +5724,11 @@ Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
float: 1
ifloat: 1
Test "Real part of: catanh (-2 - 3 i)":
-double: 4
-idouble: 4
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Test "Real part of: catanh (0.75 + 1.25 i)":
-double: 1
-idouble: 1
ildouble: 1
ldouble: 1
Test "Imaginary part of: catanh (0.75 + 1.25 i)":
@@ -6296,11 +6177,6 @@ ldouble: 1
Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
@@ -6515,9 +6391,6 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i)":
-float: 1
-ifloat: 1
Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
@@ -6956,8 +6829,6 @@ Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
-float: 1
-ifloat: 1
ildouble: 1
ldouble: 1
Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
@@ -6975,8 +6846,8 @@ double: 2
float: 3
idouble: 2
ifloat: 3
-ildouble: 11
-ldouble: 11
+ildouble: 2
+ldouble: 2
Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
@@ -6990,13 +6861,6 @@ ldouble: 2
Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
# csin
Test "Real part of: csin (-0.75 + 11357.25 i)":
@@ -7237,8 +7101,6 @@ ldouble: 1
Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
@@ -7384,18 +7246,14 @@ ifloat: 2
# ctanh
Test "Real part of: ctanh (-2 - 3 i)":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
+ifloat: 1
Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
@@ -7413,13 +7271,9 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
@@ -7573,10 +7427,8 @@ idouble: 1
# exp10
Test "exp10 (-1)":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+idouble: 1
Test "exp10 (-305)":
double: 1
idouble: 1
@@ -7585,18 +7437,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (0.75)":
+Test "exp10 (3)":
double: 1
-float: 1
idouble: 1
-ifloat: 1
-Test "exp10 (3)":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 1
-ldouble: 1
Test "exp10 (36)":
double: 1
idouble: 1
@@ -8335,8 +8178,6 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "tgamma (-0x0.fffffffffffff8p0)":
double: 1
idouble: 1
@@ -9158,8 +8999,6 @@ ifloat: 2
Test "tgamma (4)":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Test "tgamma (4.5)":
double: 1
float: 1
@@ -9491,9 +9330,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "cacos":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
@@ -9523,25 +9362,25 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "casin":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "casinh":
-double: 5
+double: 1
float: 2
-idouble: 5
+idouble: 1
ifloat: 2
-ildouble: 4
-ldouble: 4
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "casinh":
-double: 3
+double: 1
float: 1
-idouble: 3
+idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
@@ -9561,9 +9400,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "catanh":
-double: 4
+double: 1
float: 1
-idouble: 4
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
@@ -9713,13 +9552,11 @@ double: 2
float: 4
idouble: 2
ifloat: 4
-ildouble: 11
-ldouble: 11
+ildouble: 4
+ldouble: 4
Function: Imaginary part of "cpow":
-double: 2
float: 2
-idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
@@ -9917,10 +9754,8 @@ ildouble: 1
ldouble: 1
Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
index e6e916b0f..2104a2d9b 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -20,6 +20,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -115,7 +116,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -152,6 +157,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
index ca2ebb959..e7f7b22cc 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+++ b/libc/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -21,6 +21,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
+#include <bits/types.h>
__BEGIN_DECLS
#ifdef _LINUX_PTRACE_H
@@ -154,7 +155,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -191,6 +196,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
index 7ba8f5f25..7543fa7c6 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -20,7 +20,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
-
+#include <bits/types.h>
#include <bits/wordsize.h>
/* Linux/SPARC kernels up to 2.3.18 do not care much
@@ -198,7 +198,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -235,6 +239,20 @@ enum __ptrace_eventcodes
PTRACE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/sysdeps/unix/sysv/linux/sys/ptrace.h b/libc/sysdeps/unix/sysv/linux/sys/ptrace.h
index 08709bf64..2b78565db 100644
--- a/libc/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/libc/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -20,6 +20,7 @@
#define _SYS_PTRACE_H 1
#include <features.h>
+#include <bits/types.h>
__BEGIN_DECLS
@@ -145,7 +146,11 @@ enum __ptrace_request
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
/* Wait for next group event. */
- PTRACE_LISTEN = 0x4208
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
};
@@ -182,6 +187,20 @@ enum __ptrace_eventcodes
PTRAVE_EVENT_SECCOMP = 7
};
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/libc/sysdeps/x86_64/fpu/libm-test-ulps b/libc/sysdeps/x86_64/fpu/libm-test-ulps
index 563fea83e..d02618a0a 100644
--- a/libc/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/libc/sysdeps/x86_64/fpu/libm-test-ulps
@@ -4233,6 +4233,9 @@ ifloat: 1
Test "Real part of: catan (-0x1p-13 + 1.0 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-13 - 0x0.ffffffp0 i)":
ildouble: 1
ldouble: 1
@@ -4251,12 +4254,27 @@ ldouble: 1
Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
float: 1
ifloat: 1
@@ -4386,6 +4404,9 @@ ifloat: 1
Test "Real part of: catan (0x1p-13 + 1.0 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-13 - 0x0.ffffffp0 i)":
ildouble: 1
ldouble: 1
@@ -4404,12 +4425,27 @@ ldouble: 1
Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
float: 1
ifloat: 1
@@ -4451,6 +4487,12 @@ ildouble: 1
ldouble: 1
# catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
ildouble: 1
ldouble: 1
@@ -4475,6 +4517,18 @@ ldouble: 1
Test "Real part of: catanh (-0x0.ffffffp0 - 0x1p-13 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
float: 1
ifloat: 1
@@ -4570,6 +4624,9 @@ ldouble: 1
Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
float: 1
ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
float: 1
ifloat: 1
@@ -4590,6 +4647,9 @@ ldouble: 1
Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
float: 1
ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
float: 1
ifloat: 1
@@ -4629,6 +4689,12 @@ ldouble: 1
Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
float: 1
ifloat: 1
@@ -4721,6 +4787,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
float: 1
ifloat: 1
@@ -4741,6 +4810,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
float: 1
ifloat: 1
@@ -5582,6 +5654,9 @@ ildouble: 1
ldouble: 1
# cosh_upward
+Test "cosh_upward (22)":
+ildouble: 1
+ldouble: 1
Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
@@ -5776,9 +5851,14 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: ctan (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "Real part of: ctan (0x1p1023 + 1 i)":
@@ -5895,9 +5975,9 @@ ldouble: 1
# ctanh
Test "Real part of: ctanh (-2 - 3 i)":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 1
ldouble: 1
Test "Imaginary part of: ctanh (-2 - 3 i)":
@@ -6039,6 +6119,9 @@ double: 1
idouble: 1
# erfc
+Test "erfc (0.75)":
+float: 1
+ifloat: 1
Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
@@ -6589,6 +6672,11 @@ Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
idouble: 1
+# sinh
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
+
# sinh_downward
Test "sinh_downward (22)":
float: 1
@@ -6934,7 +7022,9 @@ float: 1
ifloat: 1
Test "tgamma (-0x4.fffff8p0)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "tgamma (-0x4.ffffffffffffcp0)":
@@ -6951,9 +7041,9 @@ ildouble: 1
ldouble: 1
Test "tgamma (-0x5.000008p0)":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 1
ldouble: 1
Test "tgamma (-0x5.ffffffffffffcp0)":
@@ -7158,9 +7248,9 @@ ildouble: 1
ldouble: 1
Test "tgamma (-9.5)":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 2
ldouble: 2
Test "tgamma (0.5)":
@@ -7231,6 +7321,8 @@ Test "tgamma (0x4.0000000000004p0)":
double: 1
idouble: 1
Test "tgamma (0x4.fffff8p0)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Test "tgamma (0x4.ffffffffffffcp0)":
@@ -7246,8 +7338,8 @@ Test "tgamma (0x5.0000000000004p0)":
double: 1
idouble: 1
Test "tgamma (0x5.000008p0)":
-float: 2
-ifloat: 2
+float: 3
+ifloat: 3
ildouble: 1
ldouble: 1
Test "tgamma (0x5.fffff8p0)":
@@ -7422,7 +7514,9 @@ ildouble: 1
ldouble: 1
Test "tgamma (9.5)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -7447,7 +7541,9 @@ Test "y0 (0x1p-110)":
double: 1
idouble: 1
Test "y0 (0x1p-20)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Test "y0 (0x1p-30)":
float: 1
@@ -7462,9 +7558,14 @@ ifloat: 1
Test "y0 (0x1p-50)":
float: 1
ifloat: 1
+Test "y0 (0x1p-60)":
+float: 1
+ifloat: 1
Test "y0 (0x1p-70)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
Test "y0 (0x1p-80)":
double: 1
float: 1
@@ -7486,8 +7587,13 @@ float: 1
idouble: 2
ifloat: 1
Test "y0 (10.0)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
+Test "y0 (2.0)":
+double: 1
+idouble: 1
Test "y0 (8.0)":
double: 1
float: 1
@@ -7556,8 +7662,13 @@ float: 1
idouble: 2
ifloat: 1
Test "yn (0, 10.0)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
+Test "yn (0, 2.0)":
+double: 1
+idouble: 1
Test "yn (0, 8.0)":
double: 1
float: 1
@@ -7597,22 +7708,26 @@ ildouble: 2
ldouble: 2
Test "yn (10, 0.75)":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 4
ldouble: 4
Test "yn (10, 1.0)":
double: 1
+float: 2
idouble: 1
+ifloat: 2
Test "yn (10, 10.0)":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Test "yn (10, 2.0)":
-double: 2
-idouble: 2
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
Test "yn (3, 0.125)":
double: 1
idouble: 1
@@ -8239,6 +8354,10 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "sinh":
+ildouble: 1
+ldouble: 1
+
Function: "sinh_downward":
float: 1
ifloat: 1