summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2013-05-26 16:35:31 +0200
committerThomas Schwinge <thomas@codesourcery.com>2013-05-26 16:35:31 +0200
commite0dd512c33c2bfe9a8a54d6ca08ae6848ebbb806 (patch)
treeff97a7e35834fe53d75c114ede7a8c35bf48b2c3
parent2d3004628bff62104d7b1c21cf515b1747896854 (diff)
parent9a079e270a9bec7e1fe28aeda63e07c1bb808d44 (diff)
Merge commit 'refs/top-bases/t/setitimer' into t/setitimer
-rw-r--r--ChangeLog3015
-rw-r--r--Makeconfig7
-rw-r--r--Makefile.in6
-rw-r--r--NEWS51
-rw-r--r--README2
-rw-r--r--Rules28
-rw-r--r--Versions.def1
-rw-r--r--aclocal.m433
-rw-r--r--benchtests/Makefile130
-rw-r--r--benchtests/README74
-rw-r--r--benchtests/acos-inputs7
-rw-r--r--benchtests/acosh-inputs5
-rw-r--r--benchtests/asin-inputs7
-rw-r--r--benchtests/asinh-inputs5
-rw-r--r--benchtests/atan-inputs9
-rw-r--r--benchtests/atanh-inputs5
-rw-r--r--benchtests/bench-modf.c44
-rw-r--r--benchtests/bench-skeleton.c101
-rw-r--r--benchtests/bench-timing.h72
-rw-r--r--benchtests/cos-inputs13
-rw-r--r--benchtests/cosh-inputs5
-rw-r--r--benchtests/exp-inputs4
-rw-r--r--benchtests/log-inputs1
-rw-r--r--benchtests/pow-inputs4
-rw-r--r--benchtests/rint-inputs4
-rw-r--r--benchtests/sin-inputs17
-rw-r--r--benchtests/sinh-inputs5
-rw-r--r--benchtests/tan-inputs5
-rw-r--r--benchtests/tanh-inputs5
-rwxr-xr-xconfigure2
-rw-r--r--configure.in2
-rw-r--r--crypt/sha256-block.c2
-rw-r--r--crypt/sha256-crypt.c1
-rw-r--r--crypt/sha256.c1
-rw-r--r--crypt/sha512-block.c2
-rw-r--r--crypt/sha512-crypt.c1
-rw-r--r--crypt/sha512.c1
-rw-r--r--csu/libc-start.c19
-rw-r--r--csu/libc-tls.c6
-rw-r--r--debug/Makefile7
-rw-r--r--debug/Versions4
-rw-r--r--debug/backtrace-tst.c1
-rw-r--r--debug/pcprofiledump.c1
-rw-r--r--elf/Makefile47
-rw-r--r--elf/cache.c1
-rw-r--r--elf/dl-cache.c2
-rw-r--r--elf/dl-close.c6
-rw-r--r--elf/dl-hwcaps.c14
-rw-r--r--elf/dl-iteratephdr.c4
-rw-r--r--elf/dl-load.c6
-rw-r--r--elf/dl-misc.c24
-rw-r--r--elf/dl-open.c9
-rw-r--r--elf/dl-profile.c1
-rw-r--r--elf/dl-support.c5
-rw-r--r--elf/dl-sysdep.c13
-rw-r--r--elf/dl-writev.h56
-rw-r--r--elf/elf.h32
-rw-r--r--elf/ldconfig.c9
-rw-r--r--elf/sprof.c5
-rw-r--r--iconv/dummy-repertoire.c2
-rw-r--r--iconv/iconv_charmap.c5
-rw-r--r--iconv/iconv_prog.c4
-rw-r--r--iconv/skeleton.c1
-rw-r--r--iconvdata/8bit-generic.c1
-rw-r--r--iconvdata/cp737.h2
-rw-r--r--iconvdata/cp775.h2
-rw-r--r--iconvdata/ibm1008.h2
-rw-r--r--iconvdata/ibm1025.h2
-rw-r--r--iconvdata/ibm1046.h2
-rw-r--r--iconvdata/ibm1097.h2
-rw-r--r--iconvdata/ibm1112.h2
-rw-r--r--iconvdata/ibm1122.h2
-rw-r--r--iconvdata/ibm1123.h2
-rw-r--r--iconvdata/ibm1124.h2
-rw-r--r--iconvdata/ibm1129.h2
-rw-r--r--iconvdata/ibm1130.h2
-rw-r--r--iconvdata/ibm1132.h2
-rw-r--r--iconvdata/ibm1133.h2
-rw-r--r--iconvdata/ibm1137.h2
-rw-r--r--iconvdata/ibm1140.h2
-rw-r--r--iconvdata/ibm1141.h2
-rw-r--r--iconvdata/ibm1142.h2
-rw-r--r--iconvdata/ibm1143.h2
-rw-r--r--iconvdata/ibm1144.h2
-rw-r--r--iconvdata/ibm1145.h2
-rw-r--r--iconvdata/ibm1146.h2
-rw-r--r--iconvdata/ibm1147.h2
-rw-r--r--iconvdata/ibm1148.h2
-rw-r--r--iconvdata/ibm1149.h2
-rw-r--r--iconvdata/ibm1153.h2
-rw-r--r--iconvdata/ibm1154.h2
-rw-r--r--iconvdata/ibm1155.h2
-rw-r--r--iconvdata/ibm1156.h2
-rw-r--r--iconvdata/ibm1157.h2
-rw-r--r--iconvdata/ibm1158.h2
-rw-r--r--iconvdata/ibm1160.h2
-rw-r--r--iconvdata/ibm1161.h2
-rw-r--r--iconvdata/ibm1162.h2
-rw-r--r--iconvdata/ibm1163.h2
-rw-r--r--iconvdata/ibm1164.h2
-rw-r--r--iconvdata/ibm1166.h2
-rw-r--r--iconvdata/ibm1167.h2
-rw-r--r--iconvdata/ibm12712.h2
-rw-r--r--iconvdata/ibm1390.h2
-rw-r--r--iconvdata/ibm1399.h2
-rw-r--r--iconvdata/ibm16804.h2
-rw-r--r--iconvdata/ibm4517.h2
-rw-r--r--iconvdata/ibm4899.h2
-rw-r--r--iconvdata/ibm4909.h2
-rw-r--r--iconvdata/ibm4971.h2
-rw-r--r--iconvdata/ibm5347.h2
-rw-r--r--iconvdata/ibm803.h2
-rw-r--r--iconvdata/ibm856.h2
-rw-r--r--iconvdata/ibm901.h2
-rw-r--r--iconvdata/ibm902.h2
-rw-r--r--iconvdata/ibm9030.h2
-rw-r--r--iconvdata/ibm9066.h2
-rw-r--r--iconvdata/ibm921.h2
-rw-r--r--iconvdata/ibm922.h2
-rw-r--r--iconvdata/ibm9448.h2
-rw-r--r--iconvdata/isiri-3342.h2
-rw-r--r--iconvdata/jis0201.h2
-rw-r--r--include/link.h2
-rw-r--r--include/math.h3
-rw-r--r--include/netdb.h1
-rw-r--r--include/stdlib.h8
-rw-r--r--inet/check_native.c2
-rw-r--r--inet/check_pf.c2
-rw-r--r--inet/getipv4sourcefilter.c1
-rw-r--r--inet/getnameinfo.c1
-rw-r--r--inet/getsourcefilter.c2
-rw-r--r--inet/htonl.c1
-rw-r--r--inet/setipv4sourcefilter.c1
-rw-r--r--inet/setsourcefilter.c1
-rw-r--r--inet/test-inet6_opt.c1
-rw-r--r--inet/tst-network.c1
-rw-r--r--intl/dcigettext.c22
-rw-r--r--intl/loadmsgcat.c7
-rw-r--r--io/Makefile4
-rw-r--r--io/fchdir.c4
-rw-r--r--io/open.c14
-rw-r--r--io/open64.c13
-rw-r--r--io/open64_2.c (renamed from sysdeps/unix/sysv/linux/open64_2.c)8
-rw-r--r--io/open_2.c (renamed from sysdeps/unix/sysv/linux/open_2.c)8
-rw-r--r--io/openat.c14
-rw-r--r--io/openat64.c14
-rw-r--r--io/openat64_2.c29
-rw-r--r--io/openat_2.c29
-rw-r--r--io/poll.c10
-rw-r--r--libidn/ChangeLog7
-rw-r--r--libidn/idna.c1
-rw-r--r--libidn/nfkc.c1
-rw-r--r--libidn/stringprep.c1
-rw-r--r--libio/genops.c4
-rw-r--r--libio/tst-fwrite-error.c2
-rw-r--r--locale/C-collate.c1
-rw-r--r--locale/C-ctype.c1
-rw-r--r--locale/C-time.c1
-rw-r--r--locale/C-translit.h2
-rw-r--r--locale/loadarchive.c1
-rw-r--r--locale/programs/3level.h2
-rw-r--r--locale/programs/charmap-dir.c8
-rw-r--r--locale/programs/charmap.c1
-rw-r--r--locale/programs/charmap.h1
-rw-r--r--locale/programs/ld-address.c1
-rw-r--r--locale/programs/ld-collate.c1
-rw-r--r--locale/programs/ld-ctype.c1
-rw-r--r--locale/programs/ld-identification.c1
-rw-r--r--locale/programs/ld-measurement.c1
-rw-r--r--locale/programs/ld-messages.c1
-rw-r--r--locale/programs/ld-monetary.c1
-rw-r--r--locale/programs/ld-name.c1
-rw-r--r--locale/programs/ld-numeric.c1
-rw-r--r--locale/programs/ld-paper.c1
-rw-r--r--locale/programs/ld-telephone.c1
-rw-r--r--locale/programs/ld-time.c1
-rw-r--r--locale/programs/linereader.c1
-rw-r--r--locale/programs/locale.c1
-rw-r--r--locale/programs/locarchive.c1
-rw-r--r--locale/programs/locfile.c20
-rw-r--r--locale/programs/locfile.h1
-rw-r--r--locale/programs/repertoire.c1
-rw-r--r--locale/programs/simple-hash.c1
-rw-r--r--locale/programs/simple-hash.h1
-rw-r--r--localedata/ChangeLog5
-rw-r--r--localedata/locales/en_CA9
-rw-r--r--localedata/locales/es_AR3
-rw-r--r--localedata/locales/es_ES6
-rw-r--r--localedata/locales/fi_FI2
-rw-r--r--localedata/locales/ia_FR10
-rw-r--r--login/Makefile6
-rw-r--r--login/Versions5
-rw-r--r--login/getlogin.c (renamed from posix/getlogin.c)0
-rw-r--r--login/getlogin_r.c (renamed from posix/getlogin_r.c)0
-rw-r--r--login/getlogin_r_chk.c (renamed from debug/getlogin_r_chk.c)0
-rw-r--r--login/ptsname_r_chk.c (renamed from debug/ptsname_r_chk.c)0
-rw-r--r--login/setlogin.c (renamed from posix/setlogin.c)0
-rw-r--r--malloc/memusage.c1
-rw-r--r--malloc/memusagestat.c1
-rw-r--r--malloc/obstack.c2
-rw-r--r--manual/arith.texi8
-rwxr-xr-xmanual/libm-err-tab.pl4
-rw-r--r--manual/llio.texi3
-rw-r--r--manual/message.texi8
-rw-r--r--manual/platform.texi44
-rw-r--r--math/Makefile30
-rw-r--r--math/README.libm-test50
-rw-r--r--math/Versions3
-rw-r--r--math/atest-exp2.c75
-rw-r--r--math/basic-test.c65
-rw-r--r--math/bits/mathcalls.h6
-rw-r--r--math/complex.h4
-rwxr-xr-xmath/gen-libm-test.pl377
-rw-r--r--math/k_casinh.c52
-rw-r--r--math/k_casinhf.c52
-rw-r--r--math/k_casinhl.c52
-rw-r--r--math/libm-test.inc20357
-rw-r--r--math/math.h14
-rw-r--r--math/s_cacosh.c32
-rw-r--r--math/s_cacoshf.c33
-rw-r--r--math/s_cacoshl.c33
-rw-r--r--math/s_catan.c81
-rw-r--r--math/s_catanf.c83
-rw-r--r--math/s_catanh.c80
-rw-r--r--math/s_catanhf.c82
-rw-r--r--math/s_catanhl.c86
-rw-r--r--math/s_catanl.c87
-rw-r--r--math/s_ccosh.c13
-rw-r--r--math/s_ccoshf.c13
-rw-r--r--math/s_ccoshl.c13
-rw-r--r--math/s_cexp.c12
-rw-r--r--math/s_cexpf.c12
-rw-r--r--math/s_cexpl.c12
-rw-r--r--math/s_csin.c13
-rw-r--r--math/s_csinf.c13
-rw-r--r--math/s_csinh.c13
-rw-r--r--math/s_csinhf.c13
-rw-r--r--math/s_csinhl.c13
-rw-r--r--math/s_csinl.c13
-rw-r--r--math/test-snan.c44
-rw-r--r--math/tst-CMPLX.c2
-rw-r--r--math/tst-CMPLX2.c4
-rw-r--r--math/w_tgamma.c3
-rw-r--r--math/w_tgammaf.c3
-rw-r--r--math/w_tgammal.c3
-rw-r--r--misc/sys/cdefs.h14
-rw-r--r--misc/sys/param.h4
-rw-r--r--nis/nis_defaults.c1
-rw-r--r--nis/nis_hash.c1
-rw-r--r--nis/nis_print.c1
-rw-r--r--nis/nis_xdr.c1
-rw-r--r--nptl/ChangeLog58
-rw-r--r--nptl/pthreadP.h64
-rw-r--r--nptl/pthread_attr_setschedparam.c9
-rw-r--r--nptl/pthread_attr_setschedpolicy.c5
-rw-r--r--nptl/pthread_attr_setstack.c5
-rw-r--r--nptl/pthread_attr_setstacksize.c5
-rw-r--r--nptl/pthread_create.c6
-rw-r--r--nptl/sysdeps/i386/tls.h4
-rw-r--r--nptl/sysdeps/pthread/createthread.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S381
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c20
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sem_post.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S2
-rw-r--r--nptl/sysdeps/x86_64/tls.h4
-rw-r--r--nptl/tst-mutex8.c14
-rw-r--r--nptl_db/ChangeLog13
-rw-r--r--nptl_db/db_info.c1
-rw-r--r--nptl_db/fetch-value.c1
-rw-r--r--nptl_db/td_ta_clear_event.c1
-rw-r--r--nptl_db/td_ta_set_event.c1
-rw-r--r--nptl_db/td_ta_tsd_iter.c1
-rw-r--r--nptl_db/td_thr_clear_event.c1
-rw-r--r--nptl_db/td_thr_get_info.c1
-rw-r--r--nptl_db/td_thr_set_event.c1
-rw-r--r--nptl_db/td_thr_tsd.c1
-rw-r--r--nscd/connections.c1
-rw-r--r--nscd/grpcache.c40
-rw-r--r--nscd/hstcache.c1
-rw-r--r--nscd/initgrcache.c36
-rw-r--r--nscd/nscd.c9
-rw-r--r--nscd/nscd_gethst_r.c1
-rw-r--r--nscd/nscd_getserv_r.c1
-rw-r--r--nscd/nscd_helper.c1
-rw-r--r--nscd/pwdcache.c40
-rw-r--r--nscd/servicescache.c38
-rw-r--r--nss/Makefile2
-rw-r--r--nss/digits_dots.c73
-rw-r--r--nss/getXXbyYY_r.c13
-rw-r--r--nss/getent.c2
-rw-r--r--nss/makedb.c1
-rw-r--r--nss/nss_db/db-XXX.c1
-rw-r--r--nss/nss_db/db-initgroups.c1
-rw-r--r--nss/nss_db/db-netgrp.c1
-rw-r--r--nss/nss_files/files-init.c9
-rw-r--r--nss/nss_files/files-network.c1
-rw-r--r--nss/nss_files/files-parse.c1
-rw-r--r--nss/test-digits-dots.c38
-rw-r--r--po/de.po6
-rw-r--r--po/ru.po12
-rw-r--r--ports/ChangeLog.aarch6437
-rw-r--r--ports/ChangeLog.alpha21
-rw-r--r--ports/ChangeLog.am335
-rw-r--r--ports/ChangeLog.arm61
-rw-r--r--ports/ChangeLog.hppa26
-rw-r--r--ports/ChangeLog.ia6415
-rw-r--r--ports/ChangeLog.m68k15
-rw-r--r--ports/ChangeLog.microblaze109
-rw-r--r--ports/ChangeLog.mips59
-rw-r--r--ports/ChangeLog.powerpc15
-rw-r--r--ports/ChangeLog.tile30
-rw-r--r--ports/sysdeps/aarch64/libm-test-ulps7701
-rw-r--r--ports/sysdeps/aarch64/setjmp.S10
-rw-r--r--ports/sysdeps/aarch64/soft-fp/sfp-machine.h2
-rw-r--r--ports/sysdeps/alpha/fpu/libm-test-ulps1428
-rw-r--r--ports/sysdeps/alpha/soft-fp/sfp-machine.h1
-rw-r--r--ports/sysdeps/am33/atomicity.h1
-rw-r--r--ports/sysdeps/arm/__longjmp.S5
-rwxr-xr-xports/sysdeps/arm/armv7/configure72
-rw-r--r--ports/sysdeps/arm/armv7/configure.in12
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/Makefile3
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/aeabi_memcpy.c2
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c51
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/memcpy.S76
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S642
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/memcpy_neon.S9
-rw-r--r--ports/sysdeps/arm/armv7/multiarch/memcpy_vfp.S7
-rw-r--r--ports/sysdeps/arm/bits/setjmp.h6
-rw-r--r--ports/sysdeps/arm/dl-machine.h25
-rw-r--r--ports/sysdeps/arm/dl-tlsdesc.S31
-rw-r--r--ports/sysdeps/arm/libm-test-ulps946
-rw-r--r--ports/sysdeps/arm/setjmp.S5
-rw-r--r--ports/sysdeps/arm/sysdep.h9
-rw-r--r--ports/sysdeps/hppa/fpu/fpu_control.h4
-rw-r--r--ports/sysdeps/hppa/fpu/libm-test-ulps4865
-rw-r--r--ports/sysdeps/hppa/math_private.h27
-rw-r--r--ports/sysdeps/ia64/fpu/libm-test-ulps340
-rw-r--r--ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps284
-rw-r--r--ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps4726
-rw-r--r--ports/sysdeps/microblaze/Implies4
-rw-r--r--ports/sysdeps/microblaze/Makefile26
-rw-r--r--ports/sysdeps/microblaze/__longjmp.S55
-rw-r--r--ports/sysdeps/microblaze/_mcount.S91
-rw-r--r--ports/sysdeps/microblaze/abort-instr.h2
-rw-r--r--ports/sysdeps/microblaze/asm-syntax.h24
-rw-r--r--ports/sysdeps/microblaze/backtrace.c139
-rw-r--r--ports/sysdeps/microblaze/backtrace_linux.c59
-rwxr-xr-xports/sysdeps/microblaze/bits/atomic.h269
-rw-r--r--ports/sysdeps/microblaze/bits/endian.h30
-rw-r--r--ports/sysdeps/microblaze/bits/fenv.h42
-rw-r--r--ports/sysdeps/microblaze/bits/link.h57
-rw-r--r--ports/sysdeps/microblaze/bits/setjmp.h37
-rw-r--r--ports/sysdeps/microblaze/bsd-_setjmp.S22
-rw-r--r--ports/sysdeps/microblaze/bsd-setjmp.S22
-rw-r--r--ports/sysdeps/microblaze/crti.S88
-rw-r--r--ports/sysdeps/microblaze/crtn.S51
-rw-r--r--ports/sysdeps/microblaze/dl-machine.h299
-rw-r--r--ports/sysdeps/microblaze/dl-tls.h29
-rw-r--r--ports/sysdeps/microblaze/dl-trampoline.S109
-rw-r--r--ports/sysdeps/microblaze/fegetround.c (renamed from ports/sysdeps/aarch64/machine-gmon.h)13
-rw-r--r--ports/sysdeps/microblaze/fesetround.c25
-rw-r--r--ports/sysdeps/microblaze/gccframe.h21
-rw-r--r--ports/sysdeps/microblaze/jmpbuf-unwind.h46
-rw-r--r--ports/sysdeps/microblaze/ldsodefs.h45
-rw-r--r--ports/sysdeps/microblaze/libc-tls.c32
-rw-r--r--ports/sysdeps/microblaze/libm-test-ulps1728
-rw-r--r--ports/sysdeps/microblaze/libm-test-ulps_new3032
-rw-r--r--ports/sysdeps/microblaze/machine-gmon.h30
-rw-r--r--ports/sysdeps/microblaze/math_private.h33
-rw-r--r--ports/sysdeps/microblaze/memusage.h21
-rw-r--r--ports/sysdeps/microblaze/nptl/Makefile21
-rw-r--r--ports/sysdeps/microblaze/nptl/pthread_spin_lock.c24
-rw-r--r--ports/sysdeps/microblaze/nptl/pthreaddef.h40
-rw-r--r--ports/sysdeps/microblaze/nptl/tcb-offsets.sym11
-rw-r--r--ports/sysdeps/microblaze/nptl/tls.h155
-rw-r--r--ports/sysdeps/microblaze/preconfigure3
-rw-r--r--ports/sysdeps/microblaze/setjmp.S75
-rw-r--r--ports/sysdeps/microblaze/shlib-versions1
-rw-r--r--ports/sysdeps/microblaze/sotruss-lib.c52
-rw-r--r--ports/sysdeps/microblaze/stackinfo.h34
-rw-r--r--ports/sysdeps/microblaze/start.S84
-rw-r--r--ports/sysdeps/microblaze/sysdep.h85
-rw-r--r--ports/sysdeps/microblaze/tls-macros.h46
-rw-r--r--ports/sysdeps/microblaze/tst-audit.h25
-rw-r--r--ports/sysdeps/mips/bits/atomic.h1
-rw-r--r--ports/sysdeps/mips/math_private.h27
-rw-r--r--ports/sysdeps/mips/mips32/libm-test-ulps946
-rw-r--r--ports/sysdeps/mips/mips64/libm-test-ulps1358
-rw-r--r--ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h8
-rw-r--r--ports/sysdeps/mips/soft-fp/sfp-machine.h8
-rw-r--r--ports/sysdeps/powerpc/nofpu/libm-test-ulps1200
-rw-r--r--ports/sysdeps/powerpc/soft-fp/sfp-machine.h1
-rw-r--r--ports/sysdeps/tile/crti.S2
-rw-r--r--ports/sysdeps/tile/libm-test-ulps787
-rw-r--r--ports/sysdeps/tile/start.S13
-rw-r--r--ports/sysdeps/tile/tilegx/Makefile21
-rw-r--r--ports/sysdeps/tile/tilegx/memusage.h1
-rw-r--r--ports/sysdeps/tile/tilegx/string-endian.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/aarch64/clone.S3
-rw-r--r--ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S4
-rw-r--r--ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h10
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist4
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h8
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist4
-rw-r--r--ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/Makefile3
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/Versions5
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S29
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h86
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/bits/mman.h42
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/bits/stat.h203
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/brk.c44
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/clone.S72
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/configure4
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/configure.in4
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/fxstatat.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/getsysstats.c34
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/kernel-features.h30
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h49
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/mmap.S50
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h176
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h32
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data67
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c23
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/fork.c29
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist12
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist3
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist6
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist2082
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist9
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist11
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist370
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist123
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist224
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist93
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist42
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist42
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist8
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data11
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h317
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S21
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c89
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S46
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/profil-counter.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/semctl.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/setgroups.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h25
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/socket.S126
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h123
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/sys/user.h77
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/syscall.S37
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/syscalls.list18
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S39
-rwxr-xr-xports/sysdeps/unix/sysv/linux/microblaze/sysdep.h307
-rw-r--r--ports/sysdeps/unix/sysv/linux/microblaze/xstat.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h8
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist4
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h90
-rw-r--r--ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist5
-rw-r--r--ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h10
-rw-r--r--ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist4
-rw-r--r--ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist4
-rw-r--r--ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist4
-rw-r--r--posix/Makefile3
-rw-r--r--posix/Versions2
-rw-r--r--posix/bug-regex5.c1
-rw-r--r--posix/fnmatch_loop.c2
-rw-r--r--posix/regcomp.c2
-rw-r--r--posix/regexec.c2
-rw-r--r--posix/tst-getaddrinfo4.c67
-rw-r--r--posix/tst-rfc3484-2.c1
-rw-r--r--posix/tst-rfc3484-3.c1
-rw-r--r--posix/tst-rfc3484.c1
-rw-r--r--resolv/nss_dns/dns-canon.c1
-rw-r--r--resolv/nss_dns/dns-network.c1
-rw-r--r--resolv/res_debug.c12
-rw-r--r--resolv/res_init.c1
-rw-r--r--resolv/res_mkquery.c1
-rw-r--r--resolv/resolv.h2
-rw-r--r--resolv/tst-aton.c1
-rw-r--r--resource/setrlimit.c9
-rw-r--r--rt/tst-aio7.c17
-rwxr-xr-xscripts/bench.pl117
-rw-r--r--setjmp/Makefile10
-rw-r--r--setjmp/tst-setjmp-fp.c105
-rw-r--r--setjmp/tst-sigsetjmp.c44
-rw-r--r--soft-fp/op-common.h59
-rw-r--r--soft-fp/testit.c8
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/bug26.c37
-rw-r--r--stdio-common/tstdiomisc.c72
-rw-r--r--stdio-common/vfscanf.c16
-rw-r--r--stdlib/Makefile1
-rw-r--r--stdlib/bits/stdlib-ldbl.h4
-rw-r--r--stdlib/cxa_atexit.c1
-rw-r--r--stdlib/cxa_finalize.c1
-rw-r--r--stdlib/cxa_thread_atexit_impl.c2
-rw-r--r--stdlib/exit.c5
-rw-r--r--stdlib/gen-fpioconst.c1
-rw-r--r--stdlib/random.c5
-rw-r--r--stdlib/stdlib.h7
-rw-r--r--stdlib/strtol_l.c1
-rw-r--r--stdlib/tst-strtod6.c15
-rw-r--r--string/bits/string2.h25
-rw-r--r--string/tst-endian.c2
-rw-r--r--sunrpc/auth_des.c1
-rw-r--r--sunrpc/clnt_udp.c1
-rw-r--r--sunrpc/rpc_main.c14
-rw-r--r--sunrpc/rtime.c1
-rw-r--r--sunrpc/svcauth_des.c1
-rw-r--r--sunrpc/xdr.c1
-rw-r--r--sunrpc/xdr_intXX_t.c1
-rw-r--r--sunrpc/xdr_rec.c1
-rw-r--r--sysdeps/generic/inttypes.h7
-rw-r--r--sysdeps/generic/ldconfig.h2
-rw-r--r--sysdeps/generic/ldsodefs.h17
-rw-r--r--sysdeps/generic/math-tests.h6
-rw-r--r--sysdeps/generic/math_private.h12
-rw-r--r--sysdeps/generic/memusage.h1
-rw-r--r--sysdeps/generic/not-cancel.h8
-rw-r--r--sysdeps/generic/stdint.h13
-rw-r--r--sysdeps/gnu/netinet/tcp.h1
-rw-r--r--sysdeps/i386/configure49
-rw-r--r--sysdeps/i386/configure.in29
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps4927
-rw-r--r--sysdeps/i386/fpu/math-tests.h3
-rw-r--r--sysdeps/ieee754/dbl-64/e_atan2.c38
-rw-r--r--sysdeps/ieee754/dbl-64/e_gamma_r.c140
-rw-r--r--sysdeps/ieee754/dbl-64/e_log.c228
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow.c19
-rw-r--r--sysdeps/ieee754/dbl-64/e_remainder.c15
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_product.c75
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_productf.c46
-rw-r--r--sysdeps/ieee754/dbl-64/mpa.h15
-rw-r--r--sysdeps/ieee754/dbl-64/mpatan.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpatan2.c6
-rw-r--r--sysdeps/ieee754/dbl-64/mpexp.c6
-rw-r--r--sysdeps/ieee754/dbl-64/mptan.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_atan.c397
-rw-r--r--sysdeps/ieee754/dbl-64/s_issignaling.c46
-rw-r--r--sysdeps/ieee754/dbl-64/s_nearbyint.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_sin.c2116
-rw-r--r--sysdeps/ieee754/dbl-64/s_tan.c1133
-rw-r--r--sysdeps/ieee754/dbl-64/upow.h2
-rw-r--r--sysdeps/ieee754/dbl-64/urem.h8
-rw-r--r--sysdeps/ieee754/dbl-64/usncs.h2
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/math_private.h1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c43
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c2
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_round.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_gammaf_r.c134
-rw-r--r--sysdeps/ieee754/flt-32/s_issignalingf.c42
-rw-r--r--sysdeps/ieee754/flt-32/s_nearbyintf.c2
-rw-r--r--sysdeps/ieee754/k_standard.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_gammal_r.c145
-rw-r--r--sysdeps/ieee754/ldbl-128/e_rem_pio2l.c10
-rw-r--r--sysdeps/ieee754/ldbl-128/gamma_productl.c75
-rw-r--r--sysdeps/ieee754/ldbl-128/s_issignalingl.c45
-rw-r--r--sysdeps/ieee754/ldbl-128/s_nearbyintl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c144
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c10
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/gamma_productl.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/math_ldbl.h1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c45
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/e_gammal_r.c143
-rw-r--r--sysdeps/ieee754/ldbl-96/e_hypotl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_product.c46
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_productl.c75
-rw-r--r--sysdeps/ieee754/ldbl-96/s_issignalingl.c43
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nearbyintl.c2
-rw-r--r--sysdeps/ieee754/s_lib_version.c9
-rw-r--r--sysdeps/mach/hurd/bits/ioctls.h2
-rw-r--r--sysdeps/mach/hurd/bits/statvfs.h4
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c26
-rw-r--r--sysdeps/mach/hurd/open.c11
-rw-r--r--sysdeps/mach/hurd/openat.c13
-rw-r--r--sysdeps/posix/getaddrinfo.c37
-rw-r--r--sysdeps/posix/opendir.c1
-rw-r--r--sysdeps/posix/timespec_get.c38
-rw-r--r--sysdeps/posix/truncate.c17
-rw-r--r--sysdeps/powerpc/fpu/e_hypot.c23
-rw-r--r--sysdeps/powerpc/fpu/e_hypotf.c22
-rw-r--r--sysdeps/powerpc/fpu/e_sqrt.c2
-rw-r--r--sysdeps/powerpc/fpu/e_sqrtf.c2
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps5617
-rw-r--r--sysdeps/powerpc/math-tests.h27
-rw-r--r--sysdeps/powerpc/power4/fpu/mpa-arch.h2
-rw-r--r--sysdeps/powerpc/power4/fpu/mpa.c20
-rw-r--r--sysdeps/powerpc/power5+/fpu/s_modf.c58
-rw-r--r--sysdeps/powerpc/power5+/fpu/s_modff.c46
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_rint.S6
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_rintf.S6
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/Implies2
-rw-r--r--sysdeps/powerpc/powerpc32/power5/Implies2
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rint.S6
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rintf.S6
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/Implies2
-rw-r--r--sysdeps/powerpc/powerpc64/power5/Implies2
-rw-r--r--sysdeps/powerpc/sys/platform/ppc.h62
-rw-r--r--sysdeps/powerpc/test-gettimebase.c1
-rw-r--r--sysdeps/pthread/aio_fsync.c7
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps1514
-rw-r--r--sysdeps/s390/s390-32/sysdep.h1
-rw-r--r--sysdeps/s390/s390-64/sysdep.h1
-rw-r--r--sysdeps/sh/sh4/fpu/libm-test-ulps356
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps7110
-rw-r--r--sysdeps/sparc/sparc32/soft-fp/sfp-machine.h1
-rw-r--r--sysdeps/sparc/sparc64/soft-fp/sfp-machine.h1
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h4
-rw-r--r--sysdeps/unix/sysv/linux/check_pf.c1
-rw-r--r--sysdeps/unix/sysv/linux/dl-writev.h38
-rw-r--r--sysdeps/unix/sysv/linux/getipv4sourcefilter.c1
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/netlinkaccess.h1
-rw-r--r--sysdeps/unix/sysv/linux/openat.c16
-rw-r--r--sysdeps/unix/sysv/linux/openat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c7
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/init-first.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/time.c62
-rw-r--r--sysdeps/unix/sysv/linux/preadv.c1
-rw-r--r--sysdeps/unix/sysv/linux/pwritev.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/siginfo.h10
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/statfs.h24
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/setipv4sourcefilter.c1
-rw-r--r--sysdeps/unix/sysv/linux/setsourcefilter.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/getgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/nptl/libm.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/siginfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sys/fsuid.h4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/glob64.c3
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/openat.c8
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/siginfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/nptl/libm.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/nptl/libm.abilist5
-rw-r--r--sysdeps/wordsize-64/glob64.c1
-rw-r--r--sysdeps/x86_64/Makefile44
-rw-r--r--sysdeps/x86_64/dl-tls.h1
-rw-r--r--sysdeps/x86_64/dl-tlsdesc.h2
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps6125
-rw-r--r--sysdeps/x86_64/fpu/math_private.h6
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fma.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fmaf.c2
-rw-r--r--sysdeps/x86_64/memset.S1405
-rw-r--r--sysdeps/x86_64/multiarch/Makefile2
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-impl-list.c1
-rw-r--r--sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S175
-rw-r--r--sysdeps/x86_64/multiarch/memcpy.S15
-rw-r--r--sysdeps/x86_64/tst-audit3.c (renamed from elf/tst-audit3.c)0
-rw-r--r--sysdeps/x86_64/tst-audit4.c (renamed from elf/tst-audit4.c)0
-rw-r--r--sysdeps/x86_64/tst-audit5.c (renamed from elf/tst-audit5.c)0
-rw-r--r--sysdeps/x86_64/tst-audit6.c (renamed from elf/tst-audit6.c)0
-rw-r--r--sysdeps/x86_64/tst-audit7.c (renamed from elf/tst-audit7.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod3a.c (renamed from elf/tst-auditmod3a.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod3b.c (renamed from elf/tst-auditmod3b.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod4a.c (renamed from elf/tst-auditmod4a.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod4b.c (renamed from elf/tst-auditmod4b.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod5a.c (renamed from elf/tst-auditmod5a.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod5b.c (renamed from elf/tst-auditmod5b.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod6a.c (renamed from elf/tst-auditmod6a.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod6b.c (renamed from elf/tst-auditmod6b.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod6c.c (renamed from elf/tst-auditmod6c.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod7a.c (renamed from elf/tst-auditmod7a.c)0
-rw-r--r--sysdeps/x86_64/tst-auditmod7b.c (renamed from elf/tst-auditmod7b.c)0
-rw-r--r--time/Makefile2
-rw-r--r--time/alt_digit.c1
-rw-r--r--time/era.c1
-rw-r--r--time/getdate.c42
-rw-r--r--time/strptime_l.c4
-rw-r--r--time/tst-getdate.c4
-rw-r--r--time/tst-strptime-whitespace.c43
-rw-r--r--wcsmbs/tst-c16c32-1.c2
707 files changed, 76614 insertions, 23765 deletions
diff --git a/ChangeLog b/ChangeLog
index f21bf51e1f..6c5111c792 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,3019 @@
+2013-05-24 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15529]
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Set high
+ bit of mantissa of 2^16382.
+ * math/libm-test.inc (hypot_test_data): Add more tests.
+
+ * math/libm-test.inc: Add drem and pow10 to list of tested
+ functions.
+ (pow10_test): New function.
+ (drem_test): Likewise.
+ (drem_test_tonearest): Likewise.
+ (drem_test_towardzero): Likewise.
+ (drem_test_downward): Likewise.
+ (drem_test_upward): Likewise.
+ (main): Call the new functions.
+
+ * math/libm-test.inc (finite_test_data): Remove.
+ (finite_test): Run tests from isfinite_test_data.
+ (gamma_test_data): Remove.
+ (gamma_test): Run tests from lgamma_test_data.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-05-24 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * manual/platform.texi: Add PowerPC PPR function set documentation.
+ * sysdeps/powerpc/sys/platform/ppc.h: Add PowerPC PPR set function
+ implementation.
+
+2013-05-24 Carlos O'Donell <carlos@redhat.com>
+
+ * math/libm-test.inc (MAX_EXP): Define.
+ (ULPDIFF): Define.
+ (ulp): New function.
+ (check_float_internal): Use ULPDIFF.
+ (cpow_test): Disable failing test.
+ (check_ulp): Test ulp() implemetnation.
+ (main): Call check_ulp before starting tests.
+
+2013-05-24 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (generate_testfile): Do not handle
+ START_DATA and END_DATA.
+ * math/libm-test.inc (acos_test_data): Do not use START_DATA and
+ END_DATA.
+ (acos_tonearest_test_data): Likewise.
+ (acos_towardzero_test_data): Likewise.
+ (acos_downward_test_data): Likewise.
+ (acos_upward_test_data): Likewise.
+ (acosh_test_data): Likewise.
+ (asin_test_data): Likewise.
+ (asin_tonearest_test_data): Likewise.
+ (asin_towardzero_test_data): Likewise.
+ (asin_downward_test_data): Likewise.
+ (asin_upward_test_data): Likewise.
+ (asinh_test_data): Likewise.
+ (atan_test_data): Likewise.
+ (atanh_test_data): Likewise.
+ (atan2_test_data): Likewise.
+ (cabs_test_data): Likewise.
+ (cacos_test_data): Likewise.
+ (cacosh_test_data): Likewise.
+ (carg_test_data): Likewise.
+ (casin_test_data): Likewise.
+ (casinh_test_data): Likewise.
+ (catan_test_data): Likewise.
+ (catanh_test_data): Likewise.
+ (cbrt_test_data): Likewise.
+ (ccos_test_data): Likewise.
+ (ccosh_test_data): Likewise.
+ (ceil_test_data): Likewise.
+ (cexp_test_data): Likewise.
+ (cimag_test_data): Likewise.
+ (clog_test_data): Likewise.
+ (clog10_test_data): Likewise.
+ (conj_test_data): Likewise.
+ (copysign_test_data): Likewise.
+ (cos_test_data): Likewise.
+ (cos_tonearest_test_data): Likewise.
+ (cos_towardzero_test_data): Likewise.
+ (cos_downward_test_data): Likewise.
+ (cos_upward_test_data): Likewise.
+ (cosh_test_data): Likewise.
+ (cosh_tonearest_test_data): Likewise.
+ (cosh_towardzero_test_data): Likewise.
+ (cosh_downward_test_data): Likewise.
+ (cosh_upward_test_data): Likewise.
+ (cpow_test_data): Likewise.
+ (cproj_test_data): Likewise.
+ (creal_test_data): Likewise.
+ (csin_test_data): Likewise.
+ (csinh_test_data): Likewise.
+ (csqrt_test_data): Likewise.
+ (ctan_test_data): Likewise.
+ (ctan_tonearest_test_data): Likewise.
+ (ctan_towardzero_test_data): Likewise.
+ (ctan_downward_test_data): Likewise.
+ (ctan_upward_test_data): Likewise.
+ (ctanh_test_data): Likewise.
+ (ctanh_tonearest_test_data): Likewise.
+ (ctanh_towardzero_test_data): Likewise.
+ (ctanh_downward_test_data): Likewise.
+ (ctanh_upward_test_data): Likewise.
+ (erf_test_data): Likewise.
+ (erfc_test_data): Likewise.
+ (exp_test_data): Likewise.
+ (exp_tonearest_test_data): Likewise.
+ (exp_towardzero_test_data): Likewise.
+ (exp_downward_test_data): Likewise.
+ (exp_upward_test_data): Likewise.
+ (exp10_test_data): Likewise.
+ (exp2_test_data): Likewise.
+ (expm1_test_data): Likewise.
+ (fabs_test_data): Likewise.
+ (fdim_test_data): Likewise.
+ (finite_test_data): Likewise.
+ (floor_test_data): Likewise.
+ (fma_test_data): Likewise.
+ (fma_towardzero_test_data): Likewise.
+ (fma_downward_test_data): Likewise.
+ (fma_upward_test_data): Likewise.
+ (fmax_test_data): Likewise.
+ (fmin_test_data): Likewise.
+ (fmod_test_data): Likewise.
+ (fpclassify_test_data): Likewise.
+ (frexp_test_data): Likewise.
+ (gamma_test_data): Likewise.
+ (hypot_test_data): Likewise.
+ (ilogb_test_data): Likewise.
+ (isfinite_test_data): Likewise.
+ (isgreater_test_data): Likewise.
+ (isgreaterequal_test_data): Likewise.
+ (isinf_test_data): Likewise.
+ (isless_test_data): Likewise.
+ (islessequal_test_data): Likewise.
+ (islessgreater_test_data): Likewise.
+ (isnan_test_data): Likewise.
+ (isnormal_test_data): Likewise.
+ (issignaling_test_data): Likewise.
+ (isunordered_test_data): Likewise.
+ (j0_test_data): Likewise.
+ (j1_test_data): Likewise.
+ (jn_test_data): Likewise.
+ (ldexp_test_data): Likewise.
+ (lgamma_test_data): Likewise.
+ (lrint_test_data): Likewise.
+ (lrint_tonearest_test_data): Likewise.
+ (lrint_towardzero_test_data): Likewise.
+ (lrint_downward_test_data): Likewise.
+ (lrint_upward_test_data): Likewise.
+ (llrint_test_data): Likewise.
+ (llrint_tonearest_test_data): Likewise.
+ (llrint_towardzero_test_data): Likewise.
+ (llrint_downward_test_data): Likewise.
+ (llrint_upward_test_data): Likewise.
+ (log_test_data): Likewise.
+ (log10_test_data): Likewise.
+ (log1p_test_data): Likewise.
+ (log2_test_data): Likewise.
+ (logb_test_data): Likewise.
+ (logb_downward_test_data): Likewise.
+ (lround_test_data): Likewise.
+ (llround_test_data): Likewise.
+ (modf_test_data): Likewise.
+ (nearbyint_test_data): Likewise.
+ (nextafter_test_data): Likewise.
+ (nexttoward_test_data): Likewise.
+ (pow_test_data): Likewise.
+ (pow_tonearest_test_data): Likewise.
+ (pow_towardzero_test_data): Likewise.
+ (pow_downward_test_data): Likewise.
+ (pow_upward_test_data): Likewise.
+ (remainder_test_data): Likewise.
+ (remainder_tonearest_test_data): Likewise.
+ (remainder_towardzero_test_data): Likewise.
+ (remainder_downward_test_data): Likewise.
+ (remainder_upward_test_data): Likewise.
+ (remquo_test_data): Likewise.
+ (rint_test_data): Likewise.
+ (rint_tonearest_test_data): Likewise.
+ (rint_towardzero_test_data): Likewise.
+ (rint_downward_test_data): Likewise.
+ (rint_upward_test_data): Likewise.
+ (round_test_data): Likewise.
+ (scalb_test_data): Likewise.
+ (scalbn_test_data): Likewise.
+ (scalbln_test_data): Likewise.
+ (signbit_test_data): Likewise.
+ (sin_test_data): Likewise.
+ (sin_tonearest_test_data): Likewise.
+ (sin_towardzero_test_data): Likewise.
+ (sin_downward_test_data): Likewise.
+ (sin_upward_test_data): Likewise.
+ (sincos_test_data): Likewise.
+ (sinh_test_data): Likewise.
+ (sinh_tonearest_test_data): Likewise.
+ (sinh_towardzero_test_data): Likewise.
+ (sinh_downward_test_data): Likewise.
+ (sinh_upward_test_data): Likewise.
+ (sqrt_test_data): Likewise.
+ (tan_test_data): Likewise.
+ (tan_tonearest_test_data): Likewise.
+ (tan_towardzero_test_data): Likewise.
+ (tan_downward_test_data): Likewise.
+ (tan_upward_test_data): Likewise.
+ (tanh_test_data): Likewise.
+ (tgamma_test_data): Likewise.
+ (trunc_test_data): Likewise.
+ (y0_test_data): Likewise.
+ (y1_test_data): Likewise.
+ (yn_test_data): Likewise.
+ (significand_test_data): Likewise.
+
+ * math/gen-libm-test.pl (@functions): Remove variable.
+ (generate_testfile): Don't handle START and END lines.
+ * math/libm-test.inc (START): New macro.
+ (END): Likewise.
+ (END_COMPLEX): Likewise.
+ (acos_test): Use END macro without arguments.
+ (acos_test_tonearest): Likewise.
+ (acos_test_towardzero): Likewise.
+ (acos_test_downward): Likewise.
+ (acos_test_upward): Likewise.
+ (acosh_test): Likewise.
+ (asin_test): Likewise.
+ (asin_test_tonearest): Likewise.
+ (asin_test_towardzero): Likewise.
+ (asin_test_downward): Likewise.
+ (asin_test_upward): Likewise.
+ (asinh_test): Likewise.
+ (atan_test): Likewise.
+ (atanh_test): Likewise.
+ (atan2_test): Likewise.
+ (cabs_test): Likewise.
+ (cacos_test): Use END_COMPLEX macro without arguments.
+ (cacosh_test): Likewise.
+ (carg_test): Use END macro without arguments.
+ (casin_test): Use END_COMPLEX macro without arguments.
+ (casinh_test): Likewise.
+ (catan_test): Likewise.
+ (catanh_test): Likewise.
+ (cbrt_test): Use END macro without arguments.
+ (ccos_test): Use END_COMPLEX macro without arguments.
+ (ccosh_test): Likewise.
+ (ceil_test): Use END macro without arguments.
+ (cexp_test): Use END_COMPLEX macro without arguments.
+ (cimag_test): Use END macro without arguments.
+ (clog_test): Use END_COMPLEX macro without arguments.
+ (clog10_test): Likewise.
+ (conj_test): Likewise.
+ (copysign_test): Use END macro without arguments.
+ (cos_test): Likewise.
+ (cos_test_tonearest): Likewise.
+ (cos_test_towardzero): Likewise.
+ (cos_test_downward): Likewise.
+ (cos_test_upward): Likewise.
+ (cosh_test): Likewise.
+ (cosh_test_tonearest): Likewise.
+ (cosh_test_towardzero): Likewise.
+ (cosh_test_downward): Likewise.
+ (cosh_test_upward): Likewise.
+ (cpow_test): Use END_COMPLEX macro without arguments.
+ (cproj_test): Likewise.
+ (creal_test): Use END macro without arguments.
+ (csin_test): Use END_COMPLEX macro without arguments.
+ (csinh_test): Likewise.
+ (csqrt_test): Likewise.
+ (ctan_test): Likewise.
+ (ctan_test_tonearest): Likewise.
+ (ctan_test_towardzero): Likewise.
+ (ctan_test_downward): Likewise.
+ (ctan_test_upward): Likewise.
+ (ctanh_test): Likewise.
+ (ctanh_test_tonearest): Likewise.
+ (ctanh_test_towardzero): Likewise.
+ (ctanh_test_downward): Likewise.
+ (ctanh_test_upward): Likewise.
+ (erf_test): Use END macro without arguments.
+ (erfc_test): Likewise.
+ (exp_test): Likewise.
+ (exp_test_tonearest): Likewise.
+ (exp_test_towardzero): Likewise.
+ (exp_test_downward): Likewise.
+ (exp_test_upward): Likewise.
+ (exp10_test): Likewise.
+ (exp2_test): Likewise.
+ (expm1_test): Likewise.
+ (fabs_test): Likewise.
+ (fdim_test): Likewise.
+ (finite_test): Likewise.
+ (floor_test): Likewise.
+ (fma_test): Likewise.
+ (fma_test_towardzero): Likewise.
+ (fma_test_downward): Likewise.
+ (fma_test_upward): Likewise.
+ (fmax_test): Likewise.
+ (fmin_test): Likewise.
+ (fmod_test): Likewise.
+ (fpclassify_test): Likewise.
+ (frexp_test): Likewise.
+ (gamma_test): Likewise.
+ (hypot_test): Likewise.
+ (ilogb_test): Likewise.
+ (isfinite_test): Likewise.
+ (isgreater_test): Likewise.
+ (isgreaterequal_test): Likewise.
+ (isinf_test): Likewise.
+ (isless_test): Likewise.
+ (islessequal_test): Likewise.
+ (islessgreater_test): Likewise.
+ (isnan_test): Likewise.
+ (isnormal_test): Likewise.
+ (issignaling_test): Likewise.
+ (isunordered_test): Likewise.
+ (j0_test): Likewise.
+ (j1_test): Likewise.
+ (jn_test): Likewise.
+ (ldexp_test): Likewise.
+ (lgamma_test): Likewise.
+ (lrint_test): Likewise.
+ (lrint_test_tonearest): Likewise.
+ (lrint_test_towardzero): Likewise.
+ (lrint_test_downward): Likewise.
+ (lrint_test_upward): Likewise.
+ (llrint_test): Likewise.
+ (llrint_test_tonearest): Likewise.
+ (llrint_test_towardzero): Likewise.
+ (llrint_test_downward): Likewise.
+ (llrint_test_upward): Likewise.
+ (log_test): Likewise.
+ (log10_test): Likewise.
+ (log1p_test): Likewise.
+ (log2_test): Likewise.
+ (logb_test): Likewise.
+ (logb_test_downward): Likewise.
+ (lround_test): Likewise.
+ (llround_test): Likewise.
+ (modf_test): Likewise.
+ (nearbyint_test): Likewise.
+ (nextafter_test): Likewise.
+ (nexttoward_test): Likewise.
+ (pow_test): Likewise.
+ (pow_test_tonearest): Likewise.
+ (pow_test_towardzero): Likewise.
+ (pow_test_downward): Likewise.
+ (pow_test_upward): Likewise.
+ (remainder_test): Likewise.
+ (remainder_test_tonearest): Likewise.
+ (remainder_test_towardzero): Likewise.
+ (remainder_test_downward): Likewise.
+ (remainder_test_upward): Likewise.
+ (remquo_test): Likewise.
+ (rint_test): Likewise.
+ (rint_test_tonearest): Likewise.
+ (rint_test_towardzero): Likewise.
+ (rint_test_downward): Likewise.
+ (rint_test_upward): Likewise.
+ (round_test): Likewise.
+ (scalb_test): Likewise.
+ (scalbn_test): Likewise.
+ (scalbln_test): Likewise.
+ (signbit_test): Likewise.
+ (sin_test): Likewise.
+ (sin_test_tonearest): Likewise.
+ (sin_test_towardzero): Likewise.
+ (sin_test_downward): Likewise.
+ (sin_test_upward): Likewise.
+ (sincos_test): Likewise.
+ (sinh_test): Likewise.
+ (sinh_test_tonearest): Likewise.
+ (sinh_test_towardzero): Likewise.
+ (sinh_test_downward): Likewise.
+ (sinh_test_upward): Likewise.
+ (sqrt_test): Likewise.
+ (tan_test): Likewise.
+ (tan_test_tonearest): Likewise.
+ (tan_test_towardzero): Likewise.
+ (tan_test_downward): Likewise.
+ (tan_test_upward): Likewise.
+ (tanh_test): Likewise.
+ (tgamma_test): Likewise.
+ (trunc_test): Likewise.
+ (y0_test): Likewise.
+ (y1_test): Likewise.
+ (yn_test): Likewise.
+ (significand_test): Likewise.
+
+2013-05-24 Ondřej Bílka <neleai@seznam.cz>
+
+ [BZ #15381]
+ * libio/genops.c (_IO_no_init): Initialize wide struct info.
+
+2013-05-23 Edjunior Machado <emachado@linux.vnet.ibm.com>
+
+ [BZ #14894]
+ * sysdeps/powerpc/sys/platform/ppc.h: Add __ppc_yield,
+ __ppc_mdoio and __ppc_mdoom.
+ * manual/platform.texi: Document new functions __ppc_yield,
+ __ppc_mdoio and __ppc_mdoom.
+
+2013-05-22 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/ldconfig.c (is_hwcap_platform): Make comments full setences.
+ (main): Mention "tls" pseudo-hwcap is legacy.
+ * elf/dl-hwcaps.c (_dl_important_hwcaps): Correct rounding comment.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (parse_args): Output only string of
+ arguments as text for test name, not full call or descriptions of
+ tests for extra outputs.
+ (generate_testfile): Do not pass function name to parse_args.
+ Generate this_func variable from START.
+ * math/libm-test.inc (struct test_f_f_data): Rename test_name
+ field to arg_str.
+ (struct test_ff_f_data): Likewise.
+ (test_ff_f_data_nexttoward): Likewise.
+ (struct test_fi_f_data): Likewise.
+ (struct test_fl_f_data): Likewise.
+ (struct test_if_f_data): Likewise.
+ (struct test_fff_f_data): Likewise.
+ (struct test_c_f_data): Likewise.
+ (struct test_f_f1_data): Likewise. Remove field extra_name.
+ (struct test_fF_f1_data): Likewise.
+ (struct test_ffI_f1_data): Likewise.
+ (struct test_c_c_data): Rename test_name field to arg_str.
+ (struct test_cc_c_data): Likewise.
+ (struct test_f_i_data): Likewise.
+ (struct test_ff_i_data): Likewise.
+ (struct test_f_l_data): Likewise.
+ (struct test_f_L_data): Likewise.
+ (struct test_fFF_11_data): Likewise. Remove fields extra1_name
+ and extra2_name.
+ (COMMON_TEST_SETUP): New macro.
+ (EXTRA_OUTPUT_TEST_SETUP): Likewise.
+ (COMMON_TEST_CLEANUP): Likewise.
+ (EXTRA_OUTPUT_TEST_CLEANUP): Likewise.
+ (RUN_TEST_f_f): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_f): Update call to RUN_TEST_f_f.
+ (RUN_TEST_2_f): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_2_f): Update call to RUN_TEST_2_f.
+ (RUN_TEST_fff_f): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_fff_f): Update call to RUN_TEST_fff_f.
+ (RUN_TEST_c_f): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_c_f): Update call to RUN_TEST_c_f.
+ (RUN_TEST_f_f1): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_f1): Update call to RUN_TEST_f_f1.
+ (RUN_TEST_fF_f1): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_fF_f1): Update call to RUN_TEST_fF_f1.
+ (RUN_TEST_fI_f1): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_fI_f1): Update call to RUN_TEST_fI_f1.
+ (RUN_TEST_ffI_f1): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_ffI_f1): Update call to RUN_TEST_ffI_f1.
+ (RUN_TEST_c_c): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_c_c): Update call to RUN_TEST_c_c.
+ (RUN_TEST_cc_c): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_cc_c): Update call to RUN_TEST_cc_c.
+ (RUN_TEST_f_i): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_i): Update call to RUN_TEST_f_i.
+ (RUN_TEST_f_i_tg): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_f_i_tg): Update call to RUN_TEST_f_i_tg.
+ (RUN_TEST_ff_i_tg): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_ff_i_tg): Update call to RUN_TEST_ff_i_tg.
+ (RUN_TEST_f_b): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_b): Update call to RUN_TEST_f_b.
+ (RUN_TEST_f_b_tg): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_f_b_tg): Update call to RUN_TEST_f_b_tg.
+ (RUN_TEST_f_l): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_l): Update call to RUN_TEST_f_l.
+ (RUN_TEST_f_L): Take argument string. Call new setup and cleanup
+ macros.
+ (RUN_TEST_LOOP_f_L): Update call to RUN_TEST_f_L.
+ (RUN_TEST_fFF_11): Take argument string. Call new setup and
+ cleanup macros.
+ (RUN_TEST_LOOP_fFF_11): Update call to RUN_TEST_fFF_11.
+
+2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/bits/siginfo.h (siginfo_t): Add si_addr_lsb
+ to _sifields.sigfault.
+ (si_addr_lsb): Define new macro.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+ * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/siginfo.h: Likewise.
+
+2013-05-03 Carlos O'Donell <carlos at redhat.com>
+
+ [BZ #15441]
+ * intl/dcigettext.c (DCIGETTEXT): Skip translating if _nl_find_msg
+ returns -1.
+ (_nl_find_msg): Return -1 if recursive call returned -1. If newmem is
+ null return -1.
+ * intl/loadmsgcat.c (_nl_load_domain): If _nl_find_msg returns -1 abort
+ loading the domain.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (parse_args): Do not include expected
+ result in test name.
+ * sysdeps/i386/fpu/libm-test-ulps: Update test names.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/s390/fpu/libm-test-ulps: Likewise.
+ * sysdeps/sh/sh4/fpu/libm-test-ulps: Likewise.
+ * sysdeps/sparc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-05-22 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile: Sort function entries.
+
+ * benchtests/Makefile (bench): Add asin, acos, sinh, cosh,
+ tanh, asinh, acosh, atanh.
+ * benchtests/acos-inputs: New file.
+ * benchtests/acosh-inputs: New file.
+ * benchtests/asin-inputs: New file.
+ * benchtests/asinh-inputs: New file.
+ * benchtests/atanh-inputs: New file.
+ * benchtests/cosh-inputs: New file.
+ * benchtests/log-inputs: New file.
+ * benchtests/sinh-inputs: New file.
+ * benchtests/tanh-inputs: New file.
+
+2013-05-21 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #15339]
+ * posix/tst-getaddrinfo4.c: New test.
+ * posix/Makefile (tests): Add it.
+
+2013-05-21 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #15339]
+ * nss/getXXbyYY_r.c (REENTRANT_NAME): Set NETDB_INTERNAL only
+ when no services were used.
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Set h_errno.
+ Return EAI_SYSTEM if h_errno is NETDB_INTERNAL.
+
+2013-05-21 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15014]
+ * nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME))
+ [HANDLE_DIGITS_DOTS]: Set any_service when digits-dots parsing was
+ successful.
+ * nss/digits_dots.c (__nss_hostname_digits_dots): Remove
+ redundant variable declarations and reallocation of buffer when
+ parsing as IPv6 address. Always set NSS status when called from
+ reentrant functions. Use NETDB_INTERNAL instead of TRY_AGAIN when
+ buffer too small. Correct computation of needed size.
+ * nss/Makefile (tests): Add test-digits-dots.
+ * nss/test-digits-dots.c: New test.
+
+2013-05-21 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile: Remove instructions for adding
+ benchmark tests.
+ * benchtests/README: New file to explain how to execute and
+ enhance the benchmark tests.
+
+2013-05-21 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15493]
+ * setjmp/Makefile (tests): Add tst-sigsetjmp.
+ * setjmp/tst-sigsetjmp.c: New test.
+
+2013-05-20 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/x86_64/memset.S (memset): New implementation.
+ (__bzero): Likewise.
+ (__memset_tail): New function.
+
+2013-05-20 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: New file.
+ * sysdeps/x86_64/multiarch/memcpy.S (__new_memcpy): Add
+ __memcpy_sse2_unaligned ifunc selection.
+ * sysdeps/x86_64/multiarch/Makefile (sysdep_routines):
+ Add memcpy-sse2-unaligned.S.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
+ Add: __memcpy_sse2_unaligned.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15490]
+ * sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Use
+ math_force_eval before restoring floating-point envrionment.
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c (__nearbyintf): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: Include
+ <math_private.h>.
+ (__nearbyintl): Use math_force_eval before restoring
+ floating-point environment.
+ * sysdeps/ieee754/ldbl-96/s_nearbyintl.c (__nearbyintl): Likewise.
+
+ * math/gen-libm-test.pl (special_functions): Remove.
+ (parse_args): Don't handle TEST_extra. Handle functions with no
+ return value.
+ * math/libm-test.inc (struct test_sincos_data): Replace with
+ struct test_fFF_11_data.
+ (RUN_TEST_sincos): Replace with RUN_TEST_fFF_11.
+ (RUN_TEST_LOOP_sincos): Replace with RUN_TEST_LOOP_fFF_11.
+ (sincos_test_data): Change element type to struct
+ test_fFF_11_data. Use TEST_fFF_11 instead of TEST_extra.
+ (sincos_test): Use RUN_TEST_LOOP_fFF_11 instead of
+ RUN_TEST_LOOP_sincos.
+ * math/README.libm-test: Don't mention special handling of
+ individual functions.
+ * sysdeps/i386/fpu/libm-test-ulps: Update names of sincos tests.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/s390/fpu/libm-test-ulps: Likewise.
+ * sysdeps/sh/sh4/fpu/libm-test-ulps: Likewise.
+ * sysdeps/sparc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+ * math/gen-libm-test.pl (get_variable): Remove function.
+ (parse_args): Don't show pointer parameters to call in test
+ names. Use "extra output N" in test names for extra outputs
+ rather than naming variables.
+
+2013-05-18 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15488]
+ * math/complex.h [__USE_ISOC11 && __GNUC_PREREQ (4, 7) &&
+ __NO_LONG_DOUBLE_MATH] (CMPLXL): Define macro.
+ * math/tst-CMPLX.c (do_test) [NO_LONG_DOUBLE]: Do not disable long
+ double tests.
+ * make/tst-CMPLX2.c [NO_LONG_DOUBLE] (check_long_double): Do not
+ disable.
+ (do_test) [NO_LONG_DOUBLE]: Do not disable call to
+ check_long_double.
+
+ * math/gen-libm-test.pl (@tests): Remove variable.
+ ($count): Likewise.
+ (new_test): Remove function.
+ (show_exceptions): New function.
+ (special_functions): Use show_exceptions instead of new_test.
+ (parse_args): Likewise.
+ (generate_testfile): Pass only function name in generated call to
+ print_max_error or print_complex_max_error.
+ (get_ulps): Do not handle complex tests specially.
+ (output_test): Rename to ...
+ (get_all_ulps_for_test): ... this. Return a string rather than
+ printing to a file. Require ulps to be present.
+ (output_ulps): Generate arrays rather than #defines.
+ * math/libm-test.inc: Move down #include of "libm-test-ulps.h".
+ (struct ulp_data): New type.
+ (BUILD_COMPLEX_ULP): Remove macro.
+ (compare_ulp_data): New function.
+ (find_ulps): Likewise.
+ (find_test_ulps): Likewise.
+ (find_function_ulps): Likewise.
+ (find_complex_function_ulps): Likewise.
+ (print_max_error): Determine allowed ulps using
+ find_function_ulps.
+ (print_complex_max_error): Determine allowed ulps using
+ find_complex_function_ulps.
+ (check_float_internal): Determine max ulps using find_test_ulps.
+ (check_float): Do not take max_ulp parameter. Update call to
+ check_float_internal.
+ (check_complex): Likewise.
+ (check_int): Do not take max_ulp parameter.
+ (check_long): Likewise.
+ (check_bool): Likewise.
+ (check_longlong): Likewise.
+ (struct test_f_f_data): Remove max_ulp field.
+ (struct test_ff_f_data): Likewise.
+ (struct test_ff_f_data_nexttoward): Likewise.
+ (struct test_fi_f_data): Likewise.
+ (struct test_fl_f_data): Likewise.
+ (struct test_if_f_data): Likewise.
+ (struct test_fff_f_data): Likewise.
+ (struct test_c_f_data): Likewise.
+ (struct test_f_f1_data): Remove max_ulp and extra_ulp fields.
+ (struct test_fF_f1_data): Likewise.
+ (struct test_ffI_f1_data): Likewise.
+ (struct test_c_c_data): Remove max_ulp field.
+ (struct test_cc_c_data): Likewise.
+ (struct test_f_i_data): Likewise.
+ (struct test_ff_i_data): Likewise.
+ (struct test_f_l_data): Likewise.
+ (struct test_f_L_data): Likewise.
+ (struct test_sincos_data): Likewise.
+ (RUN_TEST_f_f): Do not handle ulps.
+ (RUN_TEST_LOOP_f_f): Likewise.
+ (RUN_TEST_2_f): Likewise.
+ (RUN_TEST_LOOP_2_f): Likewise.
+ (RUN_TEST_fff_f): Likewise.
+ (RUN_TEST_LOOP_fff_f): Likewise.
+ (RUN_TEST_c_f): Likewise.
+ (RUN_TEST_LOOP_c_f): Likewise.
+ (RUN_TEST_f_f1): Likewise.
+ (RUN_TEST_LOOP_f_f1): Likewise.
+ (RUN_TEST_fF_f1): Likewise.
+ (RUN_TEST_LOOP_fF_f1): Likewise.
+ (RUN_TEST_fI_f1): Likewise.
+ (RUN_TEST_LOOP_fI_f1): Likewise.
+ (RUN_TEST_ffI_f1): Likewise.
+ (RUN_TEST_LOOP_ffI_f1): Likewise.
+ (RUN_TEST_c_c): Likewise.
+ (RUN_TEST_LOOP_c_c): Likewise.
+ (RUN_TEST_cc_c): Likewise.
+ (RUN_TEST_LOOP_cc_c): Likewise.
+ (RUN_TEST_f_i): Likewise.
+ (RUN_TEST_LOOP_f_i): Likewise.
+ (RUN_TEST_f_i_tg): Likewise.
+ (RUN_TEST_LOOP_f_i_tg): Likewise.
+ (RUN_TEST_ff_i_tg): Likewise.
+ (RUN_TEST_LOOP_ff_i_tg): Likewise.
+ (RUN_TEST_f_b): Likewise.
+ (RUN_TEST_LOOP_f_b): Likewise.
+ (RUN_TEST_f_b_tg): Likewise.
+ (RUN_TEST_LOOP_f_b_tg): Likewise.
+ (RUN_TEST_f_l): Likewise.
+ (RUN_TEST_LOOP_f_l): Likewise.
+ (RUN_TEST_f_L): Likewise.
+ (RUN_TEST_LOOP_f_L): Likewise.
+ (RUN_TEST_sincos): Likewise.
+ (RUN_TEST_LOOP_sincos): Likewise.
+
+2013-05-17 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15480]
+ [BZ #15485]
+ * sysdeps/ieee754/dbl-64/e_remainder.c (__ieee754_remainder): For
+ main case of finite arguments, set rounding mode to FE_TONEAREST
+ and discard exceptions.
+ * math/libm-test.inc (remainder_test_data): Disallow "inexact"
+ exceptions.
+ (remainder_tonearest_test_data): New variable.
+ (remainder_test_tonearest): New function.
+ (remainder_towardzero_test_data): New variable.
+ (remainder_test_towardzero): New function.
+ (remainder_downward_test_data): New variable.
+ (remainder_test_downward): New function.
+ (remainder_upward_test_data): New variable.
+ (remainder_test_upward): New function.
+ (main): Call the new test functions.
+
+ * math/libm-test.inc (struct test_f_f1_data): Remove field
+ extra_init.
+ (struct test_fF_f1_data): Likewise.
+ (struct test_ffI_f1_data): Likewise.
+ (RUN_TEST_f_f1): Remove argument EXTRA_INIT. Initialize EXTRA_VAR
+ based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_f_f1): Update call to RUN_TEST_f_f1.
+ (RUN_TEST_fF_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_fF_f1): Update call to RUN_TEST_fF_f1.
+ (RUN_TEST_fI_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_fI_f1): Update call to RUN_TEST_fI_f1.
+ (RUN_TEST_ffI_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_ffI_f1): Update call to RUN_TEST_ffI_f1.
+ * math/gen-libm-test.pl (parse_args): Don't output initializers
+ for extra output values.
+
+ * math/libm-test.inc (check_int): Expect result to be exactly
+ equal to expected value and do not handle ulps.
+ (check_long): Likewise.
+ (check_longlong): Likewise.
+
+ * math/libm-test.inc (ceil_test_data): Test for "inexact"
+ exceptions.
+ (cimag_test_data): Likewise.
+ (conj_test_data): Likewise.
+ (copysign_test_data): Likewise.
+ (cproj_test_data): Likewise.
+ (creal_test_data): Likewise.
+ (fabs_test_data): Likewise.
+ (fdim_test_data): Likewise.
+ (finite_test_data): Likewise.
+ (floor_test_data): Likewise.
+ (fmax_test_data): Likewise.
+ (fmin_test_data): Likewise.
+ (fmod_test_data): Likewise.
+ (fpclassify_test_data): Likewise.
+ (frexp_test_data): Likewise.
+ (ilogb_test_data): Likewise.
+ (isfinite_test_data): Likewise.
+ (isgreater_test_data): Likewise.
+ (isgreaterequal_test_data): Likewise.
+ (isinf_test_data): Likewise.
+ (isless_test_data): Likewise.
+ (islessequal_test_data): Likewise.
+ (islessgreater_test_data): Likewise.
+ (isnan_test_data): Likewise.
+ (isnormal_test_data): Likewise.
+ (issignaling_test_data): Likewise.
+ (isunordered_test_data): Likewise.
+ (ldexp_test_data): Likewise.
+ (lrint_test_data): Likewise.
+ (lrint_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_tonearest_test_data): Test for "inexact" exceptions.
+ (lrint_tonearest_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_tonearest_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_tonearest_test_data) [TEST_LDOUBLE]: Use "L" suffix on that
+ test input.
+ (lrint_towardzero_test_data): Test for "inexact" exceptions.
+ (lrint_towardzero_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_towardzero_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_towardzero_test_data) [TEST_LDOUBLE]: Use "L" suffix on
+ that test input.
+ (lrint_downward_test_data): Test for "inexact" exceptions.
+ (lrint_downward_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_downward_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_downward_test_data) [TEST_LDOUBLE]: Use "L" suffix on that
+ test input.
+ (lrint_upward_test_data): Test for "inexact" exceptions.
+ (lrint_upward_test_data) [TEST_LDOUBLE]: Use "L" suffix on one
+ test input.
+ (llrint_test_data): Test for "inexact" exceptions.
+ (llrint_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_tonearest_test_data): Test for "inexact" exceptions.
+ (llrint_tonearest_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_towardzero_test_data): Test for "inexact" exceptions.
+ (llrint_towardzero_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_downward_test_data): Test for "inexact" exceptions.
+ (llrint_downward_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_upward_test_data): Test for "inexact" exceptions.
+ (logb_test_data): Likewise.
+ (logb_downward_test_data): Likewise.
+ (nextafter_test_data): Likewise.
+ (nexttoward_test_data): Likewise.
+ (remainder_test_data): Likewise.
+ (remquo_test_data): Likewise.
+ (scalbn_test_data): Likewise.
+ (scalbln_test_data): Likewise.
+ (signbit_test_data): Likewise.
+ (sqrt_test_data): Likewise.
+ (significand_test_data): Likewise.
+
+2013-05-17 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #15424]
+ * benchtests/bench-modf.c (struct args): Mark arg0 as
+ volatile.
+ * scripts/bench.pl: Mark members of struct args as volatile.
+
+2013-05-17 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ [BZ # 15497]
+ * sysdeps/powerpc/fpu/e_hypot.c (GET_TWO_FLOAT_WORD): Fix test for
+ negative infinity on POWER6 or lower.
+ * sysdeps/powerpc/fpu/e_hypotf.c (GET_TWO_FLOAT_WORD): Likewise.
+
+2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ [BZ #15442]
+ * soft-fp/op-common.h (_FP_FRAC_SNANP): New macro.
+ (_FP_FRAC_SNANP_SEMIRAW): Likewise.
+ (_FP_UNPACK_CANONICAL): Use _FP_FRAC_SNANP.
+ (_FP_CHECK_SIGNAN_SEMIRAW): Use _FP_FRAC_SNANP_SEMIRAW.
+ (_FP_SETQNAN): New macro.
+ (_FP_SETQNAN_SEMIRAW): Likewise.
+ (_FP_PACK_SEMIRAW): Use _FP_SETQNAN.
+ (_FP_PACK_CANONICAL): Use _FP_SETQNAN.
+ (_FP_ISSIGNAN): Use _FP_FRAC_SNANP.
+ (FP_EXTEND): Use _FP_FRAC_SNANP.
+ (FP_TRUNC): Use _FP_SETQNAN_SEMIRAW.
+ * soft-fp/testit.c (gen_special_double): Take _FP_QNANNEGATEDP
+ into account.
+ * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP):
+ New macro.
+ * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP):
+ Likewise.
+
+2013-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (atanh_test_data): Use ERRNO_ERANGE together
+ with DIVIDE_BY_ZERO_EXCEPTION.
+ (gamma_test_data): Likewise.
+ (lgamma_test_data): Likewise.
+ (log_test_data): Likewise.
+ (log10_test_data): Likewise.
+ (log2_test_data): Likewise.
+ (tgamma_test_data): Likewise.
+
+ * math/libm-test.inc (acos_test): Don't test for ENOSYS error.
+ (acos_test_tonearest): Likewise.
+ (acos_test_towardzero): Likewise.
+ (acos_test_downward): Likewise.
+ (acos_test_upward): Likewise.
+ (acosh_test): Likewise.
+ (asin_test): Likewise.
+ (asin_test_tonearest): Likewise.
+ (asin_test_towardzero): Likewise.
+ (asin_test_downward): Likewise.
+ (asin_test_upward): Likewise.
+ (asinh_test): Likewise.
+ (atan_test): Likewise.
+ (atanh_test): Likewise.
+ (atan2_test): Likewise.
+ (cabs_test): Likewise.
+ (cacos_test): Likewise.
+ (cacosh_test): Likewise.
+ (casin_test): Likewise.
+ (casinh_test): Likewise.
+ (catan_test): Likewise.
+ (catanh_test): Likewise.
+ (cbrt_test): Likewise.
+ (ccos_test): Likewise.
+ (ccosh_test): Likewise.
+ (cexp_test): Likewise.
+ (clog_test): Likewise.
+ (clog10_test): Likewise.
+ (cos_test): Likewise.
+ (cos_test_tonearest): Likewise.
+ (cos_test_towardzero): Likewise.
+ (cos_test_downward): Likewise.
+ (cos_test_upward): Likewise.
+ (cosh_test): Likewise.
+ (cosh_test_tonearest): Likewise.
+ (cosh_test_towardzero): Likewise.
+ (cosh_test_downward): Likewise.
+ (cosh_test_upward): Likewise.
+ (cpow_test): Likewise.
+ (csin_test): Likewise.
+ (csinh_test): Likewise.
+ (csqrt_test): Likewise.
+ (ctan_test): Likewise.
+ (ctan_test_tonearest): Likewise.
+ (ctan_test_towardzero): Likewise.
+ (ctan_test_downward): Likewise.
+ (ctan_test_upward): Likewise.
+ (ctanh_test): Likewise.
+ (ctanh_test_tonearest): Likewise.
+ (ctanh_test_towardzero): Likewise.
+ (ctanh_test_downward): Likewise.
+ (ctanh_test_upward): Likewise.
+ (erf_test): Likewise.
+ (erfc_test): Likewise.
+ (exp_test): Likewise.
+ (exp_test_tonearest): Likewise.
+ (exp_test_towardzero): Likewise.
+ (exp_test_downward): Likewise.
+ (exp_test_upward): Likewise.
+ (exp10_test): Likewise.
+ (exp2_test): Likewise.
+ (expm1_test): Likewise.
+ (fmod_test): Likewise.
+ (gamma_test): Likewise.
+ (hypot_test): Likewise.
+ (j0_test): Likewise.
+ (j1_test): Likewise.
+ (jn_test): Likewise.
+ (lgamma_test): Likewise.
+ (log_test): Likewise.
+ (log10_test): Likewise.
+ (log1p_test): Likewise.
+ (log2_test): Likewise.
+ (logb_test_downward): Likewise.
+ (pow_test): Likewise.
+ (pow_test_tonearest): Likewise.
+ (pow_test_towardzero): Likewise.
+ (pow_test_downward): Likewise.
+ (pow_test_upward): Likewise.
+ (remainder_test): Likewise.
+ (remquo_test): Likewise.
+ (sin_test): Likewise.
+ (sin_test_tonearest): Likewise.
+ (sin_test_towardzero): Likewise.
+ (sin_test_downward): Likewise.
+ (sin_test_upward): Likewise.
+ (sincos_test): Likewise.
+ (sinh_test): Likewise.
+ (sinh_test_tonearest): Likewise.
+ (sinh_test_towardzero): Likewise.
+ (sinh_test_downward): Likewise.
+ (sinh_test_upward): Likewise.
+ (sqrt_test): Likewise.
+ (tan_test): Likewise.
+ (tan_test_tonearest): Likewise.
+ (tan_test_towardzero): Likewise.
+ (tan_test_downward): Likewise.
+ (tan_test_upward): Likewise.
+ (tanh_test): Likewise.
+ (tgamma_test): Likewise.
+ (y0_test): Likewise.
+ (y1_test): Likewise.
+ (yn_test): Likewise.
+
+ * math/gen-libm-test.pl (adjust_arg): Remove function.
+ (special_function): Remove argument $in_func. Only handle
+ generating output for tables of tests, not inside functions.
+ (parse_args): Likewise.
+ (generate_testfile): Remove variable $in_func. Update call to
+ parse_args.
+ * math/libm-test.inc (PLUS_ZERO_INIT): Rename macro to plus_zero.
+ (MINUS_ZERO_INIT): Rename macro to minus_zero.
+ (PLUS_INFTY_INIT): Rename macro to plus_infty.
+ (MINUS_INFTY_INIT): Rename macro to minus_infty.
+ (QNAN_VALUE_INIT): Rename macro to qnan_value.
+ (MAX_VALUE_INIT): Rename macro to max_value.
+ (MIN_VALUE_INIT): Rename macro to min_value.
+ (MIN_SUBNORM_VALUE_INIT): Rename macro to min_subnorm_value.
+ (plus_zero): Remove variable.
+ (minus_zero): Likewise.
+ (plus_infty): Likewise.
+ (minus_infty): Likewise.
+ (qnan_value): Likewise.
+ (max_value): Likewise.
+ (min_value): Likewise.
+ (min_subnorm_value): Likewise.
+
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * crypt/sha512-block.c: Add missing #include <stdint.h> due to
+ uint64_t or uint32_t usage.
+ * crypt/sha256-block.c: Likewise.
+ * crypt/sha256-crypt.c: Likewise.
+ * crypt/sha256.c: Likewise.
+ * crypt/sha512-block.c: Likewise.
+ * crypt/sha512-crypt.c: Likewise.
+ * crypt/sha512.c: Likewise.
+ * debug/backtrace-tst.c: Likewise.
+ * debug/pcprofiledump.c: Likewise.
+ * elf/cache.c: Likewise.
+ * elf/dl-cache.c: Likewise.
+ * elf/dl-misc.c: Likewise.
+ * elf/dl-profile.c: Likewise.
+ * elf/dl-support.c: Likewise.
+ * elf/ldconfig.c: Likewise.
+ * elf/sprof.c: Likewise.
+ * iconv/dummy-repertoire.c: Likewise.
+ * iconv/iconv_charmap.c: Likewise.
+ * iconv/skeleton.c: Likewise.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/cp737.h: Likewise.
+ * iconvdata/cp775.h: Likewise.
+ * iconvdata/ibm1008.h: Likewise.
+ * iconvdata/ibm1025.h: Likewise.
+ * iconvdata/ibm1046.h: Likewise.
+ * iconvdata/ibm1097.h: Likewise.
+ * iconvdata/ibm1112.h: Likewise.
+ * iconvdata/ibm1122.h: Likewise.
+ * iconvdata/ibm1123.h: Likewise.
+ * iconvdata/ibm1124.h: Likewise.
+ * iconvdata/ibm1129.h: Likewise.
+ * iconvdata/ibm1130.h: Likewise.
+ * iconvdata/ibm1132.h: Likewise.
+ * iconvdata/ibm1133.h: Likewise.
+ * iconvdata/ibm1137.h: Likewise.
+ * iconvdata/ibm1140.h: Likewise.
+ * iconvdata/ibm1141.h: Likewise.
+ * iconvdata/ibm1142.h: Likewise.
+ * iconvdata/ibm1143.h: Likewise.
+ * iconvdata/ibm1144.h: Likewise.
+ * iconvdata/ibm1145.h: Likewise.
+ * iconvdata/ibm1146.h: Likewise.
+ * iconvdata/ibm1147.h: Likewise.
+ * iconvdata/ibm1148.h: Likewise.
+ * iconvdata/ibm1149.h: Likewise.
+ * iconvdata/ibm1153.h: Likewise.
+ * iconvdata/ibm1154.h: Likewise.
+ * iconvdata/ibm1155.h: Likewise.
+ * iconvdata/ibm1156.h: Likewise.
+ * iconvdata/ibm1157.h: Likewise.
+ * iconvdata/ibm1158.h: Likewise.
+ * iconvdata/ibm1160.h: Likewise.
+ * iconvdata/ibm1161.h: Likewise.
+ * iconvdata/ibm1162.h: Likewise.
+ * iconvdata/ibm1163.h: Likewise.
+ * iconvdata/ibm1164.h: Likewise.
+ * iconvdata/ibm1166.h: Likewise.
+ * iconvdata/ibm1167.h: Likewise.
+ * iconvdata/ibm12712.h: Likewise.
+ * iconvdata/ibm1390.h: Likewise.
+ * iconvdata/ibm1399.h: Likewise.
+ * iconvdata/ibm16804.h: Likewise.
+ * iconvdata/ibm4517.h: Likewise.
+ * iconvdata/ibm4899.h: Likewise.
+ * iconvdata/ibm4909.h: Likewise.
+ * iconvdata/ibm4971.h: Likewise.
+ * iconvdata/ibm5347.h: Likewise.
+ * iconvdata/ibm803.h: Likewise.
+ * iconvdata/ibm856.h: Likewise.
+ * iconvdata/ibm901.h: Likewise.
+ * iconvdata/ibm902.h: Likewise.
+ * iconvdata/ibm9030.h: Likewise.
+ * iconvdata/ibm9066.h: Likewise.
+ * iconvdata/ibm921.h: Likewise.
+ * iconvdata/ibm922.h: Likewise.
+ * iconvdata/ibm9448.h: Likewise.
+ * iconvdata/isiri-3342.h: Likewise.
+ * iconvdata/jis0201.h: Likewise.
+ * include/link.h: Likewise.
+ * include/netdb.h: Likewise.
+ * inet/check_native.c: Likewise.
+ * inet/check_pf.c: Likewise.
+ * inet/getipv4sourcefilter.c: Likewise.
+ * inet/getnameinfo.c: Likewise.
+ * inet/getsourcefilter.c: Likewise.
+ * inet/htonl.c: Likewise.
+ * inet/setipv4sourcefilter.c: Likewise.
+ * inet/setsourcefilter.c: Likewise.
+ * inet/test-inet6_opt.c: Likewise.
+ * inet/tst-network.c: Likewise.
+ * locale/C-collate.c: Likewise.
+ * locale/C-ctype.c: Likewise.
+ * locale/C-time.c: Likewise.
+ * locale/C-translit.h: Likewise.
+ * locale/loadarchive.c: Likewise.
+ * locale/programs/3level.h: Likewise.
+ * locale/programs/charmap.c: Likewise.
+ * locale/programs/charmap.h: Likewise.
+ * locale/programs/ld-address.c: Likewise.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/ld-ctype.c: Likewise.
+ * locale/programs/ld-identification.c: Likewise.
+ * locale/programs/ld-measurement.c: Likewise.
+ * locale/programs/ld-messages.c: Likewise.
+ * locale/programs/ld-monetary.c: Likewise.
+ * locale/programs/ld-name.c: Likewise.
+ * locale/programs/ld-numeric.c: Likewise.
+ * locale/programs/ld-paper.c: Likewise.
+ * locale/programs/ld-telephone.c: Likewise.
+ * locale/programs/ld-time.c: Likewise.
+ * locale/programs/linereader.c: Likewise.
+ * locale/programs/locale.c: Likewise.
+ * locale/programs/locarchive.c: Likewise.
+ * locale/programs/locfile.h: Likewise.
+ * locale/programs/repertoire.c: Likewise.
+ * locale/programs/simple-hash.c: Likewise.
+ * locale/programs/simple-hash.h: Likewise.
+ * malloc/memusage.c: Likewise.
+ * malloc/memusagestat.c: Likewise.
+ * nis/nis_defaults.c: Likewise.
+ * nis/nis_hash.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * nis/nis_xdr.c: Likewise.
+ * nscd/connections.c: Likewise.
+ * nscd/hstcache.c: Likewise.
+ * nscd/nscd_gethst_r.c: Likewise.
+ * nscd/nscd_getserv_r.c: Likewise.
+ * nscd/nscd_helper.c: Likewise.
+ * nscd/servicescache.c: Likewise.
+ * nss/makedb.c: Likewise.
+ * nss/nss_db/db-XXX.c: Likewise.
+ * nss/nss_db/db-initgroups.c: Likewise.
+ * nss/nss_db/db-netgrp.c: Likewise.
+ * nss/nss_files/files-network.c: Likewise.
+ * nss/nss_files/files-parse.c: Likewise.
+ * posix/bug-regex5.c: Likewise.
+ * posix/fnmatch_loop.c: Likewise.
+ * posix/regcomp.c: Likewise.
+ * posix/regexec.c: Likewise.
+ * posix/tst-rfc3484-2.c: Likewise.
+ * posix/tst-rfc3484-3.c: Likewise.
+ * posix/tst-rfc3484.c: Likewise.
+ * resolv/nss_dns/dns-canon.c: Likewise.
+ * resolv/nss_dns/dns-network.c: Likewise.
+ * resolv/res_init.c: Likewise.
+ * resolv/res_mkquery.c: Likewise.
+ * resolv/tst-aton.c: Likewise.
+ * stdlib/cxa_atexit.c: Likewise.
+ * stdlib/cxa_finalize.c: Likewise.
+ * stdlib/gen-fpioconst.c: Likewise.
+ * stdlib/strtol_l.c: Likewise.
+ * string/tst-endian.c: Likewise.
+ * sunrpc/auth_des.c: Likewise.
+ * sunrpc/clnt_udp.c: Likewise.
+ * sunrpc/rtime.c: Likewise.
+ * sunrpc/svcauth_des.c: Likewise.
+ * sunrpc/xdr.c: Likewise.
+ * sunrpc/xdr_intXX_t.c: Likewise.
+ * sunrpc/xdr_rec.c: Likewise.
+ * sysdeps/generic/ldconfig.h: Likewise.
+ * sysdeps/generic/ldsodefs.h: Likewise.
+ * sysdeps/generic/memusage.h: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/math_private.h: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: Likewise.
+ * sysdeps/posix/getaddrinfo.c: Likewise.
+ * sysdeps/powerpc/fpu/e_hypot.c: Likewise.
+ * sysdeps/powerpc/fpu/e_hypotf.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/powerpc/test-gettimebase.c: Likewise.
+ * sysdeps/unix/sysv/linux/check_pf.c: Likewise.
+ * sysdeps/unix/sysv/linux/getipv4sourcefilter.c: Likewise.
+ * sysdeps/unix/sysv/linux/getsourcefilter.c: Likewise.
+ * sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c: Likewise.
+ * sysdeps/unix/sysv/linux/preadv.c: Likewise.
+ * sysdeps/unix/sysv/linux/pwritev.c: Likewise.
+ * sysdeps/unix/sysv/linux/setipv4sourcefilter.c: Likewise.
+ * sysdeps/unix/sysv/linux/setsourcefilter.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c: Likewise.
+ * sysdeps/x86_64/dl-tls.h: Likewise.
+ * sysdeps/x86_64/dl-tlsdesc.h: Likewise.
+ * time/alt_digit.c: Likewise.
+ * time/era.c: Likewise.
+ * wcsmbs/tst-c16c32-1.c: Likewise.
+
+2013-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (struct test_sincos_data): New type.
+ (RUN_TEST_LOOP_sincos): New macro.
+ (sincos_test_data): New variable.
+ (sincos_test): Run tests with RUN_TEST_LOOP_sincos.
+
+2013-05-16 Richard Henderson <rth@redhat.com>
+
+ * math/atest-exp2.c (LIMB64): New macro.
+ (CONSTSZ): New macro.
+ (mp_exp1, mp_exp_m1, mp_log2): New variables.
+ (hexdig): Move ...
+ (print_mpn_fp): ... to function scope.
+ (read_mpn_hex): Remove.
+ (get_log2): Remove.
+ (exp2_mpn): Use mp_log2.
+ (main): Use mp_exp1.
+
+2013-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc: Remove comment about not testing "inexact"
+ exceptions.
+ (INEXACT_EXCEPTION): New macro.
+ (NO_INEXACT_EXCEPTION): Likewise.
+ (INVALID_EXCEPTION_OK): Update value.
+ (DIVIDE_BY_ZERO_EXCEPTION_OK): Likewise.
+ (OVERFLOW_EXCEPTION_OK): Likewise.
+ (UNDERFLOW_EXCEPTION_OK): Likewise.
+ (IGNORE_ZERO_INF_SIGN): Likewise.
+ (ERRNO_UNCHANGED): Likewise.
+ (ERRNO_EDOM): Likewise.
+ (ERRNO_ERANGE): Likewise.
+ (test_exceptions): Handle testing "inexact" exceptions.
+ (nearbyint_test_data): Use NO_INEXACT_EXCEPTION on all tests.
+ (rint_test_data): Use NO_INEXACT_EXCEPTION and INEXACT_EXCEPTION.
+ (rint_test_data) [LDBL_MANT_DIG <= 100]: Disable some tests.
+ (rint_tonearest_test_data): Use NO_INEXACT_EXCEPTION and
+ INEXACT_EXCEPTION.
+ (rint_towardzero_test_data): Likewise.
+ (rint_downward_test_data): Likewise.
+ (rint_upward_test_data): Likewise.
+
+ * math/libm-test.inc (exp_test_data): Use ERRNO_ERANGE together
+ with OVERFLOW_EXCEPTION.
+ (exp10_test_data): Likewise.
+ (exp2_test_data): Likewise.
+ (expm1_test_data): Likewise.
+ (lgamma_test_data): Likewise.
+ (pow_test_data): Likewise.
+ (tgamma_test_data): Likewise.
+ (yn_test_data): Remove duplicate test of overflow.
+
+ * math/libm-test.inc (struct test_cc_c_data): New type.
+ (RUN_TEST_LOOP_cc_c): New macro.
+ (cpow_test_data): New variable.
+ (cpow_test): Run tests with RUN_TEST_LOOP_cc_c.
+
+ * math/libm-test.inc (struct test_f_L_data): New type.
+ (RUN_TEST_LOOP_f_L): New macro.
+ (llrint_test_data): New variable.
+ (llrint_test): Run tests with RUN_TEST_LOOP_f_L.
+ (llrint_tonearest_test_data): New variable.
+ (llrint_test_tonearest): Run tests with RUN_TEST_LOOP_f_L.
+ (llrint_towardzero_test_data): New variable.
+ (llrint_test_towardzero): Run tests with RUN_TEST_LOOP_f_L.
+ (llrint_downward_test_data): New variable.
+ (llrint_test_downward): Run tests with RUN_TEST_LOOP_f_L.
+ (llrint_upward_test_data): New variable.
+ (llrint_test_upward): Run tests with RUN_TEST_LOOP_f_L.
+ (llround_test_data): New variable.
+ (llround_test): Run tests with RUN_TEST_LOOP_f_L.
+
+2013-05-13 Peter Collingbourne <pcc@google.com>
+
+ * math/atest-exp2.c (get_log2): Remove const attribute.
+
+2013-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (struct test_f_l_data): New type.
+ (RUN_TEST_LOOP_f_l): New macro.
+ (lrint_test_data): New variable.
+ (lrint_test): Run tests with RUN_TEST_LOOP_f_l.
+ (lrint_tonearest_test_data): New variable.
+ (lrint_test_tonearest): Run tests with RUN_TEST_LOOP_f_l.
+ (lrint_towardzero_test_data): New variable.
+ (lrint_test_towardzero): Run tests with RUN_TEST_LOOP_f_l.
+ (lrint_downward_test_data): New variable.
+ (lrint_test_downward): Run tests with RUN_TEST_LOOP_f_l.
+ (lrint_upward_test_data): New variable.
+ (lrint_test_upward): Run tests with RUN_TEST_LOOP_f_l.
+ (lround_test_data): New variable.
+ (lround_test): Run tests with RUN_TEST_LOOP_f_l.
+
+2013-05-15 Peter Collingbourne <pcc@google.com>
+
+ * sysdeps/x86_64/fpu/math_private.h (MOVQ): New macro.
+ (EXTRACT_WORDS64) Use where appropriate.
+ (INSERT_WORDS64) Likewise.
+
+ * sysdeps/x86_64/fpu/multiarch/s_fma.c (__fma_fma4): Replace xm
+ constraints with x constraints.
+ * sysdeps/x86_64/fpu/multiarch/s_fmaf.c (__fmaf_fma4): Likewise.
+
+ * malloc/obstack.c (_obstack_compat): Add initializer.
+
+2013-05-15 Edjunior Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/s390/bits/siginfo.h (siginfo_t): Remove
+ si_trapno and add si_addr_lsb to _sifields.sigfault.
+ (si_trapno): Remove macro.
+ (si_addr_lsb): Define new macro.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
+2013-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (llrint_test): Consistently use TEST_f_L
+ instead of TEST_f_l.
+ (llrint_test_tonearest): Likewise.
+ (llrint_test_towardzero): Likewise.
+ (llrint_test_downward): Likewise.
+ (llrint_test_upward): Likewise.
+ (llround_test): Likewise.
+
+ * math/libm-test.inc (struct test_f_i_data): Add comment.
+ (RUN_TEST_LOOP_f_b): New macro.
+ (RUN_TEST_LOOP_f_b_tg): Likewise.
+ (finite_test_data): New variable.
+ (finite_test): Run tests with RUN_TEST_LOOP_f_b.
+ (isfinite_test_data): New variable.
+ (isfinite_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+ (isinf_test_data): New variable.
+ (isinf_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+ (isnan_test_data): New variable.
+ (isnan_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+ (isnormal_test_data): New variable.
+ (isnormal_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+ (issignaling_test_data): New variable.
+ (issignaling_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+ (signbit_test_data): New variable.
+ (signbit_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+
+ * math/libm-test.inc (acos_test_data): Use ERRNO_EDOM together
+ with INVALID_EXCEPTION.
+ (acosh_test_data): Likewise.
+ (asin_test_data): Likewise.
+ (atanh_test_data): Likewise.
+ (fmod_test_data): Likewise.
+ (log_test_data): Likewise.
+ (log10_test_data): Likewise.
+ (log2_test_data): Likewise.
+ (pow_test_data): Likewise.
+ (sqrt_test_data): Likewise.
+ (y0_test_data): Likewise.
+ (y1_test_data): Likewise.
+ (yn_test_data): Likewise.
+
+ * math/libm-test.inc (test_single_errno) [TEST_INLINE]: Disable
+ function contents.
+
+ * math/libm-test.inc (struct test_ff_i_data): New type.
+ (RUN_TEST_LOOP_ff_i_tg): New macro.
+ (isgreater_test_data): New variable.
+ (isgreater_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+ (isgreaterequal_test_data): New variable.
+ (isgreaterequal_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+ (isless_test_data): New variable.
+ (isless_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+ (islessequal_test_data): New variable.
+ (islessequal_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+ (islessgreater_test_data): New variable.
+ (islessgreater_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+ (isunordered_test_data): New variable.
+ (isunordered_test): Run tests with RUN_TEST_LOOP_ff_i_tg.
+
+2013-05-14 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+2013-05-14 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (RUN_TEST_LOOP_2_f): Fix whitespace.
+
+ * math/libm-test.inc (struct test_fF_f1_data): Change type of
+ extra_test to int.
+ (struct test_f_i_data): Change type of max_ulp to int.
+
+ * math/libm-test.inc (test_ffI_f1_data): New type.
+ (RUN_TEST_LOOP_ffI_f1): New macro.
+ (remquo_test_data): New variable.
+ (remquo_test): Run tests with RUN_TEST_LOOP_ffI_f1.
+
+ * setjmp/tst-setjmp-fp.c: New file.
+ * setjmp/Makefile (tests): Add tst-setjmp-fp.
+ (link-libm): New variable.
+ ($(objpfx)tst-setjmp-fp): Depend on $(link-libm).
+
+ * math/libm-test.inc (struct test_f_i_data): New type.
+ (RUN_TEST_LOOP_f_i): New macro.
+ (RUN_TEST_LOOP_f_i_tg): Likewise.
+ (fpclassify_test_data): New variable.
+ (fpclassify_test): Run tests with RUN_TEST_LOOP_f_i_tg.
+ (ilogb_test_data): New variable.
+ (ilogb_test): Run tests with RUN_TEST_LOOP_f_i.
+
+ * math/libm-test.inc (scalbln_test): Correct function name in END
+ call.
+
+ * math/libm-test.inc (struct test_f_f1_data): Add comment.
+ (RUN_TEST_LOOP_fI_f1): New macro.
+ (frexp_test_data): New variable.
+ (frexp_test): Run tests with RUN_TEST_LOOP_fI_f1.
+
+ * math/libm-test.inc (struct test_fF_f1_data): New type.
+ (RUN_TEST_LOOP_fF_f1): New macro.
+ (modf_test_data): New variable.
+ (modf_test): Run tests with RUN_TEST_LOOP_fF_f1.
+
+ * math/libm-test.inc (struct test_f_f1_data): New type.
+ (RUN_TEST_LOOP_f_f1): New macro.
+ (gamma_test_data): New variable.
+ (gamma_test): Run tests with RUN_TEST_LOOP_f_f1.
+ (lgamma_test_data): New variable.
+ (lgamma_test): Run tests with RUN_TEST_LOOP_f_f1.
+
+2013-05-13 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/dl-hwcaps.c (_dl_important_hwcaps): Comment vDSO hwcap loading.
+ * elf/ldconfig.c (is_hwcap_platform): Comment each hwcap check.
+ (main): Comment "tls" pseudo-hwcap.
+
+2013-05-13 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (struct test_fl_f_data): New type.
+ (RUN_TEST_LOOP_fl_f): New variable.
+ (scalbln_test_data): New variable.
+ (scalbln_test): Run tests with RUN_TEST_LOOP_fl_f.
+
+ * math/libm-test.inc (struct test_fi_f_data): New type.
+ (RUN_TEST_LOOP_fi_f): New macro.
+ (ldexp_test_data): New variable.
+ (ldexp_test): Run tests with RUN_TEST_LOOP_fi_f.
+ (scalbn_test_data): New variable.
+ (scalbn_test): Run tests with RUN_TEST_LOOP_fi_f.
+
+ * math/libm-test.inc (struct test_c_f_data): New type.
+ (RUN_TEST_LOOP_c_f): New macro.
+ (cabs_test_data): New variable.
+ (cabs_test): Run tests with RUN_TEST_LOOP_c_f.
+ (carg_test_data): New variable.
+ (carg_test): Run tests with RUN_TEST_LOOP_c_f.
+ (cimag_test_data): New variable.
+ (cimag_test): Run tests with RUN_TEST_LOOP_c_f.
+ (creal_test_data): New variable.
+ (creal_test): Run tests with RUN_TEST_LOOP_c_f.
+
+ * math/libm-test.inc (struct test_if_f_data): New type.
+ (RUN_TEST_LOOP_if_f): New macro.
+ (jn_test_data): New variable.
+ (jn_test): Run tests with RUN_TEST_LOOP_if_f.
+ (yn_test_data): New variable.
+ (yn_test): Run tests with RUN_TEST_LOOP_if_f.
+
+ * math/libm-test.inc (scalbln_test): Consistently use TEST_fl_f.
+
+2013-05-13 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * math/libm-test.inc (M_1_DIV_El): Define using decimal constant.
+ (log_test_data): Use M_1_DIV_El instead of 1.0 / M_El.
+
+2013-05-13 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile (CPPFLAGS-nonlib): Add
+ -DUSE_CLOCK_GETTIME if USE_CLOCK_GETTIME is defined.
+ (bench-deps): Add bench-timing.h.
+ * benchtests-bench-skeleton.c: Include bench-timing.h.
+ (main): Use TIMING_* macros instead of clock_gettime.
+ * benchtests/bench-timing.h: New file.
+
+ [BZ #14582]
+ * sysdeps/ieee754/s_lib_version.c (_LIB_VERSION_INTERNAL):
+ Renamed from _LIB_VERSION.
+ (_LIB_VERSION): Set as weak alias of _LIB_VERSION_INTERNAL.
+
+2013-05-12 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (struct test_fff_f_data): New type.
+ (RUN_TEST_LOOP_fff_f): New macro.
+ (fma_test_data): New variable.
+ (fma_test): Run tests with RUN_TEST_LOOP_fff_f.
+ (fma_towardzero_test_data): New variable.
+ (fma_test_towardzero): Run tests with RUN_TEST_LOOP_fff_f.
+ (fma_downward_test_data): New variable.
+ (fma_test_downward): Run tests with RUN_TEST_LOOP_fff_f.
+ (fma_upward_test_data): New variable.
+ (fma_test_upward): Run tests with RUN_TEST_LOOP_fff_f.
+
+ * math/libm-test.inc (BUILD_COMPLEX_ULP): New macro.
+ (struct test_c_c_data): New type.
+ (RUN_TEST_LOOP_c_c): New macro.
+ (cacos_test_data): New variable.
+ (cacos_test): Run tests with RUN_TEST_LOOP_c_c.
+ (cacosh_test_data): New variable.
+ (cacosh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (casin_test_data): New variable.
+ (casin_test): Run tests with RUN_TEST_LOOP_c_c.
+ (casinh_test_data): New variable.
+ (casinh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (catan_test_data): New variable.
+ (catan_test): Run tests with RUN_TEST_LOOP_c_c.
+ (catanh_test_data): New variable.
+ (catanh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (ccos_test_data): New variable.
+ (ccos_test): Run tests with RUN_TEST_LOOP_c_c.
+ (ccosh_test_data): New variable.
+ (ccosh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (cexp_test_data): New variable.
+ (cexp_test): Run tests with RUN_TEST_LOOP_c_c.
+ (clog_test_data): New variable.
+ (clog_test): Run tests with RUN_TEST_LOOP_c_c.
+ (clog10_test_data): New variable.
+ (clog10_test): Run tests with RUN_TEST_LOOP_c_c.
+ (conj_test_data): New variable.
+ (conj_test): Run tests with RUN_TEST_LOOP_c_c.
+ (cproj_test_data): New variable.
+ (cproj_test): Run tests with RUN_TEST_LOOP_c_c.
+ (csin_test_data): New variable.
+ (csin_test): Run tests with RUN_TEST_LOOP_c_c.
+ (csinh_test_data): New variable.
+ (csinh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (csqrt_test_data): New variable.
+ (csqrt_test): Run tests with RUN_TEST_LOOP_c_c.
+ (ctan_test_data): New variable.
+ (ctan_test): Run tests with RUN_TEST_LOOP_c_c.
+ (ctan_tonearest_test_data): New variable.
+ (ctan_test_tonearest): Run tests with RUN_TEST_LOOP_c_c.
+ (ctan_towardzero_test_data): New variable.
+ (ctan_test_towardzero): Run tests with RUN_TEST_LOOP_c_c.
+ (ctan_downward_test_data): New variable.
+ (ctan_test_downward): Run tests with RUN_TEST_LOOP_c_c.
+ (ctan_upward_test_data): New variable.
+ (ctan_test_upward): Run tests with RUN_TEST_LOOP_c_c.
+ (ctanh_test_data): New variable.
+ (ctanh_test): Run tests with RUN_TEST_LOOP_c_c.
+ (ctanh_tonearest_test_data): New variable.
+ (ctanh_test_tonearest): Run tests with RUN_TEST_LOOP_c_c.
+ (ctanh_towardzero_test_data): New variable.
+ (ctanh_test_towardzero): Run tests with RUN_TEST_LOOP_c_c.
+ (ctanh_downward_test_data): New variable.
+ (ctanh_test_downward): Run tests with RUN_TEST_LOOP_c_c.
+ (ctanh_upward_test_data): New variable.
+ (ctanh_test_upward): Run tests with RUN_TEST_LOOP_c_c.
+ * math/gen-libm-test.pl (get_ulps): Use BUILD_COMPLEX_ULP instead
+ of BUILD_COMPLEX.
+
+ * math/libm-test.inc (struct test_ff_f_data): New type.
+ (struct test_ff_f_data_nexttoward): Likewise.
+ (RUN_TEST_LOOP_2_f): New macro.
+ (RUN_TEST_LOOP_ff_f): Likewise.
+ (atan2_test_data): New variable.
+ (atan2_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (copysign_test_data): New variable.
+ (copysign_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (fdim_test_data): New variable.
+ (fdim_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (fmax_test_data): New variable.
+ (fmax_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (fmin_test_data): New variable.
+ (fmin_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (fmod_test_data): New variable.
+ (fmod_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (hypot_test_data): New variable.
+ (hypot_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (nextafter_test_data): New variable.
+ (nextafter_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (nexttoward_test_data): New variable.
+ (nexttoward_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (pow_test_data): New variable.
+ (pow_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (pow_tonearest_test_data): New variable.
+ (pow_test_tonearest): Run tests with RUN_TEST_LOOP_ff_f.
+ (pow_towardzero_test_data): New variable.
+ (pow_test_towardzero): Run tests with RUN_TEST_LOOP_ff_f.
+ (pow_downward_test_data): New variable.
+ (pow_test_downward): Run tests with RUN_TEST_LOOP_ff_f.
+ (pow_upward_test_data): New variable.
+ (pow_test_upward): Run tests with RUN_TEST_LOOP_ff_f.
+ (remainder_test_data): New variable.
+ (remainder_test): Run tests with RUN_TEST_LOOP_ff_f.
+ (scalb_test_data): New variable.
+ (scalb_test): Run tests with RUN_TEST_LOOP_ff_f.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+
+2013-05-11 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (fma_test): Use max_value instead of local
+ variable fltmax.
+ (nextafter_test): Likewise.
+
+ * math/libm-test.inc (acos_towardzero_test_data): New variable.
+ (acos_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (acos_downward_test_data): New variable.
+ (acos_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (acos_upward_test_data): New variable.
+ (acos_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (acosh_test_data): New variable.
+ (acosh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (asin_test_data): New variable.
+ (asin_test): Run tests with RUN_TEST_LOOP_f_f.
+ (asin_tonearest_test_data): New variable.
+ (asin_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (asin_towardzero_test_data): New variable.
+ (asin_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (asin_downward_test_data): New variable.
+ (asin_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (asin_upward_test_data): New variable.
+ (asin_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (asinh_test_data): New variable.
+ (asinh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (atan_test_data): New variable.
+ (atan_test): Run tests with RUN_TEST_LOOP_f_f.
+ (atanh_test_data): New variable.
+ (atanh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (cbrt_test_data): New variable.
+ (cbrt_test): Run tests with RUN_TEST_LOOP_f_f.
+ (ceil_test_data): New variable.
+ (ceil_test): Run tests with RUN_TEST_LOOP_f_f.
+ (cos_test_data): New variable.
+ (cos_test): Run tests with RUN_TEST_LOOP_f_f.
+ (cos_tonearest_test_data): New variable.
+ (cos_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (cos_towardzero_test_data): New variable.
+ (cos_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (cos_downward_test_data): New variable.
+ (cos_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (cos_upward_test_data): New variable.
+ (cos_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (cosh_test_data): New variable.
+ (cosh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (cosh_tonearest_test_data): New variable.
+ (cosh_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (cosh_towardzero_test_data): New variable.
+ (cosh_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (cosh_downward_test_data): New variable.
+ (cosh_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (cosh_upward_test_data): New variable.
+ (cosh_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (erf_test_data): New variable.
+ (erf_test): Run tests with RUN_TEST_LOOP_f_f.
+ (erfc_test_data): New variable.
+ (erfc_test): Run tests with RUN_TEST_LOOP_f_f.
+ (exp_test_data): New variable.
+ (exp_test): Run tests with RUN_TEST_LOOP_f_f.
+ (exp_tonearest_test_data): New variable.
+ (exp_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (exp_towardzero_test_data): New variable.
+ (exp_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (exp_downward_test_data): New variable.
+ (exp_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (exp_upward_test_data): New variable.
+ (exp_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (exp10_test_data): New variable.
+ (exp10_test): Run tests with RUN_TEST_LOOP_f_f.
+ (exp2_test_data): New variable.
+ (exp2_test): Run tests with RUN_TEST_LOOP_f_f.
+ (expm1_test_data): New variable.
+ (expm1_test): Run tests with RUN_TEST_LOOP_f_f.
+ (fabs_test_data): New variable.
+ (fabs_test): Run tests with RUN_TEST_LOOP_f_f.
+ (floor_test_data): New variable.
+ (floor_test): Run tests with RUN_TEST_LOOP_f_f.
+ (j0_test_data): New variable.
+ (j0_test): Run tests with RUN_TEST_LOOP_f_f.
+ (j1_test_data): New variable.
+ (j1_test): Run tests with RUN_TEST_LOOP_f_f.
+ (log_test_data): New variable.
+ (log_test): Run tests with RUN_TEST_LOOP_f_f.
+ (log10_test_data): New variable.
+ (log10_test): Run tests with RUN_TEST_LOOP_f_f.
+ (log1p_test_data): New variable.
+ (log1p_test): Run tests with RUN_TEST_LOOP_f_f.
+ (log2_test_data): New variable.
+ (log2_test): Run tests with RUN_TEST_LOOP_f_f.
+ (logb_test_data): New variable.
+ (logb_test): Run tests with RUN_TEST_LOOP_f_f.
+ (logb_downward_test_data): New variable.
+ (logb_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (nearbyint_test_data): New variable.
+ (nearbyint_test): Run tests with RUN_TEST_LOOP_f_f.
+ (rint_test_data): New variable.
+ (rint_test): Run tests with RUN_TEST_LOOP_f_f.
+ (rint_tonearest_test_data): New variable.
+ (rint_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (rint_towardzero_test_data): New variable.
+ (rint_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (rint_downward_test_data): New variable.
+ (rint_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (rint_upward_test_data): New variable.
+ (rint_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (round_test_data): New variable.
+ (round_test): Run tests with RUN_TEST_LOOP_f_f.
+ (sin_test_data): New variable.
+ (sin_test): Run tests with RUN_TEST_LOOP_f_f.
+ (sin_tonearest_test_data): New variable.
+ (sin_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (sin_towardzero_test_data): New variable.
+ (sin_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (sin_downward_test_data): New variable.
+ (sin_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (sin_upward_test_data): New variable.
+ (sin_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (sinh_test_data): New variable.
+ (sinh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (sinh_tonearest_test_data): New variable.
+ (sinh_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (sinh_towardzero_test_data): New variable.
+ (sinh_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (sinh_downward_test_data): New variable.
+ (sinh_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (sinh_upward_test_data): New variable.
+ (sinh_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (sqrt_test_data): New variable.
+ (sqrt_test): Run tests with RUN_TEST_LOOP_f_f.
+ (tan_test_data): New variable.
+ (tan_test): Run tests with RUN_TEST_LOOP_f_f.
+ (tan_tonearest_test_data): New variable.
+ (tan_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+ (tan_towardzero_test_data): New variable.
+ (tan_test_towardzero): Run tests with RUN_TEST_LOOP_f_f.
+ (tan_downward_test_data): New variable.
+ (tan_test_downward): Run tests with RUN_TEST_LOOP_f_f.
+ (tan_upward_test_data): New variable.
+ (tan_test_upward): Run tests with RUN_TEST_LOOP_f_f.
+ (tanh_test_data): New variable.
+ (tanh_test): Run tests with RUN_TEST_LOOP_f_f.
+ (tgamma_test_data): New variable.
+ (tgamma_test): Run tests with RUN_TEST_LOOP_f_f.
+ (trunc_test_data): New variable.
+ (trunc_test): Run tests with RUN_TEST_LOOP_f_f.
+ (y0_test_data): New variable.
+ (y0_test): Run tests with RUN_TEST_LOOP_f_f.
+ (y1_test_data): New variable.
+ (y1_test): Run tests with RUN_TEST_LOOP_f_f.
+ (significand_test_data): New variable.
+ (significand_test): Run tests with RUN_TEST_LOOP_f_f.
+
+2013-05-10 Christian Grönke <cgr_bugs@sysgo.com>
+
+ [BZ #12387]
+ * sysdeps/unix/sysv/linux/sh/getgid.c: New file.
+
+2013-05-10 Pino Toscano <toscano.pino@tiscali.it>
+
+ * sysdeps/mach/hurd/bits/statvfs.h: Add ST_NOATIME.
+
+2013-05-10 Andreas Jaeger <aj@suse.de>
+
+ [BZ #15448]
+ * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_SET_S)
+ (__CPU_CLR_S, __CPU_ISSET_S): Avoid integer overflow.
+
+2013-05-10 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (adjust_arg): New function.
+ (special_functions): Handle generating output in both functions
+ and arrays.
+ (parse_args): Likewise.
+ (generate_testfile): Handle START_DATA and END_DATA. Pass extra
+ $in_func argument to parse_args.
+ * math/libm-test.inc (struct test_f_f_data): New type.
+ (IF_ROUND_INIT_): New macro.
+ (IF_ROUND_INIT_FE_DOWNWARD): Likewise.
+ (IF_ROUND_INIT_FE_TONEAREST): Likewise.
+ (IF_ROUND_INIT_FE_TOWARDZERO): Likewise.
+ (IF_ROUND_INIT_FE_UPWARD): Likewise.
+ (ROUND_RESTORE_): Likewise.
+ (ROUND_RESTORE_FE_DOWNWARD): Likewise.
+ (ROUND_RESTORE_FE_TONEAREST): Likewise.
+ (ROUND_RESTORE_FE_TOWARDZERO): Likewise.
+ (ROUND_RESTORE_FE_UPWARD): Likewise.
+ (RUN_TEST_LOOP_f_f): New macro.
+ (acos_test_data): New variable.
+ (acos_test): Run tests with RUN_TEST_LOOP_f_f.
+ (acos_tonearest_test_data): New variable.
+ (acos_test_tonearest): Run tests with RUN_TEST_LOOP_f_f.
+
+2013-05-10 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/bench-skeleton.c (startup): Fix coding style.
+
+2013-05-10 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #6809]
+ * math/w_tgamma.c (__tgamma): Also call __kernel_standard for
+ negative infinity argument.
+ * math/w_tgammaf.c (__tgammaf): Also call __kernel_standard_f for
+ negative infinity argument.
+ * math/w_tgammal.c (__tgammal): Also call __kernel_standard_l for
+ negative infinity argument.
+ * math/libm-test.inc (tgamma_test): Expect errno to be set for
+ domain errors.
+
+2013-05-10 Florian Weimer <fweimer@redhat.com>
+
+ * elf/sprof.c (load_profdata): Use fstat64 instead of fstat.
+ * iconv/iconv_charmap.c (charmap_conversion): Likewise.
+ * iconv/iconv_prog.c (main): Likewise.
+ * locale/programs/charmap-dir.c (charmap_readdir)
+ (fopen_uncompressed): Likewise.
+ * locale/programs/locfile.c (siblings_uncached)
+ (write_locale_data): Use lstat64 instead of lstat.
+ * sunrpc/rpc_main.c (find_cpp, checkfiles): Use stat64 instead of
+ stat.
+
+2013-05-10 Andreas Jaeger <aj@suse.de>
+
+ [BZ #15395]
+ * sunrpc/rpc_main.c (main): Invoke setlocale and textdomain for
+ localization.
+ Include <locale.h>.
+
+2013-05-09 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/dl-close.c (_dl_close_worker): Add comments.
+
+2013-05-09 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15359]
+ * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (c): Use 106 bits for
+ high part of pi/2.
+ (__ieee754_rem_pio2l): Update comments.
+
+ [BZ #15429]
+ * sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (c): Use 113 bits for
+ high part of pi/2.
+ (__ieee754_rem_pio2l): Update comments.
+
+ * math/libm-test.inc (M_SQRT_2_2): Remove macro.
+ (csqrt_test): Use M_SQRT1_2l instead of M_SQRT_2_2.
+
+ * math/libm-test.inc (carg_test): Use M_PI_34l instead of 3 *
+ M_PI_4l.
+
+ * math/libm-test.inc (M_PI_34l): Define using decimal constant.
+ (M_PI_34_LOG10El): Likewise.
+ (M_PI2_LOG10El): Likewise.
+ (M_PI4_LOG10El): Likewise.
+ (M_PI_LOG10El): Likewise.
+
+2013-05-08 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2013-05-08 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (PLUS_ZERO_INIT): New macro.
+ (MINUS_ZERO_INIT): Likewise.
+ (PLUS_INFTY_INIT): Likewise.
+ (MINUS_INFTY_INIT): Likewise.
+ (QNAN_VALUE_INIT): Likewise.
+ (MAX_VALUE_INIT): Likewise.
+ (MIN_VALUE_INIT): Likewise.
+ (MIN_SUBNORM_VALUE_INIT): Likewise.
+ (plus_zero): Initialize with PLUS_ZERO_INIT.
+ (minus_zero): Initialize with MINUS_ZERO_INIT.
+ (plus_infty): Initialize with PLUS_INFTY_INIT.
+ (minus_infty): Initialize with MINUS_INFTY_INIT.
+ (qnan_value): Initialize with QNAN_VALUE_INIT.
+ (max_value): Initialize with MAX_VALUE_INIT.
+ (min_value): Initialize with MIN_VALUE_INIT.
+ (min_subnorm_value): Initialize with MIN_SUBNORM_VALUE_INIT.
+
+ * math/libm-test.inc (RUN_TEST_if_f): New macro.
+ (jn_test): Use TEST_if_f instead of TEST_ff_f.
+ (ldexp_text): Use TEST_fi_i instead of TEST_ff_f.
+ (yn_test): Use TEST_if_f instead of TEST_ff_f.
+
+ * math/libm-test.inc (RUN_TEST_f_f): New macro.
+ (RUN_TEST_2_f): Likewise.
+ (RUN_TEST_ff_f): Likewise.
+ (RUN_TEST_fi_f): Likewise.
+ (RUN_TEST_fl_f): Likewise.
+ (RUN_TEST_fff_f): Likewise.
+ (RUN_TEST_c_f): Likewise.
+ (RUN_TEST_f_f1): Likewise.
+ (RUN_TEST_fF_f1): Likewise.
+ (RUN_TEST_fI_f1): Likewise.
+ (RUN_TEST_ffI_f1): Likewise.
+ (RUN_TEST_c_c): Likewise.
+ (RUN_TEST_cc_c): Likewise.
+ (RUN_TEST_f_i): Likewise.
+ (RUN_TEST_f_i_tg): Likewise.
+ (RUN_TEST_ff_i_tg): Likewise.
+ (RUN_TEST_f_b): Likewise.
+ (RUN_TEST_f_b_tg): Likewise.
+ (RUN_TEST_f_l): Likewise.
+ (RUN_TEST_f_L): Likewise.
+ (RUN_TEST_sincos): Likewise.
+ * math/gen-libm-test.pl (new_test): Take new argument to indicate
+ whether to show exceptions. Do not include ");\n" in return
+ value.
+ (special_functions): Output call to RUN_TEST_sincos instead of
+ check_float calls. Update calls to new_test.
+ (parse_args): Output call to single RUN_TEST_* macro instead of
+ check_* calls and other assignments. Update calls to new_test.
+
+ [BZ #2546]
+ [BZ #2560]
+ [BZ #5159]
+ [BZ #15426]
+ * sysdeps/ieee754/k_standard.c (__kernel_standard): Copy sign of
+ input to result for tgamma overflow.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c: Include <float.h>.
+ (gamma_coeff): New variable.
+ (NCOEFF): New macro.
+ (gamma_positive): New function.
+ (__ieee754_gamma_r): Handle positive infinity, NaN, overflow and
+ underflow here. Use gamma_positive instead of exp (lgamma) for
+ other arguments.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c: Include <float.h>.
+ (gamma_coeff): New variable.
+ (NCOEFF): New macro.
+ (gammaf_positive): New function.
+ (__ieee754_gammaf_r): Handle positive infinity, NaN, overflow and
+ underflow here. Use gamma_positive instead of exp (lgamma) for
+ other arguments.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c: Include <float.h>.
+ (gamma_coeff): New variable.
+ (NCOEFF): New macro.
+ (gammal_positive): New function.
+ (__ieee754_gammal_r): Handle positive infinity, NaN, overflow and
+ underflow here. Use gamma_positive instead of exp (lgamma) for
+ other arguments.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Include <float.h>.
+ (gamma_coeff): New variable.
+ (NCOEFF): New macro.
+ (gammal_positive): New function.
+ (__ieee754_gammal_r): Handle positive infinity, overflow and
+ underflow here. Handle NaN the same as positive infinity. Remove
+ check x < 0xffffffff for negative integers. Use gamma_positive
+ instead of exp (lgamma) for other arguments.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c: Include <float.h>.
+ (gamma_coeff): New variable.
+ (NCOEFF): New macro.
+ (gammal_positive): New function.
+ * sysdeps/ieee754/dbl-64/gamma_product.c: New file.
+ * sysdeps/ieee754/dbl-64/gamma_productf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/gamma_productl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/gamma_productl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/gamma_product.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/gamma_productl.c: Likewise.
+ * sysdeps/generic/math_private.h (__gamma_productf): New
+ prototype.
+ (__gamma_product): Likewise.
+ (__gamma_productl): Likewise.
+ * math/Makefile (libm-calls): Add gamma_product.
+ * math/libm-test.inc (tgamma_test): Add more tests.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-05-08 Ondřej Bílka <neleai@seznam.cz>
+
+ * benchtests/bench-skeleton.c (main): Preheat CPU.
+
+2013-05-07 Aurelien Jarno <aurelien@aurel32.net>
+
+ * misc/sys/param.h (DEV_BSIZE): Define only if not already defined.
+
+2013-05-07 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/generic/ldsodefs.h [IS_IN_rtld]: Declare _dl_skip_args
+ and _dl_skip_args_internal.
+
+2013-05-07 Carlos O'Donell <carlos@redhat.com>
+
+ * manual/message.texi (Message Translation): Talk about users.
+ Message to key mapping impacts design.
+
+2013-05-06 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/unix/sysv/linux/wordsize-64/glob64.c: New file.
+
+ * elf/dl-open.c: Remove declaration of _dl_sysdep_start.
+
+ * sysdeps/unix/sysv/linux/wordsize-64/glob64.c: Moved to ...
+ * sysdeps/wordsize-64/glob64.c: ... here.
+
+ * sysdeps/generic/not-cancel.h (NO_CANCELLATION): New macro.
+ (pause_not_cancel, nanosleep_not_cancel, sigsuspend_not_cancel):
+ New macros.
+
+ * debug/getlogin_r_chk.c: Moved to ...
+ * login/getlogin_r_chk.c: ... here.
+ * debug/Makefile (routines): Move getlogin_r_chk to ...
+ * login/Makefile (routines): ... here.
+ * debug/Versions (libc: GLIBC_2.4): Move getlogin_r_chk to ...
+ * login/Versions (libc: GLIBC_2.4): ... here.
+
+ * io/poll.c (__poll): Renamed from poll.
+ Add libc_hidden_def.
+ (poll): Define as weak alias.
+
+ * debug/ptsname_r_chk.c: Moved to ...
+ * login/ptsname_r_chk.c: ... here.
+ * debug/Makefile (routines): Move ptsname_r_chk to ...
+ * login/Makefile (routines): ... here.
+ * debug/Versions (libc: GLIBC_2.4): Move __ptsname_r_chk to ...
+ * login/Versions (libc: GLIBC_2.4): ... here.
+
+ * posix/getlogin.c: Moved to ...
+ * login/getlogin.c: ... here.
+ * posix/getlogin_r.c: Moved to ...
+ * login/getlogin_r.c: ... here.
+ * posix/getlogin_r.c: Moved to ...
+ * login/getlogin_r.c: ... here.
+ * posix/Makefile (routines): Move getlogin, getlogin_r, setlogin to ...
+ * login/Makefile (routines): ... here.
+ * posix/Versions (libc: GLIBC_2.0): Move setlogin to ...
+ * login/Versions (libc: GLIBC_2.0): ... here.
+
+ * resource/setrlimit.c (__setrlimit): Renamed from setrlimit.
+ (setrlimit): Define as weak alias.
+
+ * sysdeps/posix/truncate.c (__truncate): Renamed from truncate.
+ Call __ names for open, ftruncate, and close.
+ For LENGTH==0 case, just use O_TRUNC rather than calling ftruncate.
+ (truncate): Define as weak alias.
+
+2013-05-06 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (parse_args): Initialize x before each
+ test of frexp, modf and remquo.
+
+ * math/libm-test.inc (gamma_test): Consistently use TEST_f_f1 to
+ test signgam value.
+
+2013-05-06 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ [BZ #15418]
+ [BZ #15419]
+ * sysdeps/powerpc/fpu/e_hypot.c: Fix spurious FP exception generated by
+ internal tests.
+ * sysdeps/powerpc/fpu/e_hypotf.c: Likewise.
+
+2013-05-06 Roland McGrath <roland@hack.frob.com>
+
+ * elf/dl-writev.h: New file.
+ * elf/dl-misc.c: Include it.
+ (_dl_debug_vdprintf): Call _dl_writev instead of __writev et al.
+ * sysdeps/unix/sysv/linux/dl-writev.h: New file.
+
+2013-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (noXFails): Remove variable.
+ (noXPasses): Likewise.
+ (BUILD_COMPLEX_INT): Remove macro.
+ (print_screen): Remove xfail argument.
+ (print_screen_max_error): Likewise.
+ (update_stats): Likewise.
+ (print_max_error): Likewise. Update calls to other affected
+ functions.
+ (print_complex_max_error): Likewise.
+ (test_single_exception): Update calls to print_screen.
+ (test_single_errno): Likewise.
+ (check_float_internal): Remove xfail argument. Update calls to
+ other affected functions.
+ (check_float): Likewise.
+ (check_complex): Likewise.
+ (check_int): Likewise.
+ (check_long): Likewise.
+ (check_bool): Likewise.
+ (check_longlong): Likewise.
+ (main): Don't print noXFails and noXPasses.
+ * math/gen-libm-test.pl (top level): Don't mention expected
+ failure handling in comment.
+ (new_test): Don't handle expected failures.
+ (parse_args): Don't mention expected failure handling in comment.
+ (generate_testfile): Don't handle expected failures.
+ (parse_ulps): Likewise.
+ (print_ulps_file): Likewise.
+ (get_failure): Remove function.
+ (output_test): Don't handle expected failures.
+ * make/README.libm-test: Don't mention expected failure handling.
+
+ * math/libm-test.inc (plus_zero): Make const. Add initializer.
+ (minus_zero): Likewise.
+ (plus_infty): Likewise.
+ (minus_infty): Likewise.
+ (qnan_value): Likewise.
+ (max_value): Likewise.
+ (min_value): Likewise.
+ (min_subnorm_value): Likewise.
+ (initialize): Do not initialize those variables dynamically.
+
+2013-05-03 Roland McGrath <roland@hack.frob.com>
+
+ * io/open.c (__open_2): Moved to ...
+ * io/open_2.c: ... this new file.
+ * io/open64.c (__open64_2): Moved to ...
+ * io/open64_2.c: ... this new file.
+ * io/openat.c (__openat_2): Moved to ...
+ * io/openat_2.c: ... this new file.
+ * io/openat64.c (__openat64_2): Moved to ...
+ * io/openat64_2.c: ... this new file.
+ * io/Makefile (routines): Add them.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove them.
+ * sysdeps/unix/sysv/linux/open_2.c: File removed.
+ * sysdeps/unix/sysv/linux/open64_2.c: File removed.
+ * sysdeps/unix/sysv/linux/openat.c (__OPENAT_2): Removed.
+ * sysdeps/unix/sysv/linux/openat64.c (__OPENAT_2): Removed.
+ * sysdeps/unix/sysv/linux/wordsize-64/openat.c (__openat_2): Removed.
+ (__openat64): Add hidden_ver.
+ * sysdeps/mach/hurd/open.c (__open_2, __open64_2): Removed.
+ * sysdeps/mach/hurd/openat.c (__openat_2): Removed.
+
+ * elf/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]:
+ Separately conditionalize setting of GLRO(dl_sysinfo) so
+ that the GLRO(dl_sysinfo_dso) test is under [NEED_DL_SYSINFO_DSO]
+ as well, but the actual setting is only under [NEED_DL_SYSINFO].
+
+2013-04-30 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/Versions: Add __vdso_time symbol.
+ * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h: Add __vdso_time
+ definition.
+ (VDSO_IFUNC_RET): Cast to void * to silence compiler warning.
+ * sysdeps/unix/sysv/linux/powerpc/init-first.c
+ (_libc_vdso_platform_setup): Add __vdso_time initialization.
+ * sysdeps/unix/sysv/linux/powerpc/time.c: New file: time implementation
+ for PowerPC using vDSO where is avaliable or gettimeofday as a fallback.
+
+2013-05-03 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (lgamma_test): Consistently use TEST_f_f1 to
+ test signgam value.
+
+ * math/libm-test.inc (hypot_test): Do not use
+ IGNORE_ZERO_INF_SIGN.
+
+2013-05-03 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_TIMESTAMP): New value, from
+ Linux 3.9.
+ * sysdeps/unix/sysv/linux/bits/socket.h (PF_VSOCK, AF_VSOCK): Add.
+ (PF_MAX): Adjust for VSOCK change.
+
+2013-05-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2013-05-02 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #15264]
+ * localedata/locales/en_CA (LC_MESSAGES): Define yesstr and nostr.
+ * localedata/locales/es_AR (LC_MESSAGES): Copy es_ES.
+ * localedata/locales/es_ES (LC_MESSAGES): Define yesstr and nostr.
+
+2013-05-02 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+2013-05-01 Ondřej Bílka <neleai@seznam.cz>
+
+ * string/bits/string2.h (__strcmp_cg): Call __strcmp_gc.
+
+2013-05-01 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/posix/opendir.c: Include <sys/param.h> to get MIN/MAX macros.
+
+2013-05-01 Richard Smith <richard@metafoo.co.uk>
+
+ [BZ #14952]
+ * misc/sys/cdefs.h (__extern_inline, __extern_always_inline)
+ [__GNUC__ && (__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
+ Use __attribute__ ((__gnu_inline__)).
+ [__GNUC__ && !(__GNUC_STDC_INLINE__ || __GNUC_GNU_INLINE__)]:
+ Don't use __attribute__ ((__gnu_inline__)).
+
+2013-05-01 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15423]
+ * math/s_catan.c (__catan): Handle small real or imaginary part of
+ input specially to avoid spurious underflow.
+ * math/s_catanf.c (__catanf): Likewise.
+ * math/s_catanh.c (__catanh): Likewise.
+ * math/s_catanhf.c (__catanhf): Likewise.
+ * math/s_catanhl.c (__catanhl): Likewise.
+ * math/s_catanl.c (__catanl): Likewise.
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-04-30 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2013-04-30 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15416]
+ * math/s_catan.c (__catan): Compute expressions 1 - x^2 - y^2 more
+ accurately for denominator in atan2.
+ * math/s_catanf.c (__catanf): Likewise.
+ * math/s_catanh.c (__catanh): Likewise.
+ * math/s_catanhf.c (__catanhf): Likewise.
+ * math/s_catanhl.c (__catanhl): Likewise.
+ * math/s_catanl.c (__catanl): Likewise.
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-04-30 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c: Format code.
+
+ * benchtests/Makefile (bench): Remove slow benchmarks.
+ * benchtests/atan-inputs: Add slow benchmark inputs.
+ * benchtests/bench-modf.c (NUM_VARIANTS): Define.
+ (BENCH_FUNC): Accept variant offset.
+ (VARIANT): Define.
+ * benchtests/bench-skeleton.c (main): Run benchmark for each
+ variant.
+ * benchtests/cos-inputs: Add slow benchmark inputs.
+ * benchtests/exp-inputs: Likewise.
+ * benchtests/pow-inputs: Likewise.
+ * benchtests/sin-inputs: Likewise.
+ * benchtests/slowatan-inputs: Remove.
+ * benchtests/slowatan.c: Remove.
+ * benchtests/slowcos-inputs: Remove.
+ * benchtests/slowcos.c: Remove.
+ * benchtests/slowexp-inputs: Remove.
+ * benchtests/slowexp.c: Remove.
+ * benchtests/slowpow-inputs: Remove.
+ * benchtests/slowpow.c: Remove.
+ * benchtests/slowsin-inputs: Remove.
+ * benchtests/slowsin.c: Remove.
+ * benchtests/slowtan-inputs: Remove.
+ * benchtests/slowtan.c: Remove.
+ * benchtests/tan-inputs: Add slow benchmark inputs.
+ * scripts/bench.pl: Parse comments and directives.
+
+ * benchtests/Makefile: Remove *-ITER. Define BENCH_DURATION
+ in CPPFLAGS.
+ ($(objpfx)bench-%.c): Remove *-ITER.
+ * benchtests/bench-modf.c: Remove definition of ITER.
+ * benchtests/bench-skeleton.c (TIMESPEC_AFTER): New macro.
+ (main): Loop for DURATION seconds instead of fixed number of
+ iterations.
+ * scripts/bench.pl: Don't expect iterations in parameters.
+
+2013-04-29 Roland McGrath <roland@hack.frob.com>
+
+ * io/fchdir.c (__fchdir): Renamed from fchdir.
+ (fchdir): Define as weak alias.
+
+2013-04-29 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (ERRNO_UNCHANGED): New macro.
+ (ERRNO_EDOM): Likewise.
+ (ERRNO_ERANGE): Likewise.
+ (noErrnoTests): New variable.
+ (init_max_error): Set errno to 0.
+ (test_single_errno): New function.
+ (test_errno): Likewise.
+ (check_float_internal): Call test_errno. Set errno to 0.
+ (check_complex): Refer to errno tests in comment.
+ (check_int): Call test_errno. Set errno to 0.
+ (check_long): Likewise.
+ (check_bool): Likewise.
+ (check_longlong): Likewise.
+ (cos_test): Use ERRNO_* flags for errno tests instead of
+ check_int.
+ (expm1_test): Likewise.
+ (fmod_test): Likewise.
+ (ilogb_test): Likewise.
+ (lgamma_test): Likewise.
+ (pow_test): Likewise.
+ (remainder_test): Likewise.
+ (sin_test): Likewise.
+ (tan_test): Likewise.
+ (yn_test): Likewise.
+ (initialize): Set errno to 0.
+ (main): Print number of errno tests.
+ * math/gen-libm-test.pl (parse_args): Allow ERRNO flags on tests.
+
+2013-04-29 Andreas Jaeger <aj@suse.de>
+
+ [BZ #15084]
+ * resolv/res_debug.c (p_option): Fix strings for RES_USEBSTRING
+ and RES_USEVC.
+
+ [BZ #15085]
+ * resolv/resolv.h (RES_NOCHECKNAME): Mark as unimplemented.
+ * resolv/res_debug.c (p_option): Mark RES_NOCHECKNAME as
+ unimplemented.
+
+ [BZ #15380]
+ * stdlib/random.c (__initstate): Return NULL if
+ __initstate fails.
+
+ [BZ #15086]
+ * resolv/res_debug.c (p_option): Handle RES_NOALIASES,
+ RES_KEEPTSIG, RES_BLAST, RES_NOIP6DOTINT, RES_SNGLKUP,
+ RES_SNGLKUPREOP.
+
+2013-04-29 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2013-04-29 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (cacos_test): Add missing semicolons at ends
+ of individual tests.
+ (casin_test): Likewise.
+ (casinh_test): Likewise.
+
+2013-04-27 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15409]
+ * math/s_catan.c (__catan): Handle arguments with large real or
+ imaginary part separately without squaring.
+ * math/s_catanf.c (__catanf): Likewise.
+ * math/s_catanh.c (__catanh): Likewise.
+ * math/s_catanhf.c (__catanhf): Likewise.
+ * math/s_catanhl.c [LDBL_MANT_DIG == 106] (LDBL_EPSILON): Undefine
+ and redefine.
+ (__catanhl): Handle arguments with large real or imaginary part
+ separately without squaring.
+ * math/s_catanl.c [LDBL_MANT_DIG == 106] (LDBL_EPSILON): Undefine
+ and redefine.
+ (__catanl): Handle arguments with large real or imaginary part
+ separately without squaring.
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-04-27 Andreas Jaeger <aj@suse.de>
+
+ [BZ #15007]
+ * stdlib/stdlib.h: Update guards for qecvt.
+ * stdlib/bits/stdlib-ldbl.h: Sync guards for qecvt etc with
+ <stdlib.h>.
+
+2013-04-27 Allan McRae <allan@archlinux.org>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+
+2013-04-26 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15406]
+ * math/s_catan.c: Include <float.h>.
+ (__catan): Ensure underflow exception occurs for underflowed
+ result.
+ * math/s_catanf.c: Include <float.h>.
+ (__catanf): Ensure underflow exception occurs for underflowed
+ result.
+ * math/s_catanh.c: Include <float.h>.
+ (__catanh): Ensure underflow exception occurs for underflowed
+ result.
+ * math/s_catanhf.c: Include <float.h>.
+ (__catanhf): Ensure underflow exception occurs for underflowed
+ result.
+ * math/s_catanhl.c: Include <float.h>.
+ (__catanhl): Ensure underflow exception occurs for underflowed
+ result.
+ * math/s_catanl.c: Include <float.h>.
+ (__catanl): Ensure underflow exception occurs for underflowed
+ result.
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+
+ [BZ #15405]
+ * math/s_ccosh.c (__ccosh): Ensure underflow exception occurs for
+ underflowed result.
+ * math/s_ccoshf.c (__ccoshf): Likewise.
+ * math/s_ccoshl.c (__ccoshl): Likewise.
+ * math/s_csin.c (__csin): Likewise.
+ * math/s_csinf.c (__csinf): Likewise.
+ * math/s_csinh.c (__csinh): Likewise.
+ * math/s_csinhf.c (__csinhf): Likewise.
+ * math/s_csinhl.c (__csinhl): Likewise.
+ * math/s_csinl.c (__csinl): Likewise.
+ * math/libm-test.inc (ccos_test): Add more tests.
+ (ccosh_test): Likewise.
+ (csin_test): Likewise.
+ (csinh_test): Likewise.
+
+2013-04-26 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/power5/fpu/s_modf.c: Moved to ...
+ * sysdeps/powerpc/power5+/fpu/s_modf.c: ... this.
+ * sysdeps/powerpc/power5/fpu/s_modff.c: Moved to ...
+ * sysdeps/powerpc/power5+/fpu/s_modff.c: ... this.
+ * sysdeps/powerpc/powerpc32/power5+/Implies: Add powerpc/power5+ and
+ powerpc/power5+/fpu folders.
+ * sysdeps/powerpc/powerpc64/power5+/Implies: Likewise.
+
+
+2013-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+2013-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/Makefile [$(config-machine) = x86_64] (tests): Remove
+ additions to variable.
+ [$(config-machine) = x86_64] (modules-names): Likewise.
+ ($(objpfx)tst-audit3): Remove dependency.
+ ($(objpfx)tst-audit3.out): Likewise.
+ ($(objpfx)tst-audit4): Likewise.
+ ($(objpfx)tst-audit4.out): Likewise.
+ ($(objpfx)tst-audit5): Likewise.
+ ($(objpfx)tst-audit5.out): Likewise.
+ ($(objpfx)tst-audit6): Likewise.
+ ($(objpfx)tst-audit6.out): Likewise.
+ ($(objpfx)tst-audit7): Likewise.
+ ($(objpfx)tst-audit7.out): Likewise.
+ (tst-audit3-ENV): Remove variable.
+ (tst-audit4-ENV): Likewise.
+ (tst-audit5-ENV): Likewise.
+ (tst-audit6-ENV): Likewise.
+ (tst-audit7-ENV): Likewise.
+ [$(config-cflags-avx) = yes] (AVX-CFLAGS): Likewise.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-audit4.c): Remove
+ addition to variable.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod4a.c): Likewise.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod4b.c): Likewise.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod6b.c): Likewise.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod6c.c): Likewise.
+ [$(config-cflags-avx) = yes] (CFLAGS-tst-auditmod7b.c): Likewise.
+ * sysdeps/x86_64/Makefile [$(subdir) = elf] (tests): Add
+ tst-audit3, tst-audit4 and tst-audit5.
+ [$(subdir) = elf && $(config-cflags-avx) = yes] (tests): Add
+ tst-audit6 and tst-audit7.
+ [$(subdir) = elf] (modules-names): Add audit modules for those
+ tests.
+ [$(subdir) = elf] ($(objpfx)tst-audit3): New dependency.
+ [$(subdir) = elf] ($(objpfx)tst-audit3.out): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit4): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit4.out): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit5): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit5.out): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit6): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit6.out): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit7): Likewise.
+ [$(subdir) = elf] ($(objpfx)tst-audit7.out): Likewise.
+ [$(subdir) = elf] (tst-audit3-ENV): New variable.
+ [$(subdir) = elf] (tst-audit4-ENV): Likewise.
+ [$(subdir) = elf] (tst-audit5-ENV): Likewise.
+ [$(subdir) = elf] (tst-audit6-ENV): Likewise.
+ [$(subdir) = elf] (tst-audit7-ENV): Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes] (AVX-CFLAGS):
+ Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-audit4.c): Append $(AVX-CFLAGS).
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-auditmod4a.c): Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-auditmod4b.c): Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-auditmod6b.c): Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-auditmod6c.c): Likewise.
+ [$(subdir) = elf && $(config-cflags-avx) = yes]
+ (CFLAGS-tst-auditmod7b.c): Likewise.
+ * elf/tst-audit3.c: Move to ...
+ * sysdeps/x86_64/tst-audit3.c: ... here.
+ * elf/tst-audit4.c: Move to ...
+ * sysdeps/x86_64/tst-audit4.c: ... here.
+ * elf/tst-audit5.c: Move to ...
+ * sysdeps/x86_64/tst-audit5.c: ... here.
+ * elf/tst-audit6.c: Move to ...
+ * sysdeps/x86_64/tst-audit6.c: ... here.
+ * elf/tst-audit7.c: Move to ...
+ * sysdeps/x86_64/tst-audit7.c: ... here.
+ * elf/tst-auditmod3a.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod3a.c: ... here.
+ * elf/tst-auditmod3b.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod3b.c: ... here.
+ * elf/tst-auditmod4a.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod4a.c: ... here.
+ * elf/tst-auditmod4b.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod4b.c: ... here.
+ * elf/tst-auditmod5a.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod5a.c: ... here.
+ * elf/tst-auditmod5b.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod5b.c: ... here.
+ * elf/tst-auditmod6a.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod6a.c: ... here.
+ * elf/tst-auditmod6b.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod6b.c: ... here.
+ * elf/tst-auditmod6c.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod6c.c: ... here.
+ * elf/tst-auditmod7a.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod7a.c: ... here.
+ * elf/tst-auditmod7b.c: Move to ...
+ * sysdeps/x86_64/tst-auditmod7b.c: ... here.
+
+2013-04-25 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #15366]
+ * sysdeps/generic/inttypes.h (PRId8, PRId16, etc.):
+ define unconditionally.
+ * sysdeps/generic/stdint.h (INT8_MIN, INT16_MIN, etc.):
+ define unconditionally.
+ (INT8_C, INT16_C, etc.): Likewise.
+
+2013-04-25 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * csu/libc-start.c (__libc_start_main) [!SHARED]: Declare
+ __ehdr_start with hidden visibility.
+
+ * soft-fp/op-common.h (_FP_SQRT): s/sNAN/NAN/ in a comment.
+
+2013-04-24 Carlos O'Donell <carlos@redhat.com>
+
+ * math/libm-test.inc (cos_test): Use accurate hex constants.
+ (sincost_test): Likewise.
+
+2013-04-24 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+
+ * math/s_catanf.c (__catanf): Use suffixed floating-point
+ constants.
+ * math/s_catanhf.c (__catanhf): Likewise.
+ * math/s_catanhl.c (__catanhl): Likewise.
+ * math/s_catanl.c (__catanl): Likewise.
+
+ [BZ #15394]
+ * math/s_catan.c (__catan): Calculate imaginary part of result
+ with log1p not log unless computing log of number close to 0.
+ * math/s_catanf.c (__catanf): Likewise.
+ * math/s_catanl.c (__catanl): Likewise.
+ * math/s_catanh.c (__catanh): Calculate real part of result with
+ log1p not log unless computing log of number close to 0.
+ * math/s_catanhf.c (__catanhf): Likewise.
+ * math/s_catanhl.c (__catanhl): Likewise.
+ * math/libm-test.inc (catan_test): Add more tests.
+ (catanh_test): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-04-24 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile: Mention files in which fast and slow
+ paths of math functions are implemented.
+
+2013-04-23 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/posix/timespec_get.c: New file.
+
+2013-04-23 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/power5/fpu/s_modf.c: New file: modf optimization for
+ POWER.
+ * sysdeps/powerpc/power5/fpu/s_modff.c: New file: modff optimization
+ for POWER.
+ * sysdeps/powerpc/powerpc64/power5/Implies: Add powerpc/power5 and
+ powerpc/power5/fpu folders.
+ * sysdeps/powerpc/powerpc32/power5/Implies: Likewise.
+ * benchtests/Makefile: Add modf testcase.
+ * benchtests/bench-modf.c: New file: Benchmark test for mo
+
+2013-04-23 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #14888]
+ * time/Makefile (tests): Add tst-strptime-whitespace.
+ * time/strptime_l.c (get_number): Use ISSPACE.
+ (__strptime_internal): Likewise.
+ * time/tst-strptime-whitespace.c: New test case.
+
+2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * nss/nss_files/files-init.c (TF): Don't initialize flexible array
+ member.
+ (_nss_files_init): Set it here.
+
+2013-04-23 Heiko Carstens <heiko.carstens@de.ibm.com>
+
+ * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Change types of
+ f_type, f_bsize, f_namelen, f_frsize, f_flags,and f_spare to
+ unsigned.
+
+2013-04-22 Jan-Benedict Glaw <jbglaw@getslash.de>
+
+ * nss/getent.c (shadow_keys): Call endspent, not endpwent.
+
+2013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Compute results
+ size just once.
+
+2013-04-21 David S. Miller <davem@davemloft.net>
+
+ * po/ru.po: Update Russion translation from translation project.
+
+2013-04-17 Adam Conrad <adconrad@0c3.net>
+
+ * sysdeps/unix/sysv/linux/sys/fsuid.h: Remove __wur from setfsuid
+ and setfsgid.
+
+2013-04-17 Carlos O'Donell <carlos@redhat.com>
+
+ * configure.in: Remove i386 configure warning. Remove i386 case.
+ * configure: Regenerate.
+ * sysdeps/i386/configure.in: Raise error if config_machine is i386.
+ Add example to error message.
+ * sysdeps/i386/configure: Regenerate.
+
+2013-04-17 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile (bench): Add cos, tan, slowcos and
+ slowtan.
+ * benchtests/cos-inputs: New file.
+ * benchtests/slowcos-inputs: New file.
+ * benchtests/slowcos.c: New file.
+ * benchtests/slowtan-inputs: New file.
+ * benchtests/slowtan.c: New file.
+ * benchtests/tan-inputs: New file.
+
+2013-04-16 Roland McGrath <roland@hack.frob.com>
+
+ * rt/tst-aio7.c (do_test): Don't test O_RDONLY fd case, which is now
+ considered kosher.
+
+2013-04-16 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile: Include cppflags-iterator.mk to add
+ -DNOT_IN_libc=1 to CPPFLAGS of all benchmark programs.
+
+ * Makefile.in (bench-clean): New target.
+ * benchtests/Makefile (bench-clean): Likewise.
+
+2013-04-16 David Holsgrove <david.holsgrove@xilinx.com>
+
+ * elf/elf.h: Add EM_MICROBLAZE and MicroBlaze relocations.
+
+2013-04-15 Thomas Schwinge <thomas@codesourcery.com>
+
+ * stdio-common/tstdiomisc.c: Fix coding-style violation.
+
+2013-04-15 Andreas Schwab <schwab@suse.de>
+
+ * nscd/grpcache.c (cache_addgr): Properly check for short write.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nscd/pwdcache.c (cache_addpw): Likewise.
+ * nscd/servicescache.c (cache_addserv): Likewise. Don't write
+ more than recsize.
+
+2013-04-15 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * benchtests/Makefile (bench): Write all output to
+ bench-out.tmp together.
+
+2013-04-15 Andreas Schwab <schwab@suse.de>
+
+ * nscd/nscd.c (main): Don't fork again after closing files.
+
+2013-04-15 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * libio/tst-fwrite-error.c (do_test): Fix BUF array definition.
+
+ * benchtests/Rules (bench-deps): Collect dependencies into a
+ single variable. Add Makefile to dependencies.
+ ($(objpfx)bench-%.c): Depend on bench-deps.
+
+2013-04-12 Roland McGrath <roland@hack.frob.com>
+ Xavier Roche <roche+kml2@exalead.com>
+
+ [BZ #15361]
+ * sysdeps/pthread/aio_fsync.c (aio_fsync): Don't check open modes,
+ just that it's a file descriptor.
+ * manual/llio.texi (Synchronizing AIO Operations): Update description
+ for EBADF error from aio_fsync.
+
+2013-04-12 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * Rules (bench): Move target definition...
+ * benchtests/Makefile: ... here.
+
+2013-04-11 Carlos O'Donell <carlos@redhat.com>
+
+ * math/libm-test.inc (cos_test): Fix PI/2 test.
+ (sincos_test): Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Regenerate.
+ * sysdeps/i386/fpu/libm-test-ulps: Regenerate.
+
+2013-04-11 Andreas Schwab <schwab@suse.de>
+
+ [BZ #13988]
+ * stdio-common/vfscanf.c (_IO_vfwscanf): When parsing a float
+ accept exponent character only when digits were seen.
+ * stdio-common/Makefile (tests): Add bug26.
+ * stdio-common/bug26.c: New file.
+
+ [BZ #14293]
+ * elf/dl-load.c (_dl_init_paths): Mark decomposed RUNPATH as
+ non-freeable.
+
+2013-04-11 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * Makeconfig (rtld-prefix): Define built linker prefix.
+ * Rules (run-bench): Use it.
+ * math/Makefile (run-regen-ulps): Likewise.
+
+ * Rules (bench): Remove eval.
+
+2013-04-10 Siddhesh Poyarekar <siddhesh@redhat.com>
+ Roland McGrath <roland@hack.frob.com>
+ Ondrej Bilka <neleai@seznam.cz>
+
+ [BZ #15346]
+ * time/getdate.c: Include ctype.h and alloca.h.
+ (__getdate_r): Trim leading and trailing spaces of input.
+ * time/tst-getdate.c (tests): Add tests with leading and
+ trailing spaces.
+
+2013-04-08 Roland McGrath <roland@hack.frob.com>
+
+ [BZ #14280]
+ * sysdeps/mach/hurd/bits/ioctls.h (_IOTS): Cast to enum __ioctl_datum
+ when computing value.
+
+2013-04-06 Carlos O'Donell <carlos@redhat.com>
+
+ * math/README.libm-test (How can I generate "libm-test-ulps"?):
+ Use testrun.sh to run libm tests.
+
+ [BZ #15309]
+ * elf/dl-open.c (dl_open_worker): memset all of seen array.
+
+2013-04-06 Marko Myllynen <myllynen@redhat.com>
+
+ [BZ #15264]
+ * locales/fi_FI (LC_MESSAGES): Define yesstr and nostr.
+
+2013-04-06 Carlos O'Donell <carlos@redhat.com>
+
+ * Makefile.in (regen-ulps): New target.
+ * math/Makefile [ifneq (no,$(PERL)]: Declare regen-ulps with .PHONY.
+ [ifneq (no,$(PERL)] (run-regen-ulps): New variable.
+ [ifneq (no,$(PERL)] (regen-ulps): New target.
+ [ifeq (no,$(PERL)] (regen-ulps): New target.
+ * math/libm-test.inc (ulps_file_name): Define.
+ (output_dir): New variable.
+ (options): Add "output-dir" option.
+ (parse_opt): Handle 'o' case.
+ (main): If output_dir is non-NULL use it as a prefix
+ otherwise use "".
+ * math/README.libm-test: Update `How can I generate "libm-test-ulps"?'
+
+2013-04-06 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #10060, #10062]
+ * aclocal.m4 (LIBC_COMPILER_BUILTIN_INLINED): New macro.
+ * sysdeps/i386/configure.in: Use LIBC_COMPILER_BUILTIN_INLINED and
+ fail configure if __sync_val_compare_and_swap is not inlined.
+ * sysdeps/i386/configure: Regenerate.
+ * configure.in: Build for i686 when configured for i386.
+ * configure: Regenerate.
+ * README: Remove i386 reference.
+
+2013-04-06 Carlos O'Donell <carlos@redhat.com>
+
+ * sysdeps/s390/s390-32/sysdep.h: Undefine PSEUDO before redefinition.
+ * sysdeps/s390/s390-64/sysdep.h: Likewise.
+
+2013-04-05 Thomas Schwinge <thomas@codesourcery.com>
+
+ * stdio-common/tstdiomisc.c (snanval, msnanval, lsnanval)
+ (lmsnanval): New variables.
+ (F): Add conversion tests.
+ * stdlib/tst-strtod6.c (do_test): Add issignaling tests.
+ * stdlib/Makefile ($(objpfx)tst-strtod6): Depend on $(link-libm).
+
+ * stdio-common/tstdiomisc.c (F): Properly collect individual
+ tests' results.
+
+ [BZ #14686, #15336]
+ * sysdeps/ieee754/dbl-64/urem.h (nNAN, NAN): Remove definitions.
+ * sysdeps/ieee754/dbl-64/e_remainder.c (__ieee754_remainder):
+ Instead, use input NaN values or generate a qNaN by arithmetic
+ operation. Also fix bugs to comply with the standard.
+ * math/libm-test.inc (remainder_test): Add more tests.
+
+ [BZ #15335, #15342]
+ * sysdeps/ieee754/dbl-64/upow.h (NaNQ): Remove definitions.
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Instead, use
+ input NaN values or generate a qNaN by arithmetic operation.
+
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Remove
+ unreachable code.
+
+ * sysdeps/ieee754/dbl-64/usncs.h (NAN): Removed unused
+ definitions.
+
+2013-04-03 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #14478]
+ * math/s_cexp.c (__cexp): Ensure underflow exception occurs for
+ underflowed result.
+ * math/s_cexpf.c (__cexpf): Likewise.
+ * math/s_cexpl.c (__cexpl): Likewise.
+ * math/libm-test.inc (cexp_test): Add more tests.
+
+2013-04-03 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15330]
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and
+ order arrays from heap if bigger than alloca cutoff.
+
+2013-04-03 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/i386/fpu/math-tests.h (SNAN_TESTS_float)
+ (SNAN_TESTS_double): Refer to GCC PR56831.
+ * sysdeps/powerpc/math-tests.h (SNAN_TESTS_TYPE_CAST): Refer to
+ GCC PR56828.
+
+2013-04-03 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * Rules (bench): Move bench.out after the run is complete.
+
+ * Rules (bench): Echo currently running benchmark.
+
+ * benchtests/Makefile (bench): Add atan and slowatan.
+ * benchtests/atan-inputs: New file.
+ * benchtests/slowatan-inputs: New file.
+ * benchtests/slowatan.c: New file.
+
+ * sysdeps/ieee754/dbl-64/mpa.h (TWO): Remove definition.
+ * sysdeps/ieee754/dbl-64/mpatan.c (__mpatan): Replace TWO with
+ its value.
+
+ [BZ #15305]
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ [__LINUX_KERNEL_VERSION >= 0x02061d]: Define
+ __ASSUME_XFS_RESTRICTED_CHOWN.
+ * sysdeps/unix/sysv/linux/pathconf.c
+ (__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]:
+ Save and restore errno.
+
+2013-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15327]
+ * math/s_cacosh.c (__cacosh): Implement for finite nonzero
+ arguments using __kernel_casinh.
+ * math/s_cacoshf.c (__cacoshf): Implement for finite nonzero
+ arguments using __kernel_casinhf.
+ * math/s_cacoshl.c (__cacoshl): Implement for finite nonzero
+ arguments using __kernel_casinhl.
+ * math/libm-test.inc (cacosh_test): Add more tests.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-04-02 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/ieee754/dbl-64/mpa.h (HALFRAD): Define as TWO23.
+ * sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Use mantissa_t.
+
+ * bench/Makefile (bench): Add sin and slowsin.
+ * benchtests/sin-inputs: New file.
+ * benchtests/slowsin-inputs: New file.
+ * benchtests/slowsin.c: New file.
+
+ * benchtests/Makefile: Add benchmarks for slowpow and slowexp.
+ (bench): Add slowexp and slowpow.
+ (exp-ITER): Increase iterations.
+ (pow-ITER): Likewise.
+ * benchtests/exp-inputs: Change input.
+ * benchtests/pow-inputs: Likewise.
+ * benchtests/slowexp-inputs: New file.
+ * benchtests/slowexp.c: New file.
+ * benchtests/slowpow-inputs: New file.
+ * benchtests/slowpow.c: New file.
+
+2013-04-02 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Remove branch prediction
+ instructions.
+ * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise.
+ * benchtests/Makefile: Add rint benchtest.
+ * benchtests/rint-inputs: Input for rint benchtest.
+
+2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * Versions.def (libm): Add GLIBC_2.18.
+ * include/math.h [!_ISOMAC] (__issignaling, __issignalingf): Add
+ hidden libm prototypes.
+ [!_ISOMAC && !__NO_LONG_DOUBLE_MATH] (__issignalingl): Likewise.
+ * math/Makefile (libm-calls): Add s_issignaling.
+ * math/Versions (libm: GLIBC_2.18): Add __issignaling,
+ __issignalingf, __issignalingl. Adjust all libm.abilist files.
+ * math/bits/mathcalls.h [__USE_GNU] (__issignaling): New prototype
+ declaration.
+ * math/math.h [__USE_GNU] (issignaling): New macro.
+ * sysdeps/ieee754/flt-32/s_issignalingf.c: New file.
+ * sysdeps/ieee754/dbl-64/s_issignaling.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_issignalingl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_issignalingl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c: Likewise.
+ * manual/arith.texi (issignaling): New section.
+ * manual/libm-err-tab.pl (@all_functions): Update comment.
+ * math/gen-libm-test.pl (parse_args): Apply special handling for
+ issignaling.
+ * math/libm-test.inc (print_float, issignaling_test): New
+ functions.
+ (check_float_internal): Add issignaling checks.
+ * sysdeps/generic/math-tests.h (SNAN_TESTS_TYPE_CAST): Provide
+ default definition.
+ * sysdeps/powerpc/math-tests.h: New file.
+ * math/basic-test.c (TEST_FUNC, TEST_TRUNC): Add issignaling
+ tests.
+ * math/test-snan.c (TEST_FUNC): Likewise.
+
+2013-03-30 David S. Miller <davem@davemloft.net>
+
+ * po/de.po: Update from translation team.
+
+2013-03-30 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #10357]
+ * math/k_casinh.c (__kernel_casinh): Handle arguments with
+ imaginary part less than 1.0 and real part less than 0.5
+ specially.
+ * math/k_casinhf.c (__kernel_casinhf): Likewise.
+ * math/k_casinhl.c (__kernel_casinhl): Likewise.
+ * math/libm-test.inc (UNDERFLOW_EXCEPTION_OK_DOUBLE): New macro.
+ (cacos_test): Add more tests.
+ (casin_test): Likewise.
+ (casinh_test): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-03-29 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/powerpc/power4/fpu/mpa-arch.h (INTEGER_OF): Replace
+ ONE with its value.
+
+ * sysdeps/ieee754/dbl-64/mpa.h (ONE, MONE): Remove defines.
+ (__pow_mp): Replace ONE and MONE with their values.
+ * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Likewise.
+ * sysdeps/ieee754/dbl-64/mpatan.c (__mpatan): Likewise.
+ * sysdeps/ieee754/dbl-64/mpatan2.c (__mpatan2): Likewise.
+ * sysdeps/ieee754/dbl-64/mptan.c (__mptan): Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c (atan): Likewise.
+ * sysdeps/ieee754/dbl-64/s_tan.c (tan): Likewise.
+
+ * sysdeps/ieee754/dbl-64/s_tan.c: Fix formatting.
+
+ * sysdeps/ieee754/dbl-64/mpa.h (ZERO, MZERO): Remove defines.
+ (__pow_mp): Replace ZERO and MZERO with their values.
+ * sysdeps/ieee754/dbl-64/e_atan2.c (__ieee754_atan2): Likewise.
+ * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Likewise.
+ * sysdeps/ieee754/dbl-64/mpatan2.c (__mpatan2): Likewise.
+ * sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c (atan): Likewise.
+ * sysdeps/powerpc/power4/fpu/mpa.c (__mul): Likewise.
+ (__sqr): Likewise.
+
+ * sysdeps/ieee754/dbl-64/s_atan.c: Fix formatting.
+
+ * sysdeps/ieee754/dbl-64/e_log.c: Fix formatting.
+
+2013-03-28 Roland McGrath <roland@hack.frob.com>
+
+ * include/stdlib.h [!SHARED] (__call_tls_dtors):
+ Declare with __attribute__ ((weak)).
+ * stdlib/exit.c (__libc_atexit) [!SHARED]:
+ Call __call_tls_dtors only if it's not NULL.
+
2013-03-28 Roland McGrath <roland@hack.frob.com>
+ * csu/libc-start.c (__libc_start_main) [!SHARED]: If _dl_aux_init
+ didn't do it already, then set _dl_phdr and _dl_phnum based on the
+ magic __ehdr_start linker symbol if it's defined.
+ * sysdeps/mach/hurd/i386/init-first.c (init1) [!SHARED]: Don't set
+ them up here if it was already done.
+
+ * elf/dl-support.c (_dl_phdr): Make pointer to const.
+ (_dl_aux_init): Use const in cast when setting it.
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Remove superfluous cast.
+ * sysdeps/generic/ldsodefs.h [!SHARED] (_dl_phdr): Update decl.
+ * csu/libc-tls.c (__libc_setup_tls): Make PHDR pointer to const.
+
+ * sysdeps/generic/ldsodefs.h [!SHARED] (_dl_phdr, _dl_phnum):
+ Declare them here.
+ * elf/dl-iteratephdr.c [!SHARED] (_dl_phdr, _dl_phnum): Not here.
+ * csu/libc-tls.c: Nor here.
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Nor here.
+
* sysdeps/posix/libc_fatal.c: Don't include <sys/syslog.h>.
(__libc_message): Never call vsyslog.
@@ -9767,6 +12781,7 @@
2012-07-31 Roland McGrath <roland@hack.frob.com>
+ [BZ #10191]
* include/sys/socket.h (__libc_accept, __libc_accept4):
Add attribute_hidden.
* socket/accept4.c (__libc_accept4): Remove libc_hidden_def.
diff --git a/Makeconfig b/Makeconfig
index 70deb1e182..a3d3e70150 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -604,6 +604,9 @@ endif
# How to run a program we just linked with our library.
# The program binary is assumed to be $(word 2,$^).
built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
+rtld-prefix = $(elf-objpfx)$(rtld-installed-name) \
+ --library-path \
+ $(rpath-link)$(patsubst %,:%,$(sysdep-library-path))
ifeq (yes,$(build-shared))
comma = ,
sysdep-library-path = \
@@ -617,9 +620,7 @@ $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
# empty.
run-via-rtld-prefix = \
$(if $(strip $(filter $(notdir $(built-program-file)), \
- $(tests-static) $(xtests-static))),, \
- $(elf-objpfx)$(rtld-installed-name) \
- --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)))
+ $(tests-static) $(xtests-static))),, $(rtld-prefix))
else
run-via-rtld-prefix =
endif
diff --git a/Makefile.in b/Makefile.in
index df75b8f0c4..945bc32d4d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,5 +12,9 @@ install:
LANGUAGE=C LC_ALL=C; export LANGUAGE LC_ALL; \
$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
-bench:
+bench bench-clean:
$(MAKE) -C $(srcdir)/benchtests $(PARALLELMFLAGS) objdir=`pwd` $@
+
+# Convenience target to rebuild ULPs for all math tests.
+regen-ulps:
+ $(MAKE) -C $(srcdir)/math $(PARALLELMFLAGS) objdir=`pwd` $@
diff --git a/NEWS b/NEWS
index 15583b797e..c25b62ee4c 100644
--- a/NEWS
+++ b/NEWS
@@ -9,10 +9,23 @@ Version 2.18
* The following bugs are resolved with this release:
- 11120, 11561, 12723, 13550, 13889, 13951, 14142, 14176, 14200, 14317,
- 14327, 14496, 14812, 14920, 14964, 14981, 14982, 14985, 14994, 14996,
- 15003, 15006, 15020, 15023, 15036, 15054, 15055, 15062, 15078, 15160,
- 15214, 15232, 15234, 15283, 15285, 15287, 15304, 15307.
+ 2546, 2560, 5159, 6809, 10060, 10062, 10357, 10686, 11120, 11561, 12387,
+ 12723, 13550, 13889, 13951, 13988, 14142, 14176, 14200, 14280, 14293,
+ 14317, 14327, 14478, 14496, 14582, 14686, 14812, 14888, 14894, 14908,
+ 14920, 14952, 14964, 14981, 14982, 14985, 14994, 14996, 15000, 15003,
+ 15006, 15007, 15014, 15020, 15023, 15036, 15054, 15055, 15062, 15078,
+ 15084, 15085, 15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285,
+ 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337,
+ 15339, 15342, 15346, 15359, 15361, 15366, 15380, 15381, 15394, 15395,
+ 15405, 15406, 15409, 15416, 15418, 15419, 15423, 15424, 15426, 15429,
+ 15441, 15442, 15448, 15480, 15485, 15488, 15490, 15493, 15497, 15506,
+ 15529.
+
+* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
+ #15078).
+
+* CVE-2013-1914 Stack overflow in getaddrinfo with many results has been
+ fixed (Bugzilla #15330).
* Add support for calling C++11 thread_local object destructors on thread
and program exit. This needs compiler support for offloading C++11
@@ -26,26 +39,28 @@ Version 2.18
* Added a benchmark framework to track performance of functions in glibc.
+* New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
+ It is based on draft TS 18661 and currently enabled as a GNU extension.
Version 2.17
* The following bugs are resolved with this release:
1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6677, 6778, 6808,
- 9685, 9914, 10014, 10038, 10114, 10631, 10873, 11438, 11607, 11638, 11741,
- 12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696,
- 13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950, 13952,
- 13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166,
- 14173, 14195, 14197, 14237, 14246, 14251, 14252, 14283, 14298, 14303,
- 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376, 14417,
- 14447, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518, 14519,
- 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576,
- 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648,
- 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719, 14743,
- 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805,
- 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835,
- 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879,
- 14889, 14893, 14898, 14914.
+ 9685, 9914, 10014, 10038, 10114, 10191, 10631, 10873, 11438, 11607, 11638,
+ 11741, 12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679,
+ 13696, 13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950,
+ 13952, 13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157,
+ 14166, 14173, 14195, 14197, 14237, 14246, 14251, 14252, 14283, 14298,
+ 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376,
+ 14417, 14447, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518,
+ 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568,
+ 14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645,
+ 14648, 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719,
+ 14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803,
+ 14805, 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833,
+ 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872,
+ 14879, 14889, 14893, 14898, 14914.
* Optimization of memcpy for MIPS.
diff --git a/README b/README
index 6fdfc03138..bb4ccb896b 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.
The GNU C Library implements much of the POSIX.1 functionality in the
-GNU/Hurd system, using configurations i[34567]86-*-gnu. The current
+GNU/Hurd system, using configurations i[4567]86-*-gnu. The current
GNU/Hurd support requires out-of-tree patches that will eventually be
incorporated into an official GNU C Library release.
diff --git a/Rules b/Rules
index 02cdb4ac78..86a052014d 100644
--- a/Rules
+++ b/Rules
@@ -189,34 +189,6 @@ $(objpfx)%.out: /dev/null $(objpfx)% # Make it 2nd arg for canned sequence.
endif # tests
-# Build and run benchmark programs.
-binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
-
-run-bench = $(test-wrapper-env) \
- GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
- $($*-ENV) $(run-via-rtld-prefix) $${run}
-
-bench: $(binaries-bench)
- if [ -f $(objpfx)bench.out ]; then \
- mv -f $(objpfx)bench.out $(objpfx)bench.out.old; \
- fi
- for run in $^; do \
- eval $(run-bench) >> $(objpfx)bench.out; \
- done
-
-$(binaries-bench): %: %.o \
- $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
- $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
- $(+link)
-
-$(objpfx)bench-%.c: %-inputs bench-skeleton.c
- { if [ -n "$($*-INCLUDE)" ]; then \
- cat $($*-INCLUDE); \
- fi; \
- $(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
- $($*-ITER) $($*-ARGLIST) $($*-RET); } > $@-tmp
- mv -f $@-tmp $@
-
.PHONY: distclean realclean subdir_distclean subdir_realclean \
subdir_clean subdir_mostlyclean subdir_testclean
diff --git a/Versions.def b/Versions.def
index 7c7d1f89d3..04622397fd 100644
--- a/Versions.def
+++ b/Versions.def
@@ -58,6 +58,7 @@ libm {
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.15
+ GLIBC_2.18
}
libnsl {
GLIBC_2.0
diff --git a/aclocal.m4 b/aclocal.m4
index 042a7e3c38..64351d0a00 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -248,3 +248,36 @@ dnl LIBC_CONFIG_VAR(make-variable, shell-value)
AC_DEFUN([LIBC_CONFIG_VAR],
[config_vars="$config_vars
$1 = $2"])
+
+dnl Check that function FUNC was inlined as a builtin. The code fragment
+dnl CODE is compiled with additional options CC_OPTION. If FUNC is
+dnl not found in the assembly then it is assumed the compiler has support
+dnl for this builtin and has inlined the call. If the compiler has the
+dnl feature then ACTION-IF-TRUE is called, otherwise ACTION-IF-FALSE.
+dnl It is up to the caller to provide a CC_OPTION that ensures the
+dnl builtin is inlined if present.
+dnl Warning: This may not work for some machines. For example on ARM the
+dnl ABI dictates that some functions should not be inlined and instead
+dnl should be provided by a compiler helper library e.g. __aeabi_memcpy.
+dnl This is done to reduce code size.
+dnl LIBC_COMPILER_BUILTIN([func], [code], [cc_option], [action-if-true], [action-if-false])
+AC_DEFUN([LIBC_COMPILER_BUILTIN_INLINED],
+[AC_MSG_CHECKING([for compiler support of inlined builtin function $1])
+libc_compiler_builtin_inlined=no
+cat > conftest.c <<EOF
+int _start (void) { $2 return 0; }
+EOF
+if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
+ $3 -nostdlib -nostartfiles
+ -S conftest.c -o - | fgrep "$1"
+ 1>&AS_MESSAGE_LOG_FD])
+then
+ libc_compiler_builtin_inlined=yes
+fi
+rm -f conftest*
+if test $libc_compiler_builtin_inlined = yes; then
+ $4
+else
+ $5
+fi
+AC_MSG_RESULT($libc_compiler_builtin_inlined)])
diff --git a/benchtests/Makefile b/benchtests/Makefile
index 74938b925c..67728537a8 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -17,43 +17,133 @@
# Makefile for benchmark tests. The only useful target here is `bench`.
+# Add benchmark functions in alphabetical order.
-# Adding a new function `foo`:
-# ---------------------------
+subdir := benchtests
+bench := acos acosh asin asinh atan atanh cos cosh exp log modf pow rint sin \
+ sinh tan tanh
-# - Append the function name to the bench variable
+acos-ARGLIST = double
+acos-RET = double
+LDFLAGS-bench-acos = -lm
-# - Define foo-ITER with the number of iterations you want to run. Keep it
-# high enough that the overhead of clock_gettime is only a small fraction of
-# the total run time of the test.
+acosh-ARGLIST = double
+acosh-RET = double
+LDFLAGS-bench-acosh = -lm
-# - Define foo-ARGLIST as a colon separated list of types of the input
-# arguments. Use `void` if function does not take any inputs. Put in quotes
-# if the input argument is a pointer, e.g.:
+asin-ARGLIST = double
+asin-RET = double
+LDFLAGS-bench-asin = -lm
-# malloc-ARGLIST: "void *"
+asinh-ARGLIST = double
+asinh-RET = double
+LDFLAGS-bench-asinh = -lm
-# - Define foo-RET as the type the function returns. Skip if the function
-# returns void. One could even skip foo-ARGLIST if the function does not
-# take any inputs AND the function returns void.
+atan-ARGLIST = double
+atan-RET = double
+LDFLAGS-bench-atan = -lm
+atanh-ARGLIST = double
+atanh-RET = double
+LDFLAGS-bench-atanh = -lm
-# - Make a file called `foo-inputs` with one input value per line, an input
-# being a comma separated list of arguments to be passed into the function.
-# See pow-inputs for an example.
+cos-ARGLIST = double
+cos-RET = double
+LDFLAGS-bench-cos = -lm
-subdir := benchtests
-bench := exp pow
+cosh-ARGLIST = double
+cosh-RET = double
+LDFLAGS-bench-cosh = -lm
-exp-ITER = 100000
exp-ARGLIST = double
exp-RET = double
LDFLAGS-bench-exp = -lm
-pow-ITER = 100000
+log-ARGLIST = double
+log-RET = double
+LDFLAGS-bench-log = -lm
+
pow-ARGLIST = double:double
pow-RET = double
LDFLAGS-bench-pow = -lm
+rint-ARGLIST = double
+rint-RET = double
+LDFLAGS-bench-rint = -lm
+
+sin-ARGLIST = double
+sin-RET = double
+LDFLAGS-bench-sin = -lm
+
+sinh-ARGLIST = double
+sinh-RET = double
+LDFLAGS-bench-sinh = -lm
+
+tan-ARGLIST = double
+tan-RET = double
+LDFLAGS-bench-tan = -lm
+
+tanh-ARGLIST = double
+tanh-RET = double
+LDFLAGS-bench-tanh = -lm
+
+
+
+# Rules to build and execute the benchmarks. Do not put any benchmark
+# parameters beyond this point.
+
include ../Makeconfig
include ../Rules
+
+binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
+
+# The default duration: 10 seconds.
+ifndef BENCH_DURATION
+BENCH_DURATION := 10
+endif
+
+CPPFLAGS-nonlib = -DDURATION=$(BENCH_DURATION)
+
+# Use clock_gettime to measure performance of functions. The default is to use
+# HP_TIMING if it is available.
+ifdef USE_CLOCK_GETTIME
+CPPFLAGS-nonlib += -DUSE_CLOCK_GETTIME
+endif
+
+# This makes sure CPPFLAGS-nonlib and CFLAGS-nonlib are passed
+# for all these modules.
+cpp-srcs-left := $(binaries-bench:=.c)
+lib := nonlib
+include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+
+bench-deps := bench-skeleton.c bench-timing.h Makefile
+
+run-bench = $(test-wrapper-env) \
+ GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+ $($*-ENV) $(rtld-prefix) $${run}
+
+bench-clean:
+ rm -f $(binaries-bench) $(addsuffix .o,$(binaries-bench))
+
+bench: $(binaries-bench)
+ { for run in $^; do \
+ echo "Running $${run}" >&2; \
+ $(run-bench); \
+ done; } > $(objpfx)bench.out-tmp; \
+ if [ -f $(objpfx)bench.out ]; then \
+ mv -f $(objpfx)bench.out $(objpfx)bench.out.old; \
+ fi; \
+ mv -f $(objpfx)bench.out-tmp $(objpfx)bench.out
+
+$(binaries-bench): %: %.o \
+ $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
+ $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+ $(+link)
+
+$(objpfx)bench-%.c: %-inputs $(bench-deps)
+ { if [ -n "$($*-INCLUDE)" ]; then \
+ cat $($*-INCLUDE); \
+ fi; \
+ $(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
+ $($*-ARGLIST) $($*-RET); } > $@-tmp
+ mv -f $@-tmp $@
diff --git a/benchtests/README b/benchtests/README
new file mode 100644
index 0000000000..8135069fea
--- /dev/null
+++ b/benchtests/README
@@ -0,0 +1,74 @@
+Using the glibc microbenchmark suite
+====================================
+
+The glibc microbenchmark suite automatically generates code for specified
+functions, builds and calls them repeatedly for given inputs to give some
+basic performance properties of the function.
+
+Running the benchmark:
+=====================
+
+The benchmark can be executed by invoking make as follows:
+
+ $ make bench
+
+This runs each function for 10 seconds and appends its output to
+benchtests/bench.out. To ensure that the tests are rebuilt, one could run:
+
+ $ make bench-clean
+
+The duration of each test can be configured setting the BENCH_DURATION variable
+in the call to make. One should run `make bench-clean' before changing
+BENCH_DURATION.
+
+ $ make BENCH_DURATION=1 bench
+
+The benchmark suite does function call measurements using architecture-specific
+high precision timing instructions whenever available. When such support is
+not available, it uses clock_gettime (CLOCK_PROCESS_CPUTIME_ID). One can force
+the benchmark to use clock_gettime by invoking make as follows:
+
+ $ make USE_CLOCK_GETTIME=1 bench
+
+Again, one must run `make bench-clean' before changing the measurement method.
+
+Adding a function to benchtests:
+===============================
+
+If the name of the function is `foo', then the following procedure should allow
+one to add `foo' to the bench tests:
+
+- Append the function name to the bench variable in the Makefile.
+
+- Define foo-ARGLIST as a colon separated list of types of the input
+ arguments. Use `void' if function does not take any inputs. Put in quotes
+ if the input argument is a pointer, e.g.:
+
+ malloc-ARGLIST: "void *"
+
+- Define foo-RET as the type the function returns. Skip if the function
+ returns void. One could even skip foo-ARGLIST if the function does not
+ take any inputs AND the function returns void.
+
+- Make a file called `foo-inputs` with one input value per line, an input
+ being a comma separated list of arguments to be passed into the function.
+ See pow-inputs for an example.
+
+ The script that parses the -inputs file treats lines beginning with a single
+ `#' as comments. Lines beginning with two hashes `##' are treated specially
+ as `directives'.
+
+Multiple execution units per function:
+=====================================
+
+Some functions have distinct performance characteristics for different input
+domains and it may be necessary to measure those separately. For example, some
+math functions perform computations at different levels of precision (64-bit vs
+240-bit vs 768-bit) and mixing them does not give a very useful picture of the
+performance of these functions. One could separate inputs for these domains in
+the same file by using the `name' directive that looks something like this:
+
+ ##name: 240bit
+
+See the pow-inputs file for an example of what such a partitioned input file
+would look like.
diff --git a/benchtests/acos-inputs b/benchtests/acos-inputs
new file mode 100644
index 0000000000..b527af35e4
--- /dev/null
+++ b/benchtests/acos-inputs
@@ -0,0 +1,7 @@
+0.5
+0.1
+0.2
+0.3
+0.4
+0.8
+0.7
diff --git a/benchtests/acosh-inputs b/benchtests/acosh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/acosh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/benchtests/asin-inputs b/benchtests/asin-inputs
new file mode 100644
index 0000000000..b527af35e4
--- /dev/null
+++ b/benchtests/asin-inputs
@@ -0,0 +1,7 @@
+0.5
+0.1
+0.2
+0.3
+0.4
+0.8
+0.7
diff --git a/benchtests/asinh-inputs b/benchtests/asinh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/asinh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/benchtests/atan-inputs b/benchtests/atan-inputs
new file mode 100644
index 0000000000..4a2cf3aca3
--- /dev/null
+++ b/benchtests/atan-inputs
@@ -0,0 +1,9 @@
+0x1.000000c5cba86p0
+0x1.000001883003ap0
+0x1.00000dfb2b674p0
+# atan slowest path at 768 bits
+# Implemented in sysdeps/ieee754/dbl-64/mpatan.c
+## name: 768bits
+0x1.000000c5cba87p0
+0x1.000001883003bp0
+0x1.00000dfb2b675p0
diff --git a/benchtests/atanh-inputs b/benchtests/atanh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/atanh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/benchtests/bench-modf.c b/benchtests/bench-modf.c
new file mode 100644
index 0000000000..2b50665b7e
--- /dev/null
+++ b/benchtests/bench-modf.c
@@ -0,0 +1,44 @@
+/* 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/>. */
+
+extern double modf (double, double *);
+
+#define CALL_BENCH_FUNC(j, i) modf (in[j].arg0, &i);
+
+struct args
+{
+ volatile double arg0;
+} in[] =
+{
+ { 42.42 },
+ { -42.42 }
+};
+
+#define NUM_VARIANTS 1
+#define NUM_SAMPLES(v) (sizeof (in) / sizeof (struct args))
+
+static volatile double ret = 0.0;
+#define BENCH_FUNC(v, j) \
+({ \
+ double iptr; \
+ ret = CALL_BENCH_FUNC (j, iptr); \
+})
+
+#define FUNCNAME "modf"
+#define VARIANT(v) FUNCNAME "()"
+
+#include "bench-skeleton.c"
diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c
index 13f986d817..4e3a50704d 100644
--- a/benchtests/bench-skeleton.c
+++ b/benchtests/bench-skeleton.c
@@ -21,55 +21,90 @@
#include <stdio.h>
#include <time.h>
#include <inttypes.h>
+#include "bench-timing.h"
+volatile unsigned int dontoptimize = 0;
+
+void
+startup (void)
+{
+ /* This loop should cause CPU to switch to maximal freqency.
+ This makes subsequent measurement more accurate. We need a side effect
+ to prevent the loop being deleted by compiler.
+ This should be enough to cause CPU to speed up and it is simpler than
+ running loop for constant time. This is used when user does not have root
+ access to set a constant freqency. */
+ for (int k = 0; k < 10000000; k++)
+ dontoptimize += 23 * dontoptimize + 2;
+}
+
+#define TIMESPEC_AFTER(a, b) \
+ (((a).tv_sec == (b).tv_sec) ? \
+ ((a).tv_nsec > (b).tv_nsec) : \
+ ((a).tv_sec > (b).tv_sec))
int
main (int argc, char **argv)
{
- unsigned long i, j, k;
- uint64_t total = 0, max = 0, min = 0x7fffffffffffffff;
- struct timespec start, end;
+ unsigned long i, k;
+ struct timespec runtime;
+ timing_t start, end;
+
+ startup();
- memset (&start, 0, sizeof (start));
- memset (&end, 0, sizeof (end));
+ memset (&runtime, 0, sizeof (runtime));
- clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start);
+ unsigned long iters;
- /* Measure 1000 times the resolution of the clock. So for a 1ns resolution
- clock, we measure 1000 iterations of the function call at a time.
- Measurements close to the minimum clock resolution won't make much sense,
- but it's better than having nothing at all. */
- unsigned long iters = 1000 * start.tv_nsec;
- unsigned long total_iters = ITER / iters;
+ TIMING_INIT (iters);
- for (i = 0; i < NUM_SAMPLES; i++)
+ for (int v = 0; v < NUM_VARIANTS; v++)
{
- for (j = 0; j < total_iters; j ++)
+ /* Run for approximately DURATION seconds. */
+ clock_gettime (CLOCK_MONOTONIC_RAW, &runtime);
+ runtime.tv_sec += DURATION;
+
+ double d_total_i = 0;
+ timing_t total = 0, max = 0, min = 0x7fffffffffffffff;
+ while (1)
{
- clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &start);
- for (k = 0; k < iters; k++)
- BENCH_FUNC(i);
- clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &end);
+ for (i = 0; i < NUM_SAMPLES (v); i++)
+ {
+ uint64_t cur;
+ TIMING_NOW (start);
+ for (k = 0; k < iters; k++)
+ BENCH_FUNC (v, i);
+ TIMING_NOW (end);
- uint64_t cur = (end.tv_nsec - start.tv_nsec
- + ((end.tv_sec - start.tv_sec)
- * (uint64_t) 1000000000));
+ TIMING_DIFF (cur, start, end);
- if (cur > max)
- max = cur;
+ if (cur > max)
+ max = cur;
- if (cur < min)
- min = cur;
+ if (cur < min)
+ min = cur;
- total += cur;
+ TIMING_ACCUM (total, cur);
+
+ d_total_i += iters;
+ }
+ struct timespec curtime;
+
+ memset (&curtime, 0, sizeof (curtime));
+ clock_gettime (CLOCK_MONOTONIC_RAW, &curtime);
+ if (TIMESPEC_AFTER (curtime, runtime))
+ goto done;
}
- }
- double d_total_s = total * 1e-9;
- double d_iters = iters;
- double d_total_i = (double)ITER * NUM_SAMPLES;
- printf (FUNCNAME ": ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n",
- d_total_i, d_total_s, max / d_iters, min / d_iters,
- d_total_i / d_total_s);
+ double d_total_s;
+ double d_iters;
+
+ done:
+ d_total_s = total;
+ d_iters = iters;
+
+ TIMING_PRINT_STATS (VARIANT (v), d_total_s, d_iters, d_total_i, max,
+ min);
+ }
return 0;
}
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h
new file mode 100644
index 0000000000..264d4b8bab
--- /dev/null
+++ b/benchtests/bench-timing.h
@@ -0,0 +1,72 @@
+/* Define timing macros.
+ 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 <hp-timing.h>
+#include <stdint.h>
+
+#if HP_TIMING_AVAIL && !defined USE_CLOCK_GETTIME
+# define GL(x) _##x
+# define GLRO(x) _##x
+hp_timing_t _dl_hp_timing_overhead;
+typedef hp_timing_t timing_t;
+
+# define TIMING_INIT(iters) \
+({ \
+ HP_TIMING_DIFF_INIT(); \
+ (iters) = 1000; \
+})
+
+# define TIMING_NOW(var) HP_TIMING_NOW (var)
+# define TIMING_DIFF(diff, start, end) HP_TIMING_DIFF ((diff), (start), (end))
+# define TIMING_ACCUM(sum, diff) HP_TIMING_ACCUM_NT ((sum), (diff))
+
+# define TIMING_PRINT_STATS(func, d_total_s, d_iters, d_total_i, max, min) \
+ printf ("%s: ITERS:%g: TOTAL:%gMcy, MAX:%gcy, MIN:%gcy, %g calls/Mcy\n", \
+ (func), (d_total_i), (d_total_s) * 1e-6, (max) / (d_iters), \
+ (min) / (d_iters), 1e6 * (d_total_i) / (d_total_s));
+
+#else
+typedef uint64_t timing_t;
+
+/* Measure 1000 times the resolution of the clock. So for a 1ns
+ resolution clock, we measure 1000 iterations of the function call at a
+ time. Measurements close to the minimum clock resolution won't make
+ much sense, but it's better than having nothing at all. */
+# define TIMING_INIT(iters) \
+({ \
+ struct timespec start; \
+ clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start); \
+ (iters) = 1000 * start.tv_nsec; \
+})
+
+# define TIMING_NOW(var) \
+({ \
+ struct timespec tv; \
+ clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &tv); \
+ (var) = (uint64_t) (tv.tv_nsec + (uint64_t) 1000000000 * tv.tv_sec); \
+})
+
+# define TIMING_DIFF(diff, start, end) (diff) = (end) - (start)
+# define TIMING_ACCUM(sum, diff) (sum) += (diff)
+
+# define TIMING_PRINT_STATS(func, d_total_s, d_iters, d_total_i, max, min) \
+ printf ("%s: ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n", \
+ (func), (d_total_i), (d_total_s) * 1e-9, (max) / (d_iters), \
+ (min) / (d_iters), 1e9 * (d_total_i) / (d_total_s))
+
+#endif
diff --git a/benchtests/cos-inputs b/benchtests/cos-inputs
new file mode 100644
index 0000000000..82a40609cd
--- /dev/null
+++ b/benchtests/cos-inputs
@@ -0,0 +1,13 @@
+0x1.000000cf4a2a1p0
+0x1.0000010b239a8p0
+0x1.00000162a932ap0
+0x1.000002d452a11p0
+0x1.000005bc7d86cp0
+# cos slow path at 768 bits
+# Implemented in sysdeps/ieee754/dbl-64/sincos32.c
+## name: 768bits
+0x1.000000cf4a2a2p0
+0x1.0000010b239a9p0
+0x1.00000162a932bp0
+0x1.000002d452a10p0
+0x1.000005bc7d86dp0
diff --git a/benchtests/cosh-inputs b/benchtests/cosh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/cosh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/benchtests/exp-inputs b/benchtests/exp-inputs
index a2086baa86..e9d33a3d1c 100644
--- a/benchtests/exp-inputs
+++ b/benchtests/exp-inputs
@@ -1 +1,5 @@
+42
+# Slowest path with computation in 768 bit precision.
+# Implemented in: sysdeps/ieee754/dbl-64/mpexp.c
+## name: 768bits
708.00096423260981737257679924368858
diff --git a/benchtests/log-inputs b/benchtests/log-inputs
new file mode 100644
index 0000000000..713c2229f5
--- /dev/null
+++ b/benchtests/log-inputs
@@ -0,0 +1 @@
+42.0
diff --git a/benchtests/pow-inputs b/benchtests/pow-inputs
index dbb1270b75..dad65059aa 100644
--- a/benchtests/pow-inputs
+++ b/benchtests/pow-inputs
@@ -1 +1,5 @@
+42.0, 42.0
+# pow slowest path at 768 bits
+# Implemented in sysdeps/ieee754/dbl-64/slowpow.c
+## name: 768bits
1.0000000000000020, 1.5
diff --git a/benchtests/rint-inputs b/benchtests/rint-inputs
new file mode 100644
index 0000000000..a5f83dc8f9
--- /dev/null
+++ b/benchtests/rint-inputs
@@ -0,0 +1,4 @@
+78.5
+-78.5
+4503599627370497.0
+-4503599627370497.0
diff --git a/benchtests/sin-inputs b/benchtests/sin-inputs
new file mode 100644
index 0000000000..08192d8f09
--- /dev/null
+++ b/benchtests/sin-inputs
@@ -0,0 +1,17 @@
+0.9
+2.3
+3.7
+3.9
+4.0
+4.7
+5.9
+# sin slowest path at 768 bits
+# Implemented in sysdeps/ieee754/dbl-64/sincos32.c
+## name: 768bits
+0.93340582292648832662962377071381
+2.3328432680770916363144351635128
+3.7439477503636453548097051680088
+3.9225160069792437411706487182528
+4.0711651639931289992091478779912
+4.7858438478542097982426639646292
+5.9840767662578002727968851104379
diff --git a/benchtests/sinh-inputs b/benchtests/sinh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/sinh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/benchtests/tan-inputs b/benchtests/tan-inputs
new file mode 100644
index 0000000000..629414fc73
--- /dev/null
+++ b/benchtests/tan-inputs
@@ -0,0 +1,5 @@
+0x1.dffffffffff1ep-22
+# tan slowest path at 768 bits
+# Implemented in sysdeps/ieee754/dbl-64/mptan.c
+## name: 768bits
+0x1.dffffffffff1fp-22
diff --git a/benchtests/tanh-inputs b/benchtests/tanh-inputs
new file mode 100644
index 0000000000..3c8c546f0c
--- /dev/null
+++ b/benchtests/tanh-inputs
@@ -0,0 +1,5 @@
+0.1
+0.2
+0.3
+0.4
+0.5
diff --git a/configure b/configure
index 088bef0515..8c538f5094 100755
--- a/configure
+++ b/configure
@@ -3936,7 +3936,7 @@ fi
# type and particular chip. If an add-on configure fragment already set
# base_machine, we don't change it.
test -n "$base_machine" || case "$machine" in
-i[34567]86) base_machine=i386 machine=i386/$machine ;;
+i[4567]86) base_machine=i386 machine=i386/$machine ;;
powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
s390) base_machine=s390 machine=s390/s390-32 ;;
diff --git a/configure.in b/configure.in
index bbdf156b09..bd90bac91e 100644
--- a/configure.in
+++ b/configure.in
@@ -567,7 +567,7 @@ changequote(,)dnl
# type and particular chip. If an add-on configure fragment already set
# base_machine, we don't change it.
test -n "$base_machine" || case "$machine" in
-i[34567]86) base_machine=i386 machine=i386/$machine ;;
+i[4567]86) base_machine=i386 machine=i386/$machine ;;
powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
s390) base_machine=s390 machine=s390/s390-32 ;;
diff --git a/crypt/sha256-block.c b/crypt/sha256-block.c
index a163e25865..8a77096999 100644
--- a/crypt/sha256-block.c
+++ b/crypt/sha256-block.c
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
/* Process LEN bytes of BUFFER, accumulating context into CTX.
It is assumed that LEN % 64 == 0. */
void
diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
index 334f572b10..c114a534ab 100644
--- a/crypt/sha256-crypt.c
+++ b/crypt/sha256-crypt.c
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/param.h>
#include "sha256.h"
diff --git a/crypt/sha256.c b/crypt/sha256.c
index 9aa222b7d8..8fb7d47671 100644
--- a/crypt/sha256.c
+++ b/crypt/sha256.c
@@ -26,6 +26,7 @@
#include <endian.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/types.h>
#include "sha256.h"
diff --git a/crypt/sha512-block.c b/crypt/sha512-block.c
index e7c5cfd7f5..c542db1c9c 100644
--- a/crypt/sha512-block.c
+++ b/crypt/sha512-block.c
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
/* Process LEN bytes of BUFFER, accumulating context into CTX.
It is assumed that LEN % 128 == 0. */
void
diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
index 6541a9dbcd..e09ae4106b 100644
--- a/crypt/sha512-crypt.c
+++ b/crypt/sha512-crypt.c
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/param.h>
#include "sha512.h"
diff --git a/crypt/sha512.c b/crypt/sha512.c
index db17ff4671..be20bcc822 100644
--- a/crypt/sha512.c
+++ b/crypt/sha512.c
@@ -26,6 +26,7 @@
#include <endian.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/types.h>
#include "sha512.h"
diff --git a/csu/libc-start.c b/csu/libc-start.c
index 9c4c01d9fd..e5da3efd06 100644
--- a/csu/libc-start.c
+++ b/csu/libc-start.c
@@ -15,6 +15,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@ -151,7 +152,25 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
}
# endif
_dl_aux_init (auxvec);
+ if (GL(dl_phdr) == NULL)
# endif
+ {
+ /* Starting from binutils-2.23, the linker will define the
+ magic symbol __ehdr_start to point to our own ELF header
+ if it is visible in a segment that also includes the phdrs.
+ So we can set up _dl_phdr and _dl_phnum even without any
+ information from auxv. */
+
+ extern const ElfW(Ehdr) __ehdr_start
+ __attribute__ ((weak, visibility ("hidden")));
+ if (&__ehdr_start != NULL)
+ {
+ assert (__ehdr_start.e_phentsize == sizeof *GL(dl_phdr));
+ GL(dl_phdr) = (const void *) &__ehdr_start + __ehdr_start.e_phoff;
+ GL(dl_phnum) = __ehdr_start.e_phnum;
+ }
+ }
+
# ifdef DL_SYSDEP_OSCHECK
if (!__libc_multiple_libcs)
{
diff --git a/csu/libc-tls.c b/csu/libc-tls.c
index 5fa39eb8d1..c37df67e6c 100644
--- a/csu/libc-tls.c
+++ b/csu/libc-tls.c
@@ -28,10 +28,6 @@
#error makefile bug, this file is for static only
#endif
-extern ElfW(Phdr) *_dl_phdr;
-extern size_t _dl_phnum;
-
-
dtv_t _dl_static_dtv[2 + TLS_SLOTINFO_SURPLUS];
@@ -118,7 +114,7 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign)
size_t align = 0;
size_t max_align = tcbalign;
size_t tcb_offset;
- ElfW(Phdr) *phdr;
+ const ElfW(Phdr) *phdr;
/* Look through the TLS segment if there is any. */
if (_dl_phdr != NULL)
diff --git a/debug/Makefile b/debug/Makefile
index 55017d327c..9b5afb4d22 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -22,6 +22,9 @@ subdir := debug
headers := execinfo.h
+# Note that ptsname_r_chk and getlogin_r are not here, but in
+# login/Makefile instead. If that subdir is omitted from the
+# build, its _FORTIFY_SOURCE support will be too.
routines = backtrace backtracesyms backtracesymsfd noophooks \
memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \
strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \
@@ -30,13 +33,13 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \
gets_chk chk_fail readonly-area fgets_chk fgets_u_chk \
read_chk pread_chk pread64_chk recv_chk recvfrom_chk \
readlink_chk readlinkat_chk getwd_chk getcwd_chk \
- realpath_chk ptsname_r_chk fread_chk fread_u_chk \
+ realpath_chk fread_chk fread_u_chk \
wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \
wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \
wcpncpy_chk \
swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \
vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \
- confstr_chk getgroups_chk ttyname_r_chk getlogin_r_chk \
+ confstr_chk getgroups_chk ttyname_r_chk \
gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \
wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \
wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \
diff --git a/debug/Versions b/debug/Versions
index c1722fab20..0482c85f19 100644
--- a/debug/Versions
+++ b/debug/Versions
@@ -23,13 +23,13 @@ libc {
__read_chk; __pread_chk; __pread64_chk;
__readlink_chk; __getcwd_chk; __getwd_chk;
__recv_chk; __recvfrom_chk;
- __realpath_chk; __ptsname_r_chk; __wctomb_chk;
+ __realpath_chk; __wctomb_chk;
__stpncpy_chk;
__wcscpy_chk; __wmemcpy_chk; __wmemmove_chk; __wmempcpy_chk; __wcpcpy_chk;
__wcsncpy_chk; __wcscat_chk; __wcsncat_chk; __wmemset_chk; __wcpncpy_chk;
__swprintf_chk; __vswprintf_chk; __wprintf_chk; __fwprintf_chk;
__vwprintf_chk; __vfwprintf_chk; __fgetws_chk; __fgetws_unlocked_chk;
- __confstr_chk; __getgroups_chk; __ttyname_r_chk; __getlogin_r_chk;
+ __confstr_chk; __getgroups_chk; __ttyname_r_chk;
__gethostname_chk; __getdomainname_chk; __wcrtomb_chk; __mbsnrtowcs_chk;
__wcsnrtombs_chk; __mbsrtowcs_chk; __wcsrtombs_chk; __mbstowcs_chk;
__wcstombs_chk;
diff --git a/debug/backtrace-tst.c b/debug/backtrace-tst.c
index ce80685bf8..cc46c33c3c 100644
--- a/debug/backtrace-tst.c
+++ b/debug/backtrace-tst.c
@@ -2,6 +2,7 @@
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
static int
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
index 43ae347d5e..ce6096de06 100644
--- a/debug/pcprofiledump.c
+++ b/debug/pcprofiledump.c
@@ -33,6 +33,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include "../version.h"
diff --git a/elf/Makefile b/elf/Makefile
index 9477a4d96b..c01ca9ef68 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -152,12 +152,6 @@ selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
ifneq ($(selinux-enabled),1)
tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
endif
-ifeq (x86_64,$(config-machine))
-tests += tst-audit3 tst-audit4 tst-audit5
-ifeq (yes,$(config-cflags-avx))
-tests += tst-audit6 tst-audit7
-endif
-endif
endif
ifeq ($(run-built-tests),yes)
tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
@@ -220,13 +214,6 @@ modules-names += tst-piemod1
tests += tst-pie1
tests-pie += tst-pie1
endif
-ifeq (x86_64,$(config-machine))
-modules-names += tst-auditmod3a tst-auditmod3b \
- tst-auditmod4a tst-auditmod4b \
- tst-auditmod5a tst-auditmod5b \
- tst-auditmod6a tst-auditmod6b tst-auditmod6c \
- tst-auditmod7a tst-auditmod7b
-endif
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
# We need this variable to be sure the test modules get the right CPPFLAGS.
@@ -1001,27 +988,6 @@ tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
$(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so
tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-$(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
-$(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
-tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
-
-$(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so
-$(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so
-tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so
-
-$(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
-$(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
-tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so
-
-$(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
-$(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
- $(objpfx)tst-auditmod6c.so
-tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
-
-$(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
-$(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
-tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
-
$(objpfx)tst-audit8: $(common-objpfx)math/libm.so
$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
@@ -1149,19 +1115,6 @@ $(objpfx)tst-initorder2.out: $(objpfx)tst-initorder2
$< > $@
cmp $@ tst-initorder2.exp > /dev/null
-ifeq (yes,$(config-cflags-avx))
-AVX-CFLAGS=-mavx
-ifeq (yes,$(config-cflags-novzeroupper))
-AVX-CFLAGS+=-mno-vzeroupper
-endif
-CFLAGS-tst-audit4.c += $(AVX-CFLAGS)
-CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS)
-CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS)
-CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
-CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
-CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
-endif
-
$(objpfx)tst-relsort1: $(libdl)
$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
$(objpfx)tst-relsort1mod2.so: $(libm)
diff --git a/elf/cache.c b/elf/cache.c
index 699550bb60..9bf261cd29 100644
--- a/elf/cache.c
+++ b/elf/cache.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
index 030fdcaffe..0b68d18b93 100644
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -22,7 +22,7 @@
#include <sys/mman.h>
#include <dl-cache.h>
#include <dl-procinfo.h>
-
+#include <stdint.h>
#include <_itoa.h>
#ifndef _DL_PLATFORMS_COUNT
diff --git a/elf/dl-close.c b/elf/dl-close.c
index c86f609402..fe3014cca3 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -183,6 +183,8 @@ _dl_close_worker (struct link_map *map)
/* Mark all dependencies as used. */
if (l->l_initfini != NULL)
{
+ /* We are always the zeroth entry, and since we don't include
+ ourselves in the dependency analysis start at 1. */
struct link_map **lp = &l->l_initfini[1];
while (*lp != NULL)
{
@@ -193,6 +195,10 @@ _dl_close_worker (struct link_map *map)
if (!used[(*lp)->l_idx])
{
used[(*lp)->l_idx] = 1;
+ /* If we marked a new object as used, and we've
+ already processed it, then we need to go back
+ and process again from that point forward to
+ ensure we keep all of its dependencies also. */
if ((*lp)->l_idx - 1 < done_index)
done_index = (*lp)->l_idx - 1;
}
diff --git a/elf/dl-hwcaps.c b/elf/dl-hwcaps.c
index 8d49383d76..94cbf6cc2d 100644
--- a/elf/dl-hwcaps.c
+++ b/elf/dl-hwcaps.c
@@ -66,6 +66,11 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
{
const ElfW(Addr) start = (phdr[i].p_vaddr
+ GLRO(dl_sysinfo_map)->l_addr);
+ /* The standard ELF note layout is exactly as the anonymous struct.
+ The next element is a variable length vendor name of length
+ VENDORLEN (with a real length rounded to ElfW(Word)), followed
+ by the data of length DATALEN (with a real length rounded to
+ ElfW(Word)). */
const struct
{
ElfW(Word) vendorlen;
@@ -75,6 +80,11 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz)
{
#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word)))
+ /* The layout of the type 2, vendor "GNU" note is as follows:
+ .long <Number of capabilities enabled by this note>
+ .long <Capabilities mask> (as mask >> _DL_FIRST_EXTRA).
+ .byte <The bit number for the next capability>
+ .asciz <The name of the capability>. */
if (note->type == NT_GNU_HWCAP
&& note->vendorlen == sizeof "GNU"
&& !memcmp ((note + 1), "GNU", sizeof "GNU")
@@ -84,7 +94,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
+ ROUND (sizeof "GNU"));
cnt += *p++;
++p; /* Skip mask word. */
- dsocaps = (const char *) p;
+ dsocaps = (const char *) p; /* Pseudo-string "<b>name" */
dsocapslen = note->datalen - sizeof *p * 2;
break;
}
@@ -107,6 +117,8 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
#ifdef NEED_DL_SYSINFO_DSO
if (dsocaps != NULL)
{
+ /* dsocaps points to the .asciz string, and -1 points to the mask
+ .long just before the string. */
const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA;
/* Note that we add the dsocaps to the set already chosen by the
diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c
index 13d815ce6e..609b9000e5 100644
--- a/elf/dl-iteratephdr.c
+++ b/elf/dl-iteratephdr.c
@@ -92,10 +92,6 @@ weak_alias (__dl_iterate_phdr, dl_iterate_phdr);
#else
-/* dl-support.c defines these and initializes them early on. */
-extern ElfW(Phdr) *_dl_phdr;
-extern size_t _dl_phnum;
-
int
dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
size_t size, void *data), void *data)
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 6e65980c3c..dd182c9155 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -797,6 +797,9 @@ _dl_init_paths (const char *llp)
(const void *) (D_PTR (l, l_info[DT_STRTAB])
+ l->l_info[DT_RUNPATH]->d_un.d_val),
l, "RUNPATH");
+ /* During rtld init the memory is allocated by the stub malloc,
+ prevent any attempt to free it by the normal malloc. */
+ l->l_runpath_dirs.malloced = 0;
/* The RPATH is ignored. */
l->l_rpath_dirs.dirs = (void *) -1;
@@ -813,6 +816,9 @@ _dl_init_paths (const char *llp)
(const void *) (D_PTR (l, l_info[DT_STRTAB])
+ l->l_info[DT_RPATH]->d_un.d_val),
l, "RPATH");
+ /* During rtld init the memory is allocated by the stub
+ malloc, prevent any attempt to free it by the normal
+ malloc. */
l->l_rpath_dirs.malloced = 0;
}
else
diff --git a/elf/dl-misc.c b/elf/dl-misc.c
index a8e9a3f2f0..5fc13a44a4 100644
--- a/elf/dl-misc.c
+++ b/elf/dl-misc.c
@@ -25,13 +25,15 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/uio.h>
#include <sysdep.h>
#include <_itoa.h>
-#include <bits/libc-lock.h>
+#include <dl-writev.h>
+
/* Read the whole contents of FILE into new mmap'd space with given
protections. *SIZEP gets the size of the file. On error MAP_FAILED
@@ -239,25 +241,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg)
}
/* Finally write the result. */
-#ifdef HAVE_INLINED_SYSCALLS
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (writev, err, 3, fd, &iov, niov);
-#elif RTLD_PRIVATE_ERRNO
- /* We have to take this lock just to be sure we don't clobber the private
- errno when it's being used by another thread that cares about it.
- Yet we must be sure not to try calling the lock functions before
- the thread library is fully initialized. */
- if (__builtin_expect (INTUSE (_dl_starting_up), 0))
- __writev (fd, iov, niov);
- else
- {
- __rtld_lock_lock_recursive (GL(dl_load_lock));
- __writev (fd, iov, niov);
- __rtld_lock_unlock_recursive (GL(dl_load_lock));
- }
-#else
- __writev (fd, iov, niov);
-#endif
+ _dl_writev (fd, iov, niov);
}
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 201d95d1be..92fae7f59b 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -37,13 +37,6 @@
#include <dl-dst.h>
-extern ElfW(Addr) _dl_sysdep_start (void **start_argptr,
- void (*dl_main) (const ElfW(Phdr) *phdr,
- ElfW(Word) phnum,
- ElfW(Addr) *user_entry,
- ElfW(auxv_t) *auxv));
-weak_extern (_dl_sysdep_start)
-
extern int __libc_multiple_libcs; /* Defined in init-first.c. */
/* We must be careful not to leave us in an inconsistent state. Thus we
@@ -344,7 +337,7 @@ dl_open_worker (void *a)
if (nmaps > 1)
{
uint16_t seen[nmaps];
- memset (seen, '\0', nmaps);
+ memset (seen, '\0', sizeof (seen));
size_t i = 0;
while (1)
{
diff --git a/elf/dl-profile.c b/elf/dl-profile.c
index c3faeba442..9034be229a 100644
--- a/elf/dl-profile.c
+++ b/elf/dl-profile.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <ldsodefs.h>
#include <sys/gmon.h>
#include <sys/gmon_out.h>
diff --git a/elf/dl-support.c b/elf/dl-support.c
index ad9b4c40b0..b3ab9560ad 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <sys/param.h>
+#include <stdint.h>
#include <ldsodefs.h>
#include <dl-machine.h>
#include <bits/libc-lock.h>
@@ -126,7 +127,7 @@ int _dl_debug_fd = STDERR_FILENO;
int _dl_correct_cache_id = _DL_CACHE_DEFAULT_ID;
ElfW(auxv_t) *_dl_auxv;
-ElfW(Phdr) *_dl_phdr;
+const ElfW(Phdr) *_dl_phdr;
size_t _dl_phnum;
uint64_t _dl_hwcap __attribute__ ((nocommon));
@@ -205,7 +206,7 @@ _dl_aux_init (ElfW(auxv_t) *av)
GLRO(dl_clktck) = av->a_un.a_val;
break;
case AT_PHDR:
- GL(dl_phdr) = (void *) av->a_un.a_val;
+ GL(dl_phdr) = (const void *) av->a_un.a_val;
break;
case AT_PHNUM:
GL(dl_phnum) = av->a_un.a_val;
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index d8f3dd2fb9..52de23f44b 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -205,10 +205,15 @@ _dl_sysdep_start (void **start_argptr,
GLRO(dl_pagesize) = __getpagesize ();
#endif
-#if defined NEED_DL_SYSINFO
- /* Only set the sysinfo value if we also have the vsyscall DSO. */
- if (GLRO(dl_sysinfo_dso) != 0 && new_sysinfo)
- GLRO(dl_sysinfo) = new_sysinfo;
+#ifdef NEED_DL_SYSINFO
+ if (new_sysinfo != 0)
+ {
+# ifdef NEED_DL_SYSINFO_DSO
+ /* Only set the sysinfo value if we also have the vsyscall DSO. */
+ if (GLRO(dl_sysinfo_dso) != 0)
+# endif
+ GLRO(dl_sysinfo) = new_sysinfo;
+ }
#endif
#ifdef DL_SYSDEP_INIT
diff --git a/elf/dl-writev.h b/elf/dl-writev.h
new file mode 100644
index 0000000000..0fc0b2b864
--- /dev/null
+++ b/elf/dl-writev.h
@@ -0,0 +1,56 @@
+/* Message-writing for the dynamic linker. Generic 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 <sys/uio.h>
+#include <ldsodefs.h>
+#include <bits/libc-lock.h>
+
+/* This is used from only one place: dl-misc.c:_dl_debug_vdprintf.
+ Hence it's in a header with the expectation it will be inlined.
+
+ This is writev, but with a constraint added and others loosened:
+
+ 1. Under RTLD_PRIVATE_ERRNO, it must not clobber the private errno
+ when another thread holds the dl_load_lock.
+ 2. It is not obliged to detect and report errors at all.
+ 3. It's not really obliged to deliver a single atomic write
+ (though it may be preferable). */
+
+static inline void
+_dl_writev (int fd, const struct iovec *iov, size_t niov)
+{
+ /* Note that if __writev is an implementation that calls malloc,
+ this will cause linking problems building the dynamic linker. */
+
+#if RTLD_PRIVATE_ERRNO
+ /* We have to take this lock just to be sure we don't clobber the private
+ errno when it's being used by another thread that cares about it.
+ Yet we must be sure not to try calling the lock functions before
+ the thread library is fully initialized. */
+ if (__builtin_expect (INTUSE (_dl_starting_up), 0))
+ __writev (fd, iov, niov);
+ else
+ {
+ __rtld_lock_lock_recursive (GL(dl_load_lock));
+ __writev (fd, iov, niov);
+ __rtld_lock_unlock_recursive (GL(dl_load_lock));
+ }
+#else
+ __writev (fd, iov, niov);
+#endif
+}
diff --git a/elf/elf.h b/elf/elf.h
index d096a97e7e..4ad4f39999 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -251,6 +251,7 @@ typedef struct
#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
#define EM_AARCH64 183 /* ARM AARCH64 */
#define EM_TILEPRO 188 /* Tilera TILEPro */
+#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */
#define EM_TILEGX 191 /* Tilera TILE-Gx */
#define EM_NUM 192
@@ -2955,6 +2956,37 @@ typedef Elf32_Addr Elf32_Conflict;
#define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */
#define R_M32R_NUM 256 /* Keep this the last entry. */
+/* MicroBlaze relocations */
+#define R_MICROBLAZE_NONE 0 /* No reloc. */
+#define R_MICROBLAZE_32 1 /* Direct 32 bit. */
+#define R_MICROBLAZE_32_PCREL 2 /* PC relative 32 bit. */
+#define R_MICROBLAZE_64_PCREL 3 /* PC relative 64 bit. */
+#define R_MICROBLAZE_32_PCREL_LO 4 /* Low 16 bits of PCREL32. */
+#define R_MICROBLAZE_64 5 /* Direct 64 bit. */
+#define R_MICROBLAZE_32_LO 6 /* Low 16 bit. */
+#define R_MICROBLAZE_SRO32 7 /* Read-only small data area. */
+#define R_MICROBLAZE_SRW32 8 /* Read-write small data area. */
+#define R_MICROBLAZE_64_NONE 9 /* No reloc. */
+#define R_MICROBLAZE_32_SYM_OP_SYM 10 /* Symbol Op Symbol relocation. */
+#define R_MICROBLAZE_GNU_VTINHERIT 11 /* GNU C++ vtable hierarchy. */
+#define R_MICROBLAZE_GNU_VTENTRY 12 /* GNU C++ vtable member usage. */
+#define R_MICROBLAZE_GOTPC_64 13 /* PC-relative GOT offset. */
+#define R_MICROBLAZE_GOT_64 14 /* GOT entry offset. */
+#define R_MICROBLAZE_PLT_64 15 /* PLT offset (PC-relative). */
+#define R_MICROBLAZE_REL 16 /* Adjust by program base. */
+#define R_MICROBLAZE_JUMP_SLOT 17 /* Create PLT entry. */
+#define R_MICROBLAZE_GLOB_DAT 18 /* Create GOT entry. */
+#define R_MICROBLAZE_GOTOFF_64 19 /* 64 bit offset to GOT. */
+#define R_MICROBLAZE_GOTOFF_32 20 /* 32 bit offset to GOT. */
+#define R_MICROBLAZE_COPY 21 /* Runtime copy. */
+#define R_MICROBLAZE_TLS 22 /* TLS Reloc. */
+#define R_MICROBLAZE_TLSGD 23 /* TLS General Dynamic. */
+#define R_MICROBLAZE_TLSLD 24 /* TLS Local Dynamic. */
+#define R_MICROBLAZE_TLSDTPMOD32 25 /* TLS Module ID. */
+#define R_MICROBLAZE_TLSDTPREL32 26 /* TLS Offset Within TLS Block. */
+#define R_MICROBLAZE_TLSDTPREL64 27 /* TLS Offset Within TLS Block. */
+#define R_MICROBLAZE_TLSGOTTPREL32 28 /* TLS Offset From Thread Pointer. */
+#define R_MICROBLAZE_TLSTPREL32 29 /* TLS Offset From Thread Pointer. */
/* TILEPro relocations. */
#define R_TILEPRO_NONE 0 /* No reloc */
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 57c6a6f04d..c7b9eb92fe 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -31,6 +31,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
@@ -173,13 +174,17 @@ is_hwcap_platform (const char *name)
{
int hwcap_idx = _dl_string_hwcap (name);
+ /* Is this a normal hwcap for the machine like "fpu?" */
if (hwcap_idx != -1 && ((1 << hwcap_idx) & hwcap_mask))
return 1;
+ /* Is this a platform pseudo-hwcap like "i686?" */
hwcap_idx = _dl_string_platform (name);
if (hwcap_idx != -1)
return 1;
+ /* Is this one of the extra pseudo-hwcaps that we map beyond
+ _DL_FIRST_EXTRA like "tls", or "nosegneg?" */
for (hwcap_idx = _DL_FIRST_EXTRA; hwcap_idx < 64; ++hwcap_idx)
if (hwcap_extra[hwcap_idx - _DL_FIRST_EXTRA] != NULL
&& !strcmp (name, hwcap_extra[hwcap_idx - _DL_FIRST_EXTRA]))
@@ -1265,6 +1270,10 @@ main (int argc, char **argv)
add_dir (argv[i]);
}
+ /* The last entry in hwcap_extra is reserved for the "tls" pseudo-hwcap which
+ indicates support for TLS. This pseudo-hwcap is only used by old versions
+ under which TLS support was optional. The entry is no longer needed, but
+ must remain for compatibility. */
hwcap_extra[63 - _DL_FIRST_EXTRA] = "tls";
set_hwcap ();
diff --git a/elf/sprof.c b/elf/sprof.c
index 54dfebdd5a..60f310f47a 100644
--- a/elf/sprof.c
+++ b/elf/sprof.c
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <ldsodefs.h>
#include <sys/gmon.h>
#include <sys/gmon_out.h>
@@ -744,7 +745,7 @@ load_profdata (const char *name, struct shobj *shobj)
{
struct profdata *result;
int fd;
- struct stat st;
+ struct stat64 st;
void *addr;
uint32_t *narcsp;
size_t fromlimit;
@@ -783,7 +784,7 @@ load_profdata (const char *name, struct shobj *shobj)
/* We have found the file, now make sure it is the right one for the
data file. */
- if (fstat (fd, &st) < 0)
+ if (fstat64 (fd, &st) < 0)
{
error (0, errno, _("while stat'ing profiling data file"));
close (fd);
diff --git a/iconv/dummy-repertoire.c b/iconv/dummy-repertoire.c
index b32a754783..a7ca1f017b 100644
--- a/iconv/dummy-repertoire.c
+++ b/iconv/dummy-repertoire.c
@@ -15,6 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
/* For iconv we don't have to handle repertoire maps. Provide dummy
definitions to allow the use of linereader.c unchanged. */
#include <repertoire.h>
diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c
index b1a0610976..56f156e117 100644
--- a/iconv/iconv_charmap.c
+++ b/iconv/iconv_charmap.c
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/stat.h>
@@ -171,11 +172,11 @@ charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
}
#ifdef _POSIX_MAPPED_FILES
- struct stat st;
+ struct stat64 st;
char *addr;
/* We have possibilities for reading the input file. First try
to mmap() it since this will provide the fastest solution. */
- if (fstat (fd, &st) == 0
+ if (fstat64 (fd, &st) == 0
&& ((addr = mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE,
fd, 0)) != MAP_FAILED))
{
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index a42cc5b375..1a1d0d0cf4 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -275,7 +275,7 @@ conversions from `%s' and to `%s' are not supported"),
do
{
#ifdef _POSIX_MAPPED_FILES
- struct stat st;
+ struct stat64 st;
char *addr;
#endif
int fd, ret;
@@ -300,7 +300,7 @@ conversions from `%s' and to `%s' are not supported"),
#ifdef _POSIX_MAPPED_FILES
/* We have possibilities for reading the input file. First try
to mmap() it since this will provide the fastest solution. */
- if (fstat (fd, &st) == 0
+ if (fstat64 (fd, &st) == 0
&& ((addr = mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE,
fd, 0)) != MAP_FAILED))
{
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index c8b14454e9..45beb06d34 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -144,6 +144,7 @@
#endif
#include <sysdep.h>
+#include <stdint.h>
#ifndef DL_CALL_FCT
# define DL_CALL_FCT(fct, args) fct args
diff --git a/iconvdata/8bit-generic.c b/iconvdata/8bit-generic.c
index 79a398925b..c789dc6b2f 100644
--- a/iconvdata/8bit-generic.c
+++ b/iconvdata/8bit-generic.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <dlfcn.h>
+#include <stdint.h>
#define FROM_LOOP from_generic
#define TO_LOOP to_generic
diff --git a/iconvdata/cp737.h b/iconvdata/cp737.h
index faf3f10485..1796626a86 100644
--- a/iconvdata/cp737.h
+++ b/iconvdata/cp737.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
/* Table to map to UCS4. It can be generated using
(I know, this is a useless use of cat, but the linebreak requires it):
diff --git a/iconvdata/cp775.h b/iconvdata/cp775.h
index 13fe5deaf3..c7e6011058 100644
--- a/iconvdata/cp775.h
+++ b/iconvdata/cp775.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
/* Table to map to UCS4. It can be generated using
(I know, this is a useless use of cat, but the linebreak requires it):
diff --git a/iconvdata/ibm1008.h b/iconvdata/ibm1008.h
index 800816f5d7..57232a579f 100644
--- a/iconvdata/ibm1008.h
+++ b/iconvdata/ibm1008.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1025.h b/iconvdata/ibm1025.h
index da2cf1cef7..fc58a37ca1 100644
--- a/iconvdata/ibm1025.h
+++ b/iconvdata/ibm1025.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1046.h b/iconvdata/ibm1046.h
index 7c103b408d..80d1e59795 100644
--- a/iconvdata/ibm1046.h
+++ b/iconvdata/ibm1046.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1097.h b/iconvdata/ibm1097.h
index 34a3088471..3fe8046716 100644
--- a/iconvdata/ibm1097.h
+++ b/iconvdata/ibm1097.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1112.h b/iconvdata/ibm1112.h
index a58486332c..f5eca92270 100644
--- a/iconvdata/ibm1112.h
+++ b/iconvdata/ibm1112.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1122.h b/iconvdata/ibm1122.h
index ccb1427817..30d7a2a739 100644
--- a/iconvdata/ibm1122.h
+++ b/iconvdata/ibm1122.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1123.h b/iconvdata/ibm1123.h
index 6a30f77f94..28e4585681 100644
--- a/iconvdata/ibm1123.h
+++ b/iconvdata/ibm1123.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1124.h b/iconvdata/ibm1124.h
index 4f75b33506..2393fd75e9 100644
--- a/iconvdata/ibm1124.h
+++ b/iconvdata/ibm1124.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1129.h b/iconvdata/ibm1129.h
index c1cdcd670d..94011fbe02 100644
--- a/iconvdata/ibm1129.h
+++ b/iconvdata/ibm1129.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1130.h b/iconvdata/ibm1130.h
index b7c9d64ecd..101c9bcc5e 100644
--- a/iconvdata/ibm1130.h
+++ b/iconvdata/ibm1130.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1132.h b/iconvdata/ibm1132.h
index e98faa2306..7e38be1a8c 100644
--- a/iconvdata/ibm1132.h
+++ b/iconvdata/ibm1132.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1133.h b/iconvdata/ibm1133.h
index 46fecf19e3..35e8dd2768 100644
--- a/iconvdata/ibm1133.h
+++ b/iconvdata/ibm1133.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1137.h b/iconvdata/ibm1137.h
index 8b80092e93..22051fa2f6 100644
--- a/iconvdata/ibm1137.h
+++ b/iconvdata/ibm1137.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1140.h b/iconvdata/ibm1140.h
index b4ede7680f..733298217a 100644
--- a/iconvdata/ibm1140.h
+++ b/iconvdata/ibm1140.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1141.h b/iconvdata/ibm1141.h
index ca3bfeb8c3..ec2ec6b5b7 100644
--- a/iconvdata/ibm1141.h
+++ b/iconvdata/ibm1141.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1142.h b/iconvdata/ibm1142.h
index f9236798e6..e2a54afe32 100644
--- a/iconvdata/ibm1142.h
+++ b/iconvdata/ibm1142.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1143.h b/iconvdata/ibm1143.h
index faec48b5f8..d64514ba1d 100644
--- a/iconvdata/ibm1143.h
+++ b/iconvdata/ibm1143.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1144.h b/iconvdata/ibm1144.h
index 5e00b114a2..63632dcaa4 100644
--- a/iconvdata/ibm1144.h
+++ b/iconvdata/ibm1144.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1145.h b/iconvdata/ibm1145.h
index 41a92bfa91..771cea7788 100644
--- a/iconvdata/ibm1145.h
+++ b/iconvdata/ibm1145.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1146.h b/iconvdata/ibm1146.h
index 3d071cfdf4..543f87fea4 100644
--- a/iconvdata/ibm1146.h
+++ b/iconvdata/ibm1146.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1147.h b/iconvdata/ibm1147.h
index 30dd442e18..dacf88c62d 100644
--- a/iconvdata/ibm1147.h
+++ b/iconvdata/ibm1147.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1148.h b/iconvdata/ibm1148.h
index ea135f633d..1f9de887b9 100644
--- a/iconvdata/ibm1148.h
+++ b/iconvdata/ibm1148.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1149.h b/iconvdata/ibm1149.h
index 2fe222cb6e..a86aa247f4 100644
--- a/iconvdata/ibm1149.h
+++ b/iconvdata/ibm1149.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1153.h b/iconvdata/ibm1153.h
index f61861edbb..df248cf2fa 100644
--- a/iconvdata/ibm1153.h
+++ b/iconvdata/ibm1153.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1154.h b/iconvdata/ibm1154.h
index 253af80329..24f5c05150 100644
--- a/iconvdata/ibm1154.h
+++ b/iconvdata/ibm1154.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1155.h b/iconvdata/ibm1155.h
index 4ac78732c5..1138d8b972 100644
--- a/iconvdata/ibm1155.h
+++ b/iconvdata/ibm1155.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1156.h b/iconvdata/ibm1156.h
index 233f6809e1..547751ef3f 100644
--- a/iconvdata/ibm1156.h
+++ b/iconvdata/ibm1156.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1157.h b/iconvdata/ibm1157.h
index eefcb71fe9..c7c021c04e 100644
--- a/iconvdata/ibm1157.h
+++ b/iconvdata/ibm1157.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1158.h b/iconvdata/ibm1158.h
index e69fa88235..e569062bbe 100644
--- a/iconvdata/ibm1158.h
+++ b/iconvdata/ibm1158.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1160.h b/iconvdata/ibm1160.h
index c7fd40f0c7..78f7baa502 100644
--- a/iconvdata/ibm1160.h
+++ b/iconvdata/ibm1160.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1161.h b/iconvdata/ibm1161.h
index 0a95ace582..8b95356a9c 100644
--- a/iconvdata/ibm1161.h
+++ b/iconvdata/ibm1161.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1162.h b/iconvdata/ibm1162.h
index c791e64e6c..910a5a9e6b 100644
--- a/iconvdata/ibm1162.h
+++ b/iconvdata/ibm1162.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1163.h b/iconvdata/ibm1163.h
index 6ffa4e3ace..541c6312be 100644
--- a/iconvdata/ibm1163.h
+++ b/iconvdata/ibm1163.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1164.h b/iconvdata/ibm1164.h
index 293c49c0ab..70902578ca 100644
--- a/iconvdata/ibm1164.h
+++ b/iconvdata/ibm1164.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1166.h b/iconvdata/ibm1166.h
index da239a17e9..a8faf9add6 100644
--- a/iconvdata/ibm1166.h
+++ b/iconvdata/ibm1166.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1167.h b/iconvdata/ibm1167.h
index 041e08ed69..f2de81876a 100644
--- a/iconvdata/ibm1167.h
+++ b/iconvdata/ibm1167.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm12712.h b/iconvdata/ibm12712.h
index ac81814247..92765677f7 100644
--- a/iconvdata/ibm12712.h
+++ b/iconvdata/ibm12712.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm1390.h b/iconvdata/ibm1390.h
index 6cd15f69b1..5f2841e08a 100644
--- a/iconvdata/ibm1390.h
+++ b/iconvdata/ibm1390.h
@@ -20,6 +20,8 @@
#ifndef _IBM1390_H
#define _IBM1390_H 1
+#include <stdint.h>
+
struct gap
{
uint32_t start;
diff --git a/iconvdata/ibm1399.h b/iconvdata/ibm1399.h
index 94e3ebe110..323482af69 100644
--- a/iconvdata/ibm1399.h
+++ b/iconvdata/ibm1399.h
@@ -20,6 +20,8 @@
#ifndef _IBM1399_H
#define _IBM1399_H 1
+#include <stdint.h>
+
struct gap
{
uint32_t start;
diff --git a/iconvdata/ibm16804.h b/iconvdata/ibm16804.h
index 34fa59e0e8..dcf52e2c91 100644
--- a/iconvdata/ibm16804.h
+++ b/iconvdata/ibm16804.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm4517.h b/iconvdata/ibm4517.h
index 87beadb808..f46d6083d7 100644
--- a/iconvdata/ibm4517.h
+++ b/iconvdata/ibm4517.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm4899.h b/iconvdata/ibm4899.h
index 4d99874b72..f90229e6af 100644
--- a/iconvdata/ibm4899.h
+++ b/iconvdata/ibm4899.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm4909.h b/iconvdata/ibm4909.h
index aab45d70e7..39c987eb2b 100644
--- a/iconvdata/ibm4909.h
+++ b/iconvdata/ibm4909.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm4971.h b/iconvdata/ibm4971.h
index d1b2b4ec12..04c69b6945 100644
--- a/iconvdata/ibm4971.h
+++ b/iconvdata/ibm4971.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm5347.h b/iconvdata/ibm5347.h
index 1f3bcc7dce..62c89b5abe 100644
--- a/iconvdata/ibm5347.h
+++ b/iconvdata/ibm5347.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm803.h b/iconvdata/ibm803.h
index ca187a4fd3..bc22234280 100644
--- a/iconvdata/ibm803.h
+++ b/iconvdata/ibm803.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm856.h b/iconvdata/ibm856.h
index a2b6efc1c0..be77850be3 100644
--- a/iconvdata/ibm856.h
+++ b/iconvdata/ibm856.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm901.h b/iconvdata/ibm901.h
index c878670e36..2c773a322f 100644
--- a/iconvdata/ibm901.h
+++ b/iconvdata/ibm901.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm902.h b/iconvdata/ibm902.h
index dec7502166..1dcb67b5b5 100644
--- a/iconvdata/ibm902.h
+++ b/iconvdata/ibm902.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm9030.h b/iconvdata/ibm9030.h
index 0b2242f3f0..c2734aeafe 100644
--- a/iconvdata/ibm9030.h
+++ b/iconvdata/ibm9030.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm9066.h b/iconvdata/ibm9066.h
index 1e7df2dca0..228c01bca3 100644
--- a/iconvdata/ibm9066.h
+++ b/iconvdata/ibm9066.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm921.h b/iconvdata/ibm921.h
index 228e80fcbb..cd921e246a 100644
--- a/iconvdata/ibm921.h
+++ b/iconvdata/ibm921.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm922.h b/iconvdata/ibm922.h
index 442bb3aaa9..ad3c98f848 100644
--- a/iconvdata/ibm922.h
+++ b/iconvdata/ibm922.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/ibm9448.h b/iconvdata/ibm9448.h
index eda4371d4c..2fa2cbc609 100644
--- a/iconvdata/ibm9448.h
+++ b/iconvdata/ibm9448.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] =
{
[0x00] = 0x0000, [0x01] = 0x0001, [0x02] = 0x0002, [0x03] = 0x0003,
diff --git a/iconvdata/isiri-3342.h b/iconvdata/isiri-3342.h
index d12aa21a6e..65a5069dbb 100644
--- a/iconvdata/isiri-3342.h
+++ b/iconvdata/isiri-3342.h
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
static const uint32_t to_ucs4[256] = {
[0x01] = 0x0001,
[0x02] = 0x0002,
diff --git a/iconvdata/jis0201.h b/iconvdata/jis0201.h
index 1c6f553d59..6b873d7d1a 100644
--- a/iconvdata/jis0201.h
+++ b/iconvdata/jis0201.h
@@ -20,6 +20,8 @@
#ifndef _JIS0201_H
#define _JIS0201_H 1
+#include <stdint.h>
+
/* Conversion table. */
extern const uint32_t __jisx0201_to_ucs4[];
diff --git a/include/link.h b/include/link.h
index 7dc3cd1e32..1682467631 100644
--- a/include/link.h
+++ b/include/link.h
@@ -37,7 +37,7 @@ struct link_map;
extern unsigned int la_objopen (struct link_map *__map, Lmid_t __lmid,
uintptr_t *__cookie);
-
+#include <stdint.h>
#include <stddef.h>
#include <bits/linkmap.h>
#include <dl-lookupcfg.h>
diff --git a/include/math.h b/include/math.h
index 2b040c67fd..cbbce59501 100644
--- a/include/math.h
+++ b/include/math.h
@@ -23,11 +23,14 @@ hidden_proto (__isnanl)
libm_hidden_proto (__fpclassify)
libm_hidden_proto (__fpclassifyf)
+libm_hidden_proto (__issignaling)
+libm_hidden_proto (__issignalingf)
libm_hidden_proto (__exp)
libm_hidden_proto (__expf)
# ifndef __NO_LONG_DOUBLE_MATH
libm_hidden_proto (__fpclassifyl)
+libm_hidden_proto (__issignalingl)
libm_hidden_proto (__expl)
libm_hidden_proto (__expm1l)
# endif
diff --git a/include/netdb.h b/include/netdb.h
index 8a569baef3..e97d1bff8e 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -1,5 +1,6 @@
#ifndef _NETDB_H
#include <resolv/netdb.h>
+#include <stdint.h>
#ifndef _ISOMAC
/* Macros for accessing h_errno from inside libc. */
diff --git a/include/stdlib.h b/include/stdlib.h
index db1812d85a..e50985a5b8 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -102,8 +102,12 @@ extern int __cxa_atexit_internal (void (*func) (void *), void *arg, void *d)
extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg,
void *d);
-extern void __call_tls_dtors (void);
-libc_hidden_proto (__call_tls_dtors);
+extern void __call_tls_dtors (void)
+#ifndef SHARED
+ __attribute__ ((weak))
+#endif
+ ;
+libc_hidden_proto (__call_tls_dtors)
extern void __cxa_finalize (void *d);
diff --git a/inet/check_native.c b/inet/check_native.c
index e45a7ffbcf..46ee837b57 100644
--- a/inet/check_native.c
+++ b/inet/check_native.c
@@ -17,7 +17,7 @@
<http://www.gnu.org/licenses/>. */
#include <ifaddrs.h>
-
+#include <stdint.h>
void
attribute_hidden
diff --git a/inet/check_pf.c b/inet/check_pf.c
index 6968973eb7..0e506023ea 100644
--- a/inet/check_pf.c
+++ b/inet/check_pf.c
@@ -18,7 +18,7 @@
#include <ifaddrs.h>
#include <netdb.h>
-
+#include <stdint.h>
void
attribute_hidden
diff --git a/inet/getipv4sourcefilter.c b/inet/getipv4sourcefilter.c
index b6bcffe43c..258829f18f 100644
--- a/inet/getipv4sourcefilter.c
+++ b/inet/getipv4sourcefilter.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <stdint.h>
#include <netinet/in.h>
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
index 436604b756..ce54fe42a8 100644
--- a/inet/getnameinfo.c
+++ b/inet/getnameinfo.c
@@ -43,6 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/in.h>
diff --git a/inet/getsourcefilter.c b/inet/getsourcefilter.c
index 174f326c3a..662a60ab94 100644
--- a/inet/getsourcefilter.c
+++ b/inet/getsourcefilter.c
@@ -19,7 +19,7 @@
#include <errno.h>
#include <netinet/in.h>
-
+#include <stdint.h>
int
getsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
diff --git a/inet/htonl.c b/inet/htonl.c
index 0a6205fb0b..c753cb1545 100644
--- a/inet/htonl.c
+++ b/inet/htonl.c
@@ -15,6 +15,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include <netinet/in.h>
#undef htonl
diff --git a/inet/setipv4sourcefilter.c b/inet/setipv4sourcefilter.c
index f3841f5c03..af9665968e 100644
--- a/inet/setipv4sourcefilter.c
+++ b/inet/setipv4sourcefilter.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <stdint.h>
#include <netinet/in.h>
diff --git a/inet/setsourcefilter.c b/inet/setsourcefilter.c
index 53f1ec4809..4f9c23f2cd 100644
--- a/inet/setsourcefilter.c
+++ b/inet/setsourcefilter.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <stdint.h>
#include <netinet/in.h>
diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c
index 4db9b59389..3bf319ef0c 100644
--- a/inet/test-inet6_opt.c
+++ b/inet/test-inet6_opt.c
@@ -2,6 +2,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#define OPT_X 42
#define OPT_Y 43
diff --git a/inet/tst-network.c b/inet/tst-network.c
index af73cd0eeb..6b79e62df6 100644
--- a/inet/tst-network.c
+++ b/inet/tst-network.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <stdio.h>
+#include <stdint.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 110307bdb2..f4aa215744 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -638,6 +638,11 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
retval = _nl_find_msg (domain->successor[cnt], binding,
msgid1, 1, &retlen);
+ /* Resource problems are not fatal, instead we return no
+ translation. */
+ if (__builtin_expect (retval == (char *) -1, 0))
+ goto no_translation;
+
if (retval != NULL)
{
domain = domain->successor[cnt];
@@ -941,6 +946,11 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
nullentry =
_nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
+ /* Resource problems are fatal. If we continue onwards we will
+ only attempt to calloc a new conv_tab and fail later. */
+ if (__builtin_expect (nullentry == (char *) -1, 0))
+ return (char *) -1;
+
if (nullentry != NULL)
{
const char *charsetstr;
@@ -1170,10 +1180,14 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
freemem_size = INITIAL_BLOCK_SIZE;
newmem = (transmem_block_t *) malloc (freemem_size);
# ifdef _LIBC
- /* Add the block to the list of blocks we have to free
- at some point. */
- newmem->next = transmem_list;
- transmem_list = newmem;
+ if (newmem != NULL)
+ {
+ /* Add the block to the list of blocks we have to free
+ at some point. */
+ newmem->next = transmem_list;
+ transmem_list = newmem;
+ }
+ /* Fall through and return -1. */
# endif
}
if (__builtin_expect (newmem == NULL, 0))
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index e4b7b385a0..ac90ed1015 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -1237,7 +1237,7 @@ _nl_load_domain (domain_file, domainbinding)
default:
/* This is an invalid revision. */
invalid:
- /* This is an invalid .mo file. */
+ /* This is an invalid .mo file or we ran out of resources. */
free (domain->malloced);
#ifdef HAVE_MMAP
if (use_mmap)
@@ -1257,6 +1257,11 @@ _nl_load_domain (domain_file, domainbinding)
/* Get the header entry and look for a plural specification. */
nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
+ if (__builtin_expect (nullentry == (char *) -1, 0))
+ {
+ __libc_rwlock_fini (domain->conversions_lock);
+ goto invalid;
+ }
EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
out:
diff --git a/io/Makefile b/io/Makefile
index 86453d45bc..a7a8044a88 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -36,10 +36,10 @@ routines := \
statvfs fstatvfs statvfs64 fstatvfs64 \
umask chmod fchmod lchmod fchmodat \
mkdir mkdirat \
- open open64 openat openat64 close \
+ open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \
read write lseek lseek64 access euidaccess faccessat \
fcntl flock lockf lockf64 \
- dup dup2 dup3 pipe pipe2 \
+ close dup dup2 dup3 pipe pipe2 \
creat creat64 \
chdir fchdir \
getcwd getwd getdirname \
diff --git a/io/fchdir.c b/io/fchdir.c
index c79b4f2397..843f10109c 100644
--- a/io/fchdir.c
+++ b/io/fchdir.c
@@ -21,11 +21,11 @@
/* Change the current directory to FD. */
int
-fchdir (fd)
- int fd;
+__fchdir (int fd)
{
__set_errno (ENOSYS);
return -1;
}
+weak_alias (__fchdir, fchdir)
stub_warning (fchdir)
diff --git a/io/open.c b/io/open.c
index 89e8a78b68..b01ba6eac5 100644
--- a/io/open.c
+++ b/io/open.c
@@ -22,7 +22,6 @@
#include <stddef.h>
#include <stdio.h>
-extern char **__libc_argv attribute_hidden;
/* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
a third argument is the file protection. */
@@ -57,15 +56,6 @@ weak_alias (__libc_open, open)
stub_warning (open)
-
-int
-__open_2 (file, oflag)
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid open call: O_CREAT without mode");
-
- return __open (file, oflag);
-}
+/* __open_2 is a generic wrapper that calls __open.
+ So give a stub warning for that symbol too. */
stub_warning (__open_2)
diff --git a/io/open64.c b/io/open64.c
index 40d2bca200..818d3819f8 100644
--- a/io/open64.c
+++ b/io/open64.c
@@ -53,15 +53,6 @@ weak_alias (__libc_open64, open64)
stub_warning (open64)
-
-int
-__open64_2 (file, oflag)
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid open64 call: O_CREAT without mode");
-
- return __open64 (file, oflag);
-}
+/* __open64_2 is a generic wrapper that calls __open64.
+ So give a stub warning for that symbol too. */
stub_warning (__open64_2)
diff --git a/sysdeps/unix/sysv/linux/open64_2.c b/io/open64_2.c
index bff2222716..c9a83f9ff2 100644
--- a/sysdeps/unix/sysv/linux/open64_2.c
+++ b/io/open64_2.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
+/* _FORTIFY_SOURCE wrapper for open64.
+ 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
@@ -18,11 +19,8 @@
#include <fcntl.h>
#include <stdio.h>
-
int
-__open64_2 (file, oflag)
- const char *file;
- int oflag;
+__open64_2 (const char *file, int oflag)
{
if (oflag & O_CREAT)
__fortify_fail ("invalid open64 call: O_CREAT without mode");
diff --git a/sysdeps/unix/sysv/linux/open_2.c b/io/open_2.c
index 5726157703..3b9fe28670 100644
--- a/sysdeps/unix/sysv/linux/open_2.c
+++ b/io/open_2.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
+/* _FORTIFY_SOURCE wrapper for open.
+ 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
@@ -18,11 +19,8 @@
#include <fcntl.h>
#include <stdio.h>
-
int
-__open_2 (file, oflag)
- const char *file;
- int oflag;
+__open_2 (const char *file, int oflag)
{
if (oflag & O_CREAT)
__fortify_fail ("invalid open call: O_CREAT without mode");
diff --git a/io/openat.c b/io/openat.c
index 16b11916bd..3722c58236 100644
--- a/io/openat.c
+++ b/io/openat.c
@@ -75,16 +75,6 @@ libc_hidden_def (__openat)
weak_alias (__openat, openat)
stub_warning (openat)
-
-int
-__openat_2 (fd, file, oflag)
- int fd;
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid openat call: O_CREAT without mode");
-
- return __openat (fd, file, oflag);
-}
+/* __openat_2 is a generic wrapper that calls __openat.
+ So give a stub warning for that symbol too. */
stub_warning (__openat_2)
diff --git a/io/openat64.c b/io/openat64.c
index fabfa5d380..506da3cf07 100644
--- a/io/openat64.c
+++ b/io/openat64.c
@@ -68,16 +68,6 @@ libc_hidden_def (__openat64)
weak_alias (__openat64, openat64)
stub_warning (openat64)
-
-int
-__openat64_2 (fd, file, oflag)
- int fd;
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid openat64 call: O_CREAT without mode");
-
- return __openat64 (fd, file, oflag);
-}
+/* __openat64_2 is a generic wrapper that calls __openat64.
+ So give a stub warning for that symbol too. */
stub_warning (__openat_2)
diff --git a/io/openat64_2.c b/io/openat64_2.c
new file mode 100644
index 0000000000..e69fce41a9
--- /dev/null
+++ b/io/openat64_2.c
@@ -0,0 +1,29 @@
+/* _FORTIFY_SOURCE wrapper for openat64.
+ 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 <fcntl.h>
+#include <stdio.h>
+
+int
+__openat64_2 (int fd, const char *file, int oflag)
+{
+ if (oflag & O_CREAT)
+ __fortify_fail ("invalid openat64 call: O_CREAT without mode");
+
+ return __openat64 (fd, file, oflag);
+}
diff --git a/io/openat_2.c b/io/openat_2.c
new file mode 100644
index 0000000000..b423f1dc6b
--- /dev/null
+++ b/io/openat_2.c
@@ -0,0 +1,29 @@
+/* _FORTIFY_SOURCE wrapper for openat.
+ 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 <fcntl.h>
+#include <stdio.h>
+
+int
+__openat_2 (int fd, const char *file, int oflag)
+{
+ if (oflag & O_CREAT)
+ __fortify_fail ("invalid openat call: O_CREAT without mode");
+
+ return __openat (fd, file, oflag);
+}
diff --git a/io/poll.c b/io/poll.c
index fadad38991..aa4c2d07e3 100644
--- a/io/poll.c
+++ b/io/poll.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1994-2013 Free Software Foundation, Inc.
+/* Poll (or wait) for file descriptor I/O availability. Stub version.
+ Copyright (C) 1994-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
@@ -25,13 +26,12 @@
or -1 for errors. */
int
-poll (fds, nfds, timeout)
- struct pollfd *fds;
- nfds_t nfds;
- int timeout;
+__poll (struct pollfd *fds, nfds_t nfds, int timeout)
{
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__poll)
+weak_alias (__poll, poll)
stub_warning (poll)
diff --git a/libidn/ChangeLog b/libidn/ChangeLog
index 10b19a6ebd..619d891f2f 100644
--- a/libidn/ChangeLog
+++ b/libidn/ChangeLog
@@ -1,3 +1,10 @@
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * idna.c: Add missing #include <stdint.h> due to uint64_t or uint32_t
+ usage.
+ * nfkc.c: Likewise.
+ * stringprep.c: Likewise.
+
2013-01-02 Joseph Myers <joseph@codesourcery.com>
* All files with FSF copyright notices: Update copyright dates
diff --git a/libidn/idna.c b/libidn/idna.c
index daa1a87778..7a15a25b21 100644
--- a/libidn/idna.c
+++ b/libidn/idna.c
@@ -25,6 +25,7 @@
#include <string.h>
#include <stringprep.h>
#include <punycode.h>
+#include <stdint.h>
#include "idna.h"
diff --git a/libidn/nfkc.c b/libidn/nfkc.c
index f144d7bd7e..6d4a88b63b 100644
--- a/libidn/nfkc.c
+++ b/libidn/nfkc.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include "stringprep.h"
diff --git a/libidn/stringprep.c b/libidn/stringprep.c
index 201489f36a..d109a71fea 100644
--- a/libidn/stringprep.c
+++ b/libidn/stringprep.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include "stringprep.h"
diff --git a/libio/genops.c b/libio/genops.c
index 390d8d24b5..e5c5d5cafe 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -661,6 +661,10 @@ _IO_no_init (fp, flags, orientation, wd, jmp)
fp->_wide_data->_wide_vtable = jmp;
}
+ else
+ /* Cause predictable crash when a wide function is called on a byte
+ stream. */
+ fp->_wide_data = (struct _IO_wide_data *) -1L;
#endif
fp->_freeres_list = NULL;
}
diff --git a/libio/tst-fwrite-error.c b/libio/tst-fwrite-error.c
index e2507effe7..87c876627e 100644
--- a/libio/tst-fwrite-error.c
+++ b/libio/tst-fwrite-error.c
@@ -36,7 +36,7 @@ do_test (void)
return 1;
}
- char buf[5] = "world";
+ char buf[] = "world";
setvbuf (fp, NULL, _IONBF, 0);
close (fd);
unlink (tmpl);
diff --git a/locale/C-collate.c b/locale/C-collate.c
index a5c02af8a6..6c7edf074f 100644
--- a/locale/C-collate.c
+++ b/locale/C-collate.c
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#include <endian.h>
+#include <stdint.h>
#include "localeinfo.h"
static const char collseqmb[] =
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 95e7b21428..e85625449a 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -18,6 +18,7 @@
#include "localeinfo.h"
#include <endian.h>
+#include <stdint.h>
#include "C-translit.h"
diff --git a/locale/C-time.c b/locale/C-time.c
index a19623f567..6f76deb6e5 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "localeinfo.h"
/* This table's entries are taken from POSIX.2 Table 2-11
diff --git a/locale/C-translit.h b/locale/C-translit.h
index d7ec7784ba..98f66e28fc 100644
--- a/locale/C-translit.h
+++ b/locale/C-translit.h
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
#define NTRANSLIT 1355
static const uint32_t translit_from_idx[] =
{
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index dd70c15bd6..70136dcf95 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -25,6 +25,7 @@
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/param.h>
diff --git a/locale/programs/3level.h b/locale/programs/3level.h
index c8ed119ffd..9b8b1b96ad 100644
--- a/locale/programs/3level.h
+++ b/locale/programs/3level.h
@@ -15,6 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
/* Construction of sparse 3-level tables.
See wchar-lookup.h or coll-lookup.h for their structure and the
meaning of p and q.
diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
index 03d0cb1109..3edf72080a 100644
--- a/locale/programs/charmap-dir.c
+++ b/locale/programs/charmap-dir.c
@@ -121,9 +121,9 @@ charmap_readdir (CHARMAP_DIR *cdir)
else
#endif
{
- struct stat statbuf;
+ struct stat64 statbuf;
- if (stat (cdir->pathname, &statbuf) < 0)
+ if (stat64 (cdir->pathname, &statbuf) < 0)
continue;
mode = statbuf.st_mode;
@@ -167,10 +167,10 @@ fopen_uncompressed (const char *pathname, const char *compressor)
pfd = open (pathname, O_RDONLY);
if (pfd >= 0)
{
- struct stat statbuf;
+ struct stat64 statbuf;
int fd[2];
- if (fstat (pfd, &statbuf) >= 0
+ if (fstat64 (pfd, &statbuf) >= 0
&& S_ISREG (statbuf.st_mode)
&& pipe (fd) >= 0)
{
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index fd9263117c..6ce9b18e2b 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <error.h>
+#include <stdint.h>
#include "localedef.h"
#include "linereader.h"
diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h
index 287a7a6670..57a345dea9 100644
--- a/locale/programs/charmap.h
+++ b/locale/programs/charmap.h
@@ -20,6 +20,7 @@
#include <obstack.h>
#include <stdbool.h>
+#include <stdint.h>
#include "repertoire.h"
#include "simple-hash.h"
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index bb50395c5e..39b9a836f4 100644
--- a/locale/programs/ld-address.c
+++ b/locale/programs/ld-address.c
@@ -23,6 +23,7 @@
#include <error.h>
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index aa9eb4ad6a..6894a7c181 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -23,6 +23,7 @@
#include <error.h>
#include <stdlib.h>
#include <wchar.h>
+#include <stdint.h>
#include <sys/param.h>
#include "localedef.h"
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 23880bad27..8be7fce887 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -29,6 +29,7 @@
#include <string.h>
#include <wchar.h>
#include <wctype.h>
+#include <stdint.h>
#include <sys/uio.h>
#include "localedef.h"
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
index ca69ded0e2..2589675390 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
@@ -23,6 +23,7 @@
#include <langinfo.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-measurement.c b/locale/programs/ld-measurement.c
index 005df4ac32..4aa0ea99a7 100644
--- a/locale/programs/ld-measurement.c
+++ b/locale/programs/ld-measurement.c
@@ -22,6 +22,7 @@
#include <error.h>
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index 833adb43a0..f1b9f93f26 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -23,6 +23,7 @@
#include <sys/types.h>
#include <regex.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index aed175aee9..4dfca3dd7b 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -24,6 +24,7 @@
#include <limits.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-name.c b/locale/programs/ld-name.c
index de44775056..207bf0194e 100644
--- a/locale/programs/ld-name.c
+++ b/locale/programs/ld-name.c
@@ -21,6 +21,7 @@
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index b864b0e74a..929409cb7a 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -21,6 +21,7 @@
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-paper.c b/locale/programs/ld-paper.c
index 32285ded83..c6239dfd9d 100644
--- a/locale/programs/ld-paper.c
+++ b/locale/programs/ld-paper.c
@@ -22,6 +22,7 @@
#include <error.h>
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-telephone.c b/locale/programs/ld-telephone.c
index 172ad577a2..4452750921 100644
--- a/locale/programs/ld-telephone.c
+++ b/locale/programs/ld-telephone.c
@@ -22,6 +22,7 @@
#include <error.h>
#include <langinfo.h>
#include <string.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index 94486476db..45e36c6719 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#include <stdint.h>
#include <sys/uio.h>
#include <assert.h>
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 7fde46a449..4773d4cac4 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -26,6 +26,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include "localedef.h"
#include "charmap.h"
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index 8dc528c115..14d34e693d 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -36,6 +36,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/stat.h>
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index 70dce9bfd5..d31472d908 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -34,6 +34,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/stat.h>
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 10c3dc99b9..3cbd6f1314 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -355,7 +355,7 @@ siblings_uncached (const char *output_path)
{
size_t len;
char *base, *p;
- struct stat output_stat;
+ struct stat64 output_stat;
DIR *dirp;
int nelems;
const char **elems;
@@ -378,7 +378,7 @@ siblings_uncached (const char *output_path)
len = p - base;
/* Get the properties of output_path. */
- if (lstat (output_path, &output_stat) < 0 || !S_ISDIR (output_stat.st_mode))
+ if (lstat64 (output_path, &output_stat) < 0 || !S_ISDIR (output_stat.st_mode))
return NULL;
/* Iterate through the directories in base directory. */
@@ -392,7 +392,7 @@ siblings_uncached (const char *output_path)
struct dirent64 *other_dentry;
const char *other_name;
char *other_path;
- struct stat other_stat;
+ struct stat64 other_stat;
other_dentry = readdir64 (dirp);
if (other_dentry == NULL)
@@ -407,7 +407,7 @@ siblings_uncached (const char *output_path)
other_path[len] = '/';
strcpy (other_path + len + 1, other_name);
- if (lstat (other_path, &other_stat) >= 0
+ if (lstat64 (other_path, &other_stat) >= 0
&& S_ISDIR (other_stat.st_mode)
&& other_stat.st_uid == output_stat.st_uid
&& other_stat.st_gid == output_stat.st_gid
@@ -580,9 +580,9 @@ write_locale_data (const char *output_path, int catidx, const char *category,
fd = -2;
if (strcmp (category, "LC_MESSAGES") == 0)
{
- struct stat st;
+ struct stat64 st;
- if (stat (fname, &st) < 0)
+ if (stat64 (fname, &st) < 0)
{
if (mkdir (fname, 0777) >= 0)
{
@@ -659,9 +659,9 @@ failure while writing data for category `%s'"), category));
other_paths = siblings (output_path);
if (other_paths != NULL)
{
- struct stat fname_stat;
+ struct stat64 fname_stat;
- if (lstat (fname, &fname_stat) >= 0
+ if (lstat64 (fname, &fname_stat) >= 0
&& S_ISREG (fname_stat.st_mode))
{
const char *fname_tail = fname + strlen (output_path);
@@ -680,14 +680,14 @@ failure while writing data for category `%s'"), category));
const char *other_path = *other_p;
size_t other_path_len = strlen (other_path);
char *other_fname;
- struct stat other_fname_stat;
+ struct stat64 other_fname_stat;
other_fname =
(char *) xmalloc (other_path_len + strlen (fname_tail) + 1);
memcpy (other_fname, other_path, other_path_len);
strcpy (other_fname + other_path_len, fname_tail);
- if (lstat (other_fname, &other_fname_stat) >= 0
+ if (lstat64 (other_fname, &other_fname_stat) >= 0
&& S_ISREG (other_fname_stat.st_mode)
/* Consider only files on the same device.
Otherwise hard linking won't work anyway. */
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index 4165a7212b..83bf421ece 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -18,6 +18,7 @@
#ifndef _LOCFILE_H
#define _LOCFILE_H 1
+#include <stdint.h>
#include <sys/uio.h>
#include "linereader.h"
diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c
index bc65672dba..be77b3e44e 100644
--- a/locale/programs/repertoire.c
+++ b/locale/programs/repertoire.c
@@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include "localedef.h"
#include "linereader.h"
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index d65b6fb3f0..30b1508bdb 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/types.h>
#if HAVE_OBSTACK
diff --git a/locale/programs/simple-hash.h b/locale/programs/simple-hash.h
index 644d015fff..2ee22253e1 100644
--- a/locale/programs/simple-hash.h
+++ b/locale/programs/simple-hash.h
@@ -20,6 +20,7 @@
#include <inttypes.h>
#include <obstack.h>
+#include <stdint.h>
typedef struct hash_table
{
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 78385399bf..c99396060c 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-27 Nik Kalach <nikka@fedoraproject.org>
+
+ [BZ #15221]
+ * locales/ia_FR: Fix postal_fmt definition.
+
2013-02-01 Andreas Jaeger <aj@suse.de>
* CHECKSUMS: Remove file.
diff --git a/localedata/locales/en_CA b/localedata/locales/en_CA
index 5e0ef2c320..52e9e32039 100644
--- a/localedata/locales/en_CA
+++ b/localedata/locales/en_CA
@@ -135,7 +135,16 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
END LC_TIME
LC_MESSAGES
+% Yes - Display only the English "Yes." While Canada is bilingual it would be
+% difficult to display two words e.g. Yes|Oui, where one word is expected.
+% Thus given that the majority of the population is Anglophone we use only
+% the English word for yesstr.
+yesstr "<U0059><U0065><U0073>"
+% No - Display only the English "No." See the rationale for yesstr.
+nostr "<U004E><U006F>"
+% ^[yYoO].* - Accept both English "Yes" and French "Oui" as Canada is bilingual.
yesexpr "<U005E><U005B><U0079><U0059><U006F><U004F><U005D><U002E><U002A>"
+% ^[nN].* - Accept both Engish "No" and French "Non" as Canada is bilingual.
noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES
diff --git a/localedata/locales/es_AR b/localedata/locales/es_AR
index c757638f7f..27636e7083 100644
--- a/localedata/locales/es_AR
+++ b/localedata/locales/es_AR
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
diff --git a/localedata/locales/es_ES b/localedata/locales/es_ES
index fcf90cbdbc..44c17a6328 100644
--- a/localedata/locales/es_ES
+++ b/localedata/locales/es_ES
@@ -61,7 +61,13 @@ translit_end
END LC_CTYPE
LC_MESSAGES
+% Si - Display only the Spanish "Yes."
+yesstr "<U0053><U0069>"
+% No - Spanish and English "No" have the same spelling.
+nostr "<U004E><U006F>"
+% ^[sSyY].* - Spanish or English answer is appropriate.
yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+% ^[nN].* - Spanish or English answer have the same spelling.
noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES
diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
index f51700c281..bd6805a257 100644
--- a/localedata/locales/fi_FI
+++ b/localedata/locales/fi_FI
@@ -212,6 +212,8 @@ END LC_TIME
LC_MESSAGES
yesexpr "<U005E><U005B><U004B><U006B><U0059><U0079><U005D><U002E><U002A>"
noexpr "<U005E><U005B><U0045><U0065><U004E><U006E><U005D><U002E><U002A>"
+yesstr "<U004B><U0079><U006C><U006C><U00E4>"
+nostr "<U0045><U0069>"
END LC_MESSAGES
LC_PAPER
diff --git a/localedata/locales/ia_FR b/localedata/locales/ia_FR
index e31fc22755..5b419d260d 100644
--- a/localedata/locales/ia_FR
+++ b/localedata/locales/ia_FR
@@ -5,7 +5,7 @@ escape_char /
% Language: ia
% Territory: FR
% Revision: 1.0
-% Date: 2012-11-26
+% Date: 2013-03-01
% Application: general
% Users: general
% Charset: UTF-8
@@ -21,7 +21,7 @@ fax ""
language "Interlingua"
territory "France"
revision "1.0"
-date "2012-11-26"
+date "2013-03-01"
category ia_FR:2000;LC_IDENTIFICATION
category ia_FR:2000;LC_CTYPE
@@ -120,9 +120,9 @@ END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-<U0074><U0025><U0068><U0074><U0025><U0065><U0074><U0025><U0072><U0025>/
-<U004E><U0025><U007A><U0074><U0025><U0054><U0025>/
-<U004E><U0025><U0063><U0025><U004E>"
+<U0025><U0074><U0025><U0068><U0025><U0074><U0025><U0065><U0025><U0074>/
+<U0025><U0072><U0025><U004E><U0025><U007A><U0025><U0074><U0025><U0054>/
+<U0025><U004E><U0025><U0063><U0025><U004E>"
country_post "<U0046>"
country_ab2 "<U0046><U0052>"
country_ab3 "<U0046><U0052><U0041>"
diff --git a/login/Makefile b/login/Makefile
index fa113fb623..61c9d7efbe 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -23,8 +23,10 @@ subdir := login
headers := utmp.h bits/utmp.h lastlog.h pty.h
-routines := getutent getutent_r getutid getutline getutid_r getutline_r \
- utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname
+routines := getlogin getlogin_r setlogin getlogin_r_chk \
+ getutent getutent_r getutid getutline getutid_r getutline_r \
+ utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \
+ ptsname_r_chk
CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"'
diff --git a/login/Versions b/login/Versions
index 401fc0ebd0..475fcf063f 100644
--- a/login/Versions
+++ b/login/Versions
@@ -11,6 +11,7 @@ libc {
pututline;
# s*
+ setlogin;
setutent;
# u*
@@ -40,6 +41,10 @@ libc {
# p*
posix_openpt;
}
+ GLIBC_2.4 {
+ __getlogin_r_chk;
+ __ptsname_r_chk;
+ }
}
libutil {
diff --git a/posix/getlogin.c b/login/getlogin.c
index d1800ee9fa..d1800ee9fa 100644
--- a/posix/getlogin.c
+++ b/login/getlogin.c
diff --git a/posix/getlogin_r.c b/login/getlogin_r.c
index ac9e14833d..ac9e14833d 100644
--- a/posix/getlogin_r.c
+++ b/login/getlogin_r.c
diff --git a/debug/getlogin_r_chk.c b/login/getlogin_r_chk.c
index 8e490858a5..8e490858a5 100644
--- a/debug/getlogin_r_chk.c
+++ b/login/getlogin_r_chk.c
diff --git a/debug/ptsname_r_chk.c b/login/ptsname_r_chk.c
index 7e039acb74..7e039acb74 100644
--- a/debug/ptsname_r_chk.c
+++ b/login/ptsname_r_chk.c
diff --git a/posix/setlogin.c b/login/setlogin.c
index e215c62804..e215c62804 100644
--- a/posix/setlogin.c
+++ b/login/setlogin.c
diff --git a/malloc/memusage.c b/malloc/memusage.c
index 0e40878ac3..e32f6ba030 100644
--- a/malloc/memusage.c
+++ b/malloc/memusage.c
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/time.h>
diff --git a/malloc/memusagestat.c b/malloc/memusagestat.c
index daeba1dc0a..b244ef6432 100644
--- a/malloc/memusagestat.c
+++ b/malloc/memusagestat.c
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/param.h>
#include <sys/stat.h>
diff --git a/malloc/obstack.c b/malloc/obstack.c
index 25a90514f7..c3c7db4a96 100644
--- a/malloc/obstack.c
+++ b/malloc/obstack.c
@@ -115,7 +115,7 @@ int obstack_exit_failure = EXIT_FAILURE;
/* A looong time ago (before 1994, anyway; we're not sure) this global variable
was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
library still exports it because somebody might use it. */
-struct obstack *_obstack_compat;
+struct obstack *_obstack_compat = 0;
compat_symbol (libc, _obstack_compat, _obstack, GLIBC_2_0);
# endif
# endif
diff --git a/manual/arith.texi b/manual/arith.texi
index d060ff9463..ce8844ec2d 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -387,6 +387,14 @@ to
@end smallexample
@end deftypefn
+@comment math.h
+@comment GNU
+@deftypefn {Macro} int issignaling (@emph{float-type} @var{x})
+This macro returns a nonzero value if @var{x} is a signaling NaN
+(sNaN). It is based on draft TS 18661 and currently enabled as a GNU
+extension.
+@end deftypefn
+
Another set of floating-point classification functions was provided by
BSD. @Theglibc{} also supports these functions; however, we
recommend that you use the ISO C99 macros in new code. Those are standard
diff --git a/manual/libm-err-tab.pl b/manual/libm-err-tab.pl
index 5aa26039ac..15646693fe 100755
--- a/manual/libm-err-tab.pl
+++ b/manual/libm-err-tab.pl
@@ -77,7 +77,9 @@ use vars qw (%results @all_floats %suffices @all_functions);
"remainder", "remquo", "rint", "round", "scalb", "scalbn", "scalbln",
"sin", "sincos", "sinh", "sqrt", "tan", "tanh", "tgamma",
"trunc", "y0", "y1", "yn" );
-# "fpclassify", "isfinite", "isnormal", "signbit" are not tabulated
+# fpclassify, isnormal, isfinite, isinf, isnan, issignaling, signbit,
+# isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered
+# are not tabulated.
if ($#ARGV == 0) {
$sources = $ARGV[0];
diff --git a/manual/llio.texi b/manual/llio.texi
index 90bd2d71f7..b129cf40bd 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -2320,8 +2320,7 @@ successfully enqueued. Otherwise the return value is @math{-1} and
@item EAGAIN
The request could not be enqueued due to temporary lack of resources.
@item EBADF
-The file descriptor @code{aiocbp->aio_fildes} is not valid or not open
-for writing.
+The file descriptor @code{@var{aiocbp}->aio_fildes} is not valid.
@item EINVAL
The implementation does not support I/O synchronization or the @var{op}
parameter is other than @code{O_DSYNC} and @code{O_SYNC}.
diff --git a/manual/message.texi b/manual/message.texi
index ea5e1a1326..bb5b11bc6f 100644
--- a/manual/message.texi
+++ b/manual/message.texi
@@ -2,9 +2,9 @@
@c %MENU% How to make the program speak the user's language
@chapter Message Translation
-The program's interface with the human should be designed in a way to
-ease the human the task. One of the possibilities is to use messages in
-whatever language the user prefers.
+The program's interface with the user should be designed to ease the user's
+task. One way to ease the user's task is to use messages in whatever
+language the user prefers.
Printing messages in different languages can be implemented in different
ways. One could add all the different languages in the source code and
@@ -40,7 +40,7 @@ map a given key to the translated message
@end itemize
The two approaches mainly differ in the implementation of this last
-step. The design decisions made for this influences the whole rest.
+step. Decisions made in the last step influence the rest of the design.
@menu
* Message catalogs a la X/Open:: The @code{catgets} family of functions.
diff --git a/manual/platform.texi b/manual/platform.texi
index e387ff4cc9..f1a40d63a4 100644
--- a/manual/platform.texi
+++ b/manual/platform.texi
@@ -34,3 +34,47 @@ This frequency is not related to the processor clock or the bus clock.
It is also possible that this frequency is not constant. More information is
available in @cite{Power ISA 2.06b - Book II - Section 5.2}.
@end deftypefun
+
+The following functions provide hints about the usage of resources that are
+shared with other processors. They can be used, for example, if a program
+waiting on a lock intends to divert the shared resources to be used by other
+processors. More information is available in @cite{Power ISA 2.06b - Book II -
+Section 3.2}.
+
+@deftypefun {void} __ppc_yield (void)
+Provide a hint that performance will probably be improved if shared resources
+dedicated to the executing processor are released for use by other processors.
+@end deftypefun
+
+@deftypefun {void} __ppc_mdoio (void)
+Provide a hint that performance will probably be improved if shared resources
+dedicated to the executing processor are released until all outstanding storage
+accesses to caching-inhibited storage have been completed.
+@end deftypefun
+
+@deftypefun {void} __ppc_mdoom (void)
+Provide a hint that performance will probably be improved if shared resources
+dedicated to the executing processor are released until all outstanding storage
+accesses to cacheable storage for which the data is not in the cache have been
+completed.
+
+@deftypefun {void} __ppc_set_ppr_med (void)
+Set the Program Priority Register to medium value (default).
+
+The @dfn{Program Priority Register} (PPR) is a 64-bit register that controls
+the program's priority. By adjusting the PPR value the programmer may
+improve system throughput by causing the system resources to be used
+more efficiently, especially in contention situations.
+The three unprivileged states available are covered by the functions
+@code{__ppc_set_ppr_med} (medium -- default), @code{__ppc_set_ppc_low} (low)
+and @code{__ppc_set_ppc_med_low} (medium low). More information
+available in @cite{Power ISA 2.06b - Book II - Section 3.1}.
+@end deftypefun
+
+@deftypefun {void} __ppc_set_ppr_low (void)
+Set the Program Priority Register to low value.
+@end deftypefun
+
+@deftypefun {void} __ppc_set_ppr_med_low (void)
+Set the Program Priority Register to medium low value.
+@end deftypefun
diff --git a/math/Makefile b/math/Makefile
index e216dfb96a..5bbf9d3c48 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -58,7 +58,8 @@ libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod \
s_catan s_casin s_ccos s_csin s_ctan s_ctanh s_cacos \
s_casinh s_cacosh s_catanh s_csqrt s_cpow s_cproj s_clog10 \
s_fma s_lrint s_llrint s_lround s_llround e_exp10 w_log2 \
- s_isinf_ns $(calls:s_%=m_%) x2y2m1 k_casinh
+ s_isinf_ns s_issignaling $(calls:s_%=m_%) x2y2m1 k_casinh \
+ gamma_product
include ../Makeconfig
@@ -150,6 +151,33 @@ extra-objs += libieee.a ieee-math.o
include ../Rules
+ifneq (no,$(PERL))
+# Run the math programs to automatically generate ULPs files.
+.PHONY: regen-ulps
+
+run-regen-ulps = $(test-wrapper-env) \
+ GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+ $($*-ENV) $(rtld-prefix) $${run}
+
+regen-ulps: $(addprefix $(objpfx),$(libm-tests))
+ rm -f $(objpfx)ULPs; rm -f $(objpfx)NewUlps; \
+ cp $(ulps-file) $(objpfx)libm-test-ulps; \
+ for run in $^; do \
+ echo "Regenerating ULPs for $${run}"; \
+ $(run-regen-ulps) -u -o $(objpfx); \
+ cat $(objpfx)ULPs >> $(objpfx)libm-test-ulps; \
+ rm $(objpfx)ULPs; \
+ done; \
+ $(PERL) gen-libm-test.pl -o $(objpfx) -n -u $(objpfx)libm-test-ulps; \
+ echo "Automatic regeneration of ULPs complete."; \
+ echo "Difference between the current baseline and the new baseline is:";\
+ diff -urN $(ulps-file) $(objpfx)NewUlps; \
+ echo "Copy $(objpfx)NewUlps to $(ulps-file) (relative to source)."
+else
+regen-ulps:
+ @echo "Automatic regeneration of ULPs requires perl."; \
+ exit 1;
+endif
# The generated sysd-rules file defines rules like this for sources
# coming from sysdeps/ directories. These rules find the generic sources.
diff --git a/math/README.libm-test b/math/README.libm-test
index 7a461551cb..a083a6d62a 100644
--- a/math/README.libm-test
+++ b/math/README.libm-test
@@ -39,24 +39,32 @@ platform specific sysdep directory.
How can I generate "libm-test-ulps"?
====================================
-The test drivers have an option "-u" to output an unsorted list of all
-epsilons that the functions have. The output can be read in directly
-but it's better to pretty print it first. "gen-libm-test.pl" has an option
-to generate a pretty-printed and sorted new ULPs file from the output
-of the test drivers.
-
-To generate a new "libm-test-ulps" file, first remove "ULPs" file in the
-current directory, then you can execute for example:
-test-double -u --ignore-max-ulp=yes
+To automatically generate a new "libm-test-ulps" run "make regen-ulps".
+This generates the file "math/NewUlps" in the build directory. The file
+contains the sorted results of all the tests. You can use the "NewUlps"
+file as the machine's updated "libm-test-ulps" file. Copy "NewUlps" to
+"libm-test-ulps" in the appropriate machine sysdep directory. Verify
+the changes, post your patch, and check it in after review.
+
+To manually generate a new "libm-test-ulps" file, first remove "ULPs"
+file in the current directory, then you can execute for example:
+ ./testrun.sh math/test-double -u --ignore-max-ulp=yes
This generates a file "ULPs" with all double ULPs in it, ignoring any
-previous calculated ULPs.
-Now generate the ULPs for all other formats, the tests will be appending
-the data to the "ULPs" file. As final step run "gen-libm-test.pl" with the
-file as input and ask to generate a pretty printed output in the file "NewUlps":
+previously calculated ULPs, and running with the newly built dynamic
+loader and math library (assumes you didn't install your build). Now
+generate the ULPs for all other formats, the tests will be appending the
+data to the "ULPs" file. As final step run "gen-libm-test.pl" with the
+file as input and ask to generate a pretty printed output in the file
+"NewUlps":
gen-libm-test.pl -u ULPs -n
+Copy "NewUlps" to "libm-test-ulps" in the appropriate machine sysdep
+directory.
-Now you can rename "NewUlps" to "libm-test-ulps" and move it into
-sysdeps.
+Note that the test drivers have an option "-u" to output an unsorted
+list of all epsilons that the functions have. The output can be read
+in directly but it's better to pretty print it first.
+"gen-libm-test.pl" has an option to generate a pretty-printed and
+sorted new ULPs file from the output of the test drivers.
Contents of libm-test-ulps
==========================
@@ -70,12 +78,7 @@ Function "yn":
idouble: 6.0000
The keywords are float, ifloat, double, idouble, ldouble and ildouble
-(the prefix i stands for inline). You can also specify known
-failures, e.g.:
-
-Test "cos (pi/2) == 0":
-float: 1
-float: fail
+(the prefix i stands for inline).
Adding tests to libm-test.inc
=============================
@@ -100,8 +103,3 @@ The accepted parameter types are:
- "L" for long long int.
- "F" for the address of a FLOAT (only as input parameter)
- "I" for the address of an int (only as input parameter)
-
-Some functions need special handling. For example gamma sets the
-global variable signgam and frexp takes an argument to &int. This
-special treatment is coded in "gen-libm-test.pl" and used while
-parsing "libm-test.inc".
diff --git a/math/Versions b/math/Versions
index 09888510b1..513ab14244 100644
--- a/math/Versions
+++ b/math/Versions
@@ -198,4 +198,7 @@ libm {
__gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
__exp_finite; __expf_finite; __expl_finite;
}
+ GLIBC_2.18 {
+ __issignaling; __issignalingf; __issignalingl;
+ }
}
diff --git a/math/atest-exp2.c b/math/atest-exp2.c
index 20836ca0dc..0a0cc54cb8 100644
--- a/math/atest-exp2.c
+++ b/math/atest-exp2.c
@@ -34,19 +34,39 @@
#define SZ (FRAC / mpbpl + 1)
typedef mp_limb_t mp1[SZ], mp2[SZ * 2];
-/* This string has 101 hex digits. */
-static const char exp1[102] = "2" /* point */
-"b7e151628aed2a6abf7158809cf4f3c762e7160f38b4da56a7"
-"84d9045190cfef324e7738926cfbe5f4bf8d8d8c31d763da07";
-static const char exp_m1[102] = "0" /* point */
-"5e2d58d8b3bcdf1abadec7829054f90dda9805aab56c773330"
-"24b9d0a507daedb16400bf472b4215b8245b669d90d27a5aea";
+#if BITS_PER_MP_LIMB == 64
+# define LIMB64(L, H) 0x ## H ## L
+#elif BITS_PER_MP_LIMB == 32
+# define LIMB64(L, H) 0x ## L, 0x ## H
+#else
+# error
+#endif
+
+/* Once upon a time these constants were generated to 400 bits.
+ We only need FRAC bits (128) at present, but we retain 384 bits
+ in the text Just In Case. */
+#define CONSTSZ(INT, F1, F2, F3, F4, F5, F6, F7, F8, F9, Fa, Fb, Fc) \
+ LIMB64(F4, F3), LIMB64(F2, F1), INT
+
+static const mp1 mp_exp1 = {
+ CONSTSZ (2, b7e15162, 8aed2a6a, bf715880, 9cf4f3c7, 62e7160f, 38b4da56,
+ a784d904, 5190cfef, 324e7738, 926cfbe5, f4bf8d8d, 8c31d763)
+};
-static const char hexdig[] = "0123456789abcdef";
+static const mp1 mp_exp_m1 = {
+ CONSTSZ (0, 5e2d58d8, b3bcdf1a, badec782, 9054f90d, da9805aa, b56c7733,
+ 3024b9d0, a507daed, b16400bf, 472b4215, b8245b66, 9d90d27a)
+};
+
+static const mp1 mp_log2 = {
+ CONSTSZ (0, b17217f7, d1cf79ab, c9e3b398, 03f2f6af, 40f34326, 7298b62d,
+ 8a0d175b, 8baafa2b, e7b87620, 6debac98, 559552fb, 4afa1b10)
+};
static void
print_mpn_fp (const mp_limb_t *x, unsigned int dp, unsigned int base)
{
+ static const char hexdig[16] = "0123456789abcdef";
unsigned int i;
mp1 tx;
@@ -65,36 +85,6 @@ print_mpn_fp (const mp_limb_t *x, unsigned int dp, unsigned int base)
}
}
-static void
-read_mpn_hex(mp_limb_t *x, const char *str)
-{
- int i;
-
- memset (x, 0, sizeof (mp1));
- for (i = -1; i < 100 && i < FRAC / 4; ++i)
- x[(FRAC - i * 4 - 4) / mpbpl] |= ((mp_limb_t) (strchr (hexdig, str[i + 1])
- - hexdig)
- << (FRAC - i * 4 - 4) % mpbpl);
-}
-
-static mp_limb_t *get_log2(void) __attribute__((const));
-static mp_limb_t *
-get_log2(void)
-{
- static mp1 log2_m;
- static int log2_m_inited = 0;
- static const char log2[102] = "0" /* point */
- "b17217f7d1cf79abc9e3b39803f2f6af40f343267298b62d8a"
- "0d175b8baafa2be7b876206debac98559552fb4afa1b10ed2e";
-
- if (!log2_m_inited)
- {
- read_mpn_hex (log2_m, log2);
- log2_m_inited = 1;
- }
- return log2_m;
-}
-
/* Compute e^x. */
static void
exp_mpn (mp1 ex, mp1 x)
@@ -134,7 +124,7 @@ static void
exp2_mpn (mp1 ex, mp1 x)
{
mp2 tmp;
- mpn_mul_n (tmp, x, get_log2 (), SZ);
+ mpn_mul_n (tmp, x, mp_log2, SZ);
assert(tmp[SZ * 2 - 1] == 0);
exp_mpn (ex, tmp + FRAC / mpbpl);
}
@@ -221,11 +211,10 @@ main (void)
memset (x, 0, sizeof (mp1));
x[FRAC / mpbpl] = (mp_limb_t)1 << FRAC % mpbpl;
exp_mpn (ex, x);
- read_mpn_hex (e2, exp1);
- if (mpn_cmp (ex, e2, SZ) >= 0)
- mpn_sub_n (e3, ex, e2, SZ);
+ if (mpn_cmp (ex, mp_exp1, SZ) >= 0)
+ mpn_sub_n (e3, ex, mp_exp1, SZ);
else
- mpn_sub_n (e3, e2, ex, SZ);
+ mpn_sub_n (e3, mp_exp1, ex, SZ);
printf ("%d failures; %d errors; error rate %0.2f%%\n", failures, errors,
errors * 100.0 / (double) (1 << N2));
diff --git a/math/basic-test.c b/math/basic-test.c
index ffead2ec0f..9e9b848ee5 100644
--- a/math/basic-test.c
+++ b/math/basic-test.c
@@ -20,6 +20,9 @@
#include <float.h>
#include <stdio.h>
+#include <math-tests.h>
+
+
static int errors = 0;
@@ -39,6 +42,10 @@ NAME (void) \
/* Variables are declared volatile to forbid some compiler \
optimizations. */ \
volatile FLOAT Inf_var, qNaN_var, zero_var, one_var; \
+ /* A sNaN is only guaranteed to be representable in variables with */ \
+ /* static (or thread-local) storage duration. */ \
+ static volatile FLOAT sNaN_var = __builtin_nans ## SUFFIX (""); \
+ static volatile FLOAT minus_sNaN_var = -__builtin_nans ## SUFFIX (""); \
FLOAT x1, x2; \
\
zero_var = 0.0; \
@@ -49,6 +56,8 @@ NAME (void) \
(void) &zero_var; \
(void) &one_var; \
(void) &qNaN_var; \
+ (void) &sNaN_var; \
+ (void) &minus_sNaN_var; \
(void) &Inf_var; \
\
\
@@ -56,16 +65,41 @@ NAME (void) \
check (#FLOAT " isinf (-inf) == -1", isinf (-Inf_var) == -1); \
check (#FLOAT " !isinf (1)", !(isinf (one_var))); \
check (#FLOAT " !isinf (qNaN)", !(isinf (qNaN_var))); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " !isinf (sNaN)", !(isinf (sNaN_var))); \
\
check (#FLOAT " isnan (qNaN)", isnan (qNaN_var)); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " isnan (sNaN)", isnan (sNaN_var)); \
check (#FLOAT " isnan (-qNaN)", isnan (-qNaN_var)); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " isnan (-sNaN)", isnan (minus_sNaN_var)); \
check (#FLOAT " !isnan (1)", !(isnan (one_var))); \
check (#FLOAT " !isnan (inf)", !(isnan (Inf_var))); \
\
+ check (#FLOAT " !issignaling (qNaN)", !(issignaling (qNaN_var))); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " issignaling (sNaN)", issignaling (sNaN_var)); \
+ check (#FLOAT " !issignaling (-qNaN)", !(issignaling (-qNaN_var))); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " issignaling (-sNaN)", issignaling (minus_sNaN_var)); \
+ check (#FLOAT " !issignaling (1)", !(issignaling (one_var))); \
+ check (#FLOAT " !issignaling (inf)", !(issignaling (Inf_var))); \
+ \
check (#FLOAT " inf == inf", Inf_var == Inf_var); \
check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
check (#FLOAT " qNaN != qNaN", qNaN_var != qNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " sNaN != sNaN", sNaN_var != sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " qNaN != sNaN", qNaN_var != sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " -sNaN != -sNaN", minus_sNaN_var != minus_sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " sNaN != -sNaN", sNaN_var != minus_sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " qNaN != -sNaN", qNaN_var != minus_sNaN_var); \
\
/* \
the same tests but this time with NAN from <bits/nan.h> \
@@ -76,6 +110,11 @@ NAME (void) \
check (#FLOAT " !isinf (NAN)", !(isinf (NAN))); \
check (#FLOAT " !isinf (-NAN)", !(isinf (-NAN))); \
check (#FLOAT " NAN != NAN", NAN != NAN); \
+ check (#FLOAT " NAN != qNaN", NAN != qNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " NAN != sNaN", NAN != sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " NAN != -sNaN", NAN != minus_sNaN_var); \
\
/* \
And again with the value returned by the `nan' function. \
@@ -86,6 +125,12 @@ NAME (void) \
check (#FLOAT " !isinf (-nan (\"\"))", !(isinf (-nan ## SUFFIX ("")))); \
check (#FLOAT " nan (\"\") != nan (\"\")", \
nan ## SUFFIX ("") != nan ## SUFFIX ("")); \
+ check (#FLOAT " nan (\"\") != qNaN", nan ## SUFFIX ("") != qNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " nan (\"\") != sNaN", nan ## SUFFIX ("") != sNaN_var); \
+ if (SNAN_TESTS (FLOAT)) \
+ check (#FLOAT " nan (\"\") != -sNaN", \
+ nan ## SUFFIX ("") != minus_sNaN_var); \
\
/* test if EPSILON is ok */ \
x1 = 1.0; \
@@ -108,6 +153,9 @@ void \
NAME (void) \
{ \
volatile DOUBLE Inf_var, qNaN_var, zero_var, one_var; \
+ /* A sNaN is only guaranteed to be representable in variables with */ \
+ /* static (or thread-local) storage duration. */ \
+ static volatile DOUBLE sNaN_var = __builtin_nans ## SUFFIX (""); \
FLOAT x1, x2; \
\
zero_var = 0.0; \
@@ -116,10 +164,25 @@ NAME (void) \
Inf_var = one_var / zero_var; \
\
(void) &qNaN_var; \
+ (void) &sNaN_var; \
(void) &Inf_var; \
\
x1 = (FLOAT) qNaN_var; \
- check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") qNaN", isnan (x1) != 0); \
+ check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") qNaN, isnan", isnan (x1)); \
+ check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") qNaN, !issignaling", \
+ !issignaling (x1)); \
+ if (SNAN_TESTS (FLOAT)) \
+ { \
+ x1 = (FLOAT) sNaN_var; \
+ check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") sNaN, isnan", isnan (x1)); \
+ if (SNAN_TESTS_TYPE_CAST) \
+ { \
+ /* Upon type conversion, a sNaN is converted into a qNaN plus an */ \
+ /* INVALID exception (not checked here). */ \
+ check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") sNaN, !issignaling", \
+ !issignaling (x1)); \
+ } \
+ } \
x2 = (FLOAT) Inf_var; \
check (" "#FLOAT" x = ("#FLOAT") ("#DOUBLE") Inf", isinf (x2) != 0); \
}
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index e5af507257..870c54c529 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -360,6 +360,12 @@ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
__END_NAMESPACE_C99
#endif
+#ifdef __USE_GNU
+/* Test for signaling NaN. */
+__MATHDECL_1 (int, __issignaling,, (_Mdouble_ __value))
+ __attribute__ ((__const__));
+#endif
+
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
/* Return X times (2 to the Nth power). */
__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n));
diff --git a/math/complex.h b/math/complex.h
index 5bdcc93f9f..82c7962feb 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -52,9 +52,7 @@ __BEGIN_DECLS
/* Macros to expand into expression of specified complex type. */
# define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
# define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (y))
-# ifndef __NO_LONG_DOUBLE_MATH
-# define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
-# endif
+# define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double) (y))
#endif
/* The file <bits/cmathcalls.h> contains the prototypes for all the
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index f50f1d9e02..c2d10d35e8 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -25,7 +25,6 @@
# is a maximal error of a function or a single test.
# $results{$test}{"type"} is the result type, e.g. normal or complex.
# $results{$test}{"has_ulps"} is set if deltas exist.
-# $results{$test}{"has_fails"} is set if exptected failures exist.
# In the following description $type and $float are:
# - $type is either "normal", "real" (for the real part of a complex number)
# or "imag" (for the imaginary part # of a complex number).
@@ -33,8 +32,6 @@
# It represents the underlying floating point type (float, double or long
# double) and if inline functions (the leading i stands for inline)
# are used.
-# $results{$test}{$type}{"fail"}{$float} is defined and has a 1 if
-# the test is expected to fail
# $results{$test}{$type}{"ulp"}{$float} is defined and has a delta as value
@@ -44,8 +41,6 @@ use strict;
use vars qw ($input $output);
use vars qw (%results);
-use vars qw (@tests @functions);
-use vars qw ($count);
use vars qw (%beautify @all_floats);
use vars qw ($output_dir $ulps_file);
@@ -106,8 +101,6 @@ $output_dir = $opt_o if ($opt_o);
$input = "libm-test.inc";
$output = "${output_dir}libm-test.c";
-$count = 0;
-
&parse_ulps ($ulps_file);
&generate_testfile ($input, $output) unless ($opt_n);
&output_ulps ("${output_dir}libm-test-ulps.h", $ulps_file) unless ($opt_n);
@@ -151,140 +144,68 @@ sub build_complex_beautify {
return $str1;
}
-# Return name of a variable
-sub get_variable {
- my ($number) = @_;
-
- return "x" if ($number == 1);
- return "y" if ($number == 2);
- return "z" if ($number == 3);
- # return x1,x2,...
- $number =-3;
- return "x$number";
-}
-
-# Add a new test to internal data structures and fill in the
-# ulps, failures and exception information for the C line.
-sub new_test {
- my ($test, $exception) = @_;
- my $rest;
-
- # Add ulp, xfail
- if (exists $results{$test}{'has_ulps'}) {
- $rest = ", DELTA$count";
- } else {
- $rest = ', 0';
- }
- if (exists $results{$test}{'has_fails'}) {
- $rest .= ", FAIL$count";
- } else {
- $rest .= ', 0';
- }
+# Return the text to put in an initializer for a test's exception
+# information.
+sub show_exceptions {
+ my ($exception) = @_;
if (defined $exception) {
- $rest .= ", $exception";
+ return ", $exception";
} else {
- $rest .= ', 0';
- }
- $rest .= ");\n";
- # We must increment here to keep @tests and count in sync
- push @tests, $test;
- ++$count;
- return $rest;
-}
-
-# Treat some functions especially.
-# Currently only sincos needs extra treatment.
-sub special_functions {
- my ($file, $args) = @_;
- my (@args, $str, $test, $cline);
-
- @args = split /,\s*/, $args;
-
- unless ($args[0] =~ /sincos/) {
- die ("Don't know how to handle $args[0] extra.");
+ return ', 0';
}
- print $file " {\n";
- print $file " FUNC (sincos) ($args[1], &sin_res, &cos_res);\n";
-
- $str = 'sincos (' . &beautify ($args[1]) . ', &sin_res, &cos_res)';
- # handle sin
- $test = $str . ' puts ' . &beautify ($args[2]) . ' in sin_res';
-
- $cline = " check_float (\"$test\", sin_res, $args[2]";
- $cline .= &new_test ($test, $args[4]);
- print $file $cline;
-
- # handle cos
- $test = $str . ' puts ' . &beautify ($args[3]) . ' in cos_res';
- $cline = " check_float (\"$test\", cos_res, $args[3]";
- # only tests once for exception
- $cline .= &new_test ($test, undef);
- print $file $cline;
- print $file " }\n";
}
# Parse the arguments to TEST_x_y
sub parse_args {
- my ($file, $descr, $fct, $args) = @_;
- my (@args, $str, $descr_args, $descr_res, @descr);
+ my ($file, $descr, $args) = @_;
+ my (@args, $descr_args, $descr_res, @descr);
my ($current_arg, $cline, $i);
- my ($pre, $post, @special);
- my ($extra_var, $call, $c_call);
+ my (@special);
+ my ($call_args);
- if ($descr eq 'extra') {
- &special_functions ($file, $args);
- return;
- }
($descr_args, $descr_res) = split /_/,$descr, 2;
@args = split /,\s*/, $args;
- $call = "$fct (";
+ $call_args = "";
# Generate first the string that's shown to the user
$current_arg = 1;
- $extra_var = 0;
@descr = split //,$descr_args;
for ($i = 0; $i <= $#descr; $i++) {
- if ($i >= 1) {
- $call .= ', ';
+ my $comma = "";
+ if ($current_arg > 1) {
+ $comma = ', ';
}
# FLOAT, int, long int, long long int
if ($descr[$i] =~ /f|i|l|L/) {
- $call .= &beautify ($args[$current_arg]);
+ $call_args .= $comma . &beautify ($args[$current_arg]);
++$current_arg;
next;
}
- # &FLOAT, &int - argument is added here
+ # &FLOAT, &int - simplify call by not showing argument.
if ($descr[$i] =~ /F|I/) {
- ++$extra_var;
- $call .= '&' . &get_variable ($extra_var);
next;
}
# complex
if ($descr[$i] eq 'c') {
- $call .= &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
+ $call_args .= $comma . &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
$current_arg += 2;
next;
}
die ("$descr[$i] is unknown");
}
- $call .= ')';
- $str = "$call == ";
# Result
@descr = split //,$descr_res;
foreach (@descr) {
if ($_ =~ /f|i|l|L/) {
- $str .= &beautify ($args[$current_arg]);
++$current_arg;
} elsif ($_ eq 'c') {
- $str .= &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
$current_arg += 2;
} elsif ($_ eq 'b') {
# boolean
- $str .= ($args[$current_arg] == 0) ? "false" : "true";
++$current_arg;
} elsif ($_ eq '1') {
++$current_arg;
@@ -295,7 +216,7 @@ sub parse_args {
# consistency check
if ($current_arg == $#args) {
die ("wrong number of arguments")
- unless ($args[$current_arg] =~ /EXCEPTION|IGNORE_ZERO_INF_SIGN/);
+ unless ($args[$current_arg] =~ /EXCEPTION|ERRNO|IGNORE_ZERO_INF_SIGN/);
} elsif ($current_arg < $#args) {
die ("wrong number of arguments");
} elsif ($current_arg > ($#args+1)) {
@@ -306,116 +227,64 @@ sub parse_args {
# Put the C program line together
# Reset some variables to start again
$current_arg = 1;
- $extra_var = 0;
- if (substr($descr_res,0,1) eq 'f') {
- $cline = 'check_float'
- } elsif (substr($descr_res,0,1) eq 'b') {
- $cline = 'check_bool';
- } elsif (substr($descr_res,0,1) eq 'c') {
- $cline = 'check_complex';
- } elsif (substr($descr_res,0,1) eq 'i') {
- $cline = 'check_int';
- } elsif (substr($descr_res,0,1) eq 'l') {
- $cline = 'check_long';
- } elsif (substr($descr_res,0,1) eq 'L') {
- $cline = 'check_longlong';
- }
- # Special handling for some macros:
- $cline .= " (\"$str\", ";
- if ($args[0] =~ /fpclassify|isnormal|isfinite|isinf|isnan|signbit
- |isgreater|isgreaterequal|isless|islessequal
- |islessgreater|isunordered/x) {
- $c_call = "$args[0] (";
- } else {
- $c_call = " FUNC($args[0]) (";
- }
+ $cline = "{ \"$call_args\"";
@descr = split //,$descr_args;
for ($i=0; $i <= $#descr; $i++) {
- if ($i >= 1) {
- $c_call .= ', ';
- }
# FLOAT, int, long int, long long int
if ($descr[$i] =~ /f|i|l|L/) {
- $c_call .= $args[$current_arg];
+ $cline .= ", $args[$current_arg]";
$current_arg++;
next;
}
# &FLOAT, &int
if ($descr[$i] =~ /F|I/) {
- ++$extra_var;
- $c_call .= '&' . &get_variable ($extra_var);
next;
}
# complex
if ($descr[$i] eq 'c') {
- $c_call .= "BUILD_COMPLEX ($args[$current_arg], $args[$current_arg+1])";
+ $cline .= ", $args[$current_arg], $args[$current_arg+1]";
$current_arg += 2;
next;
}
}
- $c_call .= ')';
- $cline .= "$c_call, ";
@descr = split //,$descr_res;
foreach (@descr) {
if ($_ =~ /b|f|i|l|L/ ) {
- $cline .= $args[$current_arg];
+ $cline .= ", $args[$current_arg]";
$current_arg++;
} elsif ($_ eq 'c') {
- $cline .= "BUILD_COMPLEX ($args[$current_arg], $args[$current_arg+1])";
+ $cline .= ", $args[$current_arg], $args[$current_arg+1]";
$current_arg += 2;
} elsif ($_ eq '1') {
push @special, $args[$current_arg];
++$current_arg;
}
}
- # Add ulp, xfail
- $cline .= &new_test ($str, ($current_arg <= $#args) ? $args[$current_arg] : undef);
+ # Add exceptions.
+ $cline .= show_exceptions (($current_arg <= $#args)
+ ? $args[$current_arg]
+ : undef);
# special treatment for some functions
- if ($args[0] eq 'frexp') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_int (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'gamma' || $args[0] eq 'lgamma') {
- $pre = " signgam = 0;\n";
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets signgam to $special[0]";
- $post = " check_int (\"$str\", signgam, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'modf') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_float (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
- }
- } elsif ($args[0] eq 'remquo') {
- if (defined $special[0] && $special[0] ne "IGNORE") {
- my ($str) = "$call sets x to $special[0]";
- $post = " check_int (\"$str\", x, $special[0]";
- $post .= &new_test ($str, undef);
+ $i = 0;
+ foreach (@special) {
+ ++$i;
+ my ($extra_expected) = $_;
+ my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
+ if (!$run_extra) {
+ $extra_expected = "0";
}
+ $cline .= ", $run_extra, $extra_expected";
}
-
- if (defined $pre or defined $post) {
- print $file " {\n";
- print $file " $pre" if (defined $pre);
- print $file " $cline";
- print $file " $post" if (defined $post);
- print $file " }\n";
- } else {
- print $file " $cline";
- }
+ print $file " $cline },\n";
}
# Generate libm-test.c
sub generate_testfile {
my ($input, $output) = @_;
my ($lasttext);
- my (@args, $i, $str, $thisfct);
+ my (@args, $i);
open INPUT, $input or die ("Can't open $input: $!");
open OUTPUT, ">$output" or die ("Can't open $output: $!");
@@ -428,43 +297,7 @@ sub generate_testfile {
my ($descr, $args);
chop;
($descr, $args) = ($_ =~ /TEST_(\w+)\s*\((.*)\)/);
- &parse_args (\*OUTPUT, $descr, $thisfct, $args);
- next;
- }
- # START (function)
- if (/START/) {
- ($thisfct) = ($_ =~ /START\s*\((.*)\)/);
- print OUTPUT " init_max_error ();\n";
- next;
- }
- # END (function)
- if (/END/) {
- my ($fct, $line, $type);
- if (/complex/) {
- s/,\s*complex\s*//;
- $type = 'complex';
- } else {
- $type = 'normal';
- }
- ($fct) = ($_ =~ /END\s*\((.*)\)/);
- if ($type eq 'complex') {
- $line = " print_complex_max_error (\"$fct\", ";
- } else {
- $line = " print_max_error (\"$fct\", ";
- }
- if (exists $results{$fct}{'has_ulps'}) {
- $line .= "DELTA$fct";
- } else {
- $line .= '0';
- }
- if (exists $results{$fct}{'has_fails'}) {
- $line .= ", FAIL$fct";
- } else {
- $line .= ', 0';
- }
- $line .= ");\n";
- print OUTPUT $line;
- push @functions, $fct;
+ &parse_args (\*OUTPUT, $descr, $args);
next;
}
print OUTPUT;
@@ -522,10 +355,7 @@ sub parse_ulps {
if (/^i?(float|double|ldouble):/) {
($float, $eps) = split /\s*:\s*/,$_,2;
- if ($eps eq 'fail') {
- $results{$test}{$type}{'fail'}{$float} = 1;
- $results{$test}{'has_fails'} = 1;
- } elsif ($eps eq "0") {
+ if ($eps eq "0") {
# ignore
next;
} else {
@@ -591,9 +421,6 @@ sub print_ulps_file {
&clean_up_number ($results{$test}{$type}{'ulp'}{$float}),
"\n";
}
- if (exists $results{$test}{$type}{'fail'}{$float}) {
- print NEWULP "$float: fail\n";
- }
}
}
}
@@ -617,9 +444,6 @@ sub print_ulps_file {
&clean_up_number ($results{$fct}{$type}{'ulp'}{$float}),
"\n";
}
- if (exists $results{$fct}{$type}{'fail'}{$float}) {
- print NEWULP "$float: fail\n";
- }
}
print NEWULP "\n";
}
@@ -632,61 +456,15 @@ sub print_ulps_file {
sub get_ulps {
my ($test, $type, $float) = @_;
- if ($type eq 'complex') {
- my ($res);
- # Return 0 instead of BUILD_COMPLEX (0,0)
- if (!exists $results{$test}{'real'}{'ulp'}{$float} &&
- !exists $results{$test}{'imag'}{'ulp'}{$float}) {
- return "0";
- }
- $res = 'BUILD_COMPLEX (';
- $res .= (exists $results{$test}{'real'}{'ulp'}{$float}
- ? $results{$test}{'real'}{'ulp'}{$float} : "0");
- $res .= ', ';
- $res .= (exists $results{$test}{'imag'}{'ulp'}{$float}
- ? $results{$test}{'imag'}{'ulp'}{$float} : "0");
- $res .= ')';
- return $res;
- }
- return (exists $results{$test}{'normal'}{'ulp'}{$float}
- ? $results{$test}{'normal'}{'ulp'}{$float} : "0");
+ return (exists $results{$test}{$type}{'ulp'}{$float}
+ ? $results{$test}{$type}{'ulp'}{$float} : "0");
}
-sub get_failure {
- my ($test, $type, $float) = @_;
- if ($type eq 'complex') {
- # return x,y
- my ($res);
- # Return 0 instead of BUILD_COMPLEX_INT (0,0)
- if (!exists $results{$test}{'real'}{'ulp'}{$float} &&
- !exists $results{$test}{'imag'}{'ulp'}{$float}) {
- return "0";
- }
- $res = 'BUILD_COMPLEX_INT (';
- $res .= (exists $results{$test}{'real'}{'fail'}{$float}
- ? $results{$test}{'real'}{'fail'}{$float} : "0");
- $res .= ', ';
- $res .= (exists $results{$test}{'imag'}{'fail'}{$float}
- ? $results{$test}{'imag'}{'fail'}{$float} : "0");
- $res .= ')';
- return $res;
- }
- return (exists $results{$test}{'normal'}{'fail'}{$float}
- ? $results{$test}{'normal'}{'fail'}{$float} : "0");
-
-}
-
-# Output the defines for a single test
-sub output_test {
- my ($file, $test, $name) = @_;
+# Return the ulps value for a single test.
+sub get_all_ulps_for_test {
+ my ($test, $type) = @_;
my ($ldouble, $double, $float, $ildouble, $idouble, $ifloat);
- my ($type);
- # Do we have ulps/failures?
- if (!exists $results{$test}{'type'}) {
- return;
- }
- $type = $results{$test}{'type'};
if (exists $results{$test}{'has_ulps'}) {
# XXX use all_floats (change order!)
$ldouble = &get_ulps ($test, $type, "ldouble");
@@ -695,24 +473,17 @@ sub output_test {
$ildouble = &get_ulps ($test, $type, "ildouble");
$idouble = &get_ulps ($test, $type, "idouble");
$ifloat = &get_ulps ($test, $type, "ifloat");
- print $file "#define DELTA$name CHOOSE($ldouble, $double, $float, $ildouble, $idouble, $ifloat)\t/* $test */\n";
- }
-
- if (exists $results{$test}{'has_fails'}) {
- $ldouble = &get_failure ($test, "ldouble");
- $double = &get_failure ($test, "double");
- $float = &get_failure ($test, "float");
- $ildouble = &get_failure ($test, "ildouble");
- $idouble = &get_failure ($test, "idouble");
- $ifloat = &get_failure ($test, "ifloat");
- print $file "#define FAIL$name CHOOSE($ldouble, $double, $float $ildouble, $idouble, $ifloat)\t/* $test */\n";
+ return "CHOOSE ($ldouble, $double, $float, $ildouble, $idouble, $ifloat)";
+ } else {
+ die "get_all_ulps_for_test called for \"$test\" with no ulps\n";
}
}
# Print include file
sub output_ulps {
my ($file, $ulps_filename) = @_;
- my ($i, $fct);
+ my ($i, $fct, $type, $ulp, $ulp_real, $ulp_imag);
+ my (%test_ulps, %func_ulps, %func_real_ulps, %func_imag_ulps);
open ULP, ">$file" or die ("Can't open $file: $!");
@@ -720,14 +491,56 @@ sub output_ulps {
print ULP " from $ulps_filename with gen-libm-test.pl.\n";
print ULP " Don't change it - change instead the master files. */\n\n";
+ foreach $fct (keys %results) {
+ $type = $results{$fct}{'type'};
+ if ($type eq 'normal') {
+ $ulp = get_all_ulps_for_test ($fct, 'normal');
+ } elsif ($type eq 'complex') {
+ $ulp_real = get_all_ulps_for_test ($fct, 'real');
+ $ulp_imag = get_all_ulps_for_test ($fct, 'imag');
+ } else {
+ die "unknown results ($fct) type $type\n";
+ }
+ if ($results{$fct}{'kind'} eq 'fct') {
+ if ($type eq 'normal') {
+ $func_ulps{$fct} = $ulp;
+ } else {
+ $func_real_ulps{$fct} = $ulp_real;
+ $func_imag_ulps{$fct} = $ulp_imag;
+ }
+ } elsif ($results{$fct}{'kind'} eq 'test') {
+ if ($type eq 'normal') {
+ $test_ulps{$fct} = $ulp;
+ } else {
+ $test_ulps{"Real part of: $fct"} = $ulp_real;
+ $test_ulps{"Imaginary part of: $fct"} = $ulp_imag;
+ }
+ } else {
+ die "unknown results ($fct) kind $results{$fct}{'kind'}\n";
+ }
+ }
print ULP "\n/* Maximal error of functions. */\n";
- foreach $fct (@functions) {
- output_test (\*ULP, $fct, $fct);
+ print ULP "static const struct ulp_data func_ulps[] =\n {\n";
+ foreach $fct (sort keys %func_ulps) {
+ print ULP " { \"$fct\", $func_ulps{$fct} },\n";
+ }
+ print ULP " };\n";
+ print ULP "static const struct ulp_data func_real_ulps[] =\n {\n";
+ foreach $fct (sort keys %func_real_ulps) {
+ print ULP " { \"$fct\", $func_real_ulps{$fct} },\n";
+ }
+ print ULP " };\n";
+ print ULP "static const struct ulp_data func_imag_ulps[] =\n {\n";
+ foreach $fct (sort keys %func_imag_ulps) {
+ print ULP " { \"$fct\", $func_imag_ulps{$fct} },\n";
}
+ print ULP " };\n";
print ULP "\n/* Error of single function calls. */\n";
- for ($i = 0; $i < $count; $i++) {
- output_test (\*ULP, $tests[$i], $i);
+ print ULP "static const struct ulp_data test_ulps[] =\n {\n";
+ foreach $fct (sort keys %test_ulps) {
+ print ULP " { \"$fct\", $test_ulps{$fct} },\n";
}
+ print ULP " };\n";
close ULP;
}
diff --git a/math/k_casinh.c b/math/k_casinh.c
index 4cb232a17a..145eb10110 100644
--- a/math/k_casinh.c
+++ b/math/k_casinh.c
@@ -134,6 +134,58 @@ __kernel_casinh (__complex__ double x, int adj)
__imag__ res = __ieee754_atan2 (1.0 + s2, rx + s1);
}
}
+ else if (ix < 1.0 && rx < 0.5)
+ {
+ if (ix >= DBL_EPSILON)
+ {
+ if (rx < DBL_EPSILON * DBL_EPSILON)
+ {
+ double onemix2 = (1.0 + ix) * (1.0 - ix);
+ double s = __ieee754_sqrt (onemix2);
+
+ __real__ res = __log1p (2.0 * rx / s) / 2.0;
+ if (adj)
+ __imag__ res = __ieee754_atan2 (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2 (ix, s);
+ }
+ else
+ {
+ double onemix2 = (1.0 + ix) * (1.0 - ix);
+ double rx2 = rx * rx;
+ double f = rx2 * (2.0 + rx2 + 2.0 * ix * ix);
+ double d = __ieee754_sqrt (onemix2 * onemix2 + f);
+ double dp = d + onemix2;
+ double dm = f / dp;
+ double r1 = __ieee754_sqrt ((dp + rx2) / 2.0);
+ double r2 = rx * ix / r1;
+
+ __real__ res
+ = __log1p (rx2 + dm + 2.0 * (rx * r1 + ix * r2)) / 2.0;
+ if (adj)
+ __imag__ res = __ieee754_atan2 (rx + r1,
+ __copysign (ix + r2,
+ __imag__ x));
+ else
+ __imag__ res = __ieee754_atan2 (ix + r2, rx + r1);
+ }
+ }
+ else
+ {
+ double s = __ieee754_hypot (1.0, rx);
+
+ __real__ res = __log1p (2.0 * rx * (rx + s)) / 2.0;
+ if (adj)
+ __imag__ res = __ieee754_atan2 (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2 (ix, s);
+ }
+ if (__real__ res < DBL_MIN)
+ {
+ volatile double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ }
else
{
__real__ y = (rx - ix) * (rx + ix) + 1.0;
diff --git a/math/k_casinhf.c b/math/k_casinhf.c
index b368313390..56565e25e2 100644
--- a/math/k_casinhf.c
+++ b/math/k_casinhf.c
@@ -136,6 +136,58 @@ __kernel_casinhf (__complex__ float x, int adj)
__imag__ res = __ieee754_atan2f (1.0f + s2, rx + s1);
}
}
+ else if (ix < 1.0f && rx < 0.5f)
+ {
+ if (ix >= FLT_EPSILON)
+ {
+ if (rx < FLT_EPSILON * FLT_EPSILON)
+ {
+ float onemix2 = (1.0f + ix) * (1.0f - ix);
+ float s = __ieee754_sqrtf (onemix2);
+
+ __real__ res = __log1pf (2.0f * rx / s) / 2.0f;
+ if (adj)
+ __imag__ res = __ieee754_atan2f (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2f (ix, s);
+ }
+ else
+ {
+ float onemix2 = (1.0f + ix) * (1.0f - ix);
+ float rx2 = rx * rx;
+ float f = rx2 * (2.0f + rx2 + 2.0f * ix * ix);
+ float d = __ieee754_sqrtf (onemix2 * onemix2 + f);
+ float dp = d + onemix2;
+ float dm = f / dp;
+ float r1 = __ieee754_sqrtf ((dp + rx2) / 2.0f);
+ float r2 = rx * ix / r1;
+
+ __real__ res
+ = __log1pf (rx2 + dm + 2.0f * (rx * r1 + ix * r2)) / 2.0f;
+ if (adj)
+ __imag__ res = __ieee754_atan2f (rx + r1,
+ __copysignf (ix + r2,
+ __imag__ x));
+ else
+ __imag__ res = __ieee754_atan2f (ix + r2, rx + r1);
+ }
+ }
+ else
+ {
+ float s = __ieee754_hypotf (1.0f, rx);
+
+ __real__ res = __log1pf (2.0f * rx * (rx + s)) / 2.0f;
+ if (adj)
+ __imag__ res = __ieee754_atan2f (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2f (ix, s);
+ }
+ if (__real__ res < FLT_MIN)
+ {
+ volatile float force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ }
else
{
__real__ y = (rx - ix) * (rx + ix) + 1.0f;
diff --git a/math/k_casinhl.c b/math/k_casinhl.c
index 8e5bbd4385..b5f94006f7 100644
--- a/math/k_casinhl.c
+++ b/math/k_casinhl.c
@@ -143,6 +143,58 @@ __kernel_casinhl (__complex__ long double x, int adj)
__imag__ res = __ieee754_atan2l (1.0L + s2, rx + s1);
}
}
+ else if (ix < 1.0L && rx < 0.5L)
+ {
+ if (ix >= LDBL_EPSILON)
+ {
+ if (rx < LDBL_EPSILON * LDBL_EPSILON)
+ {
+ long double onemix2 = (1.0L + ix) * (1.0L - ix);
+ long double s = __ieee754_sqrtl (onemix2);
+
+ __real__ res = __log1pl (2.0L * rx / s) / 2.0L;
+ if (adj)
+ __imag__ res = __ieee754_atan2l (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2l (ix, s);
+ }
+ else
+ {
+ long double onemix2 = (1.0L + ix) * (1.0L - ix);
+ long double rx2 = rx * rx;
+ long double f = rx2 * (2.0L + rx2 + 2.0L * ix * ix);
+ long double d = __ieee754_sqrtl (onemix2 * onemix2 + f);
+ long double dp = d + onemix2;
+ long double dm = f / dp;
+ long double r1 = __ieee754_sqrtl ((dp + rx2) / 2.0L);
+ long double r2 = rx * ix / r1;
+
+ __real__ res
+ = __log1pl (rx2 + dm + 2.0L * (rx * r1 + ix * r2)) / 2.0L;
+ if (adj)
+ __imag__ res = __ieee754_atan2l (rx + r1,
+ __copysignl (ix + r2,
+ __imag__ x));
+ else
+ __imag__ res = __ieee754_atan2l (ix + r2, rx + r1);
+ }
+ }
+ else
+ {
+ long double s = __ieee754_hypotl (1.0L, rx);
+
+ __real__ res = __log1pl (2.0L * rx * (rx + s)) / 2.0L;
+ if (adj)
+ __imag__ res = __ieee754_atan2l (s, __imag__ x);
+ else
+ __imag__ res = __ieee754_atan2l (ix, s);
+ }
+ if (__real__ res < LDBL_MIN)
+ {
+ volatile long double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ }
else
{
__real__ y = (rx - ix) * (rx + ix) + 1.0L;
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 0ea456bb94..7a6bf09a66 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -39,15 +39,15 @@
/* This testsuite has currently tests for:
acos, acosh, asin, asinh, atan, atan2, atanh,
- cbrt, ceil, copysign, cos, cosh, erf, erfc, exp, exp10, exp2, expm1,
+ cbrt, ceil, copysign, cos, cosh, drem, erf, erfc, exp, exp10, exp2, expm1,
fabs, fdim, finite, floor, fma, fmax, fmin, fmod, fpclassify,
frexp, gamma, hypot,
- ilogb, isfinite, isinf, isnan, isnormal,
+ ilogb, isfinite, isinf, isnan, isnormal, issignaling,
isless, islessequal, isgreater, isgreaterequal, islessgreater, isunordered,
j0, j1, jn,
ldexp, lgamma, log, log10, log1p, log2, logb,
modf, nearbyint, nextafter, nexttoward,
- pow, remainder, remquo, rint, lrint, llrint,
+ pow, pow10, remainder, remquo, rint, lrint, llrint,
round, lround, llround,
scalb, scalbn, scalbln, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, trunc,
y0, y1, yn, significand
@@ -58,10 +58,8 @@
csin, csinh, csqrt, ctan, ctanh.
At the moment the following functions and macros aren't tested:
- drem (alias for remainder),
lgamma_r,
- nan,
- pow10 (alias for exp10).
+ nan.
Parameter handling is primitive in the moment:
--verbose=[0..3] for different levels of output:
@@ -82,14 +80,9 @@
against. These implemented tests should check all cases that are
specified in ISO C99.
- Exception testing: At the moment only divide-by-zero, invalid,
- overflow and underflow exceptions are tested. Inexact exceptions
- aren't checked at the moment.
-
NaN values: There exist signalling and quiet NaNs. This implementation
- only uses quiet NaN as parameter but does not differentiate
- between the two kinds of NaNs as result. Where the sign of a NaN is
- significant, this is not tested.
+ only uses quiet NaN as parameter. Where the sign of a NaN is
+ significant, this is not tested. The payload of NaNs is not examined.
Inline functions: Inlining functions should give an improvement in
speed - but not in precission. The inlined functions return
@@ -120,7 +113,6 @@
# define _GNU_SOURCE
#endif
-#include "libm-test-ulps.h"
#include <complex.h>
#include <math.h>
#include <float.h>
@@ -134,6 +126,18 @@
#include <argp.h>
#include <tininess.h>
+/* Structure for ulp data for a test, a function, or the real or
+ imaginary part of a function. */
+struct ulp_data
+{
+ const char *name;
+ FLOAT max_ulp;
+};
+
+/* This header defines test_ulps, func_ulps, func_real_ulps and
+ func_imag_ulps arrays. */
+#include "libm-test-ulps.h"
+
/* Allow platforms without all rounding modes to test properly,
assuming they provide an __FE_UNDEFINED in <bits/fenv.h> which
causes fesetround() to return failure. */
@@ -156,14 +160,22 @@
#define DIVIDE_BY_ZERO_EXCEPTION 0x2
#define OVERFLOW_EXCEPTION 0x4
#define UNDERFLOW_EXCEPTION 0x8
+#define INEXACT_EXCEPTION 0x10
/* The next flags signals that those exceptions are allowed but not required. */
-#define INVALID_EXCEPTION_OK 0x10
-#define DIVIDE_BY_ZERO_EXCEPTION_OK 0x20
-#define OVERFLOW_EXCEPTION_OK 0x40
-#define UNDERFLOW_EXCEPTION_OK 0x80
+#define INVALID_EXCEPTION_OK 0x20
+#define DIVIDE_BY_ZERO_EXCEPTION_OK 0x40
+#define OVERFLOW_EXCEPTION_OK 0x80
+#define UNDERFLOW_EXCEPTION_OK 0x100
+/* For "inexact" exceptions, the default is allowed but not required
+ unless INEXACT_EXCEPTION or NO_INEXACT_EXCEPTION is specified. */
+#define NO_INEXACT_EXCEPTION 0x200
#define EXCEPTIONS_OK INVALID_EXCEPTION_OK+DIVIDE_BY_ZERO_EXCEPTION_OK
/* Some special test flags, passed together with exceptions. */
-#define IGNORE_ZERO_INF_SIGN 0x100
+#define IGNORE_ZERO_INF_SIGN 0x400
+/* Indicate errno settings required or disallowed. */
+#define ERRNO_UNCHANGED 0x800
+#define ERRNO_EDOM 0x1000
+#define ERRNO_ERANGE 0x2000
/* Values underflowing only for float. */
#ifdef TEST_FLOAT
@@ -178,8 +190,10 @@
#if defined TEST_FLOAT || defined TEST_DOUBLE \
|| (defined TEST_LDOUBLE && LDBL_MIN_EXP >= DBL_MIN_EXP)
# define UNDERFLOW_EXCEPTION_DOUBLE UNDERFLOW_EXCEPTION
+# define UNDERFLOW_EXCEPTION_OK_DOUBLE UNDERFLOW_EXCEPTION_OK
#else
# define UNDERFLOW_EXCEPTION_DOUBLE 0
+# define UNDERFLOW_EXCEPTION_OK_DOUBLE 0
#endif
/* Values underflowing only for IBM long double or types with a larger least
positive normal value. */
@@ -202,30 +216,47 @@
#define M_SQRT_PIl 1.7724538509055160272981674833411451L /* sqrt (M_PIl) */
#define M_LOG_SQRT_PIl 0.57236494292470008707171367567652933L /* log(sqrt(M_PIl)) */
#define M_LOG_2_SQRT_PIl 1.265512123484645396488945797134706L /* log(2*sqrt(M_PIl)) */
-#define M_PI_34l (M_PIl - M_PI_4l) /* 3*pi/4 */
-#define M_PI_34_LOG10El (M_PIl - M_PI_4l) * M_LOG10El
-#define M_PI2_LOG10El M_PI_2l * M_LOG10El
-#define M_PI4_LOG10El M_PI_4l * M_LOG10El
-#define M_PI_LOG10El M_PIl * M_LOG10El
-#define M_SQRT_2_2 0.70710678118654752440084436210484903L /* sqrt (2) / 2 */
-
-static FILE *ulps_file; /* File to document difference. */
-static int output_ulps; /* Should ulps printed? */
+#define M_PI_34l 2.356194490192344928846982537459627163L /* 3*pi/4 */
+#define M_PI_34_LOG10El 1.023282265381381010614337719073516828L
+#define M_PI2_LOG10El 0.682188176920920673742891812715677885L
+#define M_PI4_LOG10El 0.341094088460460336871445906357838943L
+#define M_PI_LOG10El 1.364376353841841347485783625431355770L
+#define M_1_DIV_El 0.367879441171442321595523770161460867L /* 1 div e */
+
+#define ulps_file_name "ULPs" /* Name of the ULPs file. */
+static FILE *ulps_file; /* File to document difference. */
+static int output_ulps; /* Should ulps printed? */
+static char *output_dir; /* Directory where generated files will be written. */
static int noErrors; /* number of errors */
static int noTests; /* number of tests (without testing exceptions) */
static int noExcTests; /* number of tests for exception flags */
-static int noXFails; /* number of expected failures. */
-static int noXPasses; /* number of unexpected passes. */
+static int noErrnoTests;/* number of tests for errno values */
static int verbose;
static int output_max_error; /* Should the maximal errors printed? */
static int output_points; /* Should the single function results printed? */
static int ignore_max_ulp; /* Should we ignore max_ulp? */
-static FLOAT minus_zero, plus_zero;
-static FLOAT plus_infty, minus_infty, qnan_value, max_value, min_value;
-static FLOAT min_subnorm_value;
+#define plus_zero CHOOSE (0.0L, 0.0, 0.0f, \
+ 0.0L, 0.0, 0.0f)
+#define minus_zero CHOOSE (-0.0L, -0.0, -0.0f, \
+ -0.0L, -0.0, -0.0f)
+#define plus_infty CHOOSE (HUGE_VALL, HUGE_VAL, HUGE_VALF, \
+ HUGE_VALL, HUGE_VAL, HUGE_VALF)
+#define minus_infty CHOOSE (-HUGE_VALL, -HUGE_VAL, -HUGE_VALF, \
+ -HUGE_VALL, -HUGE_VAL, -HUGE_VALF)
+#define qnan_value FUNC (__builtin_nan) ("")
+#define max_value CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX, \
+ LDBL_MAX, DBL_MAX, FLT_MAX)
+#define min_value CHOOSE (LDBL_MIN, DBL_MIN, FLT_MIN, \
+ LDBL_MIN, DBL_MIN, FLT_MIN)
+#define min_subnorm_value CHOOSE (__LDBL_DENORM_MIN__, \
+ __DBL_DENORM_MIN__, \
+ __FLT_DENORM_MIN__, \
+ __LDBL_DENORM_MIN__, \
+ __DBL_DENORM_MIN__, \
+ __FLT_DENORM_MIN__)
static FLOAT max_error, real_max_error, imag_max_error;
@@ -236,15 +267,68 @@ static FLOAT max_error, real_max_error, imag_max_error;
__imag__ __retval = (imag); \
__retval; })
-#define BUILD_COMPLEX_INT(real, imag) \
- ({ __complex__ int __retval; \
- __real__ __retval = (real); \
- __imag__ __retval = (imag); \
- __retval; })
-
-
#define MANT_DIG CHOOSE ((LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1), \
(LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1))
+#define MAX_EXP CHOOSE ((LDBL_MAX_EXP-1), (DBL_MAX_EXP-1), (FLT_MAX_EXP-1), \
+ (LDBL_MAX_EXP-1), (DBL_MAX_EXP-1), (FLT_MAX_EXP-1))
+
+/* Compare KEY (a string, with the name of a test or a function) with
+ ULP (a pointer to a struct ulp_data structure), returning a value
+ less than, equal to or greater than zero for use in bsearch. */
+
+static int
+compare_ulp_data (const void *key, const void *ulp)
+{
+ const char *keystr = key;
+ const struct ulp_data *ulpdat = ulp;
+ return strcmp (keystr, ulpdat->name);
+}
+
+/* Return the ulps for NAME in array DATA with NMEMB elements, or 0 if
+ no ulps listed. */
+
+static FLOAT
+find_ulps (const char *name, const struct ulp_data *data, size_t nmemb)
+{
+ const struct ulp_data *entry = bsearch (name, data, nmemb, sizeof (*data),
+ compare_ulp_data);
+ if (entry == NULL)
+ return 0;
+ else
+ return entry->max_ulp;
+}
+
+/* Return the ulps for test NAME. */
+
+static FLOAT
+find_test_ulps (const char *name)
+{
+ return find_ulps (name, test_ulps,
+ sizeof (test_ulps) / sizeof (test_ulps[0]));
+}
+
+/* Return the ulps for real function NAME. */
+
+static FLOAT
+find_function_ulps (const char *name)
+{
+ return find_ulps (name, func_ulps,
+ sizeof (func_ulps) / sizeof (func_ulps[0]));
+}
+
+/* Return the ulps for complex function NAME. */
+
+static __complex__ FLOAT
+find_complex_function_ulps (const char *name)
+{
+ FLOAT ulp_real = find_ulps (name, func_real_ulps,
+ (sizeof (func_real_ulps)
+ / sizeof (func_real_ulps[0])));
+ FLOAT ulp_imag = find_ulps (name, func_imag_ulps,
+ (sizeof (func_imag_ulps)
+ / sizeof (func_imag_ulps[0])));
+ return BUILD_COMPLEX (ulp_real, ulp_imag);
+}
static void
init_max_error (void)
@@ -253,6 +337,7 @@ init_max_error (void)
real_max_error = 0;
imag_max_error = 0;
feclearexcept (FE_ALL_EXCEPT);
+ errno = 0;
}
static void
@@ -263,14 +348,27 @@ set_max_error (FLOAT current, FLOAT *curr_max_error)
}
+/* Print a FLOAT. */
+static void
+print_float (FLOAT f)
+{
+ /* As printf doesn't differ between a sNaN and a qNaN, do this manually. */
+ if (issignaling (f))
+ printf ("sNaN\n");
+ else if (isnan (f))
+ printf ("qNaN\n");
+ else
+ printf ("% .20" PRINTF_EXPR " % .20" PRINTF_XEXPR "\n", f, f);
+}
+
/* Should the message print to screen? This depends on the verbose flag,
and the test status. */
static int
-print_screen (int ok, int xfail)
+print_screen (int ok)
{
if (output_points
&& (verbose > 1
- || (verbose == 1 && ok == xfail)))
+ || (verbose == 1 && ok == 0)))
return 1;
return 0;
}
@@ -279,25 +377,21 @@ print_screen (int ok, int xfail)
/* Should the message print to screen? This depends on the verbose flag,
and the test status. */
static int
-print_screen_max_error (int ok, int xfail)
+print_screen_max_error (int ok)
{
if (output_max_error
&& (verbose > 1
- || ((verbose == 1) && (ok == xfail))))
+ || ((verbose == 1) && (ok == 0))))
return 1;
return 0;
}
/* Update statistic counters. */
static void
-update_stats (int ok, int xfail)
+update_stats (int ok)
{
++noTests;
- if (ok && xfail)
- ++noXPasses;
- else if (!ok && xfail)
- ++noXFails;
- else if (!ok && !xfail)
+ if (!ok)
++noErrors;
}
@@ -381,8 +475,9 @@ fpstack_test (const char *test_name)
static void
-print_max_error (const char *func_name, FLOAT allowed, int xfail)
+print_max_error (const char *func_name)
{
+ FLOAT allowed = find_function_ulps (func_name);
int ok = 0;
if (max_error == 0.0 || (max_error <= allowed && !ignore_max_ulp))
@@ -394,21 +489,21 @@ print_max_error (const char *func_name, FLOAT allowed, int xfail)
print_function_ulps (func_name, max_error);
- if (print_screen_max_error (ok, xfail))
+ if (print_screen_max_error (ok))
{
printf ("Maximal error of `%s'\n", func_name);
printf (" is : %.0" PRINTF_NEXPR " ulp\n", FUNC(ceil) (max_error));
printf (" accepted: %.0" PRINTF_NEXPR " ulp\n", FUNC(ceil) (allowed));
}
- update_stats (ok, xfail);
+ update_stats (ok);
}
static void
-print_complex_max_error (const char *func_name, __complex__ FLOAT allowed,
- __complex__ int xfail)
+print_complex_max_error (const char *func_name)
{
+ __complex__ FLOAT allowed = find_complex_function_ulps (func_name);
int ok = 0;
if ((real_max_error == 0 && imag_max_error == 0)
@@ -423,7 +518,7 @@ print_complex_max_error (const char *func_name, __complex__ FLOAT allowed,
print_complex_function_ulps (func_name, real_max_error, imag_max_error);
- if (print_screen_max_error (ok, xfail))
+ if (print_screen_max_error (ok))
{
printf ("Maximal error of real part of: %s\n", func_name);
printf (" is : %.0" PRINTF_NEXPR " ulp\n",
@@ -437,7 +532,7 @@ print_complex_max_error (const char *func_name, __complex__ FLOAT allowed,
FUNC(ceil) (__imag__ allowed));
}
- update_stats (ok, xfail);
+ update_stats (ok);
}
@@ -455,13 +550,13 @@ test_single_exception (const char *test_name,
{
if (fetestexcept (fe_flag))
{
- if (print_screen (1, 0))
+ if (print_screen (1))
printf ("Pass: %s: Exception \"%s\" set\n", test_name, flag_name);
}
else
{
ok = 0;
- if (print_screen (0, 0))
+ if (print_screen (0))
printf ("Failure: %s: Exception \"%s\" not set\n",
test_name, flag_name);
}
@@ -471,13 +566,13 @@ test_single_exception (const char *test_name,
if (fetestexcept (fe_flag))
{
ok = 0;
- if (print_screen (0, 0))
+ if (print_screen (0))
printf ("Failure: %s: Exception \"%s\" set\n",
test_name, flag_name);
}
else
{
- if (print_screen (1, 0))
+ if (print_screen (1))
printf ("%s: Exception \"%s\" not set\n", test_name,
flag_name);
}
@@ -517,22 +612,108 @@ test_exceptions (const char *test_name, int exception)
test_single_exception (test_name, exception, UNDERFLOW_EXCEPTION,
FE_UNDERFLOW, "Underflow");
#endif
+#ifdef FE_INEXACT
+ if ((exception & (INEXACT_EXCEPTION | NO_INEXACT_EXCEPTION)) != 0)
+ test_single_exception (test_name, exception, INEXACT_EXCEPTION,
+ FE_INEXACT, "Inexact");
+#endif
feclearexcept (FE_ALL_EXCEPT);
}
+/* Test whether errno for TEST_NAME, set to ERRNO_VALUE, has value
+ EXPECTED_VALUE (description EXPECTED_NAME). */
+static void
+test_single_errno (const char *test_name, int errno_value,
+ int expected_value, const char *expected_name)
+{
+#ifndef TEST_INLINE
+ if (errno_value == expected_value)
+ {
+ if (print_screen (1))
+ printf ("Pass: %s: errno set to %d (%s)\n", test_name, errno_value,
+ expected_name);
+ }
+ else
+ {
+ ++noErrors;
+ if (print_screen (0))
+ printf ("Failure: %s: errno set to %d, expected %d (%s)\n",
+ test_name, errno_value, expected_value, expected_name);
+ }
+#endif
+}
+
+/* Test whether errno (value ERRNO_VALUE) has been for TEST_NAME set
+ as required by EXCEPTIONS. */
+static void
+test_errno (const char *test_name, int errno_value, int exceptions)
+{
+ ++noErrnoTests;
+ if (exceptions & ERRNO_UNCHANGED)
+ test_single_errno (test_name, errno_value, 0, "unchanged");
+ if (exceptions & ERRNO_EDOM)
+ test_single_errno (test_name, errno_value, EDOM, "EDOM");
+ if (exceptions & ERRNO_ERANGE)
+ test_single_errno (test_name, errno_value, ERANGE, "ERANGE");
+}
+
+/* Returns the number of ulps that GIVEN is away from EXPECTED. */
+#define ULPDIFF(given, expected) \
+ (FUNC(fabs) ((given) - (expected)) / ulp (expected))
+
+/* Returns the size of an ulp for VALUE. */
+static FLOAT
+ulp (FLOAT value)
+{
+ FLOAT ulp;
+
+ switch (fpclassify (value))
+ {
+ case FP_ZERO:
+ /* We compute the distance to the next FP which is the same as the
+ value of the smallest subnormal number. Previously we used
+ 2^(-MANT_DIG) which is too large a value to be useful. Note that we
+ can't use ilogb(0), since that isn't a valid thing to do. As a point
+ of comparison Java's ulp returns the next normal value e.g.
+ 2^(1 - MAX_EXP) for ulp(0), but that is not what we want for
+ glibc. */
+ /* Fall through... */
+ case FP_SUBNORMAL:
+ /* The next closest subnormal value is a constant distance away. */
+ ulp = FUNC(ldexp) (1.0, 1 - (MAX_EXP + MANT_DIG));
+ break;
+
+ case FP_NORMAL:
+ ulp = FUNC(ldexp) (1.0, FUNC(ilogb) (value) - MANT_DIG);
+ break;
+
+ default:
+ /* It should never happen. */
+ abort ();
+ break;
+ }
+ return ulp;
+}
static void
check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
- FLOAT max_ulp, int xfail, int exceptions,
+ int exceptions,
FLOAT *curr_max_error)
{
int ok = 0;
int print_diff = 0;
FLOAT diff = 0;
- FLOAT ulp = 0;
+ FLOAT ulps = 0;
+ int errno_value = errno;
test_exceptions (test_name, exceptions);
- if (isnan (computed) && isnan (expected))
+ test_errno (test_name, errno_value, exceptions);
+ FLOAT max_ulp = find_test_ulps (test_name);
+ if (issignaling (computed) && issignaling (expected))
+ ok = 1;
+ else if (issignaling (computed) || issignaling (expected))
+ ok = 0;
+ else if (isnan (computed) && isnan (expected))
ok = 1;
else if (isinf (computed) && isinf (expected))
{
@@ -546,75 +727,59 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
else
ok = 1;
}
- /* Don't calc ulp for NaNs or infinities. */
- else if (isinf (computed) || isnan (computed) || isinf (expected) || isnan (expected))
+ /* Don't calculate ULPs for infinities or any kind of NaNs. */
+ else if (isinf (computed) || isnan (computed)
+ || isinf (expected) || isnan (expected))
ok = 0;
else
{
diff = FUNC(fabs) (computed - expected);
- switch (fpclassify (expected))
- {
- case FP_ZERO:
- /* ilogb (0) isn't allowed. */
- ulp = diff / FUNC(ldexp) (1.0, - MANT_DIG);
- break;
- case FP_NORMAL:
- ulp = diff / FUNC(ldexp) (1.0, FUNC(ilogb) (expected) - MANT_DIG);
- break;
- case FP_SUBNORMAL:
- /* 1ulp for a subnormal value, shifted by MANT_DIG, is the
- least normal value. */
- ulp = (FUNC(ldexp) (diff, MANT_DIG) / min_value);
- break;
- default:
- /* It should never happen. */
- abort ();
- break;
- }
- set_max_error (ulp, curr_max_error);
+ ulps = ULPDIFF (computed, expected);
+ set_max_error (ulps, curr_max_error);
print_diff = 1;
if ((exceptions & IGNORE_ZERO_INF_SIGN) == 0
&& computed == 0.0 && expected == 0.0
&& signbit(computed) != signbit (expected))
ok = 0;
- else if (ulp <= 0.5 || (ulp <= max_ulp && !ignore_max_ulp))
+ else if (ulps <= 0.5 || (ulps <= max_ulp && !ignore_max_ulp))
ok = 1;
else
{
ok = 0;
- print_ulps (test_name, ulp);
+ print_ulps (test_name, ulps);
}
}
- if (print_screen (ok, xfail))
+ if (print_screen (ok))
{
if (!ok)
printf ("Failure: ");
printf ("Test: %s\n", test_name);
printf ("Result:\n");
- printf (" is: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR "\n",
- computed, computed);
- printf (" should be: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR "\n",
- expected, expected);
+ printf (" is: ");
+ print_float (computed);
+ printf (" should be: ");
+ print_float (expected);
if (print_diff)
{
printf (" difference: % .20" PRINTF_EXPR " % .20" PRINTF_XEXPR
"\n", diff, diff);
- printf (" ulp : % .4" PRINTF_NEXPR "\n", ulp);
+ printf (" ulp : % .4" PRINTF_NEXPR "\n", ulps);
printf (" max.ulp : % .4" PRINTF_NEXPR "\n", max_ulp);
}
}
- update_stats (ok, xfail);
+ update_stats (ok);
fpstack_test (test_name);
+ errno = 0;
}
static void
check_float (const char *test_name, FLOAT computed, FLOAT expected,
- FLOAT max_ulp, int xfail, int exceptions)
+ int exceptions)
{
- check_float_internal (test_name, computed, expected, max_ulp, xfail,
+ check_float_internal (test_name, computed, expected,
exceptions, &max_error);
}
@@ -622,11 +787,9 @@ check_float (const char *test_name, FLOAT computed, FLOAT expected,
static void
check_complex (const char *test_name, __complex__ FLOAT computed,
__complex__ FLOAT expected,
- __complex__ FLOAT max_ulp, __complex__ int xfail,
int exception)
{
- FLOAT part_comp, part_exp, part_max_ulp;
- int part_xfail;
+ FLOAT part_comp, part_exp;
char *str;
if (asprintf (&str, "Real part of: %s", test_name) == -1)
@@ -634,10 +797,8 @@ check_complex (const char *test_name, __complex__ FLOAT computed,
part_comp = __real__ computed;
part_exp = __real__ expected;
- part_max_ulp = __real__ max_ulp;
- part_xfail = __real__ xfail;
- check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
+ check_float_internal (str, part_comp, part_exp,
exception, &real_max_error);
free (str);
@@ -646,12 +807,10 @@ check_complex (const char *test_name, __complex__ FLOAT computed,
part_comp = __imag__ computed;
part_exp = __imag__ expected;
- part_max_ulp = __imag__ max_ulp;
- part_xfail = __imag__ xfail;
- /* Don't check again for exceptions, just pass through the
+ /* Don't check again for exceptions or errno, just pass through the
zero/inf sign test. */
- check_float_internal (str, part_comp, part_exp, part_max_ulp, part_xfail,
+ check_float_internal (str, part_comp, part_exp,
exception & IGNORE_ZERO_INF_SIGN,
&imag_max_error);
free (str);
@@ -660,21 +819,19 @@ check_complex (const char *test_name, __complex__ FLOAT computed,
/* Check that computed and expected values are equal (int values). */
static void
-check_int (const char *test_name, int computed, int expected, int max_ulp,
- int xfail, int exceptions)
+check_int (const char *test_name, int computed, int expected,
+ int exceptions)
{
- int diff = computed - expected;
int ok = 0;
+ int errno_value = errno;
test_exceptions (test_name, exceptions);
+ test_errno (test_name, errno_value, exceptions);
noTests++;
- if (abs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
+ if (print_screen (ok))
{
if (!ok)
printf ("Failure: ");
@@ -684,28 +841,27 @@ check_int (const char *test_name, int computed, int expected, int max_ulp,
printf (" should be: %d\n", expected);
}
- update_stats (ok, xfail);
+ update_stats (ok);
fpstack_test (test_name);
+ errno = 0;
}
/* Check that computed and expected values are equal (long int values). */
static void
check_long (const char *test_name, long int computed, long int expected,
- long int max_ulp, int xfail, int exceptions)
+ int exceptions)
{
- long int diff = computed - expected;
int ok = 0;
+ int errno_value = errno;
test_exceptions (test_name, exceptions);
+ test_errno (test_name, errno_value, exceptions);
noTests++;
- if (labs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
+ if (print_screen (ok))
{
if (!ok)
printf ("Failure: ");
@@ -715,24 +871,27 @@ check_long (const char *test_name, long int computed, long int expected,
printf (" should be: %ld\n", expected);
}
- update_stats (ok, xfail);
+ update_stats (ok);
fpstack_test (test_name);
+ errno = 0;
}
/* Check that computed value is true/false. */
static void
check_bool (const char *test_name, int computed, int expected,
- long int max_ulp, int xfail, int exceptions)
+ int exceptions)
{
int ok = 0;
+ int errno_value = errno;
test_exceptions (test_name, exceptions);
+ test_errno (test_name, errno_value, exceptions);
noTests++;
if ((computed == 0) == (expected == 0))
ok = 1;
- if (print_screen (ok, xfail))
+ if (print_screen (ok))
{
if (!ok)
printf ("Failure: ");
@@ -742,8 +901,9 @@ check_bool (const char *test_name, int computed, int expected,
printf (" should be: %d\n", expected);
}
- update_stats (ok, xfail);
+ update_stats (ok);
fpstack_test (test_name);
+ errno = 0;
}
@@ -751,21 +911,18 @@ check_bool (const char *test_name, int computed, int expected,
static void
check_longlong (const char *test_name, long long int computed,
long long int expected,
- long long int max_ulp, int xfail,
int exceptions)
{
- long long int diff = computed - expected;
int ok = 0;
+ int errno_value = errno;
test_exceptions (test_name, exceptions);
+ test_errno (test_name, errno_value, exceptions);
noTests++;
- if (llabs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
- if (!ok)
- print_ulps (test_name, diff);
-
- if (print_screen (ok, xfail))
+ if (print_screen (ok))
{
if (!ok)
printf ("Failure:");
@@ -775,11 +932,563 @@ check_longlong (const char *test_name, long long int computed,
printf (" should be: %lld\n", expected);
}
- update_stats (ok, xfail);
+ update_stats (ok);
fpstack_test (test_name);
+ errno = 0;
}
+/* Structures for each kind of test. */
+struct test_f_f_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_ff_f_data
+{
+ const char *arg_str;
+ FLOAT arg1, arg2;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_ff_f_data_nexttoward
+{
+ const char *arg_str;
+ FLOAT arg1;
+ long double arg2;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_fi_f_data
+{
+ const char *arg_str;
+ FLOAT arg1;
+ int arg2;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_fl_f_data
+{
+ const char *arg_str;
+ FLOAT arg1;
+ long int arg2;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_if_f_data
+{
+ const char *arg_str;
+ int arg1;
+ FLOAT arg2;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_fff_f_data
+{
+ const char *arg_str;
+ FLOAT arg1, arg2, arg3;
+ FLOAT expected;
+ int exceptions;
+};
+struct test_c_f_data
+{
+ const char *arg_str;
+ FLOAT argr, argc;
+ FLOAT expected;
+ int exceptions;
+};
+/* Used for both RUN_TEST_LOOP_f_f1 and RUN_TEST_LOOP_fI_f1. */
+struct test_f_f1_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ FLOAT expected;
+ int exceptions;
+ int extra_test;
+ int extra_expected;
+};
+struct test_fF_f1_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ FLOAT expected;
+ int exceptions;
+ int extra_test;
+ FLOAT extra_expected;
+};
+struct test_ffI_f1_data
+{
+ const char *arg_str;
+ FLOAT arg1, arg2;
+ FLOAT expected;
+ int exceptions;
+ int extra_test;
+ int extra_expected;
+};
+struct test_c_c_data
+{
+ const char *arg_str;
+ FLOAT argr, argc;
+ FLOAT expr, expc;
+ int exceptions;
+};
+struct test_cc_c_data
+{
+ const char *arg_str;
+ FLOAT arg1r, arg1c, arg2r, arg2c;
+ FLOAT expr, expc;
+ int exceptions;
+};
+/* Used for all of RUN_TEST_LOOP_f_i, RUN_TEST_LOOP_f_i_tg,
+ RUN_TEST_LOOP_f_b and RUN_TEST_LOOP_f_b_tg. */
+struct test_f_i_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ int expected;
+ int exceptions;
+};
+struct test_ff_i_data
+{
+ const char *arg_str;
+ FLOAT arg1, arg2;
+ int expected;
+ int exceptions;
+};
+struct test_f_l_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ long int expected;
+ int exceptions;
+};
+struct test_f_L_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ long long int expected;
+ int exceptions;
+};
+struct test_fFF_11_data
+{
+ const char *arg_str;
+ FLOAT arg;
+ int exceptions;
+ int extra1_test;
+ FLOAT extra1_expected;
+ int extra2_test;
+ FLOAT extra2_expected;
+};
+/* Set the rounding mode, or restore the saved value. */
+#define IF_ROUND_INIT_ /* Empty. */
+#define IF_ROUND_INIT_FE_DOWNWARD \
+ int save_round_mode = fegetround (); \
+ if (fesetround (FE_DOWNWARD) == 0)
+#define IF_ROUND_INIT_FE_TONEAREST \
+ int save_round_mode = fegetround (); \
+ if (fesetround (FE_TONEAREST) == 0)
+#define IF_ROUND_INIT_FE_TOWARDZERO \
+ int save_round_mode = fegetround (); \
+ if (fesetround (FE_TOWARDZERO) == 0)
+#define IF_ROUND_INIT_FE_UPWARD \
+ int save_round_mode = fegetround (); \
+ if (fesetround (FE_UPWARD) == 0)
+#define ROUND_RESTORE_ /* Empty. */
+#define ROUND_RESTORE_FE_DOWNWARD \
+ fesetround (save_round_mode)
+#define ROUND_RESTORE_FE_TONEAREST \
+ fesetround (save_round_mode)
+#define ROUND_RESTORE_FE_TOWARDZERO \
+ fesetround (save_round_mode)
+#define ROUND_RESTORE_FE_UPWARD \
+ fesetround (save_round_mode)
+
+/* Common setup for an individual test. */
+#define COMMON_TEST_SETUP(ARG_STR) \
+ char *test_name; \
+ if (asprintf (&test_name, "%s (%s)", this_func, (ARG_STR)) == -1) \
+ abort ()
+
+/* Setup for a test with an extra output. */
+#define EXTRA_OUTPUT_TEST_SETUP(ARG_STR, N) \
+ char *extra##N##_name; \
+ if (asprintf (&extra##N##_name, "%s (%s) extra output " #N, \
+ this_func, (ARG_STR)) == -1) \
+ abort ()
+
+/* Common cleanup after an individual test. */
+#define COMMON_TEST_CLEANUP \
+ free (test_name)
+
+/* Cleanup for a test with an extra output. */
+#define EXTRA_OUTPUT_TEST_CLEANUP(N) \
+ free (extra##N##_name)
+
+/* Run an individual test, including any required setup and checking
+ of results, or loop over all tests in an array. */
+#define RUN_TEST_f_f(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_f(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_f ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_2_f(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG1, ARG2), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_2_f(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_2_f ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg1, \
+ (ARRAY)[i].arg2, (ARRAY)[i].expected, \
+ (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_ff_f RUN_TEST_2_f
+#define RUN_TEST_LOOP_ff_f RUN_TEST_LOOP_2_f
+#define RUN_TEST_fi_f RUN_TEST_2_f
+#define RUN_TEST_LOOP_fi_f RUN_TEST_LOOP_2_f
+#define RUN_TEST_fl_f RUN_TEST_2_f
+#define RUN_TEST_LOOP_fl_f RUN_TEST_LOOP_2_f
+#define RUN_TEST_if_f RUN_TEST_2_f
+#define RUN_TEST_LOOP_if_f RUN_TEST_LOOP_2_f
+#define RUN_TEST_fff_f(ARG_STR, FUNC_NAME, ARG1, ARG2, ARG3, \
+ EXPECTED, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG1, ARG2, ARG3), \
+ EXPECTED, EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_fff_f(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_fff_f ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg1, \
+ (ARRAY)[i].arg2, (ARRAY)[i].arg3, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_c_f(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_float (test_name, \
+ FUNC (FUNC_NAME) (BUILD_COMPLEX (ARG1, ARG2)), \
+ EXPECTED, EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_c_f(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_c_f ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].argr, \
+ (ARRAY)[i].argc, (ARRAY)[i].expected, \
+ (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_f1(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS, EXTRA_VAR, EXTRA_TEST, \
+ EXTRA_EXPECTED) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
+ if (EXTRA_TEST) \
+ check_int (extra1_name, EXTRA_VAR, EXTRA_EXPECTED, 0); \
+ EXTRA_OUTPUT_TEST_CLEANUP (1); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_f1(FUNC_NAME, ARRAY, ROUNDING_MODE, EXTRA_VAR) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_f1 ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions, \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_fF_f1(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS, EXTRA_VAR, EXTRA_TEST, \
+ EXTRA_EXPECTED) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
+ EXPECTED, EXCEPTIONS); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
+ if (EXTRA_TEST) \
+ check_float (extra1_name, EXTRA_VAR, EXTRA_EXPECTED, 0); \
+ EXTRA_OUTPUT_TEST_CLEANUP (1); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_fF_f1(FUNC_NAME, ARRAY, ROUNDING_MODE, EXTRA_VAR) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_fF_f1 ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions, \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_fI_f1(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS, EXTRA_VAR, EXTRA_TEST, \
+ EXTRA_EXPECTED) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
+ check_float (test_name, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
+ EXPECTED, EXCEPTIONS); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
+ if (EXTRA_TEST) \
+ check_int (extra1_name, EXTRA_VAR, EXTRA_EXPECTED, 0); \
+ EXTRA_OUTPUT_TEST_CLEANUP (1); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_fI_f1(FUNC_NAME, ARRAY, ROUNDING_MODE, EXTRA_VAR) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_fI_f1 ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions, \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_ffI_f1(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
+ EXCEPTIONS, EXTRA_VAR, EXTRA_TEST, \
+ EXTRA_EXPECTED) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
+ check_float (test_name, \
+ FUNC (FUNC_NAME) (ARG1, ARG2, &(EXTRA_VAR)), \
+ EXPECTED, EXCEPTIONS); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
+ if (EXTRA_TEST) \
+ check_int (extra1_name, EXTRA_VAR, EXTRA_EXPECTED, 0); \
+ EXTRA_OUTPUT_TEST_CLEANUP (1); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_ffI_f1(FUNC_NAME, ARRAY, ROUNDING_MODE, \
+ EXTRA_VAR) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_ffI_f1 ((ARRAY)[i].arg_str, FUNC_NAME, \
+ (ARRAY)[i].arg1, (ARRAY)[i].arg2, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions, \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_c_c(ARG_STR, FUNC_NAME, ARGR, ARGC, EXPR, EXPC, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_complex (test_name, \
+ FUNC (FUNC_NAME) (BUILD_COMPLEX (ARGR, ARGC)), \
+ BUILD_COMPLEX (EXPR, EXPC), EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_c_c(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_c_c ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].argr, \
+ (ARRAY)[i].argc, (ARRAY)[i].expr, (ARRAY)[i].expc, \
+ (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_cc_c(ARG_STR, FUNC_NAME, ARG1R, ARG1C, ARG2R, ARG2C, \
+ EXPR, EXPC, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_complex (test_name, \
+ FUNC (FUNC_NAME) (BUILD_COMPLEX (ARG1R, ARG1C), \
+ BUILD_COMPLEX (ARG2R, ARG2C)), \
+ BUILD_COMPLEX (EXPR, EXPC), EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_cc_c(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_cc_c ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg1r, \
+ (ARRAY)[i].arg1c, (ARRAY)[i].arg2r, \
+ (ARRAY)[i].arg2c, (ARRAY)[i].expr, \
+ (ARRAY)[i].expc, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_i(ARG_STR, FUNC_NAME, ARG, EXPECTED, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_int (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_i(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_i ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_i_tg(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_int (test_name, FUNC_NAME (ARG), EXPECTED, EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_i_tg(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_ff_i_tg(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_int (test_name, FUNC_NAME (ARG1, ARG2), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_ff_i_tg(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_ff_i_tg ((ARRAY)[i].arg_str, FUNC_NAME, \
+ (ARRAY)[i].arg1, (ARRAY)[i].arg2, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_b(ARG_STR, FUNC_NAME, ARG, EXPECTED, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_bool (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_b(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_b ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_b_tg(ARG_STR, FUNC_NAME, ARG, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_bool (test_name, FUNC_NAME (ARG), EXPECTED, EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_b_tg(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_b_tg ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_l(ARG_STR, FUNC_NAME, ARG, EXPECTED, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_long (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_l(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_l ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_f_L(ARG_STR, FUNC_NAME, ARG, EXPECTED, EXCEPTIONS) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_longlong (test_name, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_f_L(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_f_L ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].expected, (ARRAY)[i].exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_fFF_11(ARG_STR, FUNC_NAME, ARG, EXCEPTIONS, \
+ EXTRA1_VAR, EXTRA1_TEST, \
+ EXTRA1_EXPECTED, EXTRA2_VAR, \
+ EXTRA2_TEST, EXTRA2_EXPECTED) \
+ do \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ FUNC (FUNC_NAME) (ARG, &(EXTRA1_VAR), &(EXTRA2_VAR)); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 1); \
+ if (EXTRA1_TEST) \
+ check_float (extra1_name, EXTRA1_VAR, EXTRA1_EXPECTED, \
+ EXCEPTIONS); \
+ EXTRA_OUTPUT_TEST_CLEANUP (1); \
+ EXTRA_OUTPUT_TEST_SETUP (ARG_STR, 2); \
+ if (EXTRA2_TEST) \
+ check_float (extra2_name, EXTRA2_VAR, EXTRA2_EXPECTED, 0); \
+ EXTRA_OUTPUT_TEST_CLEANUP (2); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_fFF_11(FUNC_NAME, ARRAY, ROUNDING_MODE, \
+ EXTRA1_VAR, EXTRA2_VAR) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_fFF_11 ((ARRAY)[i].arg_str, FUNC_NAME, (ARRAY)[i].arg, \
+ (ARRAY)[i].exceptions, \
+ EXTRA1_VAR, (ARRAY)[i].extra1_test, \
+ (ARRAY)[i].extra1_expected, \
+ EXTRA2_VAR, \
+ (ARRAY)[i].extra2_test, \
+ (ARRAY)[i].extra2_expected); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
+
+/* Start and end the tests for a given function. */
+#define START(FUNC) \
+ const char *this_func = #FUNC; \
+ init_max_error ()
+#define END \
+ print_max_error (this_func)
+#define END_COMPLEX \
+ print_complex_max_error (this_func)
/* This is to prevent messages from the SVID libm emulation. */
int
@@ -794,5717 +1503,7829 @@ matherr (struct exception *x __attribute__ ((unused)))
Please keep them alphabetically sorted!
****************************************************************************/
+static const struct test_f_f_data acos_test_data[] =
+ {
+ TEST_f_f (acos, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acos, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acos, qnan_value, qnan_value),
+
+ /* |x| > 1: */
+ TEST_f_f (acos, 1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acos, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acos, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acos, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+
+ TEST_f_f (acos, 0, M_PI_2l),
+ TEST_f_f (acos, minus_zero, M_PI_2l),
+ TEST_f_f (acos, 1, 0),
+ TEST_f_f (acos, -1, M_PIl),
+ TEST_f_f (acos, 0.5, M_PI_6l*2.0),
+ TEST_f_f (acos, -0.5, M_PI_6l*4.0),
+ TEST_f_f (acos, 0.75L, 0.722734247813415611178377352641333362L),
+ TEST_f_f (acos, 2e-17L, 1.57079632679489659923132169163975144L),
+ TEST_f_f (acos, 0.0625L, 1.50825556499840522843072005474337068L),
+ TEST_f_f (acos, 0x0.ffffffp0L, 3.4526698471620358760324948263873649728491e-4L),
+ TEST_f_f (acos, -0x0.ffffffp0L, 3.1412473866050770348750401337968641476999L),
+#ifndef TEST_FLOAT
+ TEST_f_f (acos, 0x0.ffffffff8p0L, 1.5258789062648029736620564947844627548516e-5L),
+ TEST_f_f (acos, -0x0.ffffffff8p0L, 3.1415773948007305904329067627145550395696L),
+ TEST_f_f (acos, 0x0.ffffffffffffp0L, 8.4293697021788088529885473244391795127130e-8L),
+ TEST_f_f (acos, -0x0.ffffffffffffp0L, 3.1415925692960962166745548533940296398054L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_f_f (acos, 0x0.ffffffffffffffffp0L, 3.2927225399135962333718255320079907245059e-10L),
+ TEST_f_f (acos, -0x0.ffffffffffffffffp0L, 3.1415926532605209844712837599423203309964L),
+#endif
+ };
+
static void
acos_test (void)
{
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acos);
-
- TEST_f_f (acos, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, qnan_value, qnan_value);
-
- /* |x| > 1: */
- TEST_f_f (acos, 1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, -1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acos, -max_value, qnan_value, INVALID_EXCEPTION);
-
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- TEST_f_f (acos, 0.75L, 0.722734247813415611178377352641333362L);
- TEST_f_f (acos, 2e-17L, 1.57079632679489659923132169163975144L);
- TEST_f_f (acos, 0.0625L, 1.50825556499840522843072005474337068L);
- TEST_f_f (acos, 0x0.ffffffp0L, 3.4526698471620358760324948263873649728491e-4L);
- TEST_f_f (acos, -0x0.ffffffp0L, 3.1412473866050770348750401337968641476999L);
-#ifndef TEST_FLOAT
- TEST_f_f (acos, 0x0.ffffffff8p0L, 1.5258789062648029736620564947844627548516e-5L);
- TEST_f_f (acos, -0x0.ffffffff8p0L, 3.1415773948007305904329067627145550395696L);
- TEST_f_f (acos, 0x0.ffffffffffffp0L, 8.4293697021788088529885473244391795127130e-8L);
- TEST_f_f (acos, -0x0.ffffffffffffp0L, 3.1415925692960962166745548533940296398054L);
-#endif
-#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_f_f (acos, 0x0.ffffffffffffffffp0L, 3.2927225399135962333718255320079907245059e-10L);
- TEST_f_f (acos, -0x0.ffffffffffffffffp0L, 3.1415926532605209844712837599423203309964L);
-#endif
- END (acos);
+ RUN_TEST_LOOP_f_f (acos, acos_test_data, );
+ END;
}
+static const struct test_f_f_data acos_tonearest_test_data[] =
+ {
+ TEST_f_f (acos, 0, M_PI_2l),
+ TEST_f_f (acos, minus_zero, M_PI_2l),
+ TEST_f_f (acos, 1, 0),
+ TEST_f_f (acos, -1, M_PIl),
+ TEST_f_f (acos, 0.5, M_PI_6l*2.0),
+ TEST_f_f (acos, -0.5, M_PI_6l*4.0),
+ };
+
static void
acos_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acos_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- }
-
- fesetround (save_round_mode);
-
- END (acos_tonearest);
+ RUN_TEST_LOOP_f_f (acos, acos_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data acos_towardzero_test_data[] =
+ {
+ TEST_f_f (acos, 0, M_PI_2l),
+ TEST_f_f (acos, minus_zero, M_PI_2l),
+ TEST_f_f (acos, 1, 0),
+ TEST_f_f (acos, -1, M_PIl),
+ TEST_f_f (acos, 0.5, M_PI_6l*2.0),
+ TEST_f_f (acos, -0.5, M_PI_6l*4.0),
+ };
+
static void
acos_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acos_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- }
-
- fesetround (save_round_mode);
-
- END (acos_towardzero);
+ RUN_TEST_LOOP_f_f (acos, acos_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data acos_downward_test_data[] =
+ {
+ TEST_f_f (acos, 0, M_PI_2l),
+ TEST_f_f (acos, minus_zero, M_PI_2l),
+ TEST_f_f (acos, 1, 0),
+ TEST_f_f (acos, -1, M_PIl),
+ TEST_f_f (acos, 0.5, M_PI_6l*2.0),
+ TEST_f_f (acos, -0.5, M_PI_6l*4.0),
+ };
+
static void
acos_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acos_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- }
-
- fesetround (save_round_mode);
-
- END (acos_downward);
+ RUN_TEST_LOOP_f_f (acos, acos_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data acos_upward_test_data[] =
+ {
+ TEST_f_f (acos, 0, M_PI_2l),
+ TEST_f_f (acos, minus_zero, M_PI_2l),
+ TEST_f_f (acos, 1, 0),
+ TEST_f_f (acos, -1, M_PIl),
+ TEST_f_f (acos, 0.5, M_PI_6l*2.0),
+ TEST_f_f (acos, -0.5, M_PI_6l*4.0),
+ };
+
static void
acos_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(acos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acos_upward);
+ RUN_TEST_LOOP_f_f (acos, acos_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (acos, 0, M_PI_2l);
- TEST_f_f (acos, minus_zero, M_PI_2l);
- TEST_f_f (acos, 1, 0);
- TEST_f_f (acos, -1, M_PIl);
- TEST_f_f (acos, 0.5, M_PI_6l*2.0);
- TEST_f_f (acos, -0.5, M_PI_6l*4.0);
- }
+static const struct test_f_f_data acosh_test_data[] =
+ {
+ TEST_f_f (acosh, plus_infty, plus_infty),
+ TEST_f_f (acosh, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, qnan_value, qnan_value),
- fesetround (save_round_mode);
+ /* x < 1: */
+ TEST_f_f (acosh, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
- END (acos_upward);
-}
+ TEST_f_f (acosh, 1, 0),
+ TEST_f_f (acosh, 7, 2.63391579384963341725009269461593689L),
+ };
static void
acosh_test (void)
{
- errno = 0;
- FUNC(acosh) (7);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (acosh);
-
- TEST_f_f (acosh, plus_infty, plus_infty);
- TEST_f_f (acosh, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acosh, qnan_value, qnan_value);
-
- /* x < 1: */
- TEST_f_f (acosh, -1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (acosh, -max_value, qnan_value, INVALID_EXCEPTION);
-
- TEST_f_f (acosh, 1, 0);
- TEST_f_f (acosh, 7, 2.63391579384963341725009269461593689L);
-
- END (acosh);
-}
+ RUN_TEST_LOOP_f_f (acosh, acosh_test_data, );
+ END;
+}
+
+static const struct test_f_f_data asin_test_data[] =
+ {
+ TEST_f_f (asin, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (asin, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (asin, qnan_value, qnan_value),
+
+ /* asin x == qNaN plus invalid exception for |x| > 1. */
+ TEST_f_f (asin, 1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (asin, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (asin, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (asin, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+
+ TEST_f_f (asin, 0, 0),
+ TEST_f_f (asin, minus_zero, minus_zero),
+ TEST_f_f (asin, 0.5, M_PI_6l),
+ TEST_f_f (asin, -0.5, -M_PI_6l),
+ TEST_f_f (asin, 1.0, M_PI_2l),
+ TEST_f_f (asin, -1.0, -M_PI_2l),
+ TEST_f_f (asin, 0.75L, 0.848062078981481008052944338998418080L),
+ TEST_f_f (asin, 0x0.ffffffp0L, 1.5704510598101804156437184421571127056013L),
+ TEST_f_f (asin, -0x0.ffffffp0L, -1.5704510598101804156437184421571127056013L),
+#ifndef TEST_FLOAT
+ TEST_f_f (asin, 0x0.ffffffff8p0L, 1.5707810680058339712015850710748035974710L),
+ TEST_f_f (asin, -0x0.ffffffff8p0L, -1.5707810680058339712015850710748035974710L),
+ TEST_f_f (asin, 0x0.ffffffffffffp0L, 1.5707962425011995974432331617542781977068L),
+ TEST_f_f (asin, -0x0.ffffffffffffp0L, -1.5707962425011995974432331617542781977068L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_f_f (asin, 0x0.ffffffffffffffffp0L, 1.5707963264656243652399620683025688888978L),
+ TEST_f_f (asin, -0x0.ffffffffffffffffp0L, -1.5707963264656243652399620683025688888978L),
+#endif
+ };
static void
asin_test (void)
{
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (asin);
-
- TEST_f_f (asin, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, qnan_value, qnan_value);
-
- /* asin x == qNaN plus invalid exception for |x| > 1. */
- TEST_f_f (asin, 1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, -1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (asin, -max_value, qnan_value, INVALID_EXCEPTION);
-
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- TEST_f_f (asin, 0.75L, 0.848062078981481008052944338998418080L);
- TEST_f_f (asin, 0x0.ffffffp0L, 1.5704510598101804156437184421571127056013L);
- TEST_f_f (asin, -0x0.ffffffp0L, -1.5704510598101804156437184421571127056013L);
-#ifndef TEST_FLOAT
- TEST_f_f (asin, 0x0.ffffffff8p0L, 1.5707810680058339712015850710748035974710L);
- TEST_f_f (asin, -0x0.ffffffff8p0L, -1.5707810680058339712015850710748035974710L);
- TEST_f_f (asin, 0x0.ffffffffffffp0L, 1.5707962425011995974432331617542781977068L);
- TEST_f_f (asin, -0x0.ffffffffffffp0L, -1.5707962425011995974432331617542781977068L);
-#endif
-#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_f_f (asin, 0x0.ffffffffffffffffp0L, 1.5707963264656243652399620683025688888978L);
- TEST_f_f (asin, -0x0.ffffffffffffffffp0L, -1.5707963264656243652399620683025688888978L);
-#endif
-
- END (asin);
+ RUN_TEST_LOOP_f_f (asin, asin_test_data, );
+ END;
}
+static const struct test_f_f_data asin_tonearest_test_data[] =
+ {
+ TEST_f_f (asin, 0, 0),
+ TEST_f_f (asin, minus_zero, minus_zero),
+ TEST_f_f (asin, 0.5, M_PI_6l),
+ TEST_f_f (asin, -0.5, -M_PI_6l),
+ TEST_f_f (asin, 1.0, M_PI_2l),
+ TEST_f_f (asin, -1.0, -M_PI_2l),
+ };
+
static void
asin_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (asin_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- }
-
- fesetround (save_round_mode);
-
- END (asin_tonearest);
+ RUN_TEST_LOOP_f_f (asin, asin_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data asin_towardzero_test_data[] =
+ {
+ TEST_f_f (asin, 0, 0),
+ TEST_f_f (asin, minus_zero, minus_zero),
+ TEST_f_f (asin, 0.5, M_PI_6l),
+ TEST_f_f (asin, -0.5, -M_PI_6l),
+ TEST_f_f (asin, 1.0, M_PI_2l),
+ TEST_f_f (asin, -1.0, -M_PI_2l),
+ };
+
static void
asin_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (asin_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- }
-
- fesetround (save_round_mode);
-
- END (asin_towardzero);
+ RUN_TEST_LOOP_f_f (asin, asin_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data asin_downward_test_data[] =
+ {
+ TEST_f_f (asin, 0, 0),
+ TEST_f_f (asin, minus_zero, minus_zero),
+ TEST_f_f (asin, 0.5, M_PI_6l),
+ TEST_f_f (asin, -0.5, -M_PI_6l),
+ TEST_f_f (asin, 1.0, M_PI_2l),
+ TEST_f_f (asin, -1.0, -M_PI_2l),
+ };
+
static void
asin_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (asin_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- }
-
- fesetround (save_round_mode);
-
- END (asin_downward);
+ RUN_TEST_LOOP_f_f (asin, asin_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data asin_upward_test_data[] =
+ {
+ TEST_f_f (asin, 0, 0),
+ TEST_f_f (asin, minus_zero, minus_zero),
+ TEST_f_f (asin, 0.5, M_PI_6l),
+ TEST_f_f (asin, -0.5, -M_PI_6l),
+ TEST_f_f (asin, 1.0, M_PI_2l),
+ TEST_f_f (asin, -1.0, -M_PI_2l),
+ };
+
static void
asin_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(asin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (asin_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (asin, 0, 0);
- TEST_f_f (asin, minus_zero, minus_zero);
- TEST_f_f (asin, 0.5, M_PI_6l);
- TEST_f_f (asin, -0.5, -M_PI_6l);
- TEST_f_f (asin, 1.0, M_PI_2l);
- TEST_f_f (asin, -1.0, -M_PI_2l);
- }
-
- fesetround (save_round_mode);
-
- END (asin_upward);
+ RUN_TEST_LOOP_f_f (asin, asin_upward_test_data, FE_UPWARD);
+ END;
}
-static void
-asinh_test (void)
-{
- errno = 0;
- FUNC(asinh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (asinh);
-
- TEST_f_f (asinh, 0, 0);
- TEST_f_f (asinh, minus_zero, minus_zero);
+static const struct test_f_f_data asinh_test_data[] =
+ {
+ TEST_f_f (asinh, 0, 0),
+ TEST_f_f (asinh, minus_zero, minus_zero),
#ifndef TEST_INLINE
- TEST_f_f (asinh, plus_infty, plus_infty);
- TEST_f_f (asinh, minus_infty, minus_infty);
+ TEST_f_f (asinh, plus_infty, plus_infty),
+ TEST_f_f (asinh, minus_infty, minus_infty),
#endif
- TEST_f_f (asinh, qnan_value, qnan_value);
- TEST_f_f (asinh, 0.75L, 0.693147180559945309417232121458176568L);
-
- END (asinh);
-}
+ TEST_f_f (asinh, qnan_value, qnan_value),
+ TEST_f_f (asinh, 0.75L, 0.693147180559945309417232121458176568L),
+ };
static void
-atan_test (void)
+asinh_test (void)
{
- errno = 0;
- FUNC(atan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atan);
+ START (asinh);
+ RUN_TEST_LOOP_f_f (asinh, asinh_test_data, );
+ END;
+}
- TEST_f_f (atan, 0, 0);
- TEST_f_f (atan, minus_zero, minus_zero);
+static const struct test_f_f_data atan_test_data[] =
+ {
+ TEST_f_f (atan, 0, 0),
+ TEST_f_f (atan, minus_zero, minus_zero),
- TEST_f_f (atan, plus_infty, M_PI_2l);
- TEST_f_f (atan, minus_infty, -M_PI_2l);
- TEST_f_f (atan, qnan_value, qnan_value);
- TEST_f_f (atan, max_value, M_PI_2l);
- TEST_f_f (atan, -max_value, -M_PI_2l);
+ TEST_f_f (atan, plus_infty, M_PI_2l),
+ TEST_f_f (atan, minus_infty, -M_PI_2l),
+ TEST_f_f (atan, qnan_value, qnan_value),
+ TEST_f_f (atan, max_value, M_PI_2l),
+ TEST_f_f (atan, -max_value, -M_PI_2l),
- TEST_f_f (atan, 1, M_PI_4l);
- TEST_f_f (atan, -1, -M_PI_4l);
+ TEST_f_f (atan, 1, M_PI_4l),
+ TEST_f_f (atan, -1, -M_PI_4l),
- TEST_f_f (atan, 0.75L, 0.643501108793284386802809228717322638L);
+ TEST_f_f (atan, 0.75L, 0.643501108793284386802809228717322638L),
- TEST_f_f (atan, 0x1p-100L, 0x1p-100L);
+ TEST_f_f (atan, 0x1p-100L, 0x1p-100L),
#ifndef TEST_FLOAT
- TEST_f_f (atan, 0x1p-600L, 0x1p-600L);
+ TEST_f_f (atan, 0x1p-600L, 0x1p-600L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_f_f (atan, 0x1p-10000L, 0x1p-10000L);
+ TEST_f_f (atan, 0x1p-10000L, 0x1p-10000L),
#endif
-
- END (atan);
-}
-
-
+ };
static void
-atanh_test (void)
+atan_test (void)
{
- errno = 0;
- FUNC(atanh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atanh);
+ START (atan);
+ RUN_TEST_LOOP_f_f (atan, atan_test_data, );
+ END;
+}
- TEST_f_f (atanh, 0, 0);
- TEST_f_f (atanh, minus_zero, minus_zero);
- TEST_f_f (atanh, 1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (atanh, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (atanh, qnan_value, qnan_value);
+static const struct test_f_f_data atanh_test_data[] =
+ {
+ TEST_f_f (atanh, 0, 0),
+ TEST_f_f (atanh, minus_zero, minus_zero),
- /* atanh (x) == qNaN plus invalid exception if |x| > 1. */
- TEST_f_f (atanh, 1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (atanh, -1.125L, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION);
+ TEST_f_f (atanh, 1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (atanh, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (atanh, qnan_value, qnan_value),
- TEST_f_f (atanh, 0.75L, 0.972955074527656652552676371721589865L);
+ /* atanh (x) == qNaN plus invalid exception if |x| > 1. */
+ TEST_f_f (atanh, 1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (atanh, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
- END (atanh);
-}
+ TEST_f_f (atanh, 0.75L, 0.972955074527656652552676371721589865L),
+ };
static void
-atan2_test (void)
+atanh_test (void)
{
- errno = 0;
- FUNC(atan2) (-0, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (atan2);
+ START (atanh);
+ RUN_TEST_LOOP_f_f (atanh, atanh_test_data, );
+ END;
+}
- /* atan2 (0,x) == 0 for x > 0. */
- TEST_ff_f (atan2, 0, 1, 0);
+static const struct test_ff_f_data atan2_test_data[] =
+ {
+ /* atan2 (0,x) == 0 for x > 0. */
+ TEST_ff_f (atan2, 0, 1, 0),
- /* atan2 (-0,x) == -0 for x > 0. */
- TEST_ff_f (atan2, minus_zero, 1, minus_zero);
+ /* atan2 (-0,x) == -0 for x > 0. */
+ TEST_ff_f (atan2, minus_zero, 1, minus_zero),
- TEST_ff_f (atan2, 0, 0, 0);
- TEST_ff_f (atan2, minus_zero, 0, minus_zero);
+ TEST_ff_f (atan2, 0, 0, 0),
+ TEST_ff_f (atan2, minus_zero, 0, minus_zero),
- /* atan2 (+0,x) == +pi for x < 0. */
- TEST_ff_f (atan2, 0, -1, M_PIl);
+ /* atan2 (+0,x) == +pi for x < 0. */
+ TEST_ff_f (atan2, 0, -1, M_PIl),
- /* atan2 (-0,x) == -pi for x < 0. */
- TEST_ff_f (atan2, minus_zero, -1, -M_PIl);
+ /* atan2 (-0,x) == -pi for x < 0. */
+ TEST_ff_f (atan2, minus_zero, -1, -M_PIl),
- TEST_ff_f (atan2, 0, minus_zero, M_PIl);
- TEST_ff_f (atan2, minus_zero, minus_zero, -M_PIl);
+ TEST_ff_f (atan2, 0, minus_zero, M_PIl),
+ TEST_ff_f (atan2, minus_zero, minus_zero, -M_PIl),
- /* atan2 (y,+0) == pi/2 for y > 0. */
- TEST_ff_f (atan2, 1, 0, M_PI_2l);
+ /* atan2 (y,+0) == pi/2 for y > 0. */
+ TEST_ff_f (atan2, 1, 0, M_PI_2l),
- /* atan2 (y,-0) == pi/2 for y > 0. */
- TEST_ff_f (atan2, 1, minus_zero, M_PI_2l);
+ /* atan2 (y,-0) == pi/2 for y > 0. */
+ TEST_ff_f (atan2, 1, minus_zero, M_PI_2l),
- /* atan2 (y,+0) == -pi/2 for y < 0. */
- TEST_ff_f (atan2, -1, 0, -M_PI_2l);
+ /* atan2 (y,+0) == -pi/2 for y < 0. */
+ TEST_ff_f (atan2, -1, 0, -M_PI_2l),
- /* atan2 (y,-0) == -pi/2 for y < 0. */
- TEST_ff_f (atan2, -1, minus_zero, -M_PI_2l);
+ /* atan2 (y,-0) == -pi/2 for y < 0. */
+ TEST_ff_f (atan2, -1, minus_zero, -M_PI_2l),
- /* atan2 (y,inf) == +0 for finite y > 0. */
- TEST_ff_f (atan2, 1, plus_infty, 0);
+ /* atan2 (y,inf) == +0 for finite y > 0. */
+ TEST_ff_f (atan2, 1, plus_infty, 0),
- /* atan2 (y,inf) == -0 for finite y < 0. */
- TEST_ff_f (atan2, -1, plus_infty, minus_zero);
+ /* atan2 (y,inf) == -0 for finite y < 0. */
+ TEST_ff_f (atan2, -1, plus_infty, minus_zero),
- /* atan2(+inf, x) == pi/2 for finite x. */
- TEST_ff_f (atan2, plus_infty, -1, M_PI_2l);
+ /* atan2(+inf, x) == pi/2 for finite x. */
+ TEST_ff_f (atan2, plus_infty, -1, M_PI_2l),
- /* atan2(-inf, x) == -pi/2 for finite x. */
- TEST_ff_f (atan2, minus_infty, 1, -M_PI_2l);
+ /* atan2(-inf, x) == -pi/2 for finite x. */
+ TEST_ff_f (atan2, minus_infty, 1, -M_PI_2l),
- /* atan2 (y,-inf) == +pi for finite y > 0. */
- TEST_ff_f (atan2, 1, minus_infty, M_PIl);
+ /* atan2 (y,-inf) == +pi for finite y > 0. */
+ TEST_ff_f (atan2, 1, minus_infty, M_PIl),
- /* atan2 (y,-inf) == -pi for finite y < 0. */
- TEST_ff_f (atan2, -1, minus_infty, -M_PIl);
+ /* atan2 (y,-inf) == -pi for finite y < 0. */
+ TEST_ff_f (atan2, -1, minus_infty, -M_PIl),
- TEST_ff_f (atan2, plus_infty, plus_infty, M_PI_4l);
- TEST_ff_f (atan2, minus_infty, plus_infty, -M_PI_4l);
- TEST_ff_f (atan2, plus_infty, minus_infty, M_PI_34l);
- TEST_ff_f (atan2, minus_infty, minus_infty, -M_PI_34l);
- TEST_ff_f (atan2, qnan_value, qnan_value, qnan_value);
+ TEST_ff_f (atan2, plus_infty, plus_infty, M_PI_4l),
+ TEST_ff_f (atan2, minus_infty, plus_infty, -M_PI_4l),
+ TEST_ff_f (atan2, plus_infty, minus_infty, M_PI_34l),
+ TEST_ff_f (atan2, minus_infty, minus_infty, -M_PI_34l),
+ TEST_ff_f (atan2, qnan_value, qnan_value, qnan_value),
- TEST_ff_f (atan2, max_value, max_value, M_PI_4l);
+ TEST_ff_f (atan2, max_value, max_value, M_PI_4l),
- TEST_ff_f (atan2, max_value, min_value, M_PI_2l);
- TEST_ff_f (atan2, -max_value, -min_value, -M_PI_2l);
+ TEST_ff_f (atan2, max_value, min_value, M_PI_2l),
+ TEST_ff_f (atan2, -max_value, -min_value, -M_PI_2l),
- TEST_ff_f (atan2, 0.75L, 1, 0.643501108793284386802809228717322638L);
- TEST_ff_f (atan2, -0.75L, 1.0L, -0.643501108793284386802809228717322638L);
- TEST_ff_f (atan2, 0.75L, -1.0L, 2.49809154479650885165983415456218025L);
- TEST_ff_f (atan2, -0.75L, -1.0L, -2.49809154479650885165983415456218025L);
- TEST_ff_f (atan2, 0.390625L, .00029L, 1.57005392693128974780151246612928941L);
- TEST_ff_f (atan2, 1.390625L, 0.9296875L, 0.981498387184244311516296577615519772L);
+ TEST_ff_f (atan2, 0.75L, 1, 0.643501108793284386802809228717322638L),
+ TEST_ff_f (atan2, -0.75L, 1.0L, -0.643501108793284386802809228717322638L),
+ TEST_ff_f (atan2, 0.75L, -1.0L, 2.49809154479650885165983415456218025L),
+ TEST_ff_f (atan2, -0.75L, -1.0L, -2.49809154479650885165983415456218025L),
+ TEST_ff_f (atan2, 0.390625L, .00029L, 1.57005392693128974780151246612928941L),
+ TEST_ff_f (atan2, 1.390625L, 0.9296875L, 0.981498387184244311516296577615519772L),
- TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994379639112L);
+ TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994379639112L),
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_ff_f (atan2, 0x1.00000000000001p0L, 0x1.00000000000001p0L, M_PI_4l);
+ TEST_ff_f (atan2, 0x1.00000000000001p0L, 0x1.00000000000001p0L, M_PI_4l),
#endif
+ };
- END (atan2);
-}
+static void
+atan2_test (void)
+{
+ START (atan2);
+ RUN_TEST_LOOP_ff_f (atan2, atan2_test_data, );
+ END;
+}
+
+static const struct test_c_f_data cabs_test_data[] =
+ {
+ /* cabs (x + iy) is specified as hypot (x,y) */
+
+ /* cabs (+inf + i x) == +inf. */
+ TEST_c_f (cabs, plus_infty, 1.0, plus_infty),
+ /* cabs (-inf + i x) == +inf. */
+ TEST_c_f (cabs, minus_infty, 1.0, plus_infty),
+
+ TEST_c_f (cabs, minus_infty, qnan_value, plus_infty),
+ TEST_c_f (cabs, minus_infty, qnan_value, plus_infty),
+
+ TEST_c_f (cabs, qnan_value, qnan_value, qnan_value),
+
+ /* cabs (x,y) == cabs (y,x). */
+ TEST_c_f (cabs, 0.75L, 12.390625L, 12.4133028598606664302388810868156657L),
+ /* cabs (x,y) == cabs (-x,y). */
+ TEST_c_f (cabs, -12.390625L, 0.75L, 12.4133028598606664302388810868156657L),
+ /* cabs (x,y) == cabs (-y,x). */
+ TEST_c_f (cabs, -0.75L, 12.390625L, 12.4133028598606664302388810868156657L),
+ /* cabs (x,y) == cabs (-x,-y). */
+ TEST_c_f (cabs, -12.390625L, -0.75L, 12.4133028598606664302388810868156657L),
+ /* cabs (x,y) == cabs (-y,-x). */
+ TEST_c_f (cabs, -0.75L, -12.390625L, 12.4133028598606664302388810868156657L),
+ /* cabs (x,0) == fabs (x). */
+ TEST_c_f (cabs, -0.75L, 0, 0.75L),
+ TEST_c_f (cabs, 0.75L, 0, 0.75L),
+ TEST_c_f (cabs, -1.0L, 0, 1.0L),
+ TEST_c_f (cabs, 1.0L, 0, 1.0L),
+ TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L),
+ TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L),
+
+ TEST_c_f (cabs, 0.75L, 1.25L, 1.45773797371132511771853821938639577L),
+ };
static void
cabs_test (void)
{
- errno = 0;
- FUNC(cabs) (BUILD_COMPLEX (0.7L, 12.4L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cabs);
+ RUN_TEST_LOOP_c_f (cabs, cabs_test_data, );
+ END;
+}
+
+
+static const struct test_c_c_data cacos_test_data[] =
+ {
+ TEST_c_c (cacos, 0, 0, M_PI_2l, minus_zero),
+ TEST_c_c (cacos, minus_zero, 0, M_PI_2l, minus_zero),
+ TEST_c_c (cacos, minus_zero, minus_zero, M_PI_2l, 0.0),
+ TEST_c_c (cacos, 0, minus_zero, M_PI_2l, 0.0),
+
+ TEST_c_c (cacos, minus_infty, plus_infty, M_PI_34l, minus_infty),
+ TEST_c_c (cacos, minus_infty, minus_infty, M_PI_34l, plus_infty),
+
+ TEST_c_c (cacos, plus_infty, plus_infty, M_PI_4l, minus_infty),
+ TEST_c_c (cacos, plus_infty, minus_infty, M_PI_4l, plus_infty),
+
+ TEST_c_c (cacos, -10.0, plus_infty, M_PI_2l, minus_infty),
+ TEST_c_c (cacos, -10.0, minus_infty, M_PI_2l, plus_infty),
+ TEST_c_c (cacos, 0, plus_infty, M_PI_2l, minus_infty),
+ TEST_c_c (cacos, 0, minus_infty, M_PI_2l, plus_infty),
+ TEST_c_c (cacos, 0.1L, plus_infty, M_PI_2l, minus_infty),
+ TEST_c_c (cacos, 0.1L, minus_infty, M_PI_2l, plus_infty),
+
+ TEST_c_c (cacos, minus_infty, 0, M_PIl, minus_infty),
+ TEST_c_c (cacos, minus_infty, minus_zero, M_PIl, plus_infty),
+ TEST_c_c (cacos, minus_infty, 100, M_PIl, minus_infty),
+ TEST_c_c (cacos, minus_infty, -100, M_PIl, plus_infty),
+
+ TEST_c_c (cacos, plus_infty, 0, 0.0, minus_infty),
+ TEST_c_c (cacos, plus_infty, minus_zero, 0.0, plus_infty),
+ TEST_c_c (cacos, plus_infty, 0.5, 0.0, minus_infty),
+ TEST_c_c (cacos, plus_infty, -0.5, 0.0, plus_infty),
+
+ TEST_c_c (cacos, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (cacos, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (cacos, 0, qnan_value, M_PI_2l, qnan_value),
+ TEST_c_c (cacos, minus_zero, qnan_value, M_PI_2l, qnan_value),
+
+ TEST_c_c (cacos, qnan_value, plus_infty, qnan_value, minus_infty),
+ TEST_c_c (cacos, qnan_value, minus_infty, qnan_value, plus_infty),
+
+ TEST_c_c (cacos, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cacos, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (cacos, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cacos, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (cacos, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (cacos, plus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, minus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, plus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L),
+ TEST_c_c (cacos, minus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L),
+ TEST_c_c (cacos, plus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L),
+ TEST_c_c (cacos, minus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L),
+ TEST_c_c (cacos, plus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L),
+ TEST_c_c (cacos, minus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L),
+ TEST_c_c (cacos, plus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L),
+ TEST_c_c (cacos, minus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L),
+ TEST_c_c (cacos, plus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, minus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L),
+
+ TEST_c_c (cacos, -1.5L, plus_zero, M_PIl, -0.9624236501192068949955178268487368462704L),
+ TEST_c_c (cacos, -1.5L, minus_zero, M_PIl, 0.9624236501192068949955178268487368462704L),
+ TEST_c_c (cacos, -1.0L, plus_zero, M_PIl, minus_zero),
+ TEST_c_c (cacos, -1.0L, minus_zero, M_PIl, plus_zero),
+ TEST_c_c (cacos, -0.5L, plus_zero, 2.094395102393195492308428922186335256131L, minus_zero),
+ TEST_c_c (cacos, -0.5L, minus_zero, 2.094395102393195492308428922186335256131L, plus_zero),
+ TEST_c_c (cacos, 0.5L, plus_zero, 1.047197551196597746154214461093167628066L, minus_zero),
+ TEST_c_c (cacos, 0.5L, minus_zero, 1.047197551196597746154214461093167628066L, plus_zero),
+ TEST_c_c (cacos, 1.0L, plus_zero, plus_zero, minus_zero),
+ TEST_c_c (cacos, 1.0L, minus_zero, plus_zero, plus_zero),
+ TEST_c_c (cacos, 1.5L, plus_zero, plus_zero, -0.9624236501192068949955178268487368462704L),
+ TEST_c_c (cacos, 1.5L, minus_zero, plus_zero, 0.9624236501192068949955178268487368462704L),
+
+ TEST_c_c (cacos, 0x1p50L, 1.0L, 8.881784197001252323389053344727730248720e-16L, -3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (cacos, 0x1p50L, -1.0L, 8.881784197001252323389053344727730248720e-16L, 3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (cacos, -0x1p50L, 1.0L, 3.141592653589792350284223683154270545292L, -3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (cacos, -0x1p50L, -1.0L, 3.141592653589792350284223683154270545292L, 3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (cacos, 1.0L, 0x1p50L, 1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (cacos, -1.0L, 0x1p50L, 1.570796326794897507409741391764983781004L, -3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (cacos, 1.0L, -0x1p50L, 1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (cacos, -1.0L, -0x1p50L, 1.570796326794897507409741391764983781004L, 3.535050620855721078027883819436759661753e1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1p500L, 1.0L, 3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, 0x1p500L, -1.0L, 3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, -0x1p500L, 1.0L, 3.141592653589793238462643383279502884197L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, -0x1p500L, -1.0L, 3.141592653589793238462643383279502884197L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, 1.0L, 0x1p500L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, -1.0L, 0x1p500L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, 1.0L, -0x1p500L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (cacos, -1.0L, -0x1p500L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (cacos, 0x1p5000L, 1.0L, 7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, 0x1p5000L, -1.0L, 7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, -0x1p5000L, 1.0L, 3.141592653589793238462643383279502884197L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, -0x1p5000L, -1.0L, 3.141592653589793238462643383279502884197L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, 1.0L, 0x1p5000L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, -1.0L, 0x1p5000L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, 1.0L, -0x1p5000L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (cacos, -1.0L, -0x1p5000L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L),
+#endif
- /* cabs (x + iy) is specified as hypot (x,y) */
-
- /* cabs (+inf + i x) == +inf. */
- TEST_c_f (cabs, plus_infty, 1.0, plus_infty);
- /* cabs (-inf + i x) == +inf. */
- TEST_c_f (cabs, minus_infty, 1.0, plus_infty);
-
- TEST_c_f (cabs, minus_infty, qnan_value, plus_infty);
- TEST_c_f (cabs, minus_infty, qnan_value, plus_infty);
-
- TEST_c_f (cabs, qnan_value, qnan_value, qnan_value);
-
- /* cabs (x,y) == cabs (y,x). */
- TEST_c_f (cabs, 0.75L, 12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-x,y). */
- TEST_c_f (cabs, -12.390625L, 0.75L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-y,x). */
- TEST_c_f (cabs, -0.75L, 12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-x,-y). */
- TEST_c_f (cabs, -12.390625L, -0.75L, 12.4133028598606664302388810868156657L);
- /* cabs (x,y) == cabs (-y,-x). */
- TEST_c_f (cabs, -0.75L, -12.390625L, 12.4133028598606664302388810868156657L);
- /* cabs (x,0) == fabs (x). */
- TEST_c_f (cabs, -0.75L, 0, 0.75L);
- TEST_c_f (cabs, 0.75L, 0, 0.75L);
- TEST_c_f (cabs, -1.0L, 0, 1.0L);
- TEST_c_f (cabs, 1.0L, 0, 1.0L);
- TEST_c_f (cabs, -5.7e7L, 0, 5.7e7L);
- TEST_c_f (cabs, 5.7e7L, 0, 5.7e7L);
-
- TEST_c_f (cabs, 0.75L, 1.25L, 1.45773797371132511771853821938639577L);
-
- END (cabs);
-}
+ TEST_c_c (cacos, 0x1.fp127L, 0x1.fp127L, 7.853981633974483096156608458198757210493e-1L, -8.973081118419833726837456344608533993585e1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp1023L, 0x1.fp1023L, 7.853981633974483096156608458198757210493e-1L, -7.107906849659093345062145442726115449315e2L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (cacos, 0x1.fp16383L, 0x1.fp16383L, 7.853981633974483096156608458198757210493e-1L, -1.135753137836666928715489992987020363057e4L),
+#endif
+ TEST_c_c (cacos, 0x1.fp-129L, 1.5L, 1.570796326794896619231321691639751442097L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 0x1.fp-129L, -1.5L, 1.570796326794896619231321691639751442097L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-129L, 1.5L, 1.570796326794896619231321691639751442100L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-129L, -1.5L, 1.570796326794896619231321691639751442100L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 1.5L, 0x1.fp-129L, 2.546345110742945032959687790021055102355e-39L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -1.5L, 0x1.fp-129L, 3.141592653589793238462643383279502884195L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (cacos, 1.5L, -0x1.fp-129L, 2.546345110742945032959687790021055102355e-39L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -1.5L, -0x1.fp-129L, 3.141592653589793238462643383279502884195L, 9.624236501192068949955178268487368462704e-1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1025L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 1.5L, 0x1.fp-1025L, 4.819934639999230680322935210539402497827e-309L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -1.5L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (cacos, 1.5L, -0x1.fp-1025L, 4.819934639999230680322935210539402497827e-309L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -1.5L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 9.624236501192068949955178268487368462704e-1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (cacos, 1.5L, 0x1.fp-16385L, 7.282957076134209141226696333885150260319e-4933L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -1.5L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (cacos, 1.5L, -0x1.fp-16385L, 7.282957076134209141226696333885150260319e-4933L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -1.5L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 9.624236501192068949955178268487368462704e-1L),
+#endif
+
+ TEST_c_c (cacos, 0.5L, 1.0L, 1.221357263937683325603909865564381489366L, -9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (cacos, 0.5L, -1.0L, 1.221357263937683325603909865564381489366L, 9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (cacos, -0.5L, 1.0L, 1.920235389652109912858733517715121394831L, -9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (cacos, -0.5L, -1.0L, 1.920235389652109912858733517715121394831L, 9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (cacos, 1.0L, 0.5L, 6.748888455860063801646649673121744318756e-1L, -7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (cacos, -1.0L, 0.5L, 2.466703808003786858297978415967328452322L, -7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (cacos, 1.0L, -0.5L, 6.748888455860063801646649673121744318756e-1L, 7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (cacos, -1.0L, -0.5L, 2.466703808003786858297978415967328452322L, 7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (cacos, 0.25L, 1.0L, 1.394493894017929688812643125003661339452L, -8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (cacos, 0.25L, -1.0L, 1.394493894017929688812643125003661339452L, 8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (cacos, -0.25L, 1.0L, 1.747098759571863549650000258275841544745L, -8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (cacos, -0.25L, -1.0L, 1.747098759571863549650000258275841544745L, 8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (cacos, 1.0L, 0.25L, 4.890443302710802929202843732146540079124e-1L, -5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (cacos, -1.0L, 0.25L, 2.652548323318712945542359010064848876285L, -5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (cacos, 1.0L, -0.25L, 4.890443302710802929202843732146540079124e-1L, 5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (cacos, -1.0L, -0.25L, 2.652548323318712945542359010064848876285L, 5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (cacos, 0x1.fp-10L, 1.0L, 1.569458417435338878318763342108699202986L, -8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (cacos, 0x1.fp-10L, -1.0L, 1.569458417435338878318763342108699202986L, 8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (cacos, -0x1.fp-10L, 1.0L, 1.572134236154454360143880041170803681211L, -8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (cacos, -0x1.fp-10L, -1.0L, 1.572134236154454360143880041170803681211L, 8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-10L, 4.349129763101882771258049954181971959031e-2L, -4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-10L, 3.098101355958774410750062883737683164607L, -4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-10L, 4.349129763101882771258049954181971959031e-2L, 4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-10L, 3.098101355958774410750062883737683164607L, 4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (cacos, 0x1.fp-30L, 1.0L, 1.570796325518966635014803151387033957091L, -8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (cacos, 0x1.fp-30L, -1.0L, 1.570796325518966635014803151387033957091L, 8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (cacos, -0x1.fp-30L, 1.0L, 1.570796328070826603447840231892468927106L, -8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (cacos, -0x1.fp-30L, -1.0L, 1.570796328070826603447840231892468927106L, 8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-30L, 4.247867097467650115899790787875186617316e-5L, -4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-30L, 3.141550174918818561961484385371624132331L, -4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-30L, 4.247867097467650115899790787875186617316e-5L, 4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-30L, 3.141550174918818561961484385371624132331L, 4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (cacos, 0x1.fp-100L, 1.0L, 1.570796326794896619231321691638670687364L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-100L, -1.0L, 1.570796326794896619231321691638670687364L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-100L, 1.0L, 1.570796326794896619231321691640832196834L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-100L, -1.0L, 1.570796326794896619231321691640832196834L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-100L, 1.236292038260260888664514866456887257525e-15L, -1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-100L, 3.141592653589792002170605123018614219682L, -1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-100L, 1.236292038260260888664514866456887257525e-15L, 1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-100L, 3.141592653589792002170605123018614219682L, 1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (cacos, 0x1.fp-129L, 1.0L, 1.570796326794896619231321691639751442097L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-129L, -1.0L, 1.570796326794896619231321691639751442097L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, 1.0L, 1.570796326794896619231321691639751442101L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, -1.0L, 1.570796326794896619231321691639751442101L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-129L, 5.335635276982233498398987585285818977930e-20L, -5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-129L, 3.141592653589793238409287030509680549213L, -5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-129L, 5.335635276982233498398987585285818977930e-20L, 5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-129L, 3.141592653589793238409287030509680549213L, 5.335635276982233498398987585285818977933e-20L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-1000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-1000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-1000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, -4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-1000L, 3.141592653589793238462643383279502884197L, -4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, 4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-1000L, 3.141592653589793238462643383279502884197L, 4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacos, 0x1.fp-1025L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, -7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, 7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 7.340879205566679497036857179189356754017e-155L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-10000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-10000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-10000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-10000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, -9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-10000L, 3.141592653589793238462643383279502884197L, -9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, 9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-10000L, 3.141592653589793238462643383279502884197L, 9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacos, 0x1.fp-16385L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (cacos, 1.0L, 0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, -9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (cacos, -1.0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (cacos, 1.0L, -0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, 9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (cacos, -1.0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 9.023632056840860275214893047597614177639e-2467L),
+#endif
+
+ TEST_c_c (cacos, 0x1p-23L, 0x1.000002p0L, 1.570796242501204621739026081991856762292L, -8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (cacos, 0x1p-23L, -0x1.000002p0L, 1.570796242501204621739026081991856762292L, 8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (cacos, -0x1p-23L, 0x1.000002p0L, 1.570796411088588616723617301287646121905L, -8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (cacos, -0x1p-23L, -0x1.000002p0L, 1.570796411088588616723617301287646121905L, 8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (cacos, 0x1.000002p0L, 0x1p-23L, 2.222118384408546368406374049167636760903e-4L, -5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, 0x1p-23L, 3.141370441751352383825802745874586120521L, -5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (cacos, 0x1.000002p0L, -0x1p-23L, 2.222118384408546368406374049167636760903e-4L, 5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, -0x1p-23L, 3.141370441751352383825802745874586120521L, 5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (cacos, 0x1.fp-129L, 0x1.000002p0L, 1.570796326794896619231321691639751442097L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, 0x1.fp-129L, -0x1.000002p0L, 1.570796326794896619231321691639751442097L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, 0x1.000002p0L, 1.570796326794896619231321691639751442101L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, -0x1.000002p0L, 1.570796326794896619231321691639751442101L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, 0x1.000002p0L, 0x1.fp-129L, 5.830451806317544230969669308596361881467e-36L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, 0x1.fp-129L, 3.141592653589793238462643383279502878367L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, 0x1.000002p0L, -0x1.fp-129L, 5.830451806317544230969669308596361881467e-36L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, -0x1.fp-129L, 3.141592653589793238462643383279502878367L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, 0.0L, 0x1.000002p0L, 1.570796326794896619231321691639751442099L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, 0.0L, -0x1.000002p0L, 1.570796326794896619231321691639751442099L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, -0.0L, 0x1.000002p0L, 1.570796326794896619231321691639751442099L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, -0.0L, -0x1.000002p0L, 1.570796326794896619231321691639751442099L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (cacos, 0x1.000002p0L, 0.0L, 0.0L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, 0.0L, 3.141592653589793238462643383279502884197L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, 0x1.000002p0L, -0.0L, 0.0L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (cacos, -0x1.000002p0L, -0.0L, 3.141592653589793238462643383279502884197L, 4.882812451493617206486388134172712975070e-4L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1p-52L, 0x1.0000000000001p0L, 1.570796326794896462222075823262262934288L, -8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (cacos, 0x1p-52L, -0x1.0000000000001p0L, 1.570796326794896462222075823262262934288L, 8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (cacos, -0x1p-52L, 0x1.0000000000001p0L, 1.570796326794896776240567560017239949909L, -8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (cacos, -0x1p-52L, -0x1.0000000000001p0L, 1.570796326794896776240567560017239949909L, 8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, 0x1p-52L, 9.590301705980041385828904092662391018164e-9L, -2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, 0x1p-52L, 3.141592643999491532482601997450598791535L, -2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, -0x1p-52L, 9.590301705980041385828904092662391018164e-9L, 2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, -0x1p-52L, 3.141592643999491532482601997450598791535L, 2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, 0x1.fp-1025L, 2.557178503953494342609835913586108008322e-301L, -2.107342425544701550354780375182800088393e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, -0x1.fp-1025L, 2.557178503953494342609835913586108008322e-301L, 2.107342425544701550354780375182800088393e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (cacos, 0.0L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, 0.0L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, -0.0L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, -0.0L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, 0.0L, 0.0L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, 0.0L, 3.141592653589793238462643383279502884197L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (cacos, 0x1.0000000000001p0L, -0.0L, 0.0L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (cacos, -0x1.0000000000001p0L, -0.0L, 3.141592653589793238462643383279502884197L, 2.107342425544701550354780375182800088393e-8L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (cacos, 0x1p-63L, 0x1.0000000000000002p0L, 1.570796326794896619154657020805582738031L, -8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (cacos, 0x1p-63L, -0x1.0000000000000002p0L, 1.570796326794896619154657020805582738031L, 8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (cacos, -0x1p-63L, 0x1.0000000000000002p0L, 1.570796326794896619307986362473920146166L, -8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (cacos, -0x1p-63L, -0x1.0000000000000002p0L, 1.570796326794896619307986362473920146166L, 8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, 0x1p-63L, 2.119177303101063432592523199680782317447e-10L, -5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, 0x1p-63L, 3.141592653377875508152537040020250564229L, -5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, -0x1p-63L, 2.119177303101063432592523199680782317447e-10L, 5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, -0x1p-63L, 3.141592653377875508152537040020250564229L, 5.116146586219826555037807251857670783420e-10L),
+# if LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, 0x1.fp-16385L, 1.748608650034385653922359120438227480943e-4923L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, -0x1.fp-16385L, 1.748608650034385653922359120438227480943e-4923L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 4.656612873077392578082927418388212703712e-10L),
+# endif
+ TEST_c_c (cacos, 0.0L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, 0.0L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, -0.0L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, -0.0L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, 0.0L, 0.0L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, 0.0L, 3.141592653589793238462643383279502884197L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, 0x1.0000000000000002p0L, -0.0L, 0.0L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (cacos, -0x1.0000000000000002p0L, -0.0L, 3.141592653589793238462643383279502884197L, 4.656612873077392578082927418388212703712e-10L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (cacos, 0x1p-106L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639742726335L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0x1p-106L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639742726335L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0x1p-106L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639760157863L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0x1p-106L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639760157863L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0x1p-106L, 5.394221422390606848017034778914096659726e-17L, -2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0x1p-106L, 3.141592653589793184520429159373434404027L, -2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0x1p-106L, 5.394221422390606848017034778914096659726e-17L, 2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0x1p-106L, 3.141592653589793184520429159373434404027L, 2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 2.426922623448365473354662093431821897807e-293L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 2.426922623448365473354662093431821897807e-293L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, 0.0L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0.0L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0.0L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, -0.0L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0.0L, 0.0L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0.0L, 3.141592653589793238462643383279502884197L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0.0L, 0.0L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0.0L, 3.141592653589793238462643383279502884197L, 2.220446049250313080847263336181636063482e-16L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (cacos, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751374007L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751374007L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0x1p-113L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751510190L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0x1p-113L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751510190L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 4.767863183742677481693563511435642755521e-18L, -2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0x1p-113L, 3.141592653589793233694780199536825402504L, -2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 4.767863183742677481693563511435642755521e-18L, 2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0x1p-113L, 3.141592653589793233694780199536825402504L, 2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 4.148847925325683229178506116378864361396e-4916L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 4.148847925325683229178506116378864361396e-4916L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, 0.0L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0.0L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0.0L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, -0.0L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0.0L, 0.0L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0.0L, 3.141592653589793238462643383279502884197L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0.0L, 0.0L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0.0L, 3.141592653589793238462643383279502884197L, 1.962615573354718824241727964954454332780e-17L),
+#endif
+
+ TEST_c_c (cacos, 0x1p-23L, 0x0.ffffffp0L, 1.570796242501197085295336701632142060969L, -8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (cacos, 0x1p-23L, -0x0.ffffffp0L, 1.570796242501197085295336701632142060969L, 8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (cacos, -0x1p-23L, 0x0.ffffffp0L, 1.570796411088596153167306681647360823228L, -8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (cacos, -0x1p-23L, -0x0.ffffffp0L, 1.570796411088596153167306681647360823228L, 8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, 0x1p-23L, 4.391863861910487109445187743978204002614e-4L, -2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, 0x1p-23L, 3.141153467203602189751698864505105063797L, -2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, -0x1p-23L, 4.391863861910487109445187743978204002614e-4L, 2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, -0x1p-23L, 3.141153467203602189751698864505105063797L, 2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (cacos, 0x1.fp-129L, 0x0.ffffffp0L, 1.570796326794896619231321691639751442097L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, 0x1.fp-129L, -0x0.ffffffp0L, 1.570796326794896619231321691639751442097L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, 0x0.ffffffp0L, 1.570796326794896619231321691639751442101L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, -0x0.ffffffp0L, 1.570796326794896619231321691639751442101L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, 0x1.fp-129L, 3.452669847162035876032494826387364972849e-4L, -8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, 0x1.fp-129L, 3.141247386605077034875040133796864147700L, -8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, -0x1.fp-129L, 3.452669847162035876032494826387364972849e-4L, 8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, -0x1.fp-129L, 3.141247386605077034875040133796864147700L, 8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (cacos, 0.0L, 0x0.ffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, 0.0L, -0x0.ffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, -0.0L, 0x0.ffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, -0.0L, -0x0.ffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, 0.0L, 3.452669847162035876032494826387364972849e-4L, -0.0L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, 0.0L, 3.141247386605077034875040133796864147700L, -0.0L),
+ TEST_c_c (cacos, 0x0.ffffffp0L, -0.0L, 3.452669847162035876032494826387364972849e-4L, 0.0L),
+ TEST_c_c (cacos, -0x0.ffffffp0L, -0.0L, 3.141247386605077034875040133796864147700L, 0.0L),
+ TEST_c_c (cacos, 0x1p-23L, 0.5L, 1.570796220170866625230343643673321150378L, -4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (cacos, 0x1p-23L, -0.5L, 1.570796220170866625230343643673321150378L, 4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (cacos, -0x1p-23L, 0.5L, 1.570796433418926613232299739606181733819L, -4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (cacos, -0x1p-23L, -0.5L, 1.570796433418926613232299739606181733819L, 4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1p-23L, 1.047197551196603215914744618665204532273L, -1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (cacos, -0.5L, 0x1p-23L, 2.094395102393190022547898764614298351924L, -1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (cacos, 0.5L, -0x1p-23L, 1.047197551196603215914744618665204532273L, 1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (cacos, -0.5L, -0x1p-23L, 2.094395102393190022547898764614298351924L, 1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (cacos, 0x1.fp-129L, 0.5L, 1.570796326794896619231321691639751442096L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0x1.fp-129L, -0.5L, 1.570796326794896619231321691639751442096L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, 0.5L, 1.570796326794896619231321691639751442101L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-129L, -0.5L, 1.570796326794896619231321691639751442101L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1.fp-129L, 1.047197551196597746154214461093167628066L, -3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0.5L, 0x1.fp-129L, 2.094395102393195492308428922186335256131L, -3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, 0.5L, -0x1.fp-129L, 1.047197551196597746154214461093167628066L, 3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0.5L, -0x1.fp-129L, 2.094395102393195492308428922186335256131L, 3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, 0x1p-23L, 0x1p-23L, 1.570796207585607068450636380271254316214L, -1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (cacos, 0x1p-23L, -0x1p-23L, 1.570796207585607068450636380271254316214L, 1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (cacos, -0x1p-23L, 0x1p-23L, 1.570796446004186170012007003008248567984L, -1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (cacos, -0x1p-23L, -0x1p-23L, 1.570796446004186170012007003008248567984L, 1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (cacos, 0x1.fp-129L, 0x1p-23L, 1.570796326794896619231321691639751442096L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, 0x1.fp-129L, -0x1p-23L, 1.570796326794896619231321691639751442096L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, -0x1.fp-129L, 0x1p-23L, 1.570796326794896619231321691639751442101L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, -0x1.fp-129L, -0x1p-23L, 1.570796326794896619231321691639751442101L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, 0x1p-23L, 0x1.fp-129L, 1.570796207585607068449789347324000006847L, -2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0x1p-23L, 0x1.fp-129L, 1.570796446004186170012854035955502877351L, -2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, 0x1p-23L, -0x1.fp-129L, 1.570796207585607068449789347324000006847L, 2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0x1p-23L, -0x1.fp-129L, 1.570796446004186170012854035955502877351L, 2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, 0.0L, 0x1p-23L, 1.570796326794896619231321691639751442099L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, 0.0L, -0x1p-23L, 1.570796326794896619231321691639751442099L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, -0.0L, 0x1p-23L, 1.570796326794896619231321691639751442099L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, -0.0L, -0x1p-23L, 1.570796326794896619231321691639751442099L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (cacos, 0x1p-23L, 0.0L, 1.570796207585607068449789347324000006847L, -0.0L),
+ TEST_c_c (cacos, -0x1p-23L, 0.0L, 1.570796446004186170012854035955502877351L, -0.0L),
+ TEST_c_c (cacos, 0x1p-23L, -0.0L, 1.570796207585607068449789347324000006847L, 0.0L),
+ TEST_c_c (cacos, -0x1p-23L, -0.0L, 1.570796446004186170012854035955502877351L, 0.0L),
+ TEST_c_c (cacos, 0x1.fp-129L, 0x1.fp-129L, 1.570796326794896619231321691639751442096L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, 0x1.fp-129L, -0x1.fp-129L, 1.570796326794896619231321691639751442096L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0x1.fp-129L, 0x1.fp-129L, 1.570796326794896619231321691639751442101L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacos, -0x1.fp-129L, -0x1.fp-129L, 1.570796326794896619231321691639751442101L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1p-52L, 0x0.fffffffffffff8p0L, 1.570796326794896462222075823262236786996L, -8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (cacos, 0x1p-52L, -0x0.fffffffffffff8p0L, 1.570796326794896462222075823262236786996L, 8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (cacos, -0x1p-52L, 0x0.fffffffffffff8p0L, 1.570796326794896776240567560017266097201L, -8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (cacos, -0x1p-52L, -0x0.fffffffffffff8p0L, 1.570796326794896776240567560017266097201L, 8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, 0x1p-52L, 1.895456983915074112227925127005564372844e-8L, -1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, 0x1p-52L, 3.141592634635223399311902261000251614142L, -1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, -0x1p-52L, 1.895456983915074112227925127005564372844e-8L, 1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, -0x1p-52L, 3.141592634635223399311902261000251614142L, 1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, 0x1.fp-1025L, 1.490116119384765638786343542550461592240e-8L, -3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, 0x1.fp-1025L, 3.141592638688632044614986995416067458693L, -3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, -0x1.fp-1025L, 1.490116119384765638786343542550461592240e-8L, 3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, -0x1.fp-1025L, 3.141592638688632044614986995416067458693L, 3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, 0.0L, 0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, 0.0L, -0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, -0.0L, 0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, -0.0L, -0x0.fffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, 0.0L, 1.490116119384765638786343542550461592240e-8L, -0.0L),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, 0.0L, 3.141592638688632044614986995416067458693L, -0.0L),
+ TEST_c_c (cacos, 0x0.fffffffffffff8p0L, -0.0L, 1.490116119384765638786343542550461592240e-8L, 0.0L),
+ TEST_c_c (cacos, -0x0.fffffffffffff8p0L, -0.0L, 3.141592638688632044614986995416067458693L, 0.0L),
+#endif
+ TEST_c_c (cacos, 0x1p-52L, 0.5L, 1.570796326794896420628589431857911675917L, -4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (cacos, 0x1p-52L, -0.5L, 1.570796326794896420628589431857911675917L, 4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (cacos, -0x1p-52L, 0.5L, 1.570796326794896817834053951421591208280L, -4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (cacos, -0x1p-52L, -0.5L, 1.570796326794896817834053951421591208280L, 4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1p-52L, 1.047197551196597746154214461093186605110L, -2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (cacos, -0.5L, 0x1p-52L, 2.094395102393195492308428922186316279087L, -2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (cacos, 0.5L, -0x1p-52L, 1.047197551196597746154214461093186605110L, 2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (cacos, -0.5L, -0x1p-52L, 2.094395102393195492308428922186316279087L, 2.563950248511418570403591756798643804971e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1025L, 0.5L, 1.570796326794896619231321691639751442099L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0.5L, 1.570796326794896619231321691639751442099L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0.5L, 1.570796326794896619231321691639751442099L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0.5L, 1.570796326794896619231321691639751442099L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1.fp-1025L, 1.047197551196597746154214461093167628066L, -6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0.5L, 0x1.fp-1025L, 2.094395102393195492308428922186335256131L, -6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, 0.5L, -0x1.fp-1025L, 1.047197551196597746154214461093167628066L, 6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0.5L, -0x1.fp-1025L, 2.094395102393195492308428922186335256131L, 6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacos, 0x1p-52L, 0x1p-52L, 1.570796326794896397186716766608443357372L, -2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (cacos, 0x1p-52L, -0x1p-52L, 1.570796326794896397186716766608443357372L, 2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (cacos, -0x1p-52L, 0x1p-52L, 1.570796326794896841275926616671059526825L, -2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (cacos, -0x1p-52L, -0x1p-52L, 1.570796326794896841275926616671059526825L, 2.220446049250313080847263336181677117148e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x1p-52L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x1p-52L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x1p-52L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x1p-52L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, 0x1p-52L, 0x1.fp-1025L, 1.570796326794896397186716766608443357372L, -5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1p-52L, 0x1.fp-1025L, 1.570796326794896841275926616671059526825L, -5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, 0x1p-52L, -0x1.fp-1025L, 1.570796326794896397186716766608443357372L, 5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1p-52L, -0x1.fp-1025L, 1.570796326794896841275926616671059526825L, 5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacos, 0.0L, 0x1p-52L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, 0.0L, -0x1p-52L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, -0.0L, 0x1p-52L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, -0.0L, -0x1p-52L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (cacos, 0x1p-52L, 0.0L, 1.570796326794896397186716766608443357372L, -0.0L),
+ TEST_c_c (cacos, -0x1p-52L, 0.0L, 1.570796326794896841275926616671059526825L, -0.0L),
+ TEST_c_c (cacos, 0x1p-52L, -0.0L, 1.570796326794896397186716766608443357372L, 0.0L),
+ TEST_c_c (cacos, -0x1p-52L, -0.0L, 1.570796326794896841275926616671059526825L, 0.0L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (cacos, 0x1p-63L, 0x0.ffffffffffffffffp0L, 1.570796326794896619154657020805582738025L, -8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (cacos, 0x1p-63L, -0x0.ffffffffffffffffp0L, 1.570796326794896619154657020805582738025L, 8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (cacos, -0x1p-63L, 0x0.ffffffffffffffffp0L, 1.570796326794896619307986362473920146173L, -8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (cacos, -0x1p-63L, -0x0.ffffffffffffffffp0L, 1.570796326794896619307986362473920146173L, 8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, 0x1p-63L, 4.188407771167967636741951941902992986043e-10L, -2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, 0x1p-63L, 3.141592653170952461345846619605307690007L, -2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, -0x1p-63L, 4.188407771167967636741951941902992986043e-10L, 2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, -0x1p-63L, 3.141592653170952461345846619605307690007L, 2.588578361325995866221775673638805081337e-10L),
+# if LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 3.292722539913596233371825532007990724506e-10L, -2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 3.141592653260520984471283759942320330996L, -2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 3.292722539913596233371825532007990724506e-10L, 2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 3.141592653260520984471283759942320330996L, 2.472906068161537187835415298076415423459e-4923L),
+# endif
+ TEST_c_c (cacos, 0.0L, 0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, 0.0L, -0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, -0.0L, 0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, -0.0L, -0x0.ffffffffffffffffp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, 0.0L, 3.292722539913596233371825532007990724506e-10L, -0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, 0.0L, 3.141592653260520984471283759942320330996L, -0.0L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffp0L, -0.0L, 3.292722539913596233371825532007990724506e-10L, 0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffp0L, -0.0L, 3.141592653260520984471283759942320330996L, 0.0L),
+#endif
+ TEST_c_c (cacos, 0x1p-63L, 0.5L, 1.570796326794896619134347701278529840650L, -4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (cacos, 0x1p-63L, -0.5L, 1.570796326794896619134347701278529840650L, 4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (cacos, -0x1p-63L, 0.5L, 1.570796326794896619328295682000973043547L, -4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (cacos, -0x1p-63L, -0.5L, 1.570796326794896619328295682000973043547L, 4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1p-63L, 1.047197551196597746154214461093167628070L, -1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (cacos, -0.5L, 0x1p-63L, 2.094395102393195492308428922186335256127L, -1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (cacos, 0.5L, -0x1p-63L, 1.047197551196597746154214461093167628070L, 1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (cacos, -0.5L, -0x1p-63L, 2.094395102393195492308428922186335256127L, 1.251928832280966098829878787499365228659e-19L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0.5L, 1.570796326794896619231321691639751442099L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0.5L, 1.570796326794896619231321691639751442099L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0.5L, 1.570796326794896619231321691639751442099L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0.5L, 1.570796326794896619231321691639751442099L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1.fp-16385L, 1.047197551196597746154214461093167628066L, -9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0.5L, 0x1.fp-16385L, 2.094395102393195492308428922186335256131L, -9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, 0.5L, -0x1.fp-16385L, 1.047197551196597746154214461093167628066L, 9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0.5L, -0x1.fp-16385L, 2.094395102393195492308428922186335256131L, 9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacos, 0x1p-63L, 0x1p-63L, 1.570796326794896619122901474391200998698L, -1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (cacos, 0x1p-63L, -0x1p-63L, 1.570796326794896619122901474391200998698L, 1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (cacos, -0x1p-63L, 0x1p-63L, 1.570796326794896619339741908888301885499L, -1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (cacos, -0x1p-63L, -0x1p-63L, 1.570796326794896619339741908888301885499L, 1.084202172485504434007452800869941711430e-19L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x1p-63L, 1.570796326794896619231321691639751442099L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x1p-63L, 1.570796326794896619231321691639751442099L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x1p-63L, 1.570796326794896619231321691639751442099L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x1p-63L, 1.570796326794896619231321691639751442099L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, 0x1p-63L, 0x1.fp-16385L, 1.570796326794896619122901474391200998698L, -8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1p-63L, 0x1.fp-16385L, 1.570796326794896619339741908888301885499L, -8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, 0x1p-63L, -0x1.fp-16385L, 1.570796326794896619122901474391200998698L, 8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1p-63L, -0x1.fp-16385L, 1.570796326794896619339741908888301885499L, 8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacos, 0.0L, 0x1p-63L, 1.570796326794896619231321691639751442099L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, 0.0L, -0x1p-63L, 1.570796326794896619231321691639751442099L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, -0.0L, 0x1p-63L, 1.570796326794896619231321691639751442099L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, -0.0L, -0x1p-63L, 1.570796326794896619231321691639751442099L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (cacos, 0x1p-63L, 0.0L, 1.570796326794896619122901474391200998698L, -0.0L),
+ TEST_c_c (cacos, -0x1p-63L, 0.0L, 1.570796326794896619339741908888301885499L, -0.0L),
+ TEST_c_c (cacos, 0x1p-63L, -0.0L, 1.570796326794896619122901474391200998698L, 0.0L),
+ TEST_c_c (cacos, -0x1p-63L, -0.0L, 1.570796326794896619339741908888301885499L, 0.0L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (cacos, 0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639734010571L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639734010571L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639768873627L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639768873627L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 1.997188458999618357060632049675702684031e-16L, -1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 3.141592653589793038743797483317667178134L, -1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 1.997188458999618357060632049675702684031e-16L, 1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 3.141592653589793038743797483317667178134L, 1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 1.570092458683775059393382371963565104164e-16L, -3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 3.141592653589793081453397514901996944859L, -3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 1.570092458683775059393382371963565104164e-16L, 3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 3.141592653589793081453397514901996944859L, 3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacos, 0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, -0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 1.570092458683775059393382371963565104164e-16L, -0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 3.141592653589793081453397514901996944859L, -0.0L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 1.570092458683775059393382371963565104164e-16L, 0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 3.141592653589793081453397514901996944859L, 0.0L),
+#endif
+ TEST_c_c (cacos, 0x1p-105L, 0.5L, 1.570796326794896619231321691639729392766L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0x1p-105L, -0.5L, 1.570796326794896619231321691639729392766L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1p-105L, 0.5L, 1.570796326794896619231321691639773491431L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1p-105L, -0.5L, 1.570796326794896619231321691639773491431L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1p-105L, 1.047197551196597746154214461093167628066L, -2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (cacos, -0.5L, 0x1p-105L, 2.094395102393195492308428922186335256131L, -2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (cacos, 0.5L, -0x1p-105L, 1.047197551196597746154214461093167628066L, 2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (cacos, -0.5L, -0x1p-105L, 2.094395102393195492308428922186335256131L, 2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (cacos, 0x1p-105L, 0x1p-105L, 1.570796326794896619231321691639726790195L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, 0x1p-105L, -0x1p-105L, 1.570796326794896619231321691639726790195L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0x1p-105L, 0x1p-105L, 1.570796326794896619231321691639776094002L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0x1p-105L, -0x1p-105L, 1.570796326794896619231321691639776094002L, 2.465190328815661891911651766508706967729e-32L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacos, 0x1.fp-1025L, 0x1p-105L, 1.570796326794896619231321691639751442099L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, 0x1.fp-1025L, -0x1p-105L, 1.570796326794896619231321691639751442099L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0x1.fp-1025L, 0x1p-105L, 1.570796326794896619231321691639751442099L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0x1.fp-1025L, -0x1p-105L, 1.570796326794896619231321691639751442099L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, 0x1p-105L, 0x1.fp-1025L, 1.570796326794896619231321691639726790195L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1p-105L, 0x1.fp-1025L, 1.570796326794896619231321691639776094002L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, 0x1p-105L, -0x1.fp-1025L, 1.570796326794896619231321691639726790195L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacos, -0x1p-105L, -0x1.fp-1025L, 1.570796326794896619231321691639776094002L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacos, 0.0L, 0x1p-105L, 1.570796326794896619231321691639751442099L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, 0.0L, -0x1p-105L, 1.570796326794896619231321691639751442099L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0.0L, 0x1p-105L, 1.570796326794896619231321691639751442099L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, -0.0L, -0x1p-105L, 1.570796326794896619231321691639751442099L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (cacos, 0x1p-105L, 0.0L, 1.570796326794896619231321691639726790195L, -0.0L),
+ TEST_c_c (cacos, -0x1p-105L, 0.0L, 1.570796326794896619231321691639776094002L, -0.0L),
+ TEST_c_c (cacos, 0x1p-105L, -0.0L, 1.570796326794896619231321691639726790195L, 0.0L),
+ TEST_c_c (cacos, -0x1p-105L, -0.0L, 1.570796326794896619231321691639776094002L, 0.0L),
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (cacos, 0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751305915L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751305915L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751578282L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751578282L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 1.765281878332676474347460257221369818872e-17L, -1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 3.141592653589793220809824599952738140723L, -1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 1.765281878332676474347460257221369818872e-17L, 1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 3.141592653589793220809824599952738140723L, 1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 1.387778780781445675529539585113525401762e-17L, -5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 3.141592653589793224584855575465046128902L, -5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 1.387778780781445675529539585113525401762e-17L, 5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 3.141592653589793224584855575465046128902L, 5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (cacos, 0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, -0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 1.387778780781445675529539585113525401762e-17L, -0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 3.141592653589793224584855575465046128902L, -0.0L),
+ TEST_c_c (cacos, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 1.387778780781445675529539585113525401762e-17L, 0.0L),
+ TEST_c_c (cacos, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 3.141592653589793224584855575465046128902L, 0.0L),
+#endif
+ TEST_c_c (cacos, 0x1p-112L, 0.5L, 1.570796326794896619231321691639751269838L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0x1p-112L, -0.5L, 1.570796326794896619231321691639751269838L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1p-112L, 0.5L, 1.570796326794896619231321691639751614359L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, -0x1p-112L, -0.5L, 1.570796326794896619231321691639751614359L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (cacos, 0.5L, 0x1p-112L, 1.047197551196597746154214461093167628066L, -2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (cacos, -0.5L, 0x1p-112L, 2.094395102393195492308428922186335256131L, -2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (cacos, 0.5L, -0x1p-112L, 1.047197551196597746154214461093167628066L, 2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (cacos, -0.5L, -0x1p-112L, 2.094395102393195492308428922186335256131L, 2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (cacos, 0x1p-112L, 0x1p-112L, 1.570796326794896619231321691639751249506L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, 0x1p-112L, -0x1p-112L, 1.570796326794896619231321691639751249506L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0x1p-112L, 0x1p-112L, 1.570796326794896619231321691639751634692L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0x1p-112L, -0x1p-112L, 1.570796326794896619231321691639751634692L, 1.925929944387235853055977942584927318538e-34L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacos, 0x1.fp-16385L, 0x1p-112L, 1.570796326794896619231321691639751442099L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, 0x1.fp-16385L, -0x1p-112L, 1.570796326794896619231321691639751442099L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0x1.fp-16385L, 0x1p-112L, 1.570796326794896619231321691639751442099L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0x1.fp-16385L, -0x1p-112L, 1.570796326794896619231321691639751442099L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, 0x1p-112L, 0x1.fp-16385L, 1.570796326794896619231321691639751249506L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1p-112L, 0x1.fp-16385L, 1.570796326794896619231321691639751634692L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, 0x1p-112L, -0x1.fp-16385L, 1.570796326794896619231321691639751249506L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacos, -0x1p-112L, -0x1.fp-16385L, 1.570796326794896619231321691639751634692L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacos, 0.0L, 0x1p-112L, 1.570796326794896619231321691639751442099L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, 0.0L, -0x1p-112L, 1.570796326794896619231321691639751442099L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0.0L, 0x1p-112L, 1.570796326794896619231321691639751442099L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, -0.0L, -0x1p-112L, 1.570796326794896619231321691639751442099L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (cacos, 0x1p-112L, 0.0L, 1.570796326794896619231321691639751249506L, -0.0L),
+ TEST_c_c (cacos, -0x1p-112L, 0.0L, 1.570796326794896619231321691639751634692L, -0.0L),
+ TEST_c_c (cacos, 0x1p-112L, -0.0L, 1.570796326794896619231321691639751249506L, 0.0L),
+ TEST_c_c (cacos, -0x1p-112L, -0.0L, 1.570796326794896619231321691639751634692L, 0.0L),
+
+ TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L, -1.13239363160530819522266333696834467L),
+ TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L),
+ };
static void
cacos_test (void)
{
- errno = 0;
- FUNC(cacos) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cacos);
-
-
- TEST_c_c (cacos, 0, 0, M_PI_2l, minus_zero);
- TEST_c_c (cacos, minus_zero, 0, M_PI_2l, minus_zero);
- TEST_c_c (cacos, minus_zero, minus_zero, M_PI_2l, 0.0);
- TEST_c_c (cacos, 0, minus_zero, M_PI_2l, 0.0);
-
- TEST_c_c (cacos, minus_infty, plus_infty, M_PI_34l, minus_infty);
- TEST_c_c (cacos, minus_infty, minus_infty, M_PI_34l, plus_infty);
-
- TEST_c_c (cacos, plus_infty, plus_infty, M_PI_4l, minus_infty);
- TEST_c_c (cacos, plus_infty, minus_infty, M_PI_4l, plus_infty);
-
- TEST_c_c (cacos, -10.0, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, -10.0, minus_infty, M_PI_2l, plus_infty);
- TEST_c_c (cacos, 0, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, 0, minus_infty, M_PI_2l, plus_infty);
- TEST_c_c (cacos, 0.1L, plus_infty, M_PI_2l, minus_infty);
- TEST_c_c (cacos, 0.1L, minus_infty, M_PI_2l, plus_infty);
-
- TEST_c_c (cacos, minus_infty, 0, M_PIl, minus_infty);
- TEST_c_c (cacos, minus_infty, minus_zero, M_PIl, plus_infty);
- TEST_c_c (cacos, minus_infty, 100, M_PIl, minus_infty);
- TEST_c_c (cacos, minus_infty, -100, M_PIl, plus_infty);
-
- TEST_c_c (cacos, plus_infty, 0, 0.0, minus_infty);
- TEST_c_c (cacos, plus_infty, minus_zero, 0.0, plus_infty);
- TEST_c_c (cacos, plus_infty, 0.5, 0.0, minus_infty);
- TEST_c_c (cacos, plus_infty, -0.5, 0.0, plus_infty);
-
- TEST_c_c (cacos, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cacos, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (cacos, 0, qnan_value, M_PI_2l, qnan_value);
- TEST_c_c (cacos, minus_zero, qnan_value, M_PI_2l, qnan_value);
-
- TEST_c_c (cacos, qnan_value, plus_infty, qnan_value, minus_infty);
- TEST_c_c (cacos, qnan_value, minus_infty, qnan_value, plus_infty);
-
- TEST_c_c (cacos, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacos, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacos, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacos, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacos, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (cacos, plus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, minus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, plus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
- TEST_c_c (cacos, minus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
- TEST_c_c (cacos, plus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
- TEST_c_c (cacos, minus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
- TEST_c_c (cacos, plus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
- TEST_c_c (cacos, minus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
- TEST_c_c (cacos, plus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
- TEST_c_c (cacos, minus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
- TEST_c_c (cacos, plus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, minus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
-
- TEST_c_c (cacos, -1.5L, plus_zero, M_PIl, -0.9624236501192068949955178268487368462704L);
- TEST_c_c (cacos, -1.5L, minus_zero, M_PIl, 0.9624236501192068949955178268487368462704L);
- TEST_c_c (cacos, -1.0L, plus_zero, M_PIl, minus_zero);
- TEST_c_c (cacos, -1.0L, minus_zero, M_PIl, plus_zero);
- TEST_c_c (cacos, -0.5L, plus_zero, 2.094395102393195492308428922186335256131L, minus_zero);
- TEST_c_c (cacos, -0.5L, minus_zero, 2.094395102393195492308428922186335256131L, plus_zero);
- TEST_c_c (cacos, 0.5L, plus_zero, 1.047197551196597746154214461093167628066L, minus_zero);
- TEST_c_c (cacos, 0.5L, minus_zero, 1.047197551196597746154214461093167628066L, plus_zero);
- TEST_c_c (cacos, 1.0L, plus_zero, plus_zero, minus_zero);
- TEST_c_c (cacos, 1.0L, minus_zero, plus_zero, plus_zero);
- TEST_c_c (cacos, 1.5L, plus_zero, plus_zero, -0.9624236501192068949955178268487368462704L);
- TEST_c_c (cacos, 1.5L, minus_zero, plus_zero, 0.9624236501192068949955178268487368462704L);
-
- TEST_c_c (cacos, 0x1p50L, 1.0L, 8.881784197001252323389053344727730248720e-16L, -3.535050620855721078027883819436720218708e1L);
- TEST_c_c (cacos, 0x1p50L, -1.0L, 8.881784197001252323389053344727730248720e-16L, 3.535050620855721078027883819436720218708e1L);
- TEST_c_c (cacos, -0x1p50L, 1.0L, 3.141592653589792350284223683154270545292L, -3.535050620855721078027883819436720218708e1L);
- TEST_c_c (cacos, -0x1p50L, -1.0L, 3.141592653589792350284223683154270545292L, 3.535050620855721078027883819436720218708e1L);
- TEST_c_c (cacos, 1.0L, 0x1p50L, 1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436759661753e1L);
- TEST_c_c (cacos, -1.0L, 0x1p50L, 1.570796326794897507409741391764983781004L, -3.535050620855721078027883819436759661753e1L);
- TEST_c_c (cacos, 1.0L, -0x1p50L, 1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436759661753e1L);
- TEST_c_c (cacos, -1.0L, -0x1p50L, 1.570796326794897507409741391764983781004L, 3.535050620855721078027883819436759661753e1L);
-#ifndef TEST_FLOAT
- TEST_c_c (cacos, 0x1p500L, 1.0L, 3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, 0x1p500L, -1.0L, 3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, -0x1p500L, 1.0L, 3.141592653589793238462643383279502884197L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, -0x1p500L, -1.0L, 3.141592653589793238462643383279502884197L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, 1.0L, 0x1p500L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, -1.0L, 0x1p500L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, 1.0L, -0x1p500L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (cacos, -1.0L, -0x1p500L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L);
+ RUN_TEST_LOOP_c_c (cacos, cacos_test_data, );
+ END_COMPLEX;
+}
+
+static const struct test_c_c_data cacosh_test_data[] =
+ {
+ TEST_c_c (cacosh, 0, 0, 0.0, M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, 0, 0.0, M_PI_2l),
+ TEST_c_c (cacosh, 0, minus_zero, 0.0, -M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, minus_zero, 0.0, -M_PI_2l),
+ TEST_c_c (cacosh, minus_infty, plus_infty, plus_infty, M_PI_34l),
+ TEST_c_c (cacosh, minus_infty, minus_infty, plus_infty, -M_PI_34l),
+
+ TEST_c_c (cacosh, plus_infty, plus_infty, plus_infty, M_PI_4l),
+ TEST_c_c (cacosh, plus_infty, minus_infty, plus_infty, -M_PI_4l),
+
+ TEST_c_c (cacosh, -10.0, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (cacosh, -10.0, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (cacosh, 0, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (cacosh, 0, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (cacosh, 0.1L, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (cacosh, 0.1L, minus_infty, plus_infty, -M_PI_2l),
+
+ TEST_c_c (cacosh, minus_infty, 0, plus_infty, M_PIl),
+ TEST_c_c (cacosh, minus_infty, minus_zero, plus_infty, -M_PIl),
+ TEST_c_c (cacosh, minus_infty, 100, plus_infty, M_PIl),
+ TEST_c_c (cacosh, minus_infty, -100, plus_infty, -M_PIl),
+
+ TEST_c_c (cacosh, plus_infty, 0, plus_infty, 0.0),
+ TEST_c_c (cacosh, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (cacosh, plus_infty, 0.5, plus_infty, 0.0),
+ TEST_c_c (cacosh, plus_infty, -0.5, plus_infty, minus_zero),
+
+ TEST_c_c (cacosh, plus_infty, qnan_value, plus_infty, qnan_value),
+ TEST_c_c (cacosh, minus_infty, qnan_value, plus_infty, qnan_value),
+
+ TEST_c_c (cacosh, 0, qnan_value, qnan_value, qnan_value),
+ TEST_c_c (cacosh, minus_zero, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (cacosh, qnan_value, plus_infty, plus_infty, qnan_value),
+ TEST_c_c (cacosh, qnan_value, minus_infty, plus_infty, qnan_value),
+
+ TEST_c_c (cacosh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cacosh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (cacosh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cacosh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (cacosh, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (cacosh, plus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l),
+ TEST_c_c (cacosh, plus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l),
+ TEST_c_c (cacosh, plus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l),
+ TEST_c_c (cacosh, plus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l),
+ TEST_c_c (cacosh, plus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l),
+ TEST_c_c (cacosh, plus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l),
+ TEST_c_c (cacosh, minus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l),
+
+ TEST_c_c (cacosh, -1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, M_PIl),
+ TEST_c_c (cacosh, -1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, -M_PIl),
+ TEST_c_c (cacosh, -1.0L, plus_zero, plus_zero, M_PIl),
+ TEST_c_c (cacosh, -1.0L, minus_zero, plus_zero, -M_PIl),
+ TEST_c_c (cacosh, -0.5L, plus_zero, plus_zero, 2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, -0.5L, minus_zero, plus_zero, -2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, 0.5L, plus_zero, plus_zero, 1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, 0.5L, minus_zero, plus_zero, -1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, 1.0L, plus_zero, plus_zero, plus_zero),
+ TEST_c_c (cacosh, 1.0L, minus_zero, plus_zero, minus_zero),
+ TEST_c_c (cacosh, 1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, plus_zero),
+ TEST_c_c (cacosh, 1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, minus_zero),
+
+ TEST_c_c (cacosh, 0x1p50L, 1.0L, 3.535050620855721078027883819436720218708e1L, 8.881784197001252323389053344727730248720e-16L),
+ TEST_c_c (cacosh, 0x1p50L, -1.0L, 3.535050620855721078027883819436720218708e1L, -8.881784197001252323389053344727730248720e-16L),
+ TEST_c_c (cacosh, -0x1p50L, 1.0L, 3.535050620855721078027883819436720218708e1L, 3.141592653589792350284223683154270545292L),
+ TEST_c_c (cacosh, -0x1p50L, -1.0L, 3.535050620855721078027883819436720218708e1L, -3.141592653589792350284223683154270545292L),
+ TEST_c_c (cacosh, 1.0L, 0x1p50L, 3.535050620855721078027883819436759661753e1L, 1.570796326794895731052901991514519103193L),
+ TEST_c_c (cacosh, -1.0L, 0x1p50L, 3.535050620855721078027883819436759661753e1L, 1.570796326794897507409741391764983781004L),
+ TEST_c_c (cacosh, 1.0L, -0x1p50L, 3.535050620855721078027883819436759661753e1L, -1.570796326794895731052901991514519103193L),
+ TEST_c_c (cacosh, -1.0L, -0x1p50L, 3.535050620855721078027883819436759661753e1L, -1.570796326794897507409741391764983781004L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1p500L, 1.0L, 3.472667374605326000180332928505464606058e2L, 3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (cacosh, 0x1p500L, -1.0L, 3.472667374605326000180332928505464606058e2L, -3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (cacosh, -0x1p500L, 1.0L, 3.472667374605326000180332928505464606058e2L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, -0x1p500L, -1.0L, 3.472667374605326000180332928505464606058e2L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, 0x1p500L, 3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -1.0L, 0x1p500L, 3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, -0x1p500L, 3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -1.0L, -0x1p500L, 3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (cacos, 0x1p5000L, 1.0L, 7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, 0x1p5000L, -1.0L, 7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, -0x1p5000L, 1.0L, 3.141592653589793238462643383279502884197L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, -0x1p5000L, -1.0L, 3.141592653589793238462643383279502884197L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, 1.0L, 0x1p5000L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, -1.0L, 0x1p5000L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, 1.0L, -0x1p5000L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (cacos, -1.0L, -0x1p5000L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L);
-#endif
-
- TEST_c_c (cacos, 0x1.fp127L, 0x1.fp127L, 7.853981633974483096156608458198757210493e-1L, -8.973081118419833726837456344608533993585e1L);
+ TEST_c_c (cacosh, 0x1p5000L, 1.0L, 3.466429049980286492395577839412341016946e3L, 7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (cacosh, 0x1p5000L, -1.0L, 3.466429049980286492395577839412341016946e3L, -7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (cacosh, -0x1p5000L, 1.0L, 3.466429049980286492395577839412341016946e3L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, -0x1p5000L, -1.0L, 3.466429049980286492395577839412341016946e3L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, 0x1p5000L, 3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -1.0L, 0x1p5000L, 3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, -0x1p5000L, 3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -1.0L, -0x1p5000L, 3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L),
+#endif
+ TEST_c_c (cacosh, 0x1.fp127L, 0x1.fp127L, 8.973081118419833726837456344608533993585e1L, 7.853981633974483096156608458198757210493e-1L),
#ifndef TEST_FLOAT
- TEST_c_c (cacos, 0x1.fp1023L, 0x1.fp1023L, 7.853981633974483096156608458198757210493e-1L, -7.107906849659093345062145442726115449315e2L);
+ TEST_c_c (cacosh, 0x1.fp1023L, 0x1.fp1023L, 7.107906849659093345062145442726115449315e2L, 7.853981633974483096156608458198757210493e-1L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (cacos, 0x1.fp16383L, 0x1.fp16383L, 7.853981633974483096156608458198757210493e-1L, -1.135753137836666928715489992987020363057e4L);
-#endif
-
- TEST_c_c (cacos, 0x1.fp-129L, 1.5L, 1.570796326794896619231321691639751442097L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 0x1.fp-129L, -1.5L, 1.570796326794896619231321691639751442097L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-129L, 1.5L, 1.570796326794896619231321691639751442100L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-129L, -1.5L, 1.570796326794896619231321691639751442100L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 1.5L, 0x1.fp-129L, 2.546345110742945032959687790021055102355e-39L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (cacos, -1.5L, 0x1.fp-129L, 3.141592653589793238462643383279502884195L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (cacos, 1.5L, -0x1.fp-129L, 2.546345110742945032959687790021055102355e-39L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (cacos, -1.5L, -0x1.fp-129L, 3.141592653589793238462643383279502884195L, 9.624236501192068949955178268487368462704e-1L);
-#ifndef TEST_FLOAT
- TEST_c_c (cacos, 0x1.fp-1025L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 0x1.fp-1025L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-1025L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-1025L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 1.5L, 0x1.fp-1025L, 4.819934639999230680322935210539402497827e-309L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (cacos, -1.5L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (cacos, 1.5L, -0x1.fp-1025L, 4.819934639999230680322935210539402497827e-309L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (cacos, -1.5L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 9.624236501192068949955178268487368462704e-1L);
+ TEST_c_c (cacosh, 0x1.fp16383L, 0x1.fp16383L, 1.135753137836666928715489992987020363057e4L, 7.853981633974483096156608458198757210493e-1L),
+#endif
+ TEST_c_c (cacosh, 0x1.fp-129L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442100L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442100L),
+ TEST_c_c (cacosh, 1.5L, 0x1.fp-129L, 9.624236501192068949955178268487368462704e-1L, 2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -1.5L, 0x1.fp-129L, 9.624236501192068949955178268487368462704e-1L, 3.141592653589793238462643383279502884195L),
+ TEST_c_c (cacosh, 1.5L, -0x1.fp-129L, 9.624236501192068949955178268487368462704e-1L, -2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -1.5L, -0x1.fp-129L, 9.624236501192068949955178268487368462704e-1L, -3.141592653589793238462643383279502884195L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1025L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.5L, 0x1.fp-1025L, 9.624236501192068949955178268487368462704e-1L, 4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -1.5L, 0x1.fp-1025L, 9.624236501192068949955178268487368462704e-1L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.5L, -0x1.fp-1025L, 9.624236501192068949955178268487368462704e-1L, -4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -1.5L, -0x1.fp-1025L, 9.624236501192068949955178268487368462704e-1L, -3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (cacos, 0x1.fp-16385L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 0x1.fp-16385L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-16385L, 1.5L, 1.570796326794896619231321691639751442099L, -1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, -0x1.fp-16385L, -1.5L, 1.570796326794896619231321691639751442099L, 1.194763217287109304111930828519090523536L);
- TEST_c_c (cacos, 1.5L, 0x1.fp-16385L, 7.282957076134209141226696333885150260319e-4933L, -9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (cacos, -1.5L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (cacos, 1.5L, -0x1.fp-16385L, 7.282957076134209141226696333885150260319e-4933L, 9.624236501192068949955178268487368462704e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (cacos, -1.5L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 9.624236501192068949955178268487368462704e-1L);
-#endif
-
- TEST_c_c (cacos, 0.5L, 1.0L, 1.221357263937683325603909865564381489366L, -9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (cacos, 0.5L, -1.0L, 1.221357263937683325603909865564381489366L, 9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (cacos, -0.5L, 1.0L, 1.920235389652109912858733517715121394831L, -9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (cacos, -0.5L, -1.0L, 1.920235389652109912858733517715121394831L, 9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (cacos, 1.0L, 0.5L, 6.748888455860063801646649673121744318756e-1L, -7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (cacos, -1.0L, 0.5L, 2.466703808003786858297978415967328452322L, -7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (cacos, 1.0L, -0.5L, 6.748888455860063801646649673121744318756e-1L, 7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (cacos, -1.0L, -0.5L, 2.466703808003786858297978415967328452322L, 7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (cacos, 0.25L, 1.0L, 1.394493894017929688812643125003661339452L, -8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (cacos, 0.25L, -1.0L, 1.394493894017929688812643125003661339452L, 8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (cacos, -0.25L, 1.0L, 1.747098759571863549650000258275841544745L, -8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (cacos, -0.25L, -1.0L, 1.747098759571863549650000258275841544745L, 8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (cacos, 1.0L, 0.25L, 4.890443302710802929202843732146540079124e-1L, -5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (cacos, -1.0L, 0.25L, 2.652548323318712945542359010064848876285L, -5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (cacos, 1.0L, -0.25L, 4.890443302710802929202843732146540079124e-1L, 5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (cacos, -1.0L, -0.25L, 2.652548323318712945542359010064848876285L, 5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (cacos, 0x1.fp-10L, 1.0L, 1.569458417435338878318763342108699202986L, -8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (cacos, 0x1.fp-10L, -1.0L, 1.569458417435338878318763342108699202986L, 8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (cacos, -0x1.fp-10L, 1.0L, 1.572134236154454360143880041170803681211L, -8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (cacos, -0x1.fp-10L, -1.0L, 1.572134236154454360143880041170803681211L, 8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-10L, 4.349129763101882771258049954181971959031e-2L, -4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-10L, 3.098101355958774410750062883737683164607L, -4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-10L, 4.349129763101882771258049954181971959031e-2L, 4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-10L, 3.098101355958774410750062883737683164607L, 4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (cacos, 0x1.fp-30L, 1.0L, 1.570796325518966635014803151387033957091L, -8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (cacos, 0x1.fp-30L, -1.0L, 1.570796325518966635014803151387033957091L, 8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (cacos, -0x1.fp-30L, 1.0L, 1.570796328070826603447840231892468927106L, -8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (cacos, -0x1.fp-30L, -1.0L, 1.570796328070826603447840231892468927106L, 8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-30L, 4.247867097467650115899790787875186617316e-5L, -4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-30L, 3.141550174918818561961484385371624132331L, -4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-30L, 4.247867097467650115899790787875186617316e-5L, 4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-30L, 3.141550174918818561961484385371624132331L, 4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (cacos, 0x1.fp-100L, 1.0L, 1.570796326794896619231321691638670687364L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-100L, -1.0L, 1.570796326794896619231321691638670687364L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-100L, 1.0L, 1.570796326794896619231321691640832196834L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-100L, -1.0L, 1.570796326794896619231321691640832196834L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-100L, 1.236292038260260888664514866456887257525e-15L, -1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-100L, 3.141592653589792002170605123018614219682L, -1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-100L, 1.236292038260260888664514866456887257525e-15L, 1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-100L, 3.141592653589792002170605123018614219682L, 1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (cacos, 0x1.fp-129L, 1.0L, 1.570796326794896619231321691639751442097L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-129L, -1.0L, 1.570796326794896619231321691639751442097L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-129L, 1.0L, 1.570796326794896619231321691639751442101L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-129L, -1.0L, 1.570796326794896619231321691639751442101L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-129L, 5.335635276982233498398987585285818977930e-20L, -5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-129L, 3.141592653589793238409287030509680549213L, -5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-129L, 5.335635276982233498398987585285818977930e-20L, 5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-129L, 3.141592653589793238409287030509680549213L, 5.335635276982233498398987585285818977933e-20L);
-#ifndef TEST_FLOAT
- TEST_c_c (cacos, 0x1.fp-1000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-1000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-1000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-1000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, -4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-1000L, 3.141592653589793238462643383279502884197L, -4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, 4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-1000L, 3.141592653589793238462643383279502884197L, 4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (cacos, 0x1.fp-1025L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-1025L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-1025L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-1025L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, -7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, 7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 7.340879205566679497036857179189356754017e-155L);
+ TEST_c_c (cacosh, 0x1.fp-16385L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 1.5L, 1.194763217287109304111930828519090523536L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -1.5L, 1.194763217287109304111930828519090523536L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.5L, 0x1.fp-16385L, 9.624236501192068949955178268487368462704e-1L, 7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -1.5L, 0x1.fp-16385L, 9.624236501192068949955178268487368462704e-1L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.5L, -0x1.fp-16385L, 9.624236501192068949955178268487368462704e-1L, -7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -1.5L, -0x1.fp-16385L, 9.624236501192068949955178268487368462704e-1L, -3.141592653589793238462643383279502884197L),
+#endif
+ TEST_c_c (cacosh, 0.5L, 1.0L, 9.261330313501824245501244453057873152694e-1L, 1.221357263937683325603909865564381489366L),
+ TEST_c_c (cacosh, 0.5L, -1.0L, 9.261330313501824245501244453057873152694e-1L, -1.221357263937683325603909865564381489366L),
+ TEST_c_c (cacosh, -0.5L, 1.0L, 9.261330313501824245501244453057873152694e-1L, 1.920235389652109912858733517715121394831L),
+ TEST_c_c (cacosh, -0.5L, -1.0L, 9.261330313501824245501244453057873152694e-1L, -1.920235389652109912858733517715121394831L),
+ TEST_c_c (cacosh, 1.0L, 0.5L, 7.328576759736452608886724437653071523305e-1L, 6.748888455860063801646649673121744318756e-1L),
+ TEST_c_c (cacosh, -1.0L, 0.5L, 7.328576759736452608886724437653071523305e-1L, 2.466703808003786858297978415967328452322L),
+ TEST_c_c (cacosh, 1.0L, -0.5L, 7.328576759736452608886724437653071523305e-1L, -6.748888455860063801646649673121744318756e-1L),
+ TEST_c_c (cacosh, -1.0L, -0.5L, 7.328576759736452608886724437653071523305e-1L, -2.466703808003786858297978415967328452322L),
+ TEST_c_c (cacosh, 0.25L, 1.0L, 8.924633639033482359562124741744951972772e-1L, 1.394493894017929688812643125003661339452L),
+ TEST_c_c (cacosh, 0.25L, -1.0L, 8.924633639033482359562124741744951972772e-1L, -1.394493894017929688812643125003661339452L),
+ TEST_c_c (cacosh, -0.25L, 1.0L, 8.924633639033482359562124741744951972772e-1L, 1.747098759571863549650000258275841544745L),
+ TEST_c_c (cacosh, -0.25L, -1.0L, 8.924633639033482359562124741744951972772e-1L, -1.747098759571863549650000258275841544745L),
+ TEST_c_c (cacosh, 1.0L, 0.25L, 5.097911466811016354623559941115413499164e-1L, 4.890443302710802929202843732146540079124e-1L),
+ TEST_c_c (cacosh, -1.0L, 0.25L, 5.097911466811016354623559941115413499164e-1L, 2.652548323318712945542359010064848876285L),
+ TEST_c_c (cacosh, 1.0L, -0.25L, 5.097911466811016354623559941115413499164e-1L, -4.890443302710802929202843732146540079124e-1L),
+ TEST_c_c (cacosh, -1.0L, -0.25L, 5.097911466811016354623559941115413499164e-1L, -2.652548323318712945542359010064848876285L),
+ TEST_c_c (cacosh, 0x1.fp-10L, 1.0L, 8.813742198809567991336704287826445879025e-1L, 1.569458417435338878318763342108699202986L),
+ TEST_c_c (cacosh, 0x1.fp-10L, -1.0L, 8.813742198809567991336704287826445879025e-1L, -1.569458417435338878318763342108699202986L),
+ TEST_c_c (cacosh, -0x1.fp-10L, 1.0L, 8.813742198809567991336704287826445879025e-1L, 1.572134236154454360143880041170803681211L),
+ TEST_c_c (cacosh, -0x1.fp-10L, -1.0L, 8.813742198809567991336704287826445879025e-1L, -1.572134236154454360143880041170803681211L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-10L, 4.350501469856803800217957402220976497152e-2L, 4.349129763101882771258049954181971959031e-2L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-10L, 4.350501469856803800217957402220976497152e-2L, 3.098101355958774410750062883737683164607L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-10L, 4.350501469856803800217957402220976497152e-2L, -4.349129763101882771258049954181971959031e-2L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-10L, 4.350501469856803800217957402220976497152e-2L, -3.098101355958774410750062883737683164607L),
+ TEST_c_c (cacosh, 0x1.fp-30L, 1.0L, 8.813735870195430258081932989769495326854e-1L, 1.570796325518966635014803151387033957091L),
+ TEST_c_c (cacosh, 0x1.fp-30L, -1.0L, 8.813735870195430258081932989769495326854e-1L, -1.570796325518966635014803151387033957091L),
+ TEST_c_c (cacosh, -0x1.fp-30L, 1.0L, 8.813735870195430258081932989769495326854e-1L, 1.570796328070826603447840231892468927106L),
+ TEST_c_c (cacosh, -0x1.fp-30L, -1.0L, 8.813735870195430258081932989769495326854e-1L, -1.570796328070826603447840231892468927106L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-30L, 4.247867098745151888768727039216644758847e-5L, 4.247867097467650115899790787875186617316e-5L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-30L, 4.247867098745151888768727039216644758847e-5L, 3.141550174918818561961484385371624132331L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-30L, 4.247867098745151888768727039216644758847e-5L, -4.247867097467650115899790787875186617316e-5L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-30L, 4.247867098745151888768727039216644758847e-5L, -3.141550174918818561961484385371624132331L),
+ TEST_c_c (cacosh, 0x1.fp-100L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691638670687364L),
+ TEST_c_c (cacosh, 0x1.fp-100L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691638670687364L),
+ TEST_c_c (cacosh, -0x1.fp-100L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691640832196834L),
+ TEST_c_c (cacosh, -0x1.fp-100L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691640832196834L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-100L, 1.236292038260260888664514866457202186027e-15L, 1.236292038260260888664514866456887257525e-15L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-100L, 1.236292038260260888664514866457202186027e-15L, 3.141592653589792002170605123018614219682L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-100L, 1.236292038260260888664514866457202186027e-15L, -1.236292038260260888664514866456887257525e-15L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-100L, 1.236292038260260888664514866457202186027e-15L, -3.141592653589792002170605123018614219682L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-129L, 5.335635276982233498398987585285818977933e-20L, 5.335635276982233498398987585285818977930e-20L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-129L, 5.335635276982233498398987585285818977933e-20L, 3.141592653589793238409287030509680549213L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-129L, 5.335635276982233498398987585285818977933e-20L, -5.335635276982233498398987585285818977930e-20L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-129L, 5.335635276982233498398987585285818977933e-20L, -3.141592653589793238409287030509680549213L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1000L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1000L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1000L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1000L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, 4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, -4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-1000L, 4.252291453851660175550490409247739011867e-151L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, 7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, -7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-1025L, 7.340879205566679497036857179189356754017e-155L, -3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (cacos, 0x1.fp-10000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-10000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-10000L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-10000L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, -9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-10000L, 3.141592653589793238462643383279502884197L, -9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, 9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-10000L, 3.141592653589793238462643383279502884197L, 9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (cacos, 0x1.fp-16385L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 0x1.fp-16385L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-16385L, 1.0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, -0x1.fp-16385L, -1.0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (cacos, 1.0L, 0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, -9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (cacos, -1.0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (cacos, 1.0L, -0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, 9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (cacos, -1.0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 9.023632056840860275214893047597614177639e-2467L);
-#endif
-
- TEST_c_c (cacos, 0x1p-23L, 0x1.000002p0L, 1.570796242501204621739026081991856762292L, -8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (cacos, 0x1p-23L, -0x1.000002p0L, 1.570796242501204621739026081991856762292L, 8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (cacos, -0x1p-23L, 0x1.000002p0L, 1.570796411088588616723617301287646121905L, -8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (cacos, -0x1p-23L, -0x1.000002p0L, 1.570796411088588616723617301287646121905L, 8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (cacos, 0x1.000002p0L, 0x1p-23L, 2.222118384408546368406374049167636760903e-4L, -5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, 0x1p-23L, 3.141370441751352383825802745874586120521L, -5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (cacos, 0x1.000002p0L, -0x1p-23L, 2.222118384408546368406374049167636760903e-4L, 5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, -0x1p-23L, 3.141370441751352383825802745874586120521L, 5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (cacos, 0x1.fp-129L, 0x1.000002p0L, 1.570796326794896619231321691639751442097L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, 0x1.fp-129L, -0x1.000002p0L, 1.570796326794896619231321691639751442097L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, -0x1.fp-129L, 0x1.000002p0L, 1.570796326794896619231321691639751442101L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, -0x1.fp-129L, -0x1.000002p0L, 1.570796326794896619231321691639751442101L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, 0x1.000002p0L, 0x1.fp-129L, 5.830451806317544230969669308596361881467e-36L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, 0x1.fp-129L, 3.141592653589793238462643383279502878367L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, 0x1.000002p0L, -0x1.fp-129L, 5.830451806317544230969669308596361881467e-36L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, -0x1.fp-129L, 3.141592653589793238462643383279502878367L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, 0.0L, 0x1.000002p0L, 1.570796326794896619231321691639751442099L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, 0.0L, -0x1.000002p0L, 1.570796326794896619231321691639751442099L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, -0.0L, 0x1.000002p0L, 1.570796326794896619231321691639751442099L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, -0.0L, -0x1.000002p0L, 1.570796326794896619231321691639751442099L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (cacos, 0x1.000002p0L, 0.0L, 0.0L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, 0.0L, 3.141592653589793238462643383279502884197L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, 0x1.000002p0L, -0.0L, 0.0L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (cacos, -0x1.000002p0L, -0.0L, 3.141592653589793238462643383279502884197L, 4.882812451493617206486388134172712975070e-4L)
-#ifndef TEST_FLOAT
- TEST_c_c (cacos, 0x1p-52L, 0x1.0000000000001p0L, 1.570796326794896462222075823262262934288L, -8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (cacos, 0x1p-52L, -0x1.0000000000001p0L, 1.570796326794896462222075823262262934288L, 8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (cacos, -0x1p-52L, 0x1.0000000000001p0L, 1.570796326794896776240567560017239949909L, -8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (cacos, -0x1p-52L, -0x1.0000000000001p0L, 1.570796326794896776240567560017239949909L, 8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, 0x1p-52L, 9.590301705980041385828904092662391018164e-9L, -2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (cacos, -0x1.0000000000001p0L, 0x1p-52L, 3.141592643999491532482601997450598791535L, -2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, -0x1p-52L, 9.590301705980041385828904092662391018164e-9L, 2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (cacos, -0x1.0000000000001p0L, -0x1p-52L, 3.141592643999491532482601997450598791535L, 2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (cacos, 0x1.fp-1025L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, 0x1.fp-1025L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, -0x1.fp-1025L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, -0x1.fp-1025L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, 0x1.fp-1025L, 2.557178503953494342609835913586108008322e-301L, -2.107342425544701550354780375182800088393e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM)
- TEST_c_c (cacos, -0x1.0000000000001p0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, -0x1.fp-1025L, 2.557178503953494342609835913586108008322e-301L, 2.107342425544701550354780375182800088393e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM)
- TEST_c_c (cacos, -0x1.0000000000001p0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (cacos, 0.0L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, 0.0L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, -0.0L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, -0.0L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, 0.0L, 0.0L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (cacos, -0x1.0000000000001p0L, 0.0L, 3.141592653589793238462643383279502884197L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (cacos, 0x1.0000000000001p0L, -0.0L, 0.0L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (cacos, -0x1.0000000000001p0L, -0.0L, 3.141592653589793238462643383279502884197L, 2.107342425544701550354780375182800088393e-8L)
+ TEST_c_c (cacosh, 0x1.fp-10000L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-10000L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-10000L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-10000L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, 9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, -9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-10000L, 9.854680208706673586644342922051388714633e-1506L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 1.0L, 8.813735870195430252326093249797923090282e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -1.0L, 8.813735870195430252326093249797923090282e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 1.0L, 0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, 9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (cacosh, -1.0L, 0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 1.0L, -0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, -9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (cacosh, -1.0L, -0x1.fp-16385L, 9.023632056840860275214893047597614177639e-2467L, -3.141592653589793238462643383279502884197L),
+#endif
+ TEST_c_c (cacosh, 0x1p-23L, 0x1.000002p0L, 8.813736713132400470205730751186547909968e-1L, 1.570796242501204621739026081991856762292L),
+ TEST_c_c (cacosh, 0x1p-23L, -0x1.000002p0L, 8.813736713132400470205730751186547909968e-1L, -1.570796242501204621739026081991856762292L),
+ TEST_c_c (cacosh, -0x1p-23L, 0x1.000002p0L, 8.813736713132400470205730751186547909968e-1L, 1.570796411088588616723617301287646121905L),
+ TEST_c_c (cacosh, -0x1p-23L, -0x1.000002p0L, 8.813736713132400470205730751186547909968e-1L, -1.570796411088588616723617301287646121905L),
+ TEST_c_c (cacosh, 0x1.000002p0L, 0x1p-23L, 5.364668491573609633134147164031476452679e-4L, 2.222118384408546368406374049167636760903e-4L),
+ TEST_c_c (cacosh, -0x1.000002p0L, 0x1p-23L, 5.364668491573609633134147164031476452679e-4L, 3.141370441751352383825802745874586120521L),
+ TEST_c_c (cacosh, 0x1.000002p0L, -0x1p-23L, 5.364668491573609633134147164031476452679e-4L, -2.222118384408546368406374049167636760903e-4L),
+ TEST_c_c (cacosh, -0x1.000002p0L, -0x1p-23L, 5.364668491573609633134147164031476452679e-4L, -3.141370441751352383825802745874586120521L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, 1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, -1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, 1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, -1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, 0x1.000002p0L, 0x1.fp-129L, 4.882812451493617206486388134172712975070e-4L, 5.830451806317544230969669308596361881467e-36L),
+ TEST_c_c (cacosh, -0x1.000002p0L, 0x1.fp-129L, 4.882812451493617206486388134172712975070e-4L, 3.141592653589793238462643383279502878367L),
+ TEST_c_c (cacosh, 0x1.000002p0L, -0x1.fp-129L, 4.882812451493617206486388134172712975070e-4L, -5.830451806317544230969669308596361881467e-36L),
+ TEST_c_c (cacosh, -0x1.000002p0L, -0x1.fp-129L, 4.882812451493617206486388134172712975070e-4L, -3.141592653589793238462643383279502878367L),
+ TEST_c_c (cacosh, 0.0L, 0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1.000002p0L, 8.813736713132375348727889167749389235161e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.000002p0L, 0.0L, 4.882812451493617206486388134172712975070e-4L, 0.0L),
+ TEST_c_c (cacosh, -0x1.000002p0L, 0.0L, 4.882812451493617206486388134172712975070e-4L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.000002p0L, -0.0L, 4.882812451493617206486388134172712975070e-4L, -0.0L),
+ TEST_c_c (cacosh, -0x1.000002p0L, -0.0L, 4.882812451493617206486388134172712975070e-4L, -3.141592653589793238462643383279502884197L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1p-52L, 0x1.0000000000001p0L, 8.813735870195431822418551933572982483664e-1L, 1.570796326794896462222075823262262934288L),
+ TEST_c_c (cacosh, 0x1p-52L, -0x1.0000000000001p0L, 8.813735870195431822418551933572982483664e-1L, -1.570796326794896462222075823262262934288L),
+ TEST_c_c (cacosh, -0x1p-52L, 0x1.0000000000001p0L, 8.813735870195431822418551933572982483664e-1L, 1.570796326794896776240567560017239949909L),
+ TEST_c_c (cacosh, -0x1p-52L, -0x1.0000000000001p0L, 8.813735870195431822418551933572982483664e-1L, -1.570796326794896776240567560017239949909L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, 0x1p-52L, 2.315303644582684770975188768022139415020e-8L, 9.590301705980041385828904092662391018164e-9L),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, 0x1p-52L, 2.315303644582684770975188768022139415020e-8L, 3.141592643999491532482601997450598791535L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, -0x1p-52L, 2.315303644582684770975188768022139415020e-8L, -9.590301705980041385828904092662391018164e-9L),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, -0x1p-52L, 2.315303644582684770975188768022139415020e-8L, -3.141592643999491532482601997450598791535L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, 0x1.fp-1025L, 2.107342425544701550354780375182800088393e-8L, 2.557178503953494342609835913586108008322e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, 0x1.fp-1025L, 2.107342425544701550354780375182800088393e-8L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, -0x1.fp-1025L, 2.107342425544701550354780375182800088393e-8L, -2.557178503953494342609835913586108008322e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, -0x1.fp-1025L, 2.107342425544701550354780375182800088393e-8L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0.0L, 0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1.0000000000001p0L, 8.813735870195431822418551933572895326024e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, 0.0L, 2.107342425544701550354780375182800088393e-8L, 0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, 0.0L, 2.107342425544701550354780375182800088393e-8L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000001p0L, -0.0L, 2.107342425544701550354780375182800088393e-8L, -0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000001p0L, -0.0L, 2.107342425544701550354780375182800088393e-8L, -3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_c_c (cacos, 0x1p-63L, 0x1.0000000000000002p0L, 1.570796326794896619154657020805582738031L, -8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (cacos, 0x1p-63L, -0x1.0000000000000002p0L, 1.570796326794896619154657020805582738031L, 8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (cacos, -0x1p-63L, 0x1.0000000000000002p0L, 1.570796326794896619307986362473920146166L, -8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (cacos, -0x1p-63L, -0x1.0000000000000002p0L, 1.570796326794896619307986362473920146166L, 8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, 0x1p-63L, 2.119177303101063432592523199680782317447e-10L, -5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, 0x1p-63L, 3.141592653377875508152537040020250564229L, -5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, -0x1p-63L, 2.119177303101063432592523199680782317447e-10L, 5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, -0x1p-63L, 3.141592653377875508152537040020250564229L, 5.116146586219826555037807251857670783420e-10L)
+ TEST_c_c (cacosh, 0x1p-63L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610131001e-1L, 1.570796326794896619154657020805582738031L),
+ TEST_c_c (cacosh, 0x1p-63L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610131001e-1L, -1.570796326794896619154657020805582738031L),
+ TEST_c_c (cacosh, -0x1p-63L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610131001e-1L, 1.570796326794896619307986362473920146166L),
+ TEST_c_c (cacosh, -0x1p-63L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610131001e-1L, -1.570796326794896619307986362473920146166L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, 0x1p-63L, 5.116146586219826555037807251857670783420e-10L, 2.119177303101063432592523199680782317447e-10L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, 0x1p-63L, 5.116146586219826555037807251857670783420e-10L, 3.141592653377875508152537040020250564229L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, -0x1p-63L, 5.116146586219826555037807251857670783420e-10L, -2.119177303101063432592523199680782317447e-10L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, -0x1p-63L, 5.116146586219826555037807251857670783420e-10L, -3.141592653377875508152537040020250564229L),
# if LDBL_MIN_EXP <= -16381
- TEST_c_c (cacos, 0x1.fp-16385L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, 0x1.fp-16385L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, -0x1.fp-16385L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, -0x1.fp-16385L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, 0x1.fp-16385L, 1.748608650034385653922359120438227480943e-4923L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, -0x1.fp-16385L, 1.748608650034385653922359120438227480943e-4923L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 4.656612873077392578082927418388212703712e-10L)
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, 0x1.fp-16385L, 4.656612873077392578082927418388212703712e-10L, 1.748608650034385653922359120438227480943e-4923L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, 0x1.fp-16385L, 4.656612873077392578082927418388212703712e-10L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, -0x1.fp-16385L, 4.656612873077392578082927418388212703712e-10L, -1.748608650034385653922359120438227480943e-4923L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, -0x1.fp-16385L, 4.656612873077392578082927418388212703712e-10L, -3.141592653589793238462643383279502884197L),
# endif
- TEST_c_c (cacos, 0.0L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, 0.0L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, -0.0L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, -0.0L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, 0.0L, 0.0L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, 0.0L, 3.141592653589793238462643383279502884197L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, 0x1.0000000000000002p0L, -0.0L, 0.0L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (cacos, -0x1.0000000000000002p0L, -0.0L, 3.141592653589793238462643383279502884197L, 4.656612873077392578082927418388212703712e-10L)
+ TEST_c_c (cacosh, 0.0L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1.0000000000000002p0L, 8.813735870195430253092739958139610130980e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, 0.0L, 4.656612873077392578082927418388212703712e-10L, 0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, 0.0L, 4.656612873077392578082927418388212703712e-10L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000000002p0L, -0.0L, 4.656612873077392578082927418388212703712e-10L, -0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000000002p0L, -0.0L, 4.656612873077392578082927418388212703712e-10L, -3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (cacos, 0x1p-106L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639742726335L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0x1p-106L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639742726335L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0x1p-106L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639760157863L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0x1p-106L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639760157863L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0x1p-106L, 5.394221422390606848017034778914096659726e-17L, -2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0x1p-106L, 3.141592653589793184520429159373434404027L, -2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0x1p-106L, 5.394221422390606848017034778914096659726e-17L, 2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0x1p-106L, 3.141592653589793184520429159373434404027L, 2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (cacos, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 2.426922623448365473354662093431821897807e-293L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 3.141592653589793238462643383279502884197L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 2.426922623448365473354662093431821897807e-293L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 3.141592653589793238462643383279502884197L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, 0.0L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0.0L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0.0L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, -0.0L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, 0.0L, 0.0L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, 0.0L, 3.141592653589793238462643383279502884197L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, 0x1.000000000000000000000000008p0L, -0.0L, 0.0L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (cacos, -0x1.000000000000000000000000008p0L, -0.0L, 3.141592653589793238462643383279502884197L, 2.220446049250313080847263336181636063482e-16L)
+ TEST_c_c (cacosh, 0x1p-106L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639742726335L),
+ TEST_c_c (cacosh, 0x1p-106L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639742726335L),
+ TEST_c_c (cacosh, -0x1p-106L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639760157863L),
+ TEST_c_c (cacosh, -0x1p-106L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639760157863L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, 0x1p-106L, 2.285028863093221674154232933662774454211e-16L, 5.394221422390606848017034778914096659726e-17L),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, 0x1p-106L, 2.285028863093221674154232933662774454211e-16L, 3.141592653589793184520429159373434404027L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, -0x1p-106L, 2.285028863093221674154232933662774454211e-16L, -5.394221422390606848017034778914096659726e-17L),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, -0x1p-106L, 2.285028863093221674154232933662774454211e-16L, -3.141592653589793184520429159373434404027L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 2.220446049250313080847263336181636063482e-16L, 2.426922623448365473354662093431821897807e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 2.220446049250313080847263336181636063482e-16L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 2.220446049250313080847263336181636063482e-16L, -2.426922623448365473354662093431821897807e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 2.220446049250313080847263336181636063482e-16L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0.0L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1.000000000000000000000000008p0L, 8.813735870195430252326093249798097405561e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, 0.0L, 2.220446049250313080847263336181636063482e-16L, 0.0L),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, 0.0L, 2.220446049250313080847263336181636063482e-16L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.000000000000000000000000008p0L, -0.0L, 2.220446049250313080847263336181636063482e-16L, -0.0L),
+ TEST_c_c (cacosh, -0x1.000000000000000000000000008p0L, -0.0L, 2.220446049250313080847263336181636063482e-16L, -3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_c_c (cacos, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751374007L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751374007L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0x1p-113L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751510190L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0x1p-113L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751510190L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 4.767863183742677481693563511435642755521e-18L, -2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0x1p-113L, 3.141592653589793233694780199536825402504L, -2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 4.767863183742677481693563511435642755521e-18L, 2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0x1p-113L, 3.141592653589793233694780199536825402504L, 2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (cacos, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 4.148847925325683229178506116378864361396e-4916L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 3.141592653589793238462643383279502884197L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 4.148847925325683229178506116378864361396e-4916L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 3.141592653589793238462643383279502884197L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, 0.0L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0.0L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0.0L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, -0.0L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, 0.0L, 0.0L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, 0.0L, 3.141592653589793238462643383279502884197L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, 0x1.0000000000000000000000000001p0L, -0.0L, 0.0L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (cacos, -0x1.0000000000000000000000000001p0L, -0.0L, 3.141592653589793238462643383279502884197L, 1.962615573354718824241727964954454332780e-17L)
-#endif
-
- TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L, -1.13239363160530819522266333696834467L);
- TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L);
-
- END (cacos, complex);
-}
+ TEST_c_c (cacosh, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751374007L),
+ TEST_c_c (cacosh, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751374007L),
+ TEST_c_c (cacosh, -0x1p-113L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751510190L),
+ TEST_c_c (cacosh, -0x1p-113L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751510190L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 2.019699255375255198156433710951064632386e-17L, 4.767863183742677481693563511435642755521e-18L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, 0x1p-113L, 2.019699255375255198156433710951064632386e-17L, 3.141592653589793233694780199536825402504L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 2.019699255375255198156433710951064632386e-17L, -4.767863183742677481693563511435642755521e-18L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, -0x1p-113L, 2.019699255375255198156433710951064632386e-17L, -3.141592653589793233694780199536825402504L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 1.962615573354718824241727964954454332780e-17L, 4.148847925325683229178506116378864361396e-4916L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 1.962615573354718824241727964954454332780e-17L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 1.962615573354718824241727964954454332780e-17L, -4.148847925325683229178506116378864361396e-4916L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 1.962615573354718824241727964954454332780e-17L, -3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0.0L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1.0000000000000000000000000001p0L, 8.813735870195430252326093249797924452120e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, 0.0L, 1.962615573354718824241727964954454332780e-17L, 0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, 0.0L, 1.962615573354718824241727964954454332780e-17L, 3.141592653589793238462643383279502884197L),
+ TEST_c_c (cacosh, 0x1.0000000000000000000000000001p0L, -0.0L, 1.962615573354718824241727964954454332780e-17L, -0.0L),
+ TEST_c_c (cacosh, -0x1.0000000000000000000000000001p0L, -0.0L, 1.962615573354718824241727964954454332780e-17L, -3.141592653589793238462643383279502884197L),
+#endif
+ TEST_c_c (cacosh, 0x1p-23L, 0x0.ffffffp0L, 8.813735448726963984495965873956465777250e-1L, 1.570796242501197085295336701632142060969L),
+ TEST_c_c (cacosh, 0x1p-23L, -0x0.ffffffp0L, 8.813735448726963984495965873956465777250e-1L, -1.570796242501197085295336701632142060969L),
+ TEST_c_c (cacosh, -0x1p-23L, 0x0.ffffffp0L, 8.813735448726963984495965873956465777250e-1L, 1.570796411088596153167306681647360823228L),
+ TEST_c_c (cacosh, -0x1p-23L, -0x0.ffffffp0L, 8.813735448726963984495965873956465777250e-1L, -1.570796411088596153167306681647360823228L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, 0x1p-23L, 2.714321200917194650737217746780928423385e-4L, 4.391863861910487109445187743978204002614e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, 0x1p-23L, 2.714321200917194650737217746780928423385e-4L, 3.141153467203602189751698864505105063797L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, -0x1p-23L, 2.714321200917194650737217746780928423385e-4L, -4.391863861910487109445187743978204002614e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, -0x1p-23L, 2.714321200917194650737217746780928423385e-4L, -3.141153467203602189751698864505105063797L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, 1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, -1.570796326794896619231321691639751442097L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, 1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, -1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, 0x1.fp-129L, 8.245504387859737323891843603996428534945e-36L, 3.452669847162035876032494826387364972849e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, 0x1.fp-129L, 8.245504387859737323891843603996428534945e-36L, 3.141247386605077034875040133796864147700L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, -0x1.fp-129L, 8.245504387859737323891843603996428534945e-36L, -3.452669847162035876032494826387364972849e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, -0x1.fp-129L, 8.245504387859737323891843603996428534945e-36L, -3.141247386605077034875040133796864147700L),
+ TEST_c_c (cacosh, 0.0L, 0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x0.ffffffp0L, 8.813735448726938863015878255140556727969e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, 0.0L, 0.0L, 3.452669847162035876032494826387364972849e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, 0.0L, 0.0L, 3.141247386605077034875040133796864147700L),
+ TEST_c_c (cacosh, 0x0.ffffffp0L, -0.0L, 0.0L, -3.452669847162035876032494826387364972849e-4L),
+ TEST_c_c (cacosh, -0x0.ffffffp0L, -0.0L, 0.0L, -3.141247386605077034875040133796864147700L),
+ TEST_c_c (cacosh, 0x1p-23L, 0.5L, 4.812118250596059896127318386463676808798e-1L, 1.570796220170866625230343643673321150378L),
+ TEST_c_c (cacosh, 0x1p-23L, -0.5L, 4.812118250596059896127318386463676808798e-1L, -1.570796220170866625230343643673321150378L),
+ TEST_c_c (cacosh, -0x1p-23L, 0.5L, 4.812118250596059896127318386463676808798e-1L, 1.570796433418926613232299739606181733819L),
+ TEST_c_c (cacosh, -0x1p-23L, -0.5L, 4.812118250596059896127318386463676808798e-1L, -1.570796433418926613232299739606181733819L),
+ TEST_c_c (cacosh, 0.5L, 0x1p-23L, 1.376510308240943236356088341381173571841e-7L, 1.047197551196603215914744618665204532273L),
+ TEST_c_c (cacosh, -0.5L, 0x1p-23L, 1.376510308240943236356088341381173571841e-7L, 2.094395102393190022547898764614298351924L),
+ TEST_c_c (cacosh, 0.5L, -0x1p-23L, 1.376510308240943236356088341381173571841e-7L, -1.047197551196603215914744618665204532273L),
+ TEST_c_c (cacosh, -0.5L, -0x1p-23L, 1.376510308240943236356088341381173571841e-7L, -2.094395102393190022547898764614298351924L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, 0.5L, 0x1.fp-129L, 3.287317402534702257036015056278368274737e-39L, 1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0.5L, 0x1.fp-129L, 3.287317402534702257036015056278368274737e-39L, 2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, 0.5L, -0x1.fp-129L, 3.287317402534702257036015056278368274737e-39L, -1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0.5L, -0x1.fp-129L, 3.287317402534702257036015056278368274737e-39L, -2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, 0x1p-23L, 0x1p-23L, 1.192092895507818146886315028596704749235e-7L, 1.570796207585607068450636380271254316214L),
+ TEST_c_c (cacosh, 0x1p-23L, -0x1p-23L, 1.192092895507818146886315028596704749235e-7L, -1.570796207585607068450636380271254316214L),
+ TEST_c_c (cacosh, -0x1p-23L, 0x1p-23L, 1.192092895507818146886315028596704749235e-7L, 1.570796446004186170012007003008248567984L),
+ TEST_c_c (cacosh, -0x1p-23L, -0x1p-23L, 1.192092895507818146886315028596704749235e-7L, -1.570796446004186170012007003008248567984L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 0x1p-23L, 1.192092895507809676556842485683592032154e-7L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (cacosh, 0x1.fp-129L, -0x1p-23L, 1.192092895507809676556842485683592032154e-7L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (cacosh, -0x1.fp-129L, 0x1p-23L, 1.192092895507809676556842485683592032154e-7L, 1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, -0x1.fp-129L, -0x1p-23L, 1.192092895507809676556842485683592032154e-7L, -1.570796326794896619231321691639751442101L),
+ TEST_c_c (cacosh, 0x1p-23L, 0x1.fp-129L, 2.846900380897747786805634596726756660388e-39L, 1.570796207585607068449789347324000006847L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0x1p-23L, 0x1.fp-129L, 2.846900380897747786805634596726756660388e-39L, 1.570796446004186170012854035955502877351L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, 0x1p-23L, -0x1.fp-129L, 2.846900380897747786805634596726756660388e-39L, -1.570796207585607068449789347324000006847L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0x1p-23L, -0x1.fp-129L, 2.846900380897747786805634596726756660388e-39L, -1.570796446004186170012854035955502877351L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, 0.0L, 0x1p-23L, 1.192092895507809676556842485683592032154e-7L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1p-23L, 1.192092895507809676556842485683592032154e-7L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1p-23L, 1.192092895507809676556842485683592032154e-7L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1p-23L, 1.192092895507809676556842485683592032154e-7L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-23L, 0.0L, 0.0L, 1.570796207585607068449789347324000006847L),
+ TEST_c_c (cacosh, -0x1p-23L, 0.0L, 0.0L, 1.570796446004186170012854035955502877351L),
+ TEST_c_c (cacosh, 0x1p-23L, -0.0L, 0.0L, -1.570796207585607068449789347324000006847L),
+ TEST_c_c (cacosh, -0x1p-23L, -0.0L, 0.0L, -1.570796446004186170012854035955502877351L),
+ TEST_c_c (cacosh, 0x1.fp-129L, 0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, 1.570796326794896619231321691639751442096L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, 0x1.fp-129L, -0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, -1.570796326794896619231321691639751442096L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0x1.fp-129L, 0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, 1.570796326794896619231321691639751442101L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (cacosh, -0x1.fp-129L, -0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, -1.570796326794896619231321691639751442101L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1p-52L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910458761820e-1L, 1.570796326794896462222075823262236786996L),
+ TEST_c_c (cacosh, 0x1p-52L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910458761820e-1L, -1.570796326794896462222075823262236786996L),
+ TEST_c_c (cacosh, -0x1p-52L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910458761820e-1L, 1.570796326794896776240567560017266097201L),
+ TEST_c_c (cacosh, -0x1p-52L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910458761820e-1L, -1.570796326794896776240567560017266097201L),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, 0x1p-52L, 1.171456840272878582596796205397918831268e-8L, 1.895456983915074112227925127005564372844e-8L),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, 0x1p-52L, 1.171456840272878582596796205397918831268e-8L, 3.141592634635223399311902261000251614142L),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, -0x1p-52L, 1.171456840272878582596796205397918831268e-8L, -1.895456983915074112227925127005564372844e-8L),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, -0x1p-52L, 1.171456840272878582596796205397918831268e-8L, -3.141592634635223399311902261000251614142L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, 0x1.fp-1025L, 3.616396521699973256461764099945789620604e-301L, 1.490116119384765638786343542550461592240e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, 0x1.fp-1025L, 3.616396521699973256461764099945789620604e-301L, 3.141592638688632044614986995416067458693L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, -0x1.fp-1025L, 3.616396521699973256461764099945789620604e-301L, -1.490116119384765638786343542550461592240e-8L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, -0x1.fp-1025L, 3.616396521699973256461764099945789620604e-301L, -3.141592638688632044614986995416067458693L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, 0.0L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x0.fffffffffffff8p0L, 8.813735870195429467279863907910371604180e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, 0.0L, 0.0L, 1.490116119384765638786343542550461592240e-8L),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, 0.0L, 0.0L, 3.141592638688632044614986995416067458693L),
+ TEST_c_c (cacosh, 0x0.fffffffffffff8p0L, -0.0L, 0.0L, -1.490116119384765638786343542550461592240e-8L),
+ TEST_c_c (cacosh, -0x0.fffffffffffff8p0L, -0.0L, 0.0L, -3.141592638688632044614986995416067458693L),
+#endif
+ TEST_c_c (cacosh, 0x1p-52L, 0.5L, 4.812118250596034474977589134243772428682e-1L, 1.570796326794896420628589431857911675917L),
+ TEST_c_c (cacosh, 0x1p-52L, -0.5L, 4.812118250596034474977589134243772428682e-1L, -1.570796326794896420628589431857911675917L),
+ TEST_c_c (cacosh, -0x1p-52L, 0.5L, 4.812118250596034474977589134243772428682e-1L, 1.570796326794896817834053951421591208280L),
+ TEST_c_c (cacosh, -0x1p-52L, -0.5L, 4.812118250596034474977589134243772428682e-1L, -1.570796326794896817834053951421591208280L),
+ TEST_c_c (cacosh, 0.5L, 0x1p-52L, 2.563950248511418570403591756798643804971e-16L, 1.047197551196597746154214461093186605110L),
+ TEST_c_c (cacosh, -0.5L, 0x1p-52L, 2.563950248511418570403591756798643804971e-16L, 2.094395102393195492308428922186316279087L),
+ TEST_c_c (cacosh, 0.5L, -0x1p-52L, 2.563950248511418570403591756798643804971e-16L, -1.047197551196597746154214461093186605110L),
+ TEST_c_c (cacosh, -0.5L, -0x1p-52L, 2.563950248511418570403591756798643804971e-16L, -2.094395102393195492308428922186316279087L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.5L, 0x1.fp-1025L, 6.222508863508420569166420770843207333493e-309L, 1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0.5L, 0x1.fp-1025L, 6.222508863508420569166420770843207333493e-309L, 2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, 0.5L, -0x1.fp-1025L, 6.222508863508420569166420770843207333493e-309L, -1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0.5L, -0x1.fp-1025L, 6.222508863508420569166420770843207333493e-309L, -2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacosh, 0x1p-52L, 0x1p-52L, 2.220446049250313080847263336181677117148e-16L, 1.570796326794896397186716766608443357372L),
+ TEST_c_c (cacosh, 0x1p-52L, -0x1p-52L, 2.220446049250313080847263336181677117148e-16L, -1.570796326794896397186716766608443357372L),
+ TEST_c_c (cacosh, -0x1p-52L, 0x1p-52L, 2.220446049250313080847263336181677117148e-16L, 1.570796326794896841275926616671059526825L),
+ TEST_c_c (cacosh, -0x1p-52L, -0x1p-52L, 2.220446049250313080847263336181677117148e-16L, -1.570796326794896841275926616671059526825L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x1p-52L, 2.220446049250313080847263336181622378926e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x1p-52L, 2.220446049250313080847263336181622378926e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x1p-52L, 2.220446049250313080847263336181622378926e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x1p-52L, 2.220446049250313080847263336181622378926e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-52L, 0x1.fp-1025L, 5.388850751072128349671657362289548938458e-309L, 1.570796326794896397186716766608443357372L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1p-52L, 0x1.fp-1025L, 5.388850751072128349671657362289548938458e-309L, 1.570796326794896841275926616671059526825L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, 0x1p-52L, -0x1.fp-1025L, 5.388850751072128349671657362289548938458e-309L, -1.570796326794896397186716766608443357372L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1p-52L, -0x1.fp-1025L, 5.388850751072128349671657362289548938458e-309L, -1.570796326794896841275926616671059526825L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacosh, 0.0L, 0x1p-52L, 2.220446049250313080847263336181622378926e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1p-52L, 2.220446049250313080847263336181622378926e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1p-52L, 2.220446049250313080847263336181622378926e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1p-52L, 2.220446049250313080847263336181622378926e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-52L, 0.0L, 0.0L, 1.570796326794896397186716766608443357372L),
+ TEST_c_c (cacosh, -0x1p-52L, 0.0L, 0.0L, 1.570796326794896841275926616671059526825L),
+ TEST_c_c (cacosh, 0x1p-52L, -0.0L, 0.0L, -1.570796326794896397186716766608443357372L),
+ TEST_c_c (cacosh, -0x1p-52L, -0.0L, 0.0L, -1.570796326794896841275926616671059526825L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (cacosh, 0x1p-63L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569937e-1L, 1.570796326794896619154657020805582738025L),
+ TEST_c_c (cacosh, 0x1p-63L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569937e-1L, -1.570796326794896619154657020805582738025L),
+ TEST_c_c (cacosh, -0x1p-63L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569937e-1L, 1.570796326794896619307986362473920146173L),
+ TEST_c_c (cacosh, -0x1p-63L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569937e-1L, -1.570796326794896619307986362473920146173L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, 0x1p-63L, 2.588578361325995866221775673638805081337e-10L, 4.188407771167967636741951941902992986043e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, 0x1p-63L, 2.588578361325995866221775673638805081337e-10L, 3.141592653170952461345846619605307690007L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, -0x1p-63L, 2.588578361325995866221775673638805081337e-10L, -4.188407771167967636741951941902992986043e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, -0x1p-63L, 2.588578361325995866221775673638805081337e-10L, -3.141592653170952461345846619605307690007L),
+# if LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 2.472906068161537187835415298076415423459e-4923L, 3.292722539913596233371825532007990724506e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 2.472906068161537187835415298076415423459e-4923L, 3.141592653260520984471283759942320330996L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 2.472906068161537187835415298076415423459e-4923L, -3.292722539913596233371825532007990724506e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 2.472906068161537187835415298076415423459e-4923L, -3.141592653260520984471283759942320330996L),
+# endif
+ TEST_c_c (cacosh, 0.0L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x0.ffffffffffffffffp0L, 8.813735870195430251942769895627079569917e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, 0.0L, 0.0L, 3.292722539913596233371825532007990724506e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, 0.0L, 0.0L, 3.141592653260520984471283759942320330996L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffp0L, -0.0L, 0.0L, -3.292722539913596233371825532007990724506e-10L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffp0L, -0.0L, 0.0L, -3.141592653260520984471283759942320330996L),
+#endif
+ TEST_c_c (cacosh, 0x1p-63L, 0.5L, 4.812118250596034474977589134243684231373e-1L, 1.570796326794896619134347701278529840650L),
+ TEST_c_c (cacosh, 0x1p-63L, -0.5L, 4.812118250596034474977589134243684231373e-1L, -1.570796326794896619134347701278529840650L),
+ TEST_c_c (cacosh, -0x1p-63L, 0.5L, 4.812118250596034474977589134243684231373e-1L, 1.570796326794896619328295682000973043547L),
+ TEST_c_c (cacosh, -0x1p-63L, -0.5L, 4.812118250596034474977589134243684231373e-1L, -1.570796326794896619328295682000973043547L),
+ TEST_c_c (cacosh, 0.5L, 0x1p-63L, 1.251928832280966098829878787499365228659e-19L, 1.047197551196597746154214461093167628070L),
+ TEST_c_c (cacosh, -0.5L, 0x1p-63L, 1.251928832280966098829878787499365228659e-19L, 2.094395102393195492308428922186335256127L),
+ TEST_c_c (cacosh, 0.5L, -0x1p-63L, 1.251928832280966098829878787499365228659e-19L, -1.047197551196597746154214461093167628070L),
+ TEST_c_c (cacosh, -0.5L, -0x1p-63L, 1.251928832280966098829878787499365228659e-19L, -2.094395102393195492308428922186335256127L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.5L, 0x1.fp-16385L, 9.402257155670418112159334875199821342890e-4933L, 1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0.5L, 0x1.fp-16385L, 9.402257155670418112159334875199821342890e-4933L, 2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, 0.5L, -0x1.fp-16385L, 9.402257155670418112159334875199821342890e-4933L, -1.047197551196597746154214461093167628066L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0.5L, -0x1.fp-16385L, 9.402257155670418112159334875199821342890e-4933L, -2.094395102393195492308428922186335256131L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacosh, 0x1p-63L, 0x1p-63L, 1.084202172485504434007452800869941711430e-19L, 1.570796326794896619122901474391200998698L),
+ TEST_c_c (cacosh, 0x1p-63L, -0x1p-63L, 1.084202172485504434007452800869941711430e-19L, -1.570796326794896619122901474391200998698L),
+ TEST_c_c (cacosh, -0x1p-63L, 0x1p-63L, 1.084202172485504434007452800869941711430e-19L, 1.570796326794896619339741908888301885499L),
+ TEST_c_c (cacosh, -0x1p-63L, -0x1p-63L, 1.084202172485504434007452800869941711430e-19L, -1.570796326794896619339741908888301885499L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x1p-63L, 1.084202172485504434007452800869941711424e-19L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x1p-63L, 1.084202172485504434007452800869941711424e-19L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x1p-63L, 1.084202172485504434007452800869941711424e-19L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x1p-63L, 1.084202172485504434007452800869941711424e-19L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-63L, 0x1.fp-16385L, 8.142593549724601460479922838826119584465e-4933L, 1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1p-63L, 0x1.fp-16385L, 8.142593549724601460479922838826119584465e-4933L, 1.570796326794896619339741908888301885499L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, 0x1p-63L, -0x1.fp-16385L, 8.142593549724601460479922838826119584465e-4933L, -1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1p-63L, -0x1.fp-16385L, 8.142593549724601460479922838826119584465e-4933L, -1.570796326794896619339741908888301885499L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacosh, 0.0L, 0x1p-63L, 1.084202172485504434007452800869941711424e-19L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1p-63L, 1.084202172485504434007452800869941711424e-19L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1p-63L, 1.084202172485504434007452800869941711424e-19L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1p-63L, 1.084202172485504434007452800869941711424e-19L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-63L, 0.0L, 0.0L, 1.570796326794896619122901474391200998698L),
+ TEST_c_c (cacosh, -0x1p-63L, 0.0L, 0.0L, 1.570796326794896619339741908888301885499L),
+ TEST_c_c (cacosh, 0x1p-63L, -0.0L, 0.0L, -1.570796326794896619122901474391200998698L),
+ TEST_c_c (cacosh, -0x1p-63L, -0.0L, 0.0L, -1.570796326794896619339741908888301885499L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (cacosh, 0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639734010571L),
+ TEST_c_c (cacosh, 0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639734010571L),
+ TEST_c_c (cacosh, -0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639768873627L),
+ TEST_c_c (cacosh, -0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639768873627L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 1.234330349600789959989661887846005659983e-16L, 1.997188458999618357060632049675702684031e-16L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 1.234330349600789959989661887846005659983e-16L, 3.141592653589793038743797483317667178134L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 1.234330349600789959989661887846005659983e-16L, -1.997188458999618357060632049675702684031e-16L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 1.234330349600789959989661887846005659983e-16L, -3.141592653589793038743797483317667178134L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 3.432186888910770473784103112009399360940e-293L, 1.570092458683775059393382371963565104164e-16L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 3.432186888910770473784103112009399360940e-293L, 3.141592653589793081453397514901996944859L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 3.432186888910770473784103112009399360940e-293L, -1.570092458683775059393382371963565104164e-16L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 3.432186888910770473784103112009399360940e-293L, -3.141592653589793081453397514901996944859L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (cacosh, 0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 8.813735870195430252326093249797835932642e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 0.0L, 1.570092458683775059393382371963565104164e-16L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 0.0L, 3.141592653589793081453397514901996944859L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 0.0L, -1.570092458683775059393382371963565104164e-16L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 0.0L, -3.141592653589793081453397514901996944859L),
+#endif
+ TEST_c_c (cacosh, 0x1p-105L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639729392766L),
+ TEST_c_c (cacosh, 0x1p-105L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639729392766L),
+ TEST_c_c (cacosh, -0x1p-105L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639773491431L),
+ TEST_c_c (cacosh, -0x1p-105L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639773491431L),
+ TEST_c_c (cacosh, 0.5L, 0x1p-105L, 2.846556599890768890940941645338546615370e-32L, 1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, -0.5L, 0x1p-105L, 2.846556599890768890940941645338546615370e-32L, 2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, 0.5L, -0x1p-105L, 2.846556599890768890940941645338546615370e-32L, -1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, -0.5L, -0x1p-105L, 2.846556599890768890940941645338546615370e-32L, -2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, 0x1p-105L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639726790195L),
+ TEST_c_c (cacosh, 0x1p-105L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639726790195L),
+ TEST_c_c (cacosh, -0x1p-105L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639776094002L),
+ TEST_c_c (cacosh, -0x1p-105L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639776094002L),
+#ifndef TEST_FLOAT
+ TEST_c_c (cacosh, 0x1.fp-1025L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-1025L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-1025L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-105L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 1.570796326794896619231321691639726790195L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1p-105L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 1.570796326794896619231321691639776094002L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, 0x1p-105L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -1.570796326794896619231321691639726790195L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (cacosh, -0x1p-105L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -1.570796326794896619231321691639776094002L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (cacosh, 0.0L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-105L, 0.0L, 0.0L, 1.570796326794896619231321691639726790195L),
+ TEST_c_c (cacosh, -0x1p-105L, 0.0L, 0.0L, 1.570796326794896619231321691639776094002L),
+ TEST_c_c (cacosh, 0x1p-105L, -0.0L, 0.0L, -1.570796326794896619231321691639726790195L),
+ TEST_c_c (cacosh, -0x1p-105L, -0.0L, 0.0L, -1.570796326794896619231321691639776094002L),
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (cacosh, 0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751305915L),
+ TEST_c_c (cacosh, 0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751305915L),
+ TEST_c_c (cacosh, -0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751578282L),
+ TEST_c_c (cacosh, -0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751578282L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 1.091004200533850618345330909857103457781e-17L, 1.765281878332676474347460257221369818872e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 1.091004200533850618345330909857103457781e-17L, 3.141592653589793220809824599952738140723L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 1.091004200533850618345330909857103457781e-17L, -1.765281878332676474347460257221369818872e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 1.091004200533850618345330909857103457781e-17L, -3.141592653589793220809824599952738140723L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 5.867357004219059108790368268900490184505e-4916L, 1.387778780781445675529539585113525401762e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 5.867357004219059108790368268900490184505e-4916L, 3.141592653589793224584855575465046128902L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 5.867357004219059108790368268900490184505e-4916L, -1.387778780781445675529539585113525401762e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 5.867357004219059108790368268900490184505e-4916L, -3.141592653589793224584855575465046128902L),
+ TEST_c_c (cacosh, 0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 8.813735870195430252326093249797922409363e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 0.0L, 1.387778780781445675529539585113525401762e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 0.0L, 3.141592653589793224584855575465046128902L),
+ TEST_c_c (cacosh, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 0.0L, -1.387778780781445675529539585113525401762e-17L),
+ TEST_c_c (cacosh, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 0.0L, -3.141592653589793224584855575465046128902L),
+#endif
+ TEST_c_c (cacosh, 0x1p-112L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751269838L),
+ TEST_c_c (cacosh, 0x1p-112L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751269838L),
+ TEST_c_c (cacosh, -0x1p-112L, 0.5L, 4.812118250596034474977589134243684231352e-1L, 1.570796326794896619231321691639751614359L),
+ TEST_c_c (cacosh, -0x1p-112L, -0.5L, 4.812118250596034474977589134243684231352e-1L, -1.570796326794896619231321691639751614359L),
+ TEST_c_c (cacosh, 0.5L, 0x1p-112L, 2.223872343664663196047610660420739543258e-34L, 1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, -0.5L, 0x1p-112L, 2.223872343664663196047610660420739543258e-34L, 2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, 0.5L, -0x1p-112L, 2.223872343664663196047610660420739543258e-34L, -1.047197551196597746154214461093167628066L),
+ TEST_c_c (cacosh, -0.5L, -0x1p-112L, 2.223872343664663196047610660420739543258e-34L, -2.094395102393195492308428922186335256131L),
+ TEST_c_c (cacosh, 0x1p-112L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751249506L),
+ TEST_c_c (cacosh, 0x1p-112L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751249506L),
+ TEST_c_c (cacosh, -0x1p-112L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751634692L),
+ TEST_c_c (cacosh, -0x1p-112L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751634692L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (cacosh, 0x1.fp-16385L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1.fp-16385L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0x1.fp-16385L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-112L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 1.570796326794896619231321691639751249506L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1p-112L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 1.570796326794896619231321691639751634692L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, 0x1p-112L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -1.570796326794896619231321691639751249506L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cacosh, -0x1p-112L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -1.570796326794896619231321691639751634692L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (cacosh, 0.0L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0.0L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, -0.0L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (cacosh, 0x1p-112L, 0.0L, 0.0L, 1.570796326794896619231321691639751249506L),
+ TEST_c_c (cacosh, -0x1p-112L, 0.0L, 0.0L, 1.570796326794896619231321691639751634692L),
+ TEST_c_c (cacosh, 0x1p-112L, -0.0L, 0.0L, -1.570796326794896619231321691639751249506L),
+ TEST_c_c (cacosh, -0x1p-112L, -0.0L, 0.0L, -1.570796326794896619231321691639751634692L),
+
+ TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L),
+ TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L),
+ };
static void
cacosh_test (void)
{
- errno = 0;
- FUNC(cacosh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cacosh);
-
-
- TEST_c_c (cacosh, 0, 0, 0.0, M_PI_2l);
- TEST_c_c (cacosh, minus_zero, 0, 0.0, M_PI_2l);
- TEST_c_c (cacosh, 0, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (cacosh, minus_zero, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (cacosh, minus_infty, plus_infty, plus_infty, M_PI_34l);
- TEST_c_c (cacosh, minus_infty, minus_infty, plus_infty, -M_PI_34l);
-
- TEST_c_c (cacosh, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (cacosh, plus_infty, minus_infty, plus_infty, -M_PI_4l);
-
- TEST_c_c (cacosh, -10.0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, -10.0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (cacosh, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (cacosh, 0.1L, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (cacosh, 0.1L, minus_infty, plus_infty, -M_PI_2l);
-
- TEST_c_c (cacosh, minus_infty, 0, plus_infty, M_PIl);
- TEST_c_c (cacosh, minus_infty, minus_zero, plus_infty, -M_PIl);
- TEST_c_c (cacosh, minus_infty, 100, plus_infty, M_PIl);
- TEST_c_c (cacosh, minus_infty, -100, plus_infty, -M_PIl);
-
- TEST_c_c (cacosh, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (cacosh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (cacosh, plus_infty, 0.5, plus_infty, 0.0);
- TEST_c_c (cacosh, plus_infty, -0.5, plus_infty, minus_zero);
-
- TEST_c_c (cacosh, plus_infty, qnan_value, plus_infty, qnan_value);
- TEST_c_c (cacosh, minus_infty, qnan_value, plus_infty, qnan_value);
-
- TEST_c_c (cacosh, 0, qnan_value, qnan_value, qnan_value);
- TEST_c_c (cacosh, minus_zero, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (cacosh, qnan_value, plus_infty, plus_infty, qnan_value);
- TEST_c_c (cacosh, qnan_value, minus_infty, plus_infty, qnan_value);
-
- TEST_c_c (cacosh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacosh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacosh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cacosh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (cacosh, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (cacosh, plus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
- TEST_c_c (cacosh, minus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
- TEST_c_c (cacosh, plus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
- TEST_c_c (cacosh, minus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
- TEST_c_c (cacosh, plus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
- TEST_c_c (cacosh, minus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
- TEST_c_c (cacosh, plus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
- TEST_c_c (cacosh, minus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
- TEST_c_c (cacosh, plus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
- TEST_c_c (cacosh, minus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
- TEST_c_c (cacosh, plus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
- TEST_c_c (cacosh, minus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
-
- TEST_c_c (cacosh, -1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, M_PIl);
- TEST_c_c (cacosh, -1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, -M_PIl);
- TEST_c_c (cacosh, -1.0L, plus_zero, plus_zero, M_PIl);
- TEST_c_c (cacosh, -1.0L, minus_zero, plus_zero, -M_PIl);
- TEST_c_c (cacosh, -0.5L, plus_zero, plus_zero, 2.094395102393195492308428922186335256131L);
- TEST_c_c (cacosh, -0.5L, minus_zero, plus_zero, -2.094395102393195492308428922186335256131L);
- TEST_c_c (cacosh, 0.5L, plus_zero, plus_zero, 1.047197551196597746154214461093167628066L);
- TEST_c_c (cacosh, 0.5L, minus_zero, plus_zero, -1.047197551196597746154214461093167628066L);
- TEST_c_c (cacosh, 1.0L, plus_zero, plus_zero, plus_zero);
- TEST_c_c (cacosh, 1.0L, minus_zero, plus_zero, minus_zero);
- TEST_c_c (cacosh, 1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, plus_zero);
- TEST_c_c (cacosh, 1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, minus_zero);
-
- TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L);
- TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L);
-
- END (cacosh, complex);
+ RUN_TEST_LOOP_c_c (cacosh, cacosh_test_data, );
+ END_COMPLEX;
}
-static void
-carg_test (void)
-{
- START (carg);
+static const struct test_c_f_data carg_test_data[] =
+ {
+ /* carg (x + iy) is specified as atan2 (y, x) */
- /* carg (x + iy) is specified as atan2 (y, x) */
+ /* carg (x + i 0) == 0 for x > 0. */
+ TEST_c_f (carg, 2.0, 0, 0),
+ /* carg (x - i 0) == -0 for x > 0. */
+ TEST_c_f (carg, 2.0, minus_zero, minus_zero),
- /* carg (x + i 0) == 0 for x > 0. */
- TEST_c_f (carg, 2.0, 0, 0);
- /* carg (x - i 0) == -0 for x > 0. */
- TEST_c_f (carg, 2.0, minus_zero, minus_zero);
+ TEST_c_f (carg, 0, 0, 0),
+ TEST_c_f (carg, 0, minus_zero, minus_zero),
- TEST_c_f (carg, 0, 0, 0);
- TEST_c_f (carg, 0, minus_zero, minus_zero);
+ /* carg (x + i 0) == +pi for x < 0. */
+ TEST_c_f (carg, -2.0, 0, M_PIl),
- /* carg (x + i 0) == +pi for x < 0. */
- TEST_c_f (carg, -2.0, 0, M_PIl);
+ /* carg (x - i 0) == -pi for x < 0. */
+ TEST_c_f (carg, -2.0, minus_zero, -M_PIl),
- /* carg (x - i 0) == -pi for x < 0. */
- TEST_c_f (carg, -2.0, minus_zero, -M_PIl);
+ TEST_c_f (carg, minus_zero, 0, M_PIl),
+ TEST_c_f (carg, minus_zero, minus_zero, -M_PIl),
- TEST_c_f (carg, minus_zero, 0, M_PIl);
- TEST_c_f (carg, minus_zero, minus_zero, -M_PIl);
+ /* carg (+0 + i y) == pi/2 for y > 0. */
+ TEST_c_f (carg, 0, 2.0, M_PI_2l),
- /* carg (+0 + i y) == pi/2 for y > 0. */
- TEST_c_f (carg, 0, 2.0, M_PI_2l);
+ /* carg (-0 + i y) == pi/2 for y > 0. */
+ TEST_c_f (carg, minus_zero, 2.0, M_PI_2l),
- /* carg (-0 + i y) == pi/2 for y > 0. */
- TEST_c_f (carg, minus_zero, 2.0, M_PI_2l);
+ /* carg (+0 + i y) == -pi/2 for y < 0. */
+ TEST_c_f (carg, 0, -2.0, -M_PI_2l),
- /* carg (+0 + i y) == -pi/2 for y < 0. */
- TEST_c_f (carg, 0, -2.0, -M_PI_2l);
+ /* carg (-0 + i y) == -pi/2 for y < 0. */
+ TEST_c_f (carg, minus_zero, -2.0, -M_PI_2l),
- /* carg (-0 + i y) == -pi/2 for y < 0. */
- TEST_c_f (carg, minus_zero, -2.0, -M_PI_2l);
+ /* carg (inf + i y) == +0 for finite y > 0. */
+ TEST_c_f (carg, plus_infty, 2.0, 0),
- /* carg (inf + i y) == +0 for finite y > 0. */
- TEST_c_f (carg, plus_infty, 2.0, 0);
+ /* carg (inf + i y) == -0 for finite y < 0. */
+ TEST_c_f (carg, plus_infty, -2.0, minus_zero),
- /* carg (inf + i y) == -0 for finite y < 0. */
- TEST_c_f (carg, plus_infty, -2.0, minus_zero);
+ /* carg(x + i inf) == pi/2 for finite x. */
+ TEST_c_f (carg, 10.0, plus_infty, M_PI_2l),
- /* carg(x + i inf) == pi/2 for finite x. */
- TEST_c_f (carg, 10.0, plus_infty, M_PI_2l);
+ /* carg(x - i inf) == -pi/2 for finite x. */
+ TEST_c_f (carg, 10.0, minus_infty, -M_PI_2l),
- /* carg(x - i inf) == -pi/2 for finite x. */
- TEST_c_f (carg, 10.0, minus_infty, -M_PI_2l);
+ /* carg (-inf + i y) == +pi for finite y > 0. */
+ TEST_c_f (carg, minus_infty, 10.0, M_PIl),
- /* carg (-inf + i y) == +pi for finite y > 0. */
- TEST_c_f (carg, minus_infty, 10.0, M_PIl);
+ /* carg (-inf + i y) == -pi for finite y < 0. */
+ TEST_c_f (carg, minus_infty, -10.0, -M_PIl),
- /* carg (-inf + i y) == -pi for finite y < 0. */
- TEST_c_f (carg, minus_infty, -10.0, -M_PIl);
+ TEST_c_f (carg, plus_infty, plus_infty, M_PI_4l),
- TEST_c_f (carg, plus_infty, plus_infty, M_PI_4l);
+ TEST_c_f (carg, plus_infty, minus_infty, -M_PI_4l),
- TEST_c_f (carg, plus_infty, minus_infty, -M_PI_4l);
+ TEST_c_f (carg, minus_infty, plus_infty, M_PI_34l),
- TEST_c_f (carg, minus_infty, plus_infty, 3 * M_PI_4l);
+ TEST_c_f (carg, minus_infty, minus_infty, -M_PI_34l),
- TEST_c_f (carg, minus_infty, minus_infty, -3 * M_PI_4l);
-
- TEST_c_f (carg, qnan_value, qnan_value, qnan_value);
-
- END (carg);
-}
+ TEST_c_f (carg, qnan_value, qnan_value, qnan_value),
+ };
static void
-casin_test (void)
+carg_test (void)
{
- errno = 0;
- FUNC(casin) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (casin);
-
- TEST_c_c (casin, 0, 0, 0.0, 0.0);
- TEST_c_c (casin, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (casin, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (casin, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (casin, plus_infty, plus_infty, M_PI_4l, plus_infty);
- TEST_c_c (casin, plus_infty, minus_infty, M_PI_4l, minus_infty);
- TEST_c_c (casin, minus_infty, plus_infty, -M_PI_4l, plus_infty);
- TEST_c_c (casin, minus_infty, minus_infty, -M_PI_4l, minus_infty);
-
- TEST_c_c (casin, -10.0, plus_infty, minus_zero, plus_infty);
- TEST_c_c (casin, -10.0, minus_infty, minus_zero, minus_infty);
- TEST_c_c (casin, 0, plus_infty, 0.0, plus_infty);
- TEST_c_c (casin, 0, minus_infty, 0.0, minus_infty);
- TEST_c_c (casin, minus_zero, plus_infty, minus_zero, plus_infty);
- TEST_c_c (casin, minus_zero, minus_infty, minus_zero, minus_infty);
- TEST_c_c (casin, 0.1L, plus_infty, 0.0, plus_infty);
- TEST_c_c (casin, 0.1L, minus_infty, 0.0, minus_infty);
-
- TEST_c_c (casin, minus_infty, 0, -M_PI_2l, plus_infty);
- TEST_c_c (casin, minus_infty, minus_zero, -M_PI_2l, minus_infty);
- TEST_c_c (casin, minus_infty, 100, -M_PI_2l, plus_infty);
- TEST_c_c (casin, minus_infty, -100, -M_PI_2l, minus_infty);
-
- TEST_c_c (casin, plus_infty, 0, M_PI_2l, plus_infty);
- TEST_c_c (casin, plus_infty, minus_zero, M_PI_2l, minus_infty);
- TEST_c_c (casin, plus_infty, 0.5, M_PI_2l, plus_infty);
- TEST_c_c (casin, plus_infty, -0.5, M_PI_2l, minus_infty);
-
- TEST_c_c (casin, qnan_value, plus_infty, qnan_value, plus_infty);
- TEST_c_c (casin, qnan_value, minus_infty, qnan_value, minus_infty);
-
- TEST_c_c (casin, 0.0, qnan_value, 0.0, qnan_value);
- TEST_c_c (casin, minus_zero, qnan_value, minus_zero, qnan_value);
-
- TEST_c_c (casin, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (casin, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (casin, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casin, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casin, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casin, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casin, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (casin, plus_zero, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L);
- TEST_c_c (casin, minus_zero, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L);
- TEST_c_c (casin, plus_zero, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L);
- TEST_c_c (casin, minus_zero, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L);
- TEST_c_c (casin, plus_zero, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L);
- TEST_c_c (casin, minus_zero, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L);
- TEST_c_c (casin, plus_zero, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L);
- TEST_c_c (casin, minus_zero, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L);
- TEST_c_c (casin, plus_zero, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L);
- TEST_c_c (casin, minus_zero, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L);
- TEST_c_c (casin, plus_zero, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L);
- TEST_c_c (casin, minus_zero, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L);
-
- TEST_c_c (casin, -1.5L, plus_zero, -M_PI_2l, 0.9624236501192068949955178268487368462704L);
- TEST_c_c (casin, -1.5L, minus_zero, -M_PI_2l, -0.9624236501192068949955178268487368462704L);
- TEST_c_c (casin, -1.0L, plus_zero, -M_PI_2l, plus_zero);
- TEST_c_c (casin, -1.0L, minus_zero, -M_PI_2l, minus_zero);
- TEST_c_c (casin, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L, plus_zero);
- TEST_c_c (casin, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L, minus_zero);
- TEST_c_c (casin, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L, plus_zero);
- TEST_c_c (casin, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L, minus_zero);
- TEST_c_c (casin, 1.0L, plus_zero, M_PI_2l, plus_zero);
- TEST_c_c (casin, 1.0L, minus_zero, M_PI_2l, minus_zero);
- TEST_c_c (casin, 1.5L, plus_zero, M_PI_2l, 0.9624236501192068949955178268487368462704L);
- TEST_c_c (casin, 1.5L, minus_zero, M_PI_2l, -0.9624236501192068949955178268487368462704L);
-
- TEST_c_c (casin, 0x1p50L, 1.0L, 1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436720218708e1L);
- TEST_c_c (casin, 0x1p50L, -1.0L, 1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436720218708e1L);
- TEST_c_c (casin, -0x1p50L, 1.0L, -1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436720218708e1L);
- TEST_c_c (casin, -0x1p50L, -1.0L, -1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436720218708e1L);
- TEST_c_c (casin, 1.0L, 0x1p50L, 8.881784197001252323389053344720723756399e-16L, 3.535050620855721078027883819436759661753e1L);
- TEST_c_c (casin, -1.0L, 0x1p50L, -8.881784197001252323389053344720723756399e-16L, 3.535050620855721078027883819436759661753e1L);
- TEST_c_c (casin, 1.0L, -0x1p50L, 8.881784197001252323389053344720723756399e-16L, -3.535050620855721078027883819436759661753e1L);
- TEST_c_c (casin, -1.0L, -0x1p50L, -8.881784197001252323389053344720723756399e-16L, -3.535050620855721078027883819436759661753e1L);
-#ifndef TEST_FLOAT
- TEST_c_c (casin, 0x1p500L, 1.0L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, 0x1p500L, -1.0L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, -0x1p500L, 1.0L, -1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, -0x1p500L, -1.0L, -1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, 1.0L, 0x1p500L, 3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, -1.0L, 0x1p500L, -3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, 1.0L, -0x1p500L, 3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L);
- TEST_c_c (casin, -1.0L, -0x1p500L, -3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L);
+ START (carg);
+ RUN_TEST_LOOP_c_f (carg, carg_test_data, );
+ END;
+}
+
+static const struct test_c_c_data casin_test_data[] =
+ {
+ TEST_c_c (casin, 0, 0, 0.0, 0.0),
+ TEST_c_c (casin, minus_zero, 0, minus_zero, 0.0),
+ TEST_c_c (casin, 0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (casin, minus_zero, minus_zero, minus_zero, minus_zero),
+
+ TEST_c_c (casin, plus_infty, plus_infty, M_PI_4l, plus_infty),
+ TEST_c_c (casin, plus_infty, minus_infty, M_PI_4l, minus_infty),
+ TEST_c_c (casin, minus_infty, plus_infty, -M_PI_4l, plus_infty),
+ TEST_c_c (casin, minus_infty, minus_infty, -M_PI_4l, minus_infty),
+
+ TEST_c_c (casin, -10.0, plus_infty, minus_zero, plus_infty),
+ TEST_c_c (casin, -10.0, minus_infty, minus_zero, minus_infty),
+ TEST_c_c (casin, 0, plus_infty, 0.0, plus_infty),
+ TEST_c_c (casin, 0, minus_infty, 0.0, minus_infty),
+ TEST_c_c (casin, minus_zero, plus_infty, minus_zero, plus_infty),
+ TEST_c_c (casin, minus_zero, minus_infty, minus_zero, minus_infty),
+ TEST_c_c (casin, 0.1L, plus_infty, 0.0, plus_infty),
+ TEST_c_c (casin, 0.1L, minus_infty, 0.0, minus_infty),
+
+ TEST_c_c (casin, minus_infty, 0, -M_PI_2l, plus_infty),
+ TEST_c_c (casin, minus_infty, minus_zero, -M_PI_2l, minus_infty),
+ TEST_c_c (casin, minus_infty, 100, -M_PI_2l, plus_infty),
+ TEST_c_c (casin, minus_infty, -100, -M_PI_2l, minus_infty),
+
+ TEST_c_c (casin, plus_infty, 0, M_PI_2l, plus_infty),
+ TEST_c_c (casin, plus_infty, minus_zero, M_PI_2l, minus_infty),
+ TEST_c_c (casin, plus_infty, 0.5, M_PI_2l, plus_infty),
+ TEST_c_c (casin, plus_infty, -0.5, M_PI_2l, minus_infty),
+
+ TEST_c_c (casin, qnan_value, plus_infty, qnan_value, plus_infty),
+ TEST_c_c (casin, qnan_value, minus_infty, qnan_value, minus_infty),
+
+ TEST_c_c (casin, 0.0, qnan_value, 0.0, qnan_value),
+ TEST_c_c (casin, minus_zero, qnan_value, minus_zero, qnan_value),
+
+ TEST_c_c (casin, plus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (casin, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (casin, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (casin, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (casin, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (casin, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (casin, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (casin, plus_zero, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (casin, minus_zero, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L),
+ TEST_c_c (casin, plus_zero, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L),
+ TEST_c_c (casin, minus_zero, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L),
+ TEST_c_c (casin, plus_zero, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L),
+ TEST_c_c (casin, minus_zero, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L),
+ TEST_c_c (casin, plus_zero, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L),
+ TEST_c_c (casin, minus_zero, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L),
+ TEST_c_c (casin, plus_zero, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L),
+ TEST_c_c (casin, minus_zero, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L),
+ TEST_c_c (casin, plus_zero, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L),
+ TEST_c_c (casin, minus_zero, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L),
+
+ TEST_c_c (casin, -1.5L, plus_zero, -M_PI_2l, 0.9624236501192068949955178268487368462704L),
+ TEST_c_c (casin, -1.5L, minus_zero, -M_PI_2l, -0.9624236501192068949955178268487368462704L),
+ TEST_c_c (casin, -1.0L, plus_zero, -M_PI_2l, plus_zero),
+ TEST_c_c (casin, -1.0L, minus_zero, -M_PI_2l, minus_zero),
+ TEST_c_c (casin, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L, plus_zero),
+ TEST_c_c (casin, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L, minus_zero),
+ TEST_c_c (casin, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L, plus_zero),
+ TEST_c_c (casin, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L, minus_zero),
+ TEST_c_c (casin, 1.0L, plus_zero, M_PI_2l, plus_zero),
+ TEST_c_c (casin, 1.0L, minus_zero, M_PI_2l, minus_zero),
+ TEST_c_c (casin, 1.5L, plus_zero, M_PI_2l, 0.9624236501192068949955178268487368462704L),
+ TEST_c_c (casin, 1.5L, minus_zero, M_PI_2l, -0.9624236501192068949955178268487368462704L),
+
+ TEST_c_c (casin, 0x1p50L, 1.0L, 1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (casin, 0x1p50L, -1.0L, 1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (casin, -0x1p50L, 1.0L, -1.570796326794895731052901991514519103193L, 3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (casin, -0x1p50L, -1.0L, -1.570796326794895731052901991514519103193L, -3.535050620855721078027883819436720218708e1L),
+ TEST_c_c (casin, 1.0L, 0x1p50L, 8.881784197001252323389053344720723756399e-16L, 3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (casin, -1.0L, 0x1p50L, -8.881784197001252323389053344720723756399e-16L, 3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (casin, 1.0L, -0x1p50L, 8.881784197001252323389053344720723756399e-16L, -3.535050620855721078027883819436759661753e1L),
+ TEST_c_c (casin, -1.0L, -0x1p50L, -8.881784197001252323389053344720723756399e-16L, -3.535050620855721078027883819436759661753e1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1p500L, 1.0L, 1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, 0x1p500L, -1.0L, 1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, -0x1p500L, 1.0L, -1.570796326794896619231321691639751442099L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, -0x1p500L, -1.0L, -1.570796326794896619231321691639751442099L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, 1.0L, 0x1p500L, 3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, -1.0L, 0x1p500L, -3.054936363499604682051979393213617699789e-151L, 3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, 1.0L, -0x1p500L, 3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L),
+ TEST_c_c (casin, -1.0L, -0x1p500L, -3.054936363499604682051979393213617699789e-151L, -3.472667374605326000180332928505464606058e2L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (casin, 0x1p5000L, 1.0L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, 0x1p5000L, -1.0L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, -0x1p5000L, 1.0L, -1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, -0x1p5000L, -1.0L, -1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, 1.0L, 0x1p5000L, 7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, -1.0L, 0x1p5000L, -7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, 1.0L, -0x1p5000L, 7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L);
- TEST_c_c (casin, -1.0L, -0x1p5000L, -7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L);
+ TEST_c_c (casin, 0x1p5000L, 1.0L, 1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, 0x1p5000L, -1.0L, 1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, -0x1p5000L, 1.0L, -1.570796326794896619231321691639751442099L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, -0x1p5000L, -1.0L, -1.570796326794896619231321691639751442099L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, 1.0L, 0x1p5000L, 7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, -1.0L, 0x1p5000L, -7.079811261048172892385615158694057552948e-1506L, 3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, 1.0L, -0x1p5000L, 7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L),
+ TEST_c_c (casin, -1.0L, -0x1p5000L, -7.079811261048172892385615158694057552948e-1506L, -3.466429049980286492395577839412341016946e3L),
#endif
- TEST_c_c (casin, 0x1.fp127L, 0x1.fp127L, 7.853981633974483096156608458198757210493e-1L, 8.973081118419833726837456344608533993585e1L);
+ TEST_c_c (casin, 0x1.fp127L, 0x1.fp127L, 7.853981633974483096156608458198757210493e-1L, 8.973081118419833726837456344608533993585e1L),
#ifndef TEST_FLOAT
- TEST_c_c (casin, 0x1.fp1023L, 0x1.fp1023L, 7.853981633974483096156608458198757210493e-1L, 7.107906849659093345062145442726115449315e2L);
+ TEST_c_c (casin, 0x1.fp1023L, 0x1.fp1023L, 7.853981633974483096156608458198757210493e-1L, 7.107906849659093345062145442726115449315e2L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (casin, 0x1.fp16383L, 0x1.fp16383L, 7.853981633974483096156608458198757210493e-1L, 1.135753137836666928715489992987020363057e4L);
-#endif
-
- TEST_c_c (casin, 0x1.fp-129L, 1.5L, 1.579176199917649005841160751101628985741e-39L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, 0x1.fp-129L, -1.5L, 1.579176199917649005841160751101628985741e-39L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, -0x1.fp-129L, 1.5L, -1.579176199917649005841160751101628985741e-39L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, -0x1.fp-129L, -1.5L, -1.579176199917649005841160751101628985741e-39L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, 1.5L, 0x1.fp-129L, 1.570796326794896619231321691639751442096L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, 0x1.fp-129L, -1.570796326794896619231321691639751442096L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, 1.5L, -0x1.fp-129L, 1.570796326794896619231321691639751442096L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, -0x1.fp-129L, -1.570796326794896619231321691639751442096L, -9.624236501192068949955178268487368462704e-1L);
-#ifndef TEST_FLOAT
- TEST_c_c (casin, 0x1.fp-1025L, 1.5L, 2.989196569048182929051881765490354365918e-309L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, 0x1.fp-1025L, -1.5L, 2.989196569048182929051881765490354365918e-309L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, -0x1.fp-1025L, 1.5L, -2.989196569048182929051881765490354365918e-309L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, -0x1.fp-1025L, -1.5L, -2.989196569048182929051881765490354365918e-309L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, 1.5L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, 1.5L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L);
+ TEST_c_c (casin, 0x1.fp16383L, 0x1.fp16383L, 7.853981633974483096156608458198757210493e-1L, 1.135753137836666928715489992987020363057e4L),
+#endif
+
+ TEST_c_c (casin, 0x1.fp-129L, 1.5L, 1.579176199917649005841160751101628985741e-39L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -1.5L, 1.579176199917649005841160751101628985741e-39L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 1.5L, -1.579176199917649005841160751101628985741e-39L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -1.5L, -1.579176199917649005841160751101628985741e-39L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 1.5L, 0x1.fp-129L, 1.570796326794896619231321691639751442096L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, 0x1.fp-129L, -1.570796326794896619231321691639751442096L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, 1.5L, -0x1.fp-129L, 1.570796326794896619231321691639751442096L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, -0x1.fp-129L, -1.570796326794896619231321691639751442096L, -9.624236501192068949955178268487368462704e-1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1.fp-1025L, 1.5L, 2.989196569048182929051881765490354365918e-309L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -1.5L, 2.989196569048182929051881765490354365918e-309L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 1.5L, -2.989196569048182929051881765490354365918e-309L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -1.5L, -2.989196569048182929051881765490354365918e-309L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 1.5L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, 1.5L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (casin, 0x1.fp-16385L, 1.5L, 4.516698239814521372306784062043266700598e-4933L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, 0x1.fp-16385L, -1.5L, 4.516698239814521372306784062043266700598e-4933L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, -0x1.fp-16385L, 1.5L, -4.516698239814521372306784062043266700598e-4933L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, -0x1.fp-16385L, -1.5L, -4.516698239814521372306784062043266700598e-4933L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, 1.5L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, 1.5L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L);
- TEST_c_c (casin, -1.5L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L);
-#endif
-
- TEST_c_c (casin, 0.5L, 1.0L, 3.494390628572132936274118260753699527325e-1L, 9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (casin, 0.5L, -1.0L, 3.494390628572132936274118260753699527325e-1L, -9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (casin, -0.5L, 1.0L, -3.494390628572132936274118260753699527325e-1L, 9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (casin, -0.5L, -1.0L, -3.494390628572132936274118260753699527325e-1L, -9.261330313501824245501244453057873152694e-1L);
- TEST_c_c (casin, 1.0L, 0.5L, 8.959074812088902390666567243275770102229e-1L, 7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (casin, -1.0L, 0.5L, -8.959074812088902390666567243275770102229e-1L, 7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (casin, 1.0L, -0.5L, 8.959074812088902390666567243275770102229e-1L, -7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (casin, -1.0L, -0.5L, -8.959074812088902390666567243275770102229e-1L, -7.328576759736452608886724437653071523305e-1L);
- TEST_c_c (casin, 0.25L, 1.0L, 1.763024327769669304186785666360901026468e-1L, 8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (casin, 0.25L, -1.0L, 1.763024327769669304186785666360901026468e-1L, -8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (casin, -0.25L, 1.0L, -1.763024327769669304186785666360901026468e-1L, 8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (casin, -0.25L, -1.0L, -1.763024327769669304186785666360901026468e-1L, -8.924633639033482359562124741744951972772e-1L);
- TEST_c_c (casin, 1.0L, 0.25L, 1.081751996523816326311037318425097434186L, 5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (casin, -1.0L, 0.25L, -1.081751996523816326311037318425097434186L, 5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (casin, 1.0L, -0.25L, 1.081751996523816326311037318425097434186L, -5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (casin, -1.0L, -0.25L, -1.081751996523816326311037318425097434186L, -5.097911466811016354623559941115413499164e-1L);
- TEST_c_c (casin, 0x1.fp-10L, 1.0L, 1.337909359557740912558349531052239112857e-3L, 8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (casin, 0x1.fp-10L, -1.0L, 1.337909359557740912558349531052239112857e-3L, -8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (casin, -0x1.fp-10L, 1.0L, -1.337909359557740912558349531052239112857e-3L, 8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (casin, -0x1.fp-10L, -1.0L, -1.337909359557740912558349531052239112857e-3L, -8.813742198809567991336704287826445879025e-1L);
- TEST_c_c (casin, 1.0L, 0x1.fp-10L, 1.527305029163877791518741192097931722508L, 4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (casin, -1.0L, 0x1.fp-10L, -1.527305029163877791518741192097931722508L, 4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (casin, 1.0L, -0x1.fp-10L, 1.527305029163877791518741192097931722508L, -4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (casin, -1.0L, -0x1.fp-10L, -1.527305029163877791518741192097931722508L, -4.350501469856803800217957402220976497152e-2L);
- TEST_c_c (casin, 0x1.fp-30L, 1.0L, 1.275929984216518540252717485007112529021e-9L, 8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (casin, 0x1.fp-30L, -1.0L, 1.275929984216518540252717485007112529021e-9L, -8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (casin, -0x1.fp-30L, 1.0L, -1.275929984216518540252717485007112529021e-9L, 8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (casin, -0x1.fp-30L, -1.0L, -1.275929984216518540252717485007112529021e-9L, -8.813735870195430258081932989769495326854e-1L);
- TEST_c_c (casin, 1.0L, 0x1.fp-30L, 1.570753848123921942730162693731872690232L, 4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (casin, -1.0L, 0x1.fp-30L, -1.570753848123921942730162693731872690232L, 4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (casin, 1.0L, -0x1.fp-30L, 1.570753848123921942730162693731872690232L, -4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (casin, -1.0L, -0x1.fp-30L, -1.570753848123921942730162693731872690232L, -4.247867098745151888768727039216644758847e-5L);
- TEST_c_c (casin, 0x1.fp-100L, 1.0L, 1.080754735021050612990719608916167354321e-30L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, 0x1.fp-100L, -1.0L, 1.080754735021050612990719608916167354321e-30L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, -0x1.fp-100L, 1.0L, -1.080754735021050612990719608916167354321e-30L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, -0x1.fp-100L, -1.0L, -1.080754735021050612990719608916167354321e-30L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, 1.0L, 0x1.fp-100L, 1.570796326794895382939283431378862777584L, 1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (casin, -1.0L, 0x1.fp-100L, -1.570796326794895382939283431378862777584L, 1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (casin, 1.0L, -0x1.fp-100L, 1.570796326794895382939283431378862777584L, -1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (casin, -1.0L, -0x1.fp-100L, -1.570796326794895382939283431378862777584L, -1.236292038260260888664514866457202186027e-15L);
- TEST_c_c (casin, 0x1.fp-129L, 1.0L, 2.013062564695348242280482517399205554874e-39L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, 0x1.fp-129L, -1.0L, 2.013062564695348242280482517399205554874e-39L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, -0x1.fp-129L, 1.0L, -2.013062564695348242280482517399205554874e-39L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, -0x1.fp-129L, -1.0L, -2.013062564695348242280482517399205554874e-39L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casin, 1.0L, 0x1.fp-129L, 1.570796326794896619177965338869929107115L, 5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (casin, -1.0L, 0x1.fp-129L, -1.570796326794896619177965338869929107115L, 5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (casin, 1.0L, -0x1.fp-129L, 1.570796326794896619177965338869929107115L, -5.335635276982233498398987585285818977933e-20L);
- TEST_c_c (casin, -1.0L, -0x1.fp-129L, -1.570796326794896619177965338869929107115L, -5.335635276982233498398987585285818977933e-20L);
-#ifndef TEST_FLOAT
- TEST_c_c (casin, 0x1.fp-1000L, 1.0L, 1.278589251976747242280879285935084814093e-301L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casin, 0x1.fp-1000L, -1.0L, 1.278589251976747242280879285935084814093e-301L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casin, -0x1.fp-1000L, 1.0L, -1.278589251976747242280879285935084814093e-301L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casin, -0x1.fp-1000L, -1.0L, -1.278589251976747242280879285935084814093e-301L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casin, 1.0L, 0x1.fp-1000L, 1.570796326794896619231321691639751442099L, 4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (casin, -1.0L, 0x1.fp-1000L, -1.570796326794896619231321691639751442099L, 4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (casin, 1.0L, -0x1.fp-1000L, 1.570796326794896619231321691639751442099L, -4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (casin, -1.0L, -0x1.fp-1000L, -1.570796326794896619231321691639751442099L, -4.252291453851660175550490409247739011867e-151L);
- TEST_c_c (casin, 0x1.fp-1025L, 1.0L, 3.810492908885321743133304375216617626230e-309L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, 0x1.fp-1025L, -1.0L, 3.810492908885321743133304375216617626230e-309L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, -0x1.fp-1025L, 1.0L, -3.810492908885321743133304375216617626230e-309L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, -0x1.fp-1025L, -1.0L, -3.810492908885321743133304375216617626230e-309L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casin, 1.0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (casin, -1.0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (casin, 1.0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -7.340879205566679497036857179189356754017e-155L);
- TEST_c_c (casin, -1.0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -7.340879205566679497036857179189356754017e-155L);
+ TEST_c_c (casin, 0x1.fp-16385L, 1.5L, 4.516698239814521372306784062043266700598e-4933L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -1.5L, 4.516698239814521372306784062043266700598e-4933L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 1.5L, -4.516698239814521372306784062043266700598e-4933L, 1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -1.5L, -4.516698239814521372306784062043266700598e-4933L, -1.194763217287109304111930828519090523536L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 1.5L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, 1.5L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L),
+ TEST_c_c (casin, -1.5L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -9.624236501192068949955178268487368462704e-1L),
+#endif
+
+ TEST_c_c (casin, 0.5L, 1.0L, 3.494390628572132936274118260753699527325e-1L, 9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (casin, 0.5L, -1.0L, 3.494390628572132936274118260753699527325e-1L, -9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (casin, -0.5L, 1.0L, -3.494390628572132936274118260753699527325e-1L, 9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (casin, -0.5L, -1.0L, -3.494390628572132936274118260753699527325e-1L, -9.261330313501824245501244453057873152694e-1L),
+ TEST_c_c (casin, 1.0L, 0.5L, 8.959074812088902390666567243275770102229e-1L, 7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (casin, -1.0L, 0.5L, -8.959074812088902390666567243275770102229e-1L, 7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (casin, 1.0L, -0.5L, 8.959074812088902390666567243275770102229e-1L, -7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (casin, -1.0L, -0.5L, -8.959074812088902390666567243275770102229e-1L, -7.328576759736452608886724437653071523305e-1L),
+ TEST_c_c (casin, 0.25L, 1.0L, 1.763024327769669304186785666360901026468e-1L, 8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (casin, 0.25L, -1.0L, 1.763024327769669304186785666360901026468e-1L, -8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (casin, -0.25L, 1.0L, -1.763024327769669304186785666360901026468e-1L, 8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (casin, -0.25L, -1.0L, -1.763024327769669304186785666360901026468e-1L, -8.924633639033482359562124741744951972772e-1L),
+ TEST_c_c (casin, 1.0L, 0.25L, 1.081751996523816326311037318425097434186L, 5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (casin, -1.0L, 0.25L, -1.081751996523816326311037318425097434186L, 5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (casin, 1.0L, -0.25L, 1.081751996523816326311037318425097434186L, -5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (casin, -1.0L, -0.25L, -1.081751996523816326311037318425097434186L, -5.097911466811016354623559941115413499164e-1L),
+ TEST_c_c (casin, 0x1.fp-10L, 1.0L, 1.337909359557740912558349531052239112857e-3L, 8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (casin, 0x1.fp-10L, -1.0L, 1.337909359557740912558349531052239112857e-3L, -8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (casin, -0x1.fp-10L, 1.0L, -1.337909359557740912558349531052239112857e-3L, 8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (casin, -0x1.fp-10L, -1.0L, -1.337909359557740912558349531052239112857e-3L, -8.813742198809567991336704287826445879025e-1L),
+ TEST_c_c (casin, 1.0L, 0x1.fp-10L, 1.527305029163877791518741192097931722508L, 4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-10L, -1.527305029163877791518741192097931722508L, 4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-10L, 1.527305029163877791518741192097931722508L, -4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-10L, -1.527305029163877791518741192097931722508L, -4.350501469856803800217957402220976497152e-2L),
+ TEST_c_c (casin, 0x1.fp-30L, 1.0L, 1.275929984216518540252717485007112529021e-9L, 8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (casin, 0x1.fp-30L, -1.0L, 1.275929984216518540252717485007112529021e-9L, -8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (casin, -0x1.fp-30L, 1.0L, -1.275929984216518540252717485007112529021e-9L, 8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (casin, -0x1.fp-30L, -1.0L, -1.275929984216518540252717485007112529021e-9L, -8.813735870195430258081932989769495326854e-1L),
+ TEST_c_c (casin, 1.0L, 0x1.fp-30L, 1.570753848123921942730162693731872690232L, 4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-30L, -1.570753848123921942730162693731872690232L, 4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-30L, 1.570753848123921942730162693731872690232L, -4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-30L, -1.570753848123921942730162693731872690232L, -4.247867098745151888768727039216644758847e-5L),
+ TEST_c_c (casin, 0x1.fp-100L, 1.0L, 1.080754735021050612990719608916167354321e-30L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, 0x1.fp-100L, -1.0L, 1.080754735021050612990719608916167354321e-30L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, -0x1.fp-100L, 1.0L, -1.080754735021050612990719608916167354321e-30L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, -0x1.fp-100L, -1.0L, -1.080754735021050612990719608916167354321e-30L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, 1.0L, 0x1.fp-100L, 1.570796326794895382939283431378862777584L, 1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-100L, -1.570796326794895382939283431378862777584L, 1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-100L, 1.570796326794895382939283431378862777584L, -1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-100L, -1.570796326794895382939283431378862777584L, -1.236292038260260888664514866457202186027e-15L),
+ TEST_c_c (casin, 0x1.fp-129L, 1.0L, 2.013062564695348242280482517399205554874e-39L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -1.0L, 2.013062564695348242280482517399205554874e-39L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 1.0L, -2.013062564695348242280482517399205554874e-39L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -1.0L, -2.013062564695348242280482517399205554874e-39L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 1.0L, 0x1.fp-129L, 1.570796326794896619177965338869929107115L, 5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-129L, -1.570796326794896619177965338869929107115L, 5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-129L, 1.570796326794896619177965338869929107115L, -5.335635276982233498398987585285818977933e-20L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-129L, -1.570796326794896619177965338869929107115L, -5.335635276982233498398987585285818977933e-20L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1.fp-1000L, 1.0L, 1.278589251976747242280879285935084814093e-301L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 0x1.fp-1000L, -1.0L, 1.278589251976747242280879285935084814093e-301L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x1.fp-1000L, 1.0L, -1.278589251976747242280879285935084814093e-301L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x1.fp-1000L, -1.0L, -1.278589251976747242280879285935084814093e-301L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 1.0L, 0x1.fp-1000L, 1.570796326794896619231321691639751442099L, 4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-1000L, -1.570796326794896619231321691639751442099L, 4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-1000L, 1.570796326794896619231321691639751442099L, -4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-1000L, -1.570796326794896619231321691639751442099L, -4.252291453851660175550490409247739011867e-151L),
+ TEST_c_c (casin, 0x1.fp-1025L, 1.0L, 3.810492908885321743133304375216617626230e-309L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -1.0L, 3.810492908885321743133304375216617626230e-309L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 1.0L, -3.810492908885321743133304375216617626230e-309L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -1.0L, -3.810492908885321743133304375216617626230e-309L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 1.0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -7.340879205566679497036857179189356754017e-155L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -7.340879205566679497036857179189356754017e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (casin, 0x1.fp-10000L, 1.0L, 6.867047849047171855399183659351043150871e-3011L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, 0x1.fp-10000L, -1.0L, 6.867047849047171855399183659351043150871e-3011L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, -0x1.fp-10000L, 1.0L, -6.867047849047171855399183659351043150871e-3011L, 8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, -0x1.fp-10000L, -1.0L, -6.867047849047171855399183659351043150871e-3011L, -8.813735870195430252326093249797923090282e-1L);
- TEST_c_c (casin, 1.0L, 0x1.fp-10000L, 1.570796326794896619231321691639751442099L, 9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (casin, -1.0L, 0x1.fp-10000L, -1.570796326794896619231321691639751442099L, 9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (casin, 1.0L, -0x1.fp-10000L, 1.570796326794896619231321691639751442099L, -9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (casin, -1.0L, -0x1.fp-10000L, -1.570796326794896619231321691639751442099L, -9.854680208706673586644342922051388714633e-1506L);
- TEST_c_c (casin, 0x1.fp-16385L, 1.0L, 5.757683115456107044131264955348448954458e-4933L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, 0x1.fp-16385L, -1.0L, 5.757683115456107044131264955348448954458e-4933L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, -0x1.fp-16385L, 1.0L, -5.757683115456107044131264955348448954458e-4933L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, -0x1.fp-16385L, -1.0L, -5.757683115456107044131264955348448954458e-4933L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casin, 1.0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (casin, -1.0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (casin, 1.0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -9.023632056840860275214893047597614177639e-2467L);
- TEST_c_c (casin, -1.0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -9.023632056840860275214893047597614177639e-2467L);
-#endif
-
- TEST_c_c (casin, 0x1p-23L, 0x1.000002p0L, 8.429369199749229560964789467980644296420e-8L, 8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (casin, 0x1p-23L, -0x1.000002p0L, 8.429369199749229560964789467980644296420e-8L, -8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (casin, -0x1p-23L, 0x1.000002p0L, -8.429369199749229560964789467980644296420e-8L, 8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (casin, -0x1p-23L, -0x1.000002p0L, -8.429369199749229560964789467980644296420e-8L, -8.813736713132400470205730751186547909968e-1L)
- TEST_c_c (casin, 0x1.000002p0L, 0x1p-23L, 1.570574114956455764594481054234834678422L, 5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (casin, -0x1.000002p0L, 0x1p-23L, -1.570574114956455764594481054234834678422L, 5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (casin, 0x1.000002p0L, -0x1p-23L, 1.570574114956455764594481054234834678422L, -5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (casin, -0x1.000002p0L, -0x1p-23L, -1.570574114956455764594481054234834678422L, -5.364668491573609633134147164031476452679e-4L)
- TEST_c_c (casin, 0x1.fp-129L, 0x1.000002p0L, 2.013062444707472738895109955455676357057e-39L, 8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casin, 0x1.fp-129L, -0x1.000002p0L, 2.013062444707472738895109955455676357057e-39L, -8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casin, -0x1.fp-129L, 0x1.000002p0L, -2.013062444707472738895109955455676357057e-39L, 8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casin, -0x1.fp-129L, -0x1.000002p0L, -2.013062444707472738895109955455676357057e-39L, -8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casin, 0x1.000002p0L, 0x1.fp-129L, 1.570796326794896619231321691639751436268L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, -0x1.000002p0L, 0x1.fp-129L, -1.570796326794896619231321691639751436268L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, 0x1.000002p0L, -0x1.fp-129L, 1.570796326794896619231321691639751436268L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, -0x1.000002p0L, -0x1.fp-129L, -1.570796326794896619231321691639751436268L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, 0.0L, 0x1.000002p0L, 0.0L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (casin, 0.0L, -0x1.000002p0L, 0.0L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (casin, -0.0L, 0x1.000002p0L, -0.0L, 8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (casin, -0.0L, -0x1.000002p0L, -0.0L, -8.813736713132375348727889167749389235161e-1L)
- TEST_c_c (casin, 0x1.000002p0L, 0.0L, 1.570796326794896619231321691639751442099L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, -0x1.000002p0L, 0.0L, -1.570796326794896619231321691639751442099L, 4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, 0x1.000002p0L, -0.0L, 1.570796326794896619231321691639751442099L, -4.882812451493617206486388134172712975070e-4L)
- TEST_c_c (casin, -0x1.000002p0L, -0.0L, -1.570796326794896619231321691639751442099L, -4.882812451493617206486388134172712975070e-4L)
-#ifndef TEST_FLOAT
- TEST_c_c (casin, 0x1p-52L, 0x1.0000000000001p0L, 1.570092458683774885078102529858632363236e-16L, 8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (casin, 0x1p-52L, -0x1.0000000000001p0L, 1.570092458683774885078102529858632363236e-16L, -8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (casin, -0x1p-52L, 0x1.0000000000001p0L, -1.570092458683774885078102529858632363236e-16L, 8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (casin, -0x1p-52L, -0x1.0000000000001p0L, -1.570092458683774885078102529858632363236e-16L, -8.813735870195431822418551933572982483664e-1L)
- TEST_c_c (casin, 0x1.0000000000001p0L, 0x1p-52L, 1.570796317204594913251280305810847349436L, 2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, 0x1p-52L, -1.570796317204594913251280305810847349436L, 2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (casin, 0x1.0000000000001p0L, -0x1p-52L, 1.570796317204594913251280305810847349436L, -2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, -0x1p-52L, -1.570796317204594913251280305810847349436L, -2.315303644582684770975188768022139415020e-8L)
- TEST_c_c (casin, 0x1.fp-1025L, 0x1.0000000000001p0L, 3.810492908885321320083608113679347200012e-309L, 8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, 0x1.fp-1025L, -0x1.0000000000001p0L, 3.810492908885321320083608113679347200012e-309L, -8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, -0x1.fp-1025L, 0x1.0000000000001p0L, -3.810492908885321320083608113679347200012e-309L, 8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, -0x1.fp-1025L, -0x1.0000000000001p0L, -3.810492908885321320083608113679347200012e-309L, -8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, 0x1.0000000000001p0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, 0x1.0000000000001p0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, 0.0L, 0x1.0000000000001p0L, 0.0L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (casin, 0.0L, -0x1.0000000000001p0L, 0.0L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (casin, -0.0L, 0x1.0000000000001p0L, -0.0L, 8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (casin, -0.0L, -0x1.0000000000001p0L, -0.0L, -8.813735870195431822418551933572895326024e-1L)
- TEST_c_c (casin, 0x1.0000000000001p0L, 0.0L, 1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, 0.0L, -1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, 0x1.0000000000001p0L, -0.0L, 1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L)
- TEST_c_c (casin, -0x1.0000000000001p0L, -0.0L, -1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L)
+ TEST_c_c (casin, 0x1.fp-10000L, 1.0L, 6.867047849047171855399183659351043150871e-3011L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, 0x1.fp-10000L, -1.0L, 6.867047849047171855399183659351043150871e-3011L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, -0x1.fp-10000L, 1.0L, -6.867047849047171855399183659351043150871e-3011L, 8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, -0x1.fp-10000L, -1.0L, -6.867047849047171855399183659351043150871e-3011L, -8.813735870195430252326093249797923090282e-1L),
+ TEST_c_c (casin, 1.0L, 0x1.fp-10000L, 1.570796326794896619231321691639751442099L, 9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-10000L, -1.570796326794896619231321691639751442099L, 9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-10000L, 1.570796326794896619231321691639751442099L, -9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-10000L, -1.570796326794896619231321691639751442099L, -9.854680208706673586644342922051388714633e-1506L),
+ TEST_c_c (casin, 0x1.fp-16385L, 1.0L, 5.757683115456107044131264955348448954458e-4933L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -1.0L, 5.757683115456107044131264955348448954458e-4933L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 1.0L, -5.757683115456107044131264955348448954458e-4933L, 8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -1.0L, -5.757683115456107044131264955348448954458e-4933L, -8.813735870195430252326093249797923090282e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 1.0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (casin, -1.0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (casin, 1.0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -9.023632056840860275214893047597614177639e-2467L),
+ TEST_c_c (casin, -1.0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -9.023632056840860275214893047597614177639e-2467L),
+#endif
+
+ TEST_c_c (casin, 0x1p-23L, 0x1.000002p0L, 8.429369199749229560964789467980644296420e-8L, 8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (casin, 0x1p-23L, -0x1.000002p0L, 8.429369199749229560964789467980644296420e-8L, -8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (casin, -0x1p-23L, 0x1.000002p0L, -8.429369199749229560964789467980644296420e-8L, 8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (casin, -0x1p-23L, -0x1.000002p0L, -8.429369199749229560964789467980644296420e-8L, -8.813736713132400470205730751186547909968e-1L),
+ TEST_c_c (casin, 0x1.000002p0L, 0x1p-23L, 1.570574114956455764594481054234834678422L, 5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, 0x1p-23L, -1.570574114956455764594481054234834678422L, 5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (casin, 0x1.000002p0L, -0x1p-23L, 1.570574114956455764594481054234834678422L, -5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, -0x1p-23L, -1.570574114956455764594481054234834678422L, -5.364668491573609633134147164031476452679e-4L),
+ TEST_c_c (casin, 0x1.fp-129L, 0x1.000002p0L, 2.013062444707472738895109955455676357057e-39L, 8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -0x1.000002p0L, 2.013062444707472738895109955455676357057e-39L, -8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 0x1.000002p0L, -2.013062444707472738895109955455676357057e-39L, 8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -0x1.000002p0L, -2.013062444707472738895109955455676357057e-39L, -8.813736713132375348727889167749389235161e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.000002p0L, 0x1.fp-129L, 1.570796326794896619231321691639751436268L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, 0x1.fp-129L, -1.570796326794896619231321691639751436268L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, 0x1.000002p0L, -0x1.fp-129L, 1.570796326794896619231321691639751436268L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, -0x1.fp-129L, -1.570796326794896619231321691639751436268L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, 0.0L, 0x1.000002p0L, 0.0L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (casin, 0.0L, -0x1.000002p0L, 0.0L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (casin, -0.0L, 0x1.000002p0L, -0.0L, 8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (casin, -0.0L, -0x1.000002p0L, -0.0L, -8.813736713132375348727889167749389235161e-1L),
+ TEST_c_c (casin, 0x1.000002p0L, 0.0L, 1.570796326794896619231321691639751442099L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, 0.0L, -1.570796326794896619231321691639751442099L, 4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, 0x1.000002p0L, -0.0L, 1.570796326794896619231321691639751442099L, -4.882812451493617206486388134172712975070e-4L),
+ TEST_c_c (casin, -0x1.000002p0L, -0.0L, -1.570796326794896619231321691639751442099L, -4.882812451493617206486388134172712975070e-4L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1p-52L, 0x1.0000000000001p0L, 1.570092458683774885078102529858632363236e-16L, 8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (casin, 0x1p-52L, -0x1.0000000000001p0L, 1.570092458683774885078102529858632363236e-16L, -8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (casin, -0x1p-52L, 0x1.0000000000001p0L, -1.570092458683774885078102529858632363236e-16L, 8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (casin, -0x1p-52L, -0x1.0000000000001p0L, -1.570092458683774885078102529858632363236e-16L, -8.813735870195431822418551933572982483664e-1L),
+ TEST_c_c (casin, 0x1.0000000000001p0L, 0x1p-52L, 1.570796317204594913251280305810847349436L, 2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, 0x1p-52L, -1.570796317204594913251280305810847349436L, 2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (casin, 0x1.0000000000001p0L, -0x1p-52L, 1.570796317204594913251280305810847349436L, -2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, -0x1p-52L, -1.570796317204594913251280305810847349436L, -2.315303644582684770975188768022139415020e-8L),
+ TEST_c_c (casin, 0x1.fp-1025L, 0x1.0000000000001p0L, 3.810492908885321320083608113679347200012e-309L, 8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x1.0000000000001p0L, 3.810492908885321320083608113679347200012e-309L, -8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x1.0000000000001p0L, -3.810492908885321320083608113679347200012e-309L, 8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x1.0000000000001p0L, -3.810492908885321320083608113679347200012e-309L, -8.813735870195431822418551933572895326024e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.0000000000001p0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, 0x1.0000000000001p0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, 0.0L, 0x1.0000000000001p0L, 0.0L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (casin, 0.0L, -0x1.0000000000001p0L, 0.0L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (casin, -0.0L, 0x1.0000000000001p0L, -0.0L, 8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (casin, -0.0L, -0x1.0000000000001p0L, -0.0L, -8.813735870195431822418551933572895326024e-1L),
+ TEST_c_c (casin, 0x1.0000000000001p0L, 0.0L, 1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, 0.0L, -1.570796326794896619231321691639751442099L, 2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, 0x1.0000000000001p0L, -0.0L, 1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L),
+ TEST_c_c (casin, -0x1.0000000000001p0L, -0.0L, -1.570796326794896619231321691639751442099L, -2.107342425544701550354780375182800088393e-8L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_c_c (casin, 0x1p-63L, 0x1.0000000000000002p0L, 7.666467083416870406778649849746878368519e-20L, 8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (casin, 0x1p-63L, -0x1.0000000000000002p0L, 7.666467083416870406778649849746878368519e-20L, -8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (casin, -0x1p-63L, 0x1.0000000000000002p0L, -7.666467083416870406778649849746878368519e-20L, 8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (casin, -0x1p-63L, -0x1.0000000000000002p0L, -7.666467083416870406778649849746878368519e-20L, -8.813735870195430253092739958139610131001e-1L)
- TEST_c_c (casin, 0x1.0000000000000002p0L, 0x1p-63L, 1.570796326582978888921215348380499122131L, 5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, 0x1p-63L, -1.570796326582978888921215348380499122131L, 5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (casin, 0x1.0000000000000002p0L, -0x1p-63L, 1.570796326582978888921215348380499122131L, -5.116146586219826555037807251857670783420e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, -0x1p-63L, -1.570796326582978888921215348380499122131L, -5.116146586219826555037807251857670783420e-10L)
+ TEST_c_c (casin, 0x1p-63L, 0x1.0000000000000002p0L, 7.666467083416870406778649849746878368519e-20L, 8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (casin, 0x1p-63L, -0x1.0000000000000002p0L, 7.666467083416870406778649849746878368519e-20L, -8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (casin, -0x1p-63L, 0x1.0000000000000002p0L, -7.666467083416870406778649849746878368519e-20L, 8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (casin, -0x1p-63L, -0x1.0000000000000002p0L, -7.666467083416870406778649849746878368519e-20L, -8.813735870195430253092739958139610131001e-1L),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, 0x1p-63L, 1.570796326582978888921215348380499122131L, 5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, 0x1p-63L, -1.570796326582978888921215348380499122131L, 5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, -0x1p-63L, 1.570796326582978888921215348380499122131L, -5.116146586219826555037807251857670783420e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, -0x1p-63L, -1.570796326582978888921215348380499122131L, -5.116146586219826555037807251857670783420e-10L),
# if LDBL_MIN_EXP <= -16381
- TEST_c_c (casin, 0x1.fp-16385L, 0x1.0000000000000002p0L, 5.757683115456107043819140328235418018963e-4933L, 8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, 0x1.fp-16385L, -0x1.0000000000000002p0L, 5.757683115456107043819140328235418018963e-4933L, -8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, -0x1.fp-16385L, 0x1.0000000000000002p0L, -5.757683115456107043819140328235418018963e-4933L, 8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, -0x1.fp-16385L, -0x1.0000000000000002p0L, -5.757683115456107043819140328235418018963e-4933L, -8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, 0x1.0000000000000002p0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, 0x1.0000000000000002p0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L)
+ TEST_c_c (casin, 0x1.fp-16385L, 0x1.0000000000000002p0L, 5.757683115456107043819140328235418018963e-4933L, 8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x1.0000000000000002p0L, 5.757683115456107043819140328235418018963e-4933L, -8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x1.0000000000000002p0L, -5.757683115456107043819140328235418018963e-4933L, 8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x1.0000000000000002p0L, -5.757683115456107043819140328235418018963e-4933L, -8.813735870195430253092739958139610130980e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L),
# endif
- TEST_c_c (casin, 0.0L, 0x1.0000000000000002p0L, 0.0L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (casin, 0.0L, -0x1.0000000000000002p0L, 0.0L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (casin, -0.0L, 0x1.0000000000000002p0L, -0.0L, 8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (casin, -0.0L, -0x1.0000000000000002p0L, -0.0L, -8.813735870195430253092739958139610130980e-1L)
- TEST_c_c (casin, 0x1.0000000000000002p0L, 0.0L, 1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, 0.0L, -1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, 0x1.0000000000000002p0L, -0.0L, 1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L)
- TEST_c_c (casin, -0x1.0000000000000002p0L, -0.0L, -1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L)
+ TEST_c_c (casin, 0.0L, 0x1.0000000000000002p0L, 0.0L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (casin, 0.0L, -0x1.0000000000000002p0L, 0.0L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (casin, -0.0L, 0x1.0000000000000002p0L, -0.0L, 8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (casin, -0.0L, -0x1.0000000000000002p0L, -0.0L, -8.813735870195430253092739958139610130980e-1L),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, 0.0L, 1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, 0.0L, -1.570796326794896619231321691639751442099L, 4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, 0x1.0000000000000002p0L, -0.0L, 1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L),
+ TEST_c_c (casin, -0x1.0000000000000002p0L, -0.0L, -1.570796326794896619231321691639751442099L, -4.656612873077392578082927418388212703712e-10L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (casin, 0x1p-106L, 0x1.000000000000000000000000008p0L, 8.715763992105246878957416200936726072500e-33L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, 0x1p-106L, -0x1.000000000000000000000000008p0L, 8.715763992105246878957416200936726072500e-33L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, -0x1p-106L, 0x1.000000000000000000000000008p0L, -8.715763992105246878957416200936726072500e-33L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, -0x1p-106L, -0x1.000000000000000000000000008p0L, -8.715763992105246878957416200936726072500e-33L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0x1p-106L, 1.570796326794896565289107467733682961928L, 2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0x1p-106L, -1.570796326794896565289107467733682961928L, 2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0x1p-106L, 1.570796326794896565289107467733682961928L, -2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0x1p-106L, -1.570796326794896565289107467733682961928L, -2.285028863093221674154232933662774454211e-16L)
- TEST_c_c (casin, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 3.810492908885321743133304375216570658278e-309L, 8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 3.810492908885321743133304375216570658278e-309L, -8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, -3.810492908885321743133304375216570658278e-309L, 8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, -3.810492908885321743133304375216570658278e-309L, -8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, 0.0L, 0x1.000000000000000000000000008p0L, 0.0L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, 0.0L, -0x1.000000000000000000000000008p0L, 0.0L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, -0.0L, 0x1.000000000000000000000000008p0L, -0.0L, 8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, -0.0L, -0x1.000000000000000000000000008p0L, -0.0L, -8.813735870195430252326093249798097405561e-1L)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0.0L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0.0L, -1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0.0L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L)
- TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0.0L, -1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L)
+ TEST_c_c (casin, 0x1p-106L, 0x1.000000000000000000000000008p0L, 8.715763992105246878957416200936726072500e-33L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, 0x1p-106L, -0x1.000000000000000000000000008p0L, 8.715763992105246878957416200936726072500e-33L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, -0x1p-106L, 0x1.000000000000000000000000008p0L, -8.715763992105246878957416200936726072500e-33L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, -0x1p-106L, -0x1.000000000000000000000000008p0L, -8.715763992105246878957416200936726072500e-33L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0x1p-106L, 1.570796326794896565289107467733682961928L, 2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0x1p-106L, -1.570796326794896565289107467733682961928L, 2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0x1p-106L, 1.570796326794896565289107467733682961928L, -2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0x1p-106L, -1.570796326794896565289107467733682961928L, -2.285028863093221674154232933662774454211e-16L),
+ TEST_c_c (casin, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 3.810492908885321743133304375216570658278e-309L, 8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 3.810492908885321743133304375216570658278e-309L, -8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, -3.810492908885321743133304375216570658278e-309L, 8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, -3.810492908885321743133304375216570658278e-309L, -8.813735870195430252326093249798097405561e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, -1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, -1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, 0.0L, 0x1.000000000000000000000000008p0L, 0.0L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, 0.0L, -0x1.000000000000000000000000008p0L, 0.0L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, -0.0L, 0x1.000000000000000000000000008p0L, -0.0L, 8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, -0.0L, -0x1.000000000000000000000000008p0L, -0.0L, -8.813735870195430252326093249798097405561e-1L),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, 0.0L, 1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, 0.0L, -1.570796326794896619231321691639751442099L, 2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, 0x1.000000000000000000000000008p0L, -0.0L, 1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L),
+ TEST_c_c (casin, -0x1.000000000000000000000000008p0L, -0.0L, -1.570796326794896619231321691639751442099L, -2.220446049250313080847263336181636063482e-16L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_c_c (casin, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 6.809190618832224124185481406981900518193e-35L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 6.809190618832224124185481406981900518193e-35L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, -0x1p-113L, 0x1.0000000000000000000000000001p0L, -6.809190618832224124185481406981900518193e-35L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, -0x1p-113L, -0x1.0000000000000000000000000001p0L, -6.809190618832224124185481406981900518193e-35L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 1.570796326794896614463458507897073960405L, 2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0x1p-113L, -1.570796326794896614463458507897073960405L, 2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 1.570796326794896614463458507897073960405L, -2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0x1p-113L, -1.570796326794896614463458507897073960405L, -2.019699255375255198156433710951064632386e-17L)
- TEST_c_c (casin, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 5.757683115456107044131264955348448400014e-4933L, 8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 5.757683115456107044131264955348448400014e-4933L, -8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, -5.757683115456107044131264955348448400014e-4933L, 8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, -5.757683115456107044131264955348448400014e-4933L, -8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, 0.0L, 0x1.0000000000000000000000000001p0L, 0.0L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, 0.0L, -0x1.0000000000000000000000000001p0L, 0.0L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, -0.0L, 0x1.0000000000000000000000000001p0L, -0.0L, 8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, -0.0L, -0x1.0000000000000000000000000001p0L, -0.0L, -8.813735870195430252326093249797924452120e-1L)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0.0L, 1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0.0L, -1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0.0L, 1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L)
- TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0.0L, -1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L)
-#endif
-
- TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L, 1.13239363160530819522266333696834467L);
- TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L, -1.9833870299165354323470769028940395L);
-
- END (casin, complex);
-}
-
+ TEST_c_c (casin, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 6.809190618832224124185481406981900518193e-35L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 6.809190618832224124185481406981900518193e-35L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, -0x1p-113L, 0x1.0000000000000000000000000001p0L, -6.809190618832224124185481406981900518193e-35L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, -0x1p-113L, -0x1.0000000000000000000000000001p0L, -6.809190618832224124185481406981900518193e-35L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 1.570796326794896614463458507897073960405L, 2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0x1p-113L, -1.570796326794896614463458507897073960405L, 2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 1.570796326794896614463458507897073960405L, -2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0x1p-113L, -1.570796326794896614463458507897073960405L, -2.019699255375255198156433710951064632386e-17L),
+ TEST_c_c (casin, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 5.757683115456107044131264955348448400014e-4933L, 8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 5.757683115456107044131264955348448400014e-4933L, -8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, -5.757683115456107044131264955348448400014e-4933L, 8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, -5.757683115456107044131264955348448400014e-4933L, -8.813735870195430252326093249797924452120e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, -1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, -1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, 0.0L, 0x1.0000000000000000000000000001p0L, 0.0L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, 0.0L, -0x1.0000000000000000000000000001p0L, 0.0L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, -0.0L, 0x1.0000000000000000000000000001p0L, -0.0L, 8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, -0.0L, -0x1.0000000000000000000000000001p0L, -0.0L, -8.813735870195430252326093249797924452120e-1L),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, 0.0L, 1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, 0.0L, -1.570796326794896619231321691639751442099L, 1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, 0x1.0000000000000000000000000001p0L, -0.0L, 1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L),
+ TEST_c_c (casin, -0x1.0000000000000000000000000001p0L, -0.0L, -1.570796326794896619231321691639751442099L, -1.962615573354718824241727964954454332780e-17L),
+#endif
+
+ TEST_c_c (casin, 0x1p-23L, 0x0.ffffffp0L, 8.429369953393598499000760938112968755257e-8L, 8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (casin, 0x1p-23L, -0x0.ffffffp0L, 8.429369953393598499000760938112968755257e-8L, -8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (casin, -0x1p-23L, 0x0.ffffffp0L, -8.429369953393598499000760938112968755257e-8L, 8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (casin, -0x1p-23L, -0x0.ffffffp0L, -8.429369953393598499000760938112968755257e-8L, -8.813735448726963984495965873956465777250e-1L),
+ TEST_c_c (casin, 0x0.ffffffp0L, 0x1p-23L, 1.570357140408705570520377172865353621698L, 2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (casin, -0x0.ffffffp0L, 0x1p-23L, -1.570357140408705570520377172865353621698L, 2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (casin, 0x0.ffffffp0L, -0x1p-23L, 1.570357140408705570520377172865353621698L, -2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (casin, -0x0.ffffffp0L, -0x1p-23L, -1.570357140408705570520377172865353621698L, -2.714321200917194650737217746780928423385e-4L),
+ TEST_c_c (casin, 0x1.fp-129L, 0x0.ffffffp0L, 2.013062624689288675911339929224634593425e-39L, 8.813735448726938863015878255140556727969e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -0x0.ffffffp0L, 2.013062624689288675911339929224634593425e-39L, -8.813735448726938863015878255140556727969e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 0x0.ffffffp0L, -2.013062624689288675911339929224634593425e-39L, 8.813735448726938863015878255140556727969e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -0x0.ffffffp0L, -2.013062624689288675911339929224634593425e-39L, -8.813735448726938863015878255140556727969e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x0.ffffffp0L, 0x1.fp-129L, 1.570451059810180415643718442157112705601L, 8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (casin, -0x0.ffffffp0L, 0x1.fp-129L, -1.570451059810180415643718442157112705601L, 8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (casin, 0x0.ffffffp0L, -0x1.fp-129L, 1.570451059810180415643718442157112705601L, -8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (casin, -0x0.ffffffp0L, -0x1.fp-129L, -1.570451059810180415643718442157112705601L, -8.245504387859737323891843603996428534945e-36L),
+ TEST_c_c (casin, 0.0L, 0x0.ffffffp0L, 0.0L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (casin, 0.0L, -0x0.ffffffp0L, 0.0L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (casin, -0.0L, 0x0.ffffffp0L, -0.0L, 8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (casin, -0.0L, -0x0.ffffffp0L, -0.0L, -8.813735448726938863015878255140556727969e-1L),
+ TEST_c_c (casin, 0x0.ffffffp0L, 0.0L, 1.570451059810180415643718442157112705601L, 0.0L),
+ TEST_c_c (casin, -0x0.ffffffp0L, 0.0L, -1.570451059810180415643718442157112705601L, 0.0L),
+ TEST_c_c (casin, 0x0.ffffffp0L, -0.0L, 1.570451059810180415643718442157112705601L, -0.0L),
+ TEST_c_c (casin, -0x0.ffffffp0L, -0.0L, -1.570451059810180415643718442157112705601L, -0.0L),
+ TEST_c_c (casin, 0x1p-23L, 0.5L, 1.066240299940009780479664302917201696886e-7L, 4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (casin, 0x1p-23L, -0.5L, 1.066240299940009780479664302917201696886e-7L, -4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (casin, -0x1p-23L, 0.5L, -1.066240299940009780479664302917201696886e-7L, 4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (casin, -0x1p-23L, -0.5L, -1.066240299940009780479664302917201696886e-7L, -4.812118250596059896127318386463676808798e-1L),
+ TEST_c_c (casin, 0.5L, 0x1p-23L, 5.235987755982934033165770729745469098254e-1L, 1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (casin, -0.5L, 0x1p-23L, -5.235987755982934033165770729745469098254e-1L, 1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (casin, 0.5L, -0x1p-23L, 5.235987755982934033165770729745469098254e-1L, -1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (casin, -0.5L, -0x1p-23L, -5.235987755982934033165770729745469098254e-1L, -1.376510308240943236356088341381173571841e-7L),
+ TEST_c_c (casin, 0x1.fp-129L, 0.5L, 2.546345110742945032959687790021055102355e-39L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -0.5L, 2.546345110742945032959687790021055102355e-39L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 0.5L, -2.546345110742945032959687790021055102355e-39L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -0.5L, -2.546345110742945032959687790021055102355e-39L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0.5L, 0x1.fp-129L, 5.235987755982988730771072305465838140329e-1L, 3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0.5L, 0x1.fp-129L, -5.235987755982988730771072305465838140329e-1L, 3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0.5L, -0x1.fp-129L, 5.235987755982988730771072305465838140329e-1L, -3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0.5L, -0x1.fp-129L, -5.235987755982988730771072305465838140329e-1L, -3.287317402534702257036015056278368274737e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1p-23L, 0x1p-23L, 1.192092895507806853113684971258850504935e-7L, 1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (casin, 0x1p-23L, -0x1p-23L, 1.192092895507806853113684971258850504935e-7L, -1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (casin, -0x1p-23L, 0x1p-23L, -1.192092895507806853113684971258850504935e-7L, 1.192092895507818146886315028596704749235e-7L),
+ TEST_c_c (casin, -0x1p-23L, -0x1p-23L, -1.192092895507806853113684971258850504935e-7L, -1.192092895507818146886315028596704749235e-7L),
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casin, 0x1.fp-129L, 0x1p-23L, 2.846900380897707329917933005874691056564e-39L, 1.192092895507809676556842485683592032154e-7L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -0x1p-23L, 2.846900380897707329917933005874691056564e-39L, -1.192092895507809676556842485683592032154e-7L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 0x1p-23L, -2.846900380897707329917933005874691056564e-39L, 1.192092895507809676556842485683592032154e-7L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -0x1p-23L, -2.846900380897707329917933005874691056564e-39L, -1.192092895507809676556842485683592032154e-7L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casin, 0x1p-23L, 0x1.fp-129L, 1.192092895507815323443157514352519154304e-7L, 2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1p-23L, 0x1.fp-129L, -1.192092895507815323443157514352519154304e-7L, 2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1p-23L, -0x1.fp-129L, 1.192092895507815323443157514352519154304e-7L, -2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1p-23L, -0x1.fp-129L, -1.192092895507815323443157514352519154304e-7L, -2.846900380897747786805634596726756660388e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0.0L, 0x1p-23L, 0.0L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (casin, 0.0L, -0x1p-23L, 0.0L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (casin, -0.0L, 0x1p-23L, -0.0L, 1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (casin, -0.0L, -0x1p-23L, -0.0L, -1.192092895507809676556842485683592032154e-7L),
+ TEST_c_c (casin, 0x1p-23L, 0.0L, 1.192092895507815323443157514352519154304e-7L, 0.0L),
+ TEST_c_c (casin, -0x1p-23L, 0.0L, -1.192092895507815323443157514352519154304e-7L, 0.0L),
+ TEST_c_c (casin, 0x1p-23L, -0.0L, 1.192092895507815323443157514352519154304e-7L, -0.0L),
+ TEST_c_c (casin, -0x1p-23L, -0.0L, -1.192092895507815323443157514352519154304e-7L, -0.0L),
+ TEST_c_c (casin, 0x1.fp-129L, 0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, 0x1.fp-129L, -0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, 0x1.fp-129L, -2.846900380897727558361783801085126250967e-39L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casin, -0x1.fp-129L, -0x1.fp-129L, -2.846900380897727558361783801085126250967e-39L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1p-52L, 0x0.fffffffffffff8p0L, 1.570092458683775146551022293016031474627e-16L, 8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (casin, 0x1p-52L, -0x0.fffffffffffff8p0L, 1.570092458683775146551022293016031474627e-16L, -8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (casin, -0x1p-52L, 0x0.fffffffffffff8p0L, -1.570092458683775146551022293016031474627e-16L, 8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (casin, -0x1p-52L, -0x0.fffffffffffff8p0L, -1.570092458683775146551022293016031474627e-16L, -8.813735870195429467279863907910458761820e-1L),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, 0x1p-52L, 1.570796307840326780080580569360500172043L, 1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, 0x1p-52L, -1.570796307840326780080580569360500172043L, 1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, -0x1p-52L, 1.570796307840326780080580569360500172043L, -1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, -0x1p-52L, -1.570796307840326780080580569360500172043L, -1.171456840272878582596796205397918831268e-8L),
+ TEST_c_c (casin, 0x1.fp-1025L, 0x0.fffffffffffff8p0L, 3.810492908885321954658152505985270452320e-309L, 8.813735870195429467279863907910371604180e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x0.fffffffffffff8p0L, 3.810492908885321954658152505985270452320e-309L, -8.813735870195429467279863907910371604180e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x0.fffffffffffff8p0L, -3.810492908885321954658152505985270452320e-309L, 8.813735870195429467279863907910371604180e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x0.fffffffffffff8p0L, -3.810492908885321954658152505985270452320e-309L, -8.813735870195429467279863907910371604180e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, 0x1.fp-1025L, 1.570796311893735425383665303776316016594L, 3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, 0x1.fp-1025L, -1.570796311893735425383665303776316016594L, 3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, -0x1.fp-1025L, 1.570796311893735425383665303776316016594L, -3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, -0x1.fp-1025L, -1.570796311893735425383665303776316016594L, -3.616396521699973256461764099945789620604e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 0.0L, 0x0.fffffffffffff8p0L, 0.0L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (casin, 0.0L, -0x0.fffffffffffff8p0L, 0.0L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (casin, -0.0L, 0x0.fffffffffffff8p0L, -0.0L, 8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (casin, -0.0L, -0x0.fffffffffffff8p0L, -0.0L, -8.813735870195429467279863907910371604180e-1L),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, 0.0L, 1.570796311893735425383665303776316016594L, 0.0L),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, 0.0L, -1.570796311893735425383665303776316016594L, 0.0L),
+ TEST_c_c (casin, 0x0.fffffffffffff8p0L, -0.0L, 1.570796311893735425383665303776316016594L, -0.0L),
+ TEST_c_c (casin, -0x0.fffffffffffff8p0L, -0.0L, -1.570796311893735425383665303776316016594L, -0.0L),
+#endif
+ TEST_c_c (casin, 0x1p-52L, 0.5L, 1.986027322597818397661816253158024383707e-16L, 4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (casin, 0x1p-52L, -0.5L, 1.986027322597818397661816253158024383707e-16L, -4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (casin, -0x1p-52L, 0.5L, -1.986027322597818397661816253158024383707e-16L, 4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (casin, -0x1p-52L, -0.5L, -1.986027322597818397661816253158024383707e-16L, -4.812118250596034474977589134243772428682e-1L),
+ TEST_c_c (casin, 0.5L, 0x1p-52L, 5.235987755982988730771072305465648369889e-1L, 2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (casin, -0.5L, 0x1p-52L, -5.235987755982988730771072305465648369889e-1L, 2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (casin, 0.5L, -0x1p-52L, 5.235987755982988730771072305465648369889e-1L, -2.563950248511418570403591756798643804971e-16L),
+ TEST_c_c (casin, -0.5L, -0x1p-52L, -5.235987755982988730771072305465648369889e-1L, -2.563950248511418570403591756798643804971e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1.fp-1025L, 0.5L, 4.819934639999230680322935210539402497827e-309L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0.5L, 4.819934639999230680322935210539402497827e-309L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0.5L, -4.819934639999230680322935210539402497827e-309L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0.5L, -4.819934639999230680322935210539402497827e-309L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0.5L, 0x1.fp-1025L, 5.235987755982988730771072305465838140329e-1L, 6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0.5L, 0x1.fp-1025L, -5.235987755982988730771072305465838140329e-1L, 6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0.5L, -0x1.fp-1025L, 5.235987755982988730771072305465838140329e-1L, -6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0.5L, -0x1.fp-1025L, -5.235987755982988730771072305465838140329e-1L, -6.222508863508420569166420770843207333493e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (casin, 0x1p-52L, 0x1p-52L, 2.220446049250313080847263336181604132852e-16L, 2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (casin, 0x1p-52L, -0x1p-52L, 2.220446049250313080847263336181604132852e-16L, -2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (casin, -0x1p-52L, 0x1p-52L, -2.220446049250313080847263336181604132852e-16L, 2.220446049250313080847263336181677117148e-16L),
+ TEST_c_c (casin, -0x1p-52L, -0x1p-52L, -2.220446049250313080847263336181604132852e-16L, -2.220446049250313080847263336181677117148e-16L),
+#ifndef TEST_FLOAT
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casin, 0x1.fp-1025L, 0x1p-52L, 5.388850751072128349671657362289283247603e-309L, 2.220446049250313080847263336181622378926e-16L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x1p-52L, 5.388850751072128349671657362289283247603e-309L, -2.220446049250313080847263336181622378926e-16L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x1p-52L, -5.388850751072128349671657362289283247603e-309L, 2.220446049250313080847263336181622378926e-16L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x1p-52L, -5.388850751072128349671657362289283247603e-309L, -2.220446049250313080847263336181622378926e-16L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, 0x1p-52L, 0x1.fp-1025L, 2.220446049250313080847263336181658871074e-16L, 5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1p-52L, 0x1.fp-1025L, -2.220446049250313080847263336181658871074e-16L, 5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1p-52L, -0x1.fp-1025L, 2.220446049250313080847263336181658871074e-16L, -5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1p-52L, -0x1.fp-1025L, -2.220446049250313080847263336181658871074e-16L, -5.388850751072128349671657362289548938458e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (casin, 0.0L, 0x1p-52L, 0.0L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (casin, 0.0L, -0x1p-52L, 0.0L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (casin, -0.0L, 0x1p-52L, -0.0L, 2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (casin, -0.0L, -0x1p-52L, -0.0L, -2.220446049250313080847263336181622378926e-16L),
+ TEST_c_c (casin, 0x1p-52L, 0.0L, 2.220446049250313080847263336181658871074e-16L, 0.0L),
+ TEST_c_c (casin, -0x1p-52L, 0.0L, -2.220446049250313080847263336181658871074e-16L, 0.0L),
+ TEST_c_c (casin, 0x1p-52L, -0.0L, 2.220446049250313080847263336181658871074e-16L, -0.0L),
+ TEST_c_c (casin, -0x1p-52L, -0.0L, -2.220446049250313080847263336181658871074e-16L, -0.0L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casin, 0x1.fp-1025L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x1.fp-1025L, -5.388850751072128349671657362289416093031e-309L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x1.fp-1025L, -5.388850751072128349671657362289416093031e-309L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (casin, 0x1p-63L, 0x0.ffffffffffffffffp0L, 7.666467083416870407402049869781566856442e-20L, 8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (casin, 0x1p-63L, -0x0.ffffffffffffffffp0L, 7.666467083416870407402049869781566856442e-20L, -8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (casin, -0x1p-63L, 0x0.ffffffffffffffffp0L, -7.666467083416870407402049869781566856442e-20L, 8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (casin, -0x1p-63L, -0x0.ffffffffffffffffp0L, -7.666467083416870407402049869781566856442e-20L, -8.813735870195430251942769895627079569937e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, 0x1p-63L, 1.570796326376055842114524927965556247908L, 2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, 0x1p-63L, -1.570796326376055842114524927965556247908L, 2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, -0x1p-63L, 1.570796326376055842114524927965556247908L, -2.588578361325995866221775673638805081337e-10L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, -0x1p-63L, -1.570796326376055842114524927965556247908L, -2.588578361325995866221775673638805081337e-10L),
+# if LDBL_MIN_EXP <= -16381
+ TEST_c_c (casin, 0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 5.757683115456107044287327268904964422212e-4933L, 8.813735870195430251942769895627079569917e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 5.757683115456107044287327268904964422212e-4933L, -8.813735870195430251942769895627079569917e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x0.ffffffffffffffffp0L, -5.757683115456107044287327268904964422212e-4933L, 8.813735870195430251942769895627079569917e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x0.ffffffffffffffffp0L, -5.757683115456107044287327268904964422212e-4933L, -8.813735870195430251942769895627079569917e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 1.570796326465624365239962068302568888898L, 2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, 0x1.fp-16385L, -1.570796326465624365239962068302568888898L, 2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 1.570796326465624365239962068302568888898L, -2.472906068161537187835415298076415423459e-4923L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, -0x1.fp-16385L, -1.570796326465624365239962068302568888898L, -2.472906068161537187835415298076415423459e-4923L),
+# endif
+ TEST_c_c (casin, 0.0L, 0x0.ffffffffffffffffp0L, 0.0L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (casin, 0.0L, -0x0.ffffffffffffffffp0L, 0.0L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (casin, -0.0L, 0x0.ffffffffffffffffp0L, -0.0L, 8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (casin, -0.0L, -0x0.ffffffffffffffffp0L, -0.0L, -8.813735870195430251942769895627079569917e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, 0.0L, 1.570796326465624365239962068302568888898L, 0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, 0.0L, -1.570796326465624365239962068302568888898L, 0.0L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffp0L, -0.0L, 1.570796326465624365239962068302568888898L, -0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffp0L, -0.0L, -1.570796326465624365239962068302568888898L, -0.0L),
+#endif
+ TEST_c_c (casin, 0x1p-63L, 0.5L, 9.697399036122160144833087173623140436413e-20L, 4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (casin, 0x1p-63L, -0.5L, 9.697399036122160144833087173623140436413e-20L, -4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (casin, -0x1p-63L, 0.5L, -9.697399036122160144833087173623140436413e-20L, 4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (casin, -0x1p-63L, -0.5L, -9.697399036122160144833087173623140436413e-20L, -4.812118250596034474977589134243684231373e-1L),
+ TEST_c_c (casin, 0.5L, 0x1p-63L, 5.235987755982988730771072305465838140283e-1L, 1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (casin, -0.5L, 0x1p-63L, -5.235987755982988730771072305465838140283e-1L, 1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (casin, 0.5L, -0x1p-63L, 5.235987755982988730771072305465838140283e-1L, -1.251928832280966098829878787499365228659e-19L),
+ TEST_c_c (casin, -0.5L, -0x1p-63L, -5.235987755982988730771072305465838140283e-1L, -1.251928832280966098829878787499365228659e-19L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casin, 0x1.fp-16385L, 0.5L, 7.282957076134209141226696333885150260319e-4933L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0.5L, 7.282957076134209141226696333885150260319e-4933L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0.5L, -7.282957076134209141226696333885150260319e-4933L, 4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0.5L, -7.282957076134209141226696333885150260319e-4933L, -4.812118250596034474977589134243684231352e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0.5L, 0x1.fp-16385L, 5.235987755982988730771072305465838140329e-1L, 9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0.5L, 0x1.fp-16385L, -5.235987755982988730771072305465838140329e-1L, 9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0.5L, -0x1.fp-16385L, 5.235987755982988730771072305465838140329e-1L, -9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0.5L, -0x1.fp-16385L, -5.235987755982988730771072305465838140329e-1L, -9.402257155670418112159334875199821342890e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casin, 0x1p-63L, 0x1p-63L, 1.084202172485504434007452800869941711422e-19L, 1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (casin, 0x1p-63L, -0x1p-63L, 1.084202172485504434007452800869941711422e-19L, -1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (casin, -0x1p-63L, 0x1p-63L, -1.084202172485504434007452800869941711422e-19L, 1.084202172485504434007452800869941711430e-19L),
+ TEST_c_c (casin, -0x1p-63L, -0x1p-63L, -1.084202172485504434007452800869941711422e-19L, -1.084202172485504434007452800869941711430e-19L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casin, 0x1.fp-16385L, 0x1p-63L, 8.142593549724601460479922838826119584369e-4933L, 1.084202172485504434007452800869941711424e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x1p-63L, 8.142593549724601460479922838826119584369e-4933L, -1.084202172485504434007452800869941711424e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x1p-63L, -8.142593549724601460479922838826119584369e-4933L, 1.084202172485504434007452800869941711424e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x1p-63L, -8.142593549724601460479922838826119584369e-4933L, -1.084202172485504434007452800869941711424e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1p-63L, 0x1.fp-16385L, 1.084202172485504434007452800869941711428e-19L, 8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1p-63L, 0x1.fp-16385L, -1.084202172485504434007452800869941711428e-19L, 8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1p-63L, -0x1.fp-16385L, 1.084202172485504434007452800869941711428e-19L, -8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1p-63L, -0x1.fp-16385L, -1.084202172485504434007452800869941711428e-19L, -8.142593549724601460479922838826119584465e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casin, 0.0L, 0x1p-63L, 0.0L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (casin, 0.0L, -0x1p-63L, 0.0L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (casin, -0.0L, 0x1p-63L, -0.0L, 1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (casin, -0.0L, -0x1p-63L, -0.0L, -1.084202172485504434007452800869941711424e-19L),
+ TEST_c_c (casin, 0x1p-63L, 0.0L, 1.084202172485504434007452800869941711428e-19L, 0.0L),
+ TEST_c_c (casin, -0x1p-63L, 0.0L, -1.084202172485504434007452800869941711428e-19L, 0.0L),
+ TEST_c_c (casin, 0x1p-63L, -0.0L, 1.084202172485504434007452800869941711428e-19L, -0.0L),
+ TEST_c_c (casin, -0x1p-63L, -0.0L, -1.084202172485504434007452800869941711428e-19L, -0.0L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casin, 0x1.fp-16385L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x1.fp-16385L, -8.142593549724601460479922838826119584417e-4933L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x1.fp-16385L, -8.142593549724601460479922838826119584417e-4933L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (casin, 0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 1.743152798421049375791483240187377443526e-32L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, 0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 1.743152798421049375791483240187377443526e-32L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, -0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, -1.743152798421049375791483240187377443526e-32L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, -0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, -1.743152798421049375791483240187377443526e-32L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 1.570796326794896419512475791677915736035L, 1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, -1.570796326794896419512475791677915736035L, 1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 1.570796326794896419512475791677915736035L, -1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, -1.570796326794896419512475791677915736035L, -1.234330349600789959989661887846005659983e-16L),
+ TEST_c_c (casin, 0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 3.810492908885321743133304375216641110205e-309L, 8.813735870195430252326093249797835932642e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 3.810492908885321743133304375216641110205e-309L, -8.813735870195430252326093249797835932642e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, -3.810492908885321743133304375216641110205e-309L, 8.813735870195430252326093249797835932642e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, -3.810492908885321743133304375216641110205e-309L, -8.813735870195430252326093249797835932642e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 1.570796326794896462222075823262245502760L, 3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, -1.570796326794896462222075823262245502760L, 3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 1.570796326794896462222075823262245502760L, -3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, -1.570796326794896462222075823262245502760L, -3.432186888910770473784103112009399360940e-293L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casin, 0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, 0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, -0.0L, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, -0.0L, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, -8.813735870195430252326093249797835932642e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 1.570796326794896462222075823262245502760L, 0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, -1.570796326794896462222075823262245502760L, 0.0L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 1.570796326794896462222075823262245502760L, -0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, -1.570796326794896462222075823262245502760L, -0.0L),
+#endif
+ TEST_c_c (casin, 0x1p-105L, 0.5L, 2.204933261082751447436996198490110245167e-32L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, 0x1p-105L, -0.5L, 2.204933261082751447436996198490110245167e-32L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, -0x1p-105L, 0.5L, -2.204933261082751447436996198490110245167e-32L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, -0x1p-105L, -0.5L, -2.204933261082751447436996198490110245167e-32L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, 0.5L, 0x1p-105L, 5.235987755982988730771072305465838140329e-1L, 2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (casin, -0.5L, 0x1p-105L, -5.235987755982988730771072305465838140329e-1L, 2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (casin, 0.5L, -0x1p-105L, 5.235987755982988730771072305465838140329e-1L, -2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (casin, -0.5L, -0x1p-105L, -5.235987755982988730771072305465838140329e-1L, -2.846556599890768890940941645338546615370e-32L),
+ TEST_c_c (casin, 0x1p-105L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, 0x1p-105L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, -0x1p-105L, 0x1p-105L, -2.465190328815661891911651766508706967729e-32L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, -0x1p-105L, -0x1p-105L, -2.465190328815661891911651766508706967729e-32L, -2.465190328815661891911651766508706967729e-32L),
+#ifndef TEST_FLOAT
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casin, 0x1.fp-1025L, 0x1p-105L, 5.388850751072128349671657362289416093031e-309L, 2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, 0x1.fp-1025L, -0x1p-105L, 5.388850751072128349671657362289416093031e-309L, -2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, 0x1p-105L, -5.388850751072128349671657362289416093031e-309L, 2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, -0x1.fp-1025L, -0x1p-105L, -5.388850751072128349671657362289416093031e-309L, -2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casin, 0x1p-105L, 0x1.fp-1025L, 2.465190328815661891911651766508706967729e-32L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1p-105L, 0x1.fp-1025L, -2.465190328815661891911651766508706967729e-32L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, 0x1p-105L, -0x1.fp-1025L, 2.465190328815661891911651766508706967729e-32L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casin, -0x1p-105L, -0x1.fp-1025L, -2.465190328815661891911651766508706967729e-32L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (casin, 0.0L, 0x1p-105L, 0.0L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, 0.0L, -0x1p-105L, 0.0L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, -0.0L, 0x1p-105L, -0.0L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, -0.0L, -0x1p-105L, -0.0L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casin, 0x1p-105L, 0.0L, 2.465190328815661891911651766508706967729e-32L, 0.0L),
+ TEST_c_c (casin, -0x1p-105L, 0.0L, -2.465190328815661891911651766508706967729e-32L, 0.0L),
+ TEST_c_c (casin, 0x1p-105L, -0.0L, 2.465190328815661891911651766508706967729e-32L, -0.0L),
+ TEST_c_c (casin, -0x1p-105L, -0.0L, -2.465190328815661891911651766508706967729e-32L, -0.0L),
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (casin, 0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.361838123766444824837096281396380300349e-34L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, 0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.361838123766444824837096281396380300349e-34L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, -0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, -1.361838123766444824837096281396380300349e-34L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, -0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, -1.361838123766444824837096281396380300349e-34L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 1.570796326794896601578502908312986698624L, 1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, -1.570796326794896601578502908312986698624L, 1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 1.570796326794896601578502908312986698624L, -1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, -1.570796326794896601578502908312986698624L, -1.091004200533850618345330909857103457781e-17L),
+ TEST_c_c (casin, 0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 5.757683115456107044131264955348449231681e-4933L, 8.813735870195430252326093249797922409363e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 5.757683115456107044131264955348449231681e-4933L, -8.813735870195430252326093249797922409363e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, -5.757683115456107044131264955348449231681e-4933L, 8.813735870195430252326093249797922409363e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, -5.757683115456107044131264955348449231681e-4933L, -8.813735870195430252326093249797922409363e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 1.570796326794896605353533883825294686803L, 5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, -1.570796326794896605353533883825294686803L, 5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 1.570796326794896605353533883825294686803L, -5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, -1.570796326794896605353533883825294686803L, -5.867357004219059108790368268900490184505e-4916L),
+ TEST_c_c (casin, 0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, 0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, -0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, -0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, -8.813735870195430252326093249797922409363e-1L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 1.570796326794896605353533883825294686803L, 0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, -1.570796326794896605353533883825294686803L, 0.0L),
+ TEST_c_c (casin, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 1.570796326794896605353533883825294686803L, -0.0L),
+ TEST_c_c (casin, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, -1.570796326794896605353533883825294686803L, -0.0L),
+#endif
+ TEST_c_c (casin, 0x1p-112L, 0.5L, 1.722604110220899568310153280070398629037e-34L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, 0x1p-112L, -0.5L, 1.722604110220899568310153280070398629037e-34L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, -0x1p-112L, 0.5L, -1.722604110220899568310153280070398629037e-34L, 4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, -0x1p-112L, -0.5L, -1.722604110220899568310153280070398629037e-34L, -4.812118250596034474977589134243684231352e-1L),
+ TEST_c_c (casin, 0.5L, 0x1p-112L, 5.235987755982988730771072305465838140329e-1L, 2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (casin, -0.5L, 0x1p-112L, -5.235987755982988730771072305465838140329e-1L, 2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (casin, 0.5L, -0x1p-112L, 5.235987755982988730771072305465838140329e-1L, -2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (casin, -0.5L, -0x1p-112L, -5.235987755982988730771072305465838140329e-1L, -2.223872343664663196047610660420739543258e-34L),
+ TEST_c_c (casin, 0x1p-112L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, 0x1p-112L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, -0x1p-112L, 0x1p-112L, -1.925929944387235853055977942584927318538e-34L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, -0x1p-112L, -0x1p-112L, -1.925929944387235853055977942584927318538e-34L, -1.925929944387235853055977942584927318538e-34L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casin, 0x1.fp-16385L, 0x1p-112L, 8.142593549724601460479922838826119584417e-4933L, 1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1.fp-16385L, -0x1p-112L, 8.142593549724601460479922838826119584417e-4933L, -1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, 0x1p-112L, -8.142593549724601460479922838826119584417e-4933L, 1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1.fp-16385L, -0x1p-112L, -8.142593549724601460479922838826119584417e-4933L, -1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1p-112L, 0x1.fp-16385L, 1.925929944387235853055977942584927318538e-34L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1p-112L, 0x1.fp-16385L, -1.925929944387235853055977942584927318538e-34L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, 0x1p-112L, -0x1.fp-16385L, 1.925929944387235853055977942584927318538e-34L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casin, -0x1p-112L, -0x1.fp-16385L, -1.925929944387235853055977942584927318538e-34L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casin, 0.0L, 0x1p-112L, 0.0L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, 0.0L, -0x1p-112L, 0.0L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, -0.0L, 0x1p-112L, -0.0L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, -0.0L, -0x1p-112L, -0.0L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casin, 0x1p-112L, 0.0L, 1.925929944387235853055977942584927318538e-34L, 0.0L),
+ TEST_c_c (casin, -0x1p-112L, 0.0L, -1.925929944387235853055977942584927318538e-34L, 0.0L),
+ TEST_c_c (casin, 0x1p-112L, -0.0L, 1.925929944387235853055977942584927318538e-34L, -0.0L),
+ TEST_c_c (casin, -0x1p-112L, -0.0L, -1.925929944387235853055977942584927318538e-34L, -0.0L),
+
+ TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L, 1.13239363160530819522266333696834467L),
+ TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L, -1.9833870299165354323470769028940395L),
+ };
static void
-casinh_test (void)
+casin_test (void)
{
- errno = 0;
- FUNC(casinh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (casinh);
-
- TEST_c_c (casinh, 0, 0, 0.0, 0.0);
- TEST_c_c (casinh, minus_zero, 0, minus_zero, 0);
- TEST_c_c (casinh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (casinh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (casinh, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (casinh, plus_infty, minus_infty, plus_infty, -M_PI_4l);
- TEST_c_c (casinh, minus_infty, plus_infty, minus_infty, M_PI_4l);
- TEST_c_c (casinh, minus_infty, minus_infty, minus_infty, -M_PI_4l);
-
- TEST_c_c (casinh, -10.0, plus_infty, minus_infty, M_PI_2l);
- TEST_c_c (casinh, -10.0, minus_infty, minus_infty, -M_PI_2l);
- TEST_c_c (casinh, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (casinh, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (casinh, minus_zero, plus_infty, minus_infty, M_PI_2l);
- TEST_c_c (casinh, minus_zero, minus_infty, minus_infty, -M_PI_2l);
- TEST_c_c (casinh, 0.1L, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (casinh, 0.1L, minus_infty, plus_infty, -M_PI_2l);
-
- TEST_c_c (casinh, minus_infty, 0, minus_infty, 0.0);
- TEST_c_c (casinh, minus_infty, minus_zero, minus_infty, minus_zero);
- TEST_c_c (casinh, minus_infty, 100, minus_infty, 0.0);
- TEST_c_c (casinh, minus_infty, -100, minus_infty, minus_zero);
-
- TEST_c_c (casinh, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (casinh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (casinh, plus_infty, 0.5, plus_infty, 0.0);
- TEST_c_c (casinh, plus_infty, -0.5, plus_infty, minus_zero);
-
- TEST_c_c (casinh, plus_infty, qnan_value, plus_infty, qnan_value);
- TEST_c_c (casinh, minus_infty, qnan_value, minus_infty, qnan_value);
-
- TEST_c_c (casinh, qnan_value, 0, qnan_value, 0.0);
- TEST_c_c (casinh, qnan_value, minus_zero, qnan_value, minus_zero);
-
- TEST_c_c (casinh, qnan_value, plus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (casinh, qnan_value, minus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (casinh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casinh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casinh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (casinh, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (casinh, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (casinh, plus_zero, -1.5L, 0.9624236501192068949955178268487368462704L, -M_PI_2l);
- TEST_c_c (casinh, minus_zero, -1.5L, -0.9624236501192068949955178268487368462704L, -M_PI_2l);
- TEST_c_c (casinh, plus_zero, -1.0L, plus_zero, -M_PI_2l);
- TEST_c_c (casinh, minus_zero, -1.0L, minus_zero, -M_PI_2l);
- TEST_c_c (casinh, plus_zero, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L);
- TEST_c_c (casinh, minus_zero, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L);
- TEST_c_c (casinh, plus_zero, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L);
- TEST_c_c (casinh, minus_zero, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L);
- TEST_c_c (casinh, plus_zero, 1.0L, plus_zero, M_PI_2l);
- TEST_c_c (casinh, minus_zero, 1.0L, minus_zero, M_PI_2l);
- TEST_c_c (casinh, plus_zero, 1.5L, 0.9624236501192068949955178268487368462704L, M_PI_2l);
- TEST_c_c (casinh, minus_zero, 1.5L, -0.9624236501192068949955178268487368462704L, M_PI_2l);
-
- TEST_c_c (casinh, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L, plus_zero);
- TEST_c_c (casinh, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L, minus_zero);
- TEST_c_c (casinh, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L, plus_zero);
- TEST_c_c (casinh, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L, minus_zero);
- TEST_c_c (casinh, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L, plus_zero);
- TEST_c_c (casinh, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L, minus_zero);
- TEST_c_c (casinh, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L, plus_zero);
- TEST_c_c (casinh, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L, minus_zero);
- TEST_c_c (casinh, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L, plus_zero);
- TEST_c_c (casinh, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L, minus_zero);
- TEST_c_c (casinh, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L, plus_zero);
- TEST_c_c (casinh, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L, minus_zero);
-
- TEST_c_c (casinh, 0x1p50L, 1.0L, 3.535050620855721078027883819436759661753e1L, 8.881784197001252323389053344720723756399e-16L);
- TEST_c_c (casinh, 0x1p50L, -1.0L, 3.535050620855721078027883819436759661753e1L, -8.881784197001252323389053344720723756399e-16L);
- TEST_c_c (casinh, -0x1p50L, 1.0L, -3.535050620855721078027883819436759661753e1L, 8.881784197001252323389053344720723756399e-16L);
- TEST_c_c (casinh, -0x1p50L, -1.0L, -3.535050620855721078027883819436759661753e1L, -8.881784197001252323389053344720723756399e-16L);
- TEST_c_c (casinh, 1.0L, 0x1p50L, 3.535050620855721078027883819436720218708e1L, 1.570796326794895731052901991514519103193L);
- TEST_c_c (casinh, -1.0L, 0x1p50L, -3.535050620855721078027883819436720218708e1L, 1.570796326794895731052901991514519103193L);
- TEST_c_c (casinh, 1.0L, -0x1p50L, 3.535050620855721078027883819436720218708e1L, -1.570796326794895731052901991514519103193L);
- TEST_c_c (casinh, -1.0L, -0x1p50L, -3.535050620855721078027883819436720218708e1L, -1.570796326794895731052901991514519103193L);
-#ifndef TEST_FLOAT
- TEST_c_c (casinh, 0x1p500L, 1.0L, 3.472667374605326000180332928505464606058e2L, 3.054936363499604682051979393213617699789e-151L);
- TEST_c_c (casinh, 0x1p500L, -1.0L, 3.472667374605326000180332928505464606058e2L, -3.054936363499604682051979393213617699789e-151L);
- TEST_c_c (casinh, -0x1p500L, 1.0L, -3.472667374605326000180332928505464606058e2L, 3.054936363499604682051979393213617699789e-151L);
- TEST_c_c (casinh, -0x1p500L, -1.0L, -3.472667374605326000180332928505464606058e2L, -3.054936363499604682051979393213617699789e-151L);
- TEST_c_c (casinh, 1.0L, 0x1p500L, 3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -1.0L, 0x1p500L, -3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, -0x1p500L, 3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -1.0L, -0x1p500L, -3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L);
+ START (casin);
+ RUN_TEST_LOOP_c_c (casin, casin_test_data, );
+ END_COMPLEX;
+}
+
+
+static const struct test_c_c_data casinh_test_data[] =
+ {
+ TEST_c_c (casinh, 0, 0, 0.0, 0.0),
+ TEST_c_c (casinh, minus_zero, 0, minus_zero, 0),
+ TEST_c_c (casinh, 0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (casinh, minus_zero, minus_zero, minus_zero, minus_zero),
+
+ TEST_c_c (casinh, plus_infty, plus_infty, plus_infty, M_PI_4l),
+ TEST_c_c (casinh, plus_infty, minus_infty, plus_infty, -M_PI_4l),
+ TEST_c_c (casinh, minus_infty, plus_infty, minus_infty, M_PI_4l),
+ TEST_c_c (casinh, minus_infty, minus_infty, minus_infty, -M_PI_4l),
+
+ TEST_c_c (casinh, -10.0, plus_infty, minus_infty, M_PI_2l),
+ TEST_c_c (casinh, -10.0, minus_infty, minus_infty, -M_PI_2l),
+ TEST_c_c (casinh, 0, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (casinh, 0, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (casinh, minus_zero, plus_infty, minus_infty, M_PI_2l),
+ TEST_c_c (casinh, minus_zero, minus_infty, minus_infty, -M_PI_2l),
+ TEST_c_c (casinh, 0.1L, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (casinh, 0.1L, minus_infty, plus_infty, -M_PI_2l),
+
+ TEST_c_c (casinh, minus_infty, 0, minus_infty, 0.0),
+ TEST_c_c (casinh, minus_infty, minus_zero, minus_infty, minus_zero),
+ TEST_c_c (casinh, minus_infty, 100, minus_infty, 0.0),
+ TEST_c_c (casinh, minus_infty, -100, minus_infty, minus_zero),
+
+ TEST_c_c (casinh, plus_infty, 0, plus_infty, 0.0),
+ TEST_c_c (casinh, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (casinh, plus_infty, 0.5, plus_infty, 0.0),
+ TEST_c_c (casinh, plus_infty, -0.5, plus_infty, minus_zero),
+
+ TEST_c_c (casinh, plus_infty, qnan_value, plus_infty, qnan_value),
+ TEST_c_c (casinh, minus_infty, qnan_value, minus_infty, qnan_value),
+
+ TEST_c_c (casinh, qnan_value, 0, qnan_value, 0.0),
+ TEST_c_c (casinh, qnan_value, minus_zero, qnan_value, minus_zero),
+
+ TEST_c_c (casinh, qnan_value, plus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (casinh, qnan_value, minus_infty, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (casinh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (casinh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (casinh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (casinh, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (casinh, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (casinh, plus_zero, -1.5L, 0.9624236501192068949955178268487368462704L, -M_PI_2l),
+ TEST_c_c (casinh, minus_zero, -1.5L, -0.9624236501192068949955178268487368462704L, -M_PI_2l),
+ TEST_c_c (casinh, plus_zero, -1.0L, plus_zero, -M_PI_2l),
+ TEST_c_c (casinh, minus_zero, -1.0L, minus_zero, -M_PI_2l),
+ TEST_c_c (casinh, plus_zero, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L),
+ TEST_c_c (casinh, minus_zero, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L),
+ TEST_c_c (casinh, plus_zero, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L),
+ TEST_c_c (casinh, minus_zero, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L),
+ TEST_c_c (casinh, plus_zero, 1.0L, plus_zero, M_PI_2l),
+ TEST_c_c (casinh, minus_zero, 1.0L, minus_zero, M_PI_2l),
+ TEST_c_c (casinh, plus_zero, 1.5L, 0.9624236501192068949955178268487368462704L, M_PI_2l),
+ TEST_c_c (casinh, minus_zero, 1.5L, -0.9624236501192068949955178268487368462704L, M_PI_2l),
+
+ TEST_c_c (casinh, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L, plus_zero),
+ TEST_c_c (casinh, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L, minus_zero),
+ TEST_c_c (casinh, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L, plus_zero),
+ TEST_c_c (casinh, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L, minus_zero),
+ TEST_c_c (casinh, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L, plus_zero),
+ TEST_c_c (casinh, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L, minus_zero),
+ TEST_c_c (casinh, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L, plus_zero),
+ TEST_c_c (casinh, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L, minus_zero),
+ TEST_c_c (casinh, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L, plus_zero),
+ TEST_c_c (casinh, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L, minus_zero),
+ TEST_c_c (casinh, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L, plus_zero),
+ TEST_c_c (casinh, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L, minus_zero),
+
+ TEST_c_c (casinh, 0x1p50L, 1.0L, 3.535050620855721078027883819436759661753e1L, 8.881784197001252323389053344720723756399e-16L),
+ TEST_c_c (casinh, 0x1p50L, -1.0L, 3.535050620855721078027883819436759661753e1L, -8.881784197001252323389053344720723756399e-16L),
+ TEST_c_c (casinh, -0x1p50L, 1.0L, -3.535050620855721078027883819436759661753e1L, 8.881784197001252323389053344720723756399e-16L),
+ TEST_c_c (casinh, -0x1p50L, -1.0L, -3.535050620855721078027883819436759661753e1L, -8.881784197001252323389053344720723756399e-16L),
+ TEST_c_c (casinh, 1.0L, 0x1p50L, 3.535050620855721078027883819436720218708e1L, 1.570796326794895731052901991514519103193L),
+ TEST_c_c (casinh, -1.0L, 0x1p50L, -3.535050620855721078027883819436720218708e1L, 1.570796326794895731052901991514519103193L),
+ TEST_c_c (casinh, 1.0L, -0x1p50L, 3.535050620855721078027883819436720218708e1L, -1.570796326794895731052901991514519103193L),
+ TEST_c_c (casinh, -1.0L, -0x1p50L, -3.535050620855721078027883819436720218708e1L, -1.570796326794895731052901991514519103193L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1p500L, 1.0L, 3.472667374605326000180332928505464606058e2L, 3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (casinh, 0x1p500L, -1.0L, 3.472667374605326000180332928505464606058e2L, -3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (casinh, -0x1p500L, 1.0L, -3.472667374605326000180332928505464606058e2L, 3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (casinh, -0x1p500L, -1.0L, -3.472667374605326000180332928505464606058e2L, -3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (casinh, 1.0L, 0x1p500L, 3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -1.0L, 0x1p500L, -3.472667374605326000180332928505464606058e2L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, -0x1p500L, 3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -1.0L, -0x1p500L, -3.472667374605326000180332928505464606058e2L, -1.570796326794896619231321691639751442099L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (casinh, 0x1p5000L, 1.0L, 3.466429049980286492395577839412341016946e3L, 7.079811261048172892385615158694057552948e-1506L);
- TEST_c_c (casinh, 0x1p5000L, -1.0L, 3.466429049980286492395577839412341016946e3L, -7.079811261048172892385615158694057552948e-1506L);
- TEST_c_c (casinh, -0x1p5000L, 1.0L, -3.466429049980286492395577839412341016946e3L, 7.079811261048172892385615158694057552948e-1506L);
- TEST_c_c (casinh, -0x1p5000L, -1.0L, -3.466429049980286492395577839412341016946e3L, -7.079811261048172892385615158694057552948e-1506L);
- TEST_c_c (casinh, 1.0L, 0x1p5000L, 3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -1.0L, 0x1p5000L, -3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, -0x1p5000L, 3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -1.0L, -0x1p5000L, -3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L);
+ TEST_c_c (casinh, 0x1p5000L, 1.0L, 3.466429049980286492395577839412341016946e3L, 7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (casinh, 0x1p5000L, -1.0L, 3.466429049980286492395577839412341016946e3L, -7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (casinh, -0x1p5000L, 1.0L, -3.466429049980286492395577839412341016946e3L, 7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (casinh, -0x1p5000L, -1.0L, -3.466429049980286492395577839412341016946e3L, -7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (casinh, 1.0L, 0x1p5000L, 3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -1.0L, 0x1p5000L, -3.466429049980286492395577839412341016946e3L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, -0x1p5000L, 3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -1.0L, -0x1p5000L, -3.466429049980286492395577839412341016946e3L, -1.570796326794896619231321691639751442099L),
#endif
- TEST_c_c (casinh, 0x1.fp127L, 0x1.fp127L, 8.973081118419833726837456344608533993585e1L, 7.853981633974483096156608458198757210493e-1L);
+ TEST_c_c (casinh, 0x1.fp127L, 0x1.fp127L, 8.973081118419833726837456344608533993585e1L, 7.853981633974483096156608458198757210493e-1L),
#ifndef TEST_FLOAT
- TEST_c_c (casinh, 0x1.fp1023L, 0x1.fp1023L, 7.107906849659093345062145442726115449315e2L, 7.853981633974483096156608458198757210493e-1L);
+ TEST_c_c (casinh, 0x1.fp1023L, 0x1.fp1023L, 7.107906849659093345062145442726115449315e2L, 7.853981633974483096156608458198757210493e-1L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (casinh, 0x1.fp16383L, 0x1.fp16383L, 1.135753137836666928715489992987020363057e4L, 7.853981633974483096156608458198757210493e-1L);
-#endif
-
- TEST_c_c (casinh, 0x1.fp-129L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442096L);
- TEST_c_c (casinh, 0x1.fp-129L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442096L);
- TEST_c_c (casinh, -0x1.fp-129L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442096L);
- TEST_c_c (casinh, -0x1.fp-129L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442096L);
- TEST_c_c (casinh, 1.5L, 0x1.fp-129L, 1.194763217287109304111930828519090523536L, 1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, -1.5L, 0x1.fp-129L, -1.194763217287109304111930828519090523536L, 1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, 1.5L, -0x1.fp-129L, 1.194763217287109304111930828519090523536L, -1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, -1.5L, -0x1.fp-129L, -1.194763217287109304111930828519090523536L, -1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT);
-#ifndef TEST_FLOAT
- TEST_c_c (casinh, 0x1.fp-1025L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-1025L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1025L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1025L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.5L, 0x1.fp-1025L, 1.194763217287109304111930828519090523536L, 2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, -1.5L, 0x1.fp-1025L, -1.194763217287109304111930828519090523536L, 2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, 1.5L, -0x1.fp-1025L, 1.194763217287109304111930828519090523536L, -2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, -1.5L, -0x1.fp-1025L, -1.194763217287109304111930828519090523536L, -2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (casinh, 0x1.fp16383L, 0x1.fp16383L, 1.135753137836666928715489992987020363057e4L, 7.853981633974483096156608458198757210493e-1L),
+#endif
+
+ TEST_c_c (casinh, 0x1.fp-129L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (casinh, 0x1.fp-129L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (casinh, -0x1.fp-129L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (casinh, -0x1.fp-129L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (casinh, 1.5L, 0x1.fp-129L, 1.194763217287109304111930828519090523536L, 1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -1.5L, 0x1.fp-129L, -1.194763217287109304111930828519090523536L, 1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 1.5L, -0x1.fp-129L, 1.194763217287109304111930828519090523536L, -1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -1.5L, -0x1.fp-129L, -1.194763217287109304111930828519090523536L, -1.579176199917649005841160751101628985741e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1025L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-1025L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.5L, 0x1.fp-1025L, 1.194763217287109304111930828519090523536L, 2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -1.5L, 0x1.fp-1025L, -1.194763217287109304111930828519090523536L, 2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 1.5L, -0x1.fp-1025L, 1.194763217287109304111930828519090523536L, -2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -1.5L, -0x1.fp-1025L, -1.194763217287109304111930828519090523536L, -2.989196569048182929051881765490354365918e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (casinh, 0x1.fp-16385L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-16385L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-16385L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-16385L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.5L, 0x1.fp-16385L, 1.194763217287109304111930828519090523536L, 4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, -1.5L, 0x1.fp-16385L, -1.194763217287109304111930828519090523536L, 4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, 1.5L, -0x1.fp-16385L, 1.194763217287109304111930828519090523536L, -4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, -1.5L, -0x1.fp-16385L, -1.194763217287109304111930828519090523536L, -4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION);
-#endif
-
- TEST_c_c (casinh, 0.5L, 1.0L, 7.328576759736452608886724437653071523305e-1L, 8.959074812088902390666567243275770102229e-1L);
- TEST_c_c (casinh, 0.5L, -1.0L, 7.328576759736452608886724437653071523305e-1L, -8.959074812088902390666567243275770102229e-1L);
- TEST_c_c (casinh, -0.5L, 1.0L, -7.328576759736452608886724437653071523305e-1L, 8.959074812088902390666567243275770102229e-1L);
- TEST_c_c (casinh, -0.5L, -1.0L, -7.328576759736452608886724437653071523305e-1L, -8.959074812088902390666567243275770102229e-1L);
- TEST_c_c (casinh, 1.0L, 0.5L, 9.261330313501824245501244453057873152694e-1L, 3.494390628572132936274118260753699527325e-1L);
- TEST_c_c (casinh, -1.0L, 0.5L, -9.261330313501824245501244453057873152694e-1L, 3.494390628572132936274118260753699527325e-1L);
- TEST_c_c (casinh, 1.0L, -0.5L, 9.261330313501824245501244453057873152694e-1L, -3.494390628572132936274118260753699527325e-1L);
- TEST_c_c (casinh, -1.0L, -0.5L, -9.261330313501824245501244453057873152694e-1L, -3.494390628572132936274118260753699527325e-1L);
- TEST_c_c (casinh, 0.25L, 1.0L, 5.097911466811016354623559941115413499164e-1L, 1.081751996523816326311037318425097434186L);
- TEST_c_c (casinh, 0.25L, -1.0L, 5.097911466811016354623559941115413499164e-1L, -1.081751996523816326311037318425097434186L);
- TEST_c_c (casinh, -0.25L, 1.0L, -5.097911466811016354623559941115413499164e-1L, 1.081751996523816326311037318425097434186L);
- TEST_c_c (casinh, -0.25L, -1.0L, -5.097911466811016354623559941115413499164e-1L, -1.081751996523816326311037318425097434186L);
- TEST_c_c (casinh, 1.0L, 0.25L, 8.924633639033482359562124741744951972772e-1L, 1.763024327769669304186785666360901026468e-1L);
- TEST_c_c (casinh, -1.0L, 0.25L, -8.924633639033482359562124741744951972772e-1L, 1.763024327769669304186785666360901026468e-1L);
- TEST_c_c (casinh, 1.0L, -0.25L, 8.924633639033482359562124741744951972772e-1L, -1.763024327769669304186785666360901026468e-1L);
- TEST_c_c (casinh, -1.0L, -0.25L, -8.924633639033482359562124741744951972772e-1L, -1.763024327769669304186785666360901026468e-1L);
- TEST_c_c (casinh, 0x1.fp-10L, 1.0L, 4.350501469856803800217957402220976497152e-2L, 1.527305029163877791518741192097931722508L);
- TEST_c_c (casinh, 0x1.fp-10L, -1.0L, 4.350501469856803800217957402220976497152e-2L, -1.527305029163877791518741192097931722508L);
- TEST_c_c (casinh, -0x1.fp-10L, 1.0L, -4.350501469856803800217957402220976497152e-2L, 1.527305029163877791518741192097931722508L);
- TEST_c_c (casinh, -0x1.fp-10L, -1.0L, -4.350501469856803800217957402220976497152e-2L, -1.527305029163877791518741192097931722508L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-10L, 8.813742198809567991336704287826445879025e-1L, 1.337909359557740912558349531052239112857e-3L);
- TEST_c_c (casinh, -1.0L, 0x1.fp-10L, -8.813742198809567991336704287826445879025e-1L, 1.337909359557740912558349531052239112857e-3L);
- TEST_c_c (casinh, 1.0L, -0x1.fp-10L, 8.813742198809567991336704287826445879025e-1L, -1.337909359557740912558349531052239112857e-3L);
- TEST_c_c (casinh, -1.0L, -0x1.fp-10L, -8.813742198809567991336704287826445879025e-1L, -1.337909359557740912558349531052239112857e-3L);
- TEST_c_c (casinh, 0x1.fp-30L, 1.0L, 4.247867098745151888768727039216644758847e-5L, 1.570753848123921942730162693731872690232L);
- TEST_c_c (casinh, 0x1.fp-30L, -1.0L, 4.247867098745151888768727039216644758847e-5L, -1.570753848123921942730162693731872690232L);
- TEST_c_c (casinh, -0x1.fp-30L, 1.0L, -4.247867098745151888768727039216644758847e-5L, 1.570753848123921942730162693731872690232L);
- TEST_c_c (casinh, -0x1.fp-30L, -1.0L, -4.247867098745151888768727039216644758847e-5L, -1.570753848123921942730162693731872690232L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-30L, 8.813735870195430258081932989769495326854e-1L, 1.275929984216518540252717485007112529021e-9L);
- TEST_c_c (casinh, -1.0L, 0x1.fp-30L, -8.813735870195430258081932989769495326854e-1L, 1.275929984216518540252717485007112529021e-9L);
- TEST_c_c (casinh, 1.0L, -0x1.fp-30L, 8.813735870195430258081932989769495326854e-1L, -1.275929984216518540252717485007112529021e-9L);
- TEST_c_c (casinh, -1.0L, -0x1.fp-30L, -8.813735870195430258081932989769495326854e-1L, -1.275929984216518540252717485007112529021e-9L);
- TEST_c_c (casinh, 0x1.fp-100L, 1.0L, 1.236292038260260888664514866457202186027e-15L, 1.570796326794895382939283431378862777584L);
- TEST_c_c (casinh, 0x1.fp-100L, -1.0L, 1.236292038260260888664514866457202186027e-15L, -1.570796326794895382939283431378862777584L);
- TEST_c_c (casinh, -0x1.fp-100L, 1.0L, -1.236292038260260888664514866457202186027e-15L, 1.570796326794895382939283431378862777584L);
- TEST_c_c (casinh, -0x1.fp-100L, -1.0L, -1.236292038260260888664514866457202186027e-15L, -1.570796326794895382939283431378862777584L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-100L, 8.813735870195430252326093249797923090282e-1L, 1.080754735021050612990719608916167354321e-30L);
- TEST_c_c (casinh, -1.0L, 0x1.fp-100L, -8.813735870195430252326093249797923090282e-1L, 1.080754735021050612990719608916167354321e-30L);
- TEST_c_c (casinh, 1.0L, -0x1.fp-100L, 8.813735870195430252326093249797923090282e-1L, -1.080754735021050612990719608916167354321e-30L);
- TEST_c_c (casinh, -1.0L, -0x1.fp-100L, -8.813735870195430252326093249797923090282e-1L, -1.080754735021050612990719608916167354321e-30L);
- TEST_c_c (casinh, 0x1.fp-129L, 1.0L, 5.335635276982233498398987585285818977933e-20L, 1.570796326794896619177965338869929107115L);
- TEST_c_c (casinh, 0x1.fp-129L, -1.0L, 5.335635276982233498398987585285818977933e-20L, -1.570796326794896619177965338869929107115L);
- TEST_c_c (casinh, -0x1.fp-129L, 1.0L, -5.335635276982233498398987585285818977933e-20L, 1.570796326794896619177965338869929107115L);
- TEST_c_c (casinh, -0x1.fp-129L, -1.0L, -5.335635276982233498398987585285818977933e-20L, -1.570796326794896619177965338869929107115L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-129L, 8.813735870195430252326093249797923090282e-1L, 2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, -1.0L, 0x1.fp-129L, -8.813735870195430252326093249797923090282e-1L, 2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, 1.0L, -0x1.fp-129L, 8.813735870195430252326093249797923090282e-1L, -2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (casinh, -1.0L, -0x1.fp-129L, -8.813735870195430252326093249797923090282e-1L, -2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT);
-#ifndef TEST_FLOAT
- TEST_c_c (casinh, 0x1.fp-1000L, 1.0L, 4.252291453851660175550490409247739011867e-151L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-1000L, -1.0L, 4.252291453851660175550490409247739011867e-151L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1000L, 1.0L, -4.252291453851660175550490409247739011867e-151L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1000L, -1.0L, -4.252291453851660175550490409247739011867e-151L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-1000L, 8.813735870195430252326093249797923090282e-1L, 1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casinh, -1.0L, 0x1.fp-1000L, -8.813735870195430252326093249797923090282e-1L, 1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casinh, 1.0L, -0x1.fp-1000L, 8.813735870195430252326093249797923090282e-1L, -1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casinh, -1.0L, -0x1.fp-1000L, -8.813735870195430252326093249797923090282e-1L, -1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (casinh, 0x1.fp-1025L, 1.0L, 7.340879205566679497036857179189356754017e-155L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-1025L, -1.0L, 7.340879205566679497036857179189356754017e-155L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1025L, 1.0L, -7.340879205566679497036857179189356754017e-155L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-1025L, -1.0L, -7.340879205566679497036857179189356754017e-155L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-1025L, 8.813735870195430252326093249797923090282e-1L, 3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, -1.0L, 0x1.fp-1025L, -8.813735870195430252326093249797923090282e-1L, 3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, 1.0L, -0x1.fp-1025L, 8.813735870195430252326093249797923090282e-1L, -3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (casinh, -1.0L, -0x1.fp-1025L, -8.813735870195430252326093249797923090282e-1L, -3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (casinh, 0x1.fp-16385L, 1.5L, 9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -1.5L, 9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 1.5L, -9.624236501192068949955178268487368462704e-1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -1.5L, -9.624236501192068949955178268487368462704e-1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.5L, 0x1.fp-16385L, 1.194763217287109304111930828519090523536L, 4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -1.5L, 0x1.fp-16385L, -1.194763217287109304111930828519090523536L, 4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 1.5L, -0x1.fp-16385L, 1.194763217287109304111930828519090523536L, -4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -1.5L, -0x1.fp-16385L, -1.194763217287109304111930828519090523536L, -4.516698239814521372306784062043266700598e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+
+ TEST_c_c (casinh, 0.5L, 1.0L, 7.328576759736452608886724437653071523305e-1L, 8.959074812088902390666567243275770102229e-1L),
+ TEST_c_c (casinh, 0.5L, -1.0L, 7.328576759736452608886724437653071523305e-1L, -8.959074812088902390666567243275770102229e-1L),
+ TEST_c_c (casinh, -0.5L, 1.0L, -7.328576759736452608886724437653071523305e-1L, 8.959074812088902390666567243275770102229e-1L),
+ TEST_c_c (casinh, -0.5L, -1.0L, -7.328576759736452608886724437653071523305e-1L, -8.959074812088902390666567243275770102229e-1L),
+ TEST_c_c (casinh, 1.0L, 0.5L, 9.261330313501824245501244453057873152694e-1L, 3.494390628572132936274118260753699527325e-1L),
+ TEST_c_c (casinh, -1.0L, 0.5L, -9.261330313501824245501244453057873152694e-1L, 3.494390628572132936274118260753699527325e-1L),
+ TEST_c_c (casinh, 1.0L, -0.5L, 9.261330313501824245501244453057873152694e-1L, -3.494390628572132936274118260753699527325e-1L),
+ TEST_c_c (casinh, -1.0L, -0.5L, -9.261330313501824245501244453057873152694e-1L, -3.494390628572132936274118260753699527325e-1L),
+ TEST_c_c (casinh, 0.25L, 1.0L, 5.097911466811016354623559941115413499164e-1L, 1.081751996523816326311037318425097434186L),
+ TEST_c_c (casinh, 0.25L, -1.0L, 5.097911466811016354623559941115413499164e-1L, -1.081751996523816326311037318425097434186L),
+ TEST_c_c (casinh, -0.25L, 1.0L, -5.097911466811016354623559941115413499164e-1L, 1.081751996523816326311037318425097434186L),
+ TEST_c_c (casinh, -0.25L, -1.0L, -5.097911466811016354623559941115413499164e-1L, -1.081751996523816326311037318425097434186L),
+ TEST_c_c (casinh, 1.0L, 0.25L, 8.924633639033482359562124741744951972772e-1L, 1.763024327769669304186785666360901026468e-1L),
+ TEST_c_c (casinh, -1.0L, 0.25L, -8.924633639033482359562124741744951972772e-1L, 1.763024327769669304186785666360901026468e-1L),
+ TEST_c_c (casinh, 1.0L, -0.25L, 8.924633639033482359562124741744951972772e-1L, -1.763024327769669304186785666360901026468e-1L),
+ TEST_c_c (casinh, -1.0L, -0.25L, -8.924633639033482359562124741744951972772e-1L, -1.763024327769669304186785666360901026468e-1L),
+ TEST_c_c (casinh, 0x1.fp-10L, 1.0L, 4.350501469856803800217957402220976497152e-2L, 1.527305029163877791518741192097931722508L),
+ TEST_c_c (casinh, 0x1.fp-10L, -1.0L, 4.350501469856803800217957402220976497152e-2L, -1.527305029163877791518741192097931722508L),
+ TEST_c_c (casinh, -0x1.fp-10L, 1.0L, -4.350501469856803800217957402220976497152e-2L, 1.527305029163877791518741192097931722508L),
+ TEST_c_c (casinh, -0x1.fp-10L, -1.0L, -4.350501469856803800217957402220976497152e-2L, -1.527305029163877791518741192097931722508L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-10L, 8.813742198809567991336704287826445879025e-1L, 1.337909359557740912558349531052239112857e-3L),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-10L, -8.813742198809567991336704287826445879025e-1L, 1.337909359557740912558349531052239112857e-3L),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-10L, 8.813742198809567991336704287826445879025e-1L, -1.337909359557740912558349531052239112857e-3L),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-10L, -8.813742198809567991336704287826445879025e-1L, -1.337909359557740912558349531052239112857e-3L),
+ TEST_c_c (casinh, 0x1.fp-30L, 1.0L, 4.247867098745151888768727039216644758847e-5L, 1.570753848123921942730162693731872690232L),
+ TEST_c_c (casinh, 0x1.fp-30L, -1.0L, 4.247867098745151888768727039216644758847e-5L, -1.570753848123921942730162693731872690232L),
+ TEST_c_c (casinh, -0x1.fp-30L, 1.0L, -4.247867098745151888768727039216644758847e-5L, 1.570753848123921942730162693731872690232L),
+ TEST_c_c (casinh, -0x1.fp-30L, -1.0L, -4.247867098745151888768727039216644758847e-5L, -1.570753848123921942730162693731872690232L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-30L, 8.813735870195430258081932989769495326854e-1L, 1.275929984216518540252717485007112529021e-9L),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-30L, -8.813735870195430258081932989769495326854e-1L, 1.275929984216518540252717485007112529021e-9L),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-30L, 8.813735870195430258081932989769495326854e-1L, -1.275929984216518540252717485007112529021e-9L),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-30L, -8.813735870195430258081932989769495326854e-1L, -1.275929984216518540252717485007112529021e-9L),
+ TEST_c_c (casinh, 0x1.fp-100L, 1.0L, 1.236292038260260888664514866457202186027e-15L, 1.570796326794895382939283431378862777584L),
+ TEST_c_c (casinh, 0x1.fp-100L, -1.0L, 1.236292038260260888664514866457202186027e-15L, -1.570796326794895382939283431378862777584L),
+ TEST_c_c (casinh, -0x1.fp-100L, 1.0L, -1.236292038260260888664514866457202186027e-15L, 1.570796326794895382939283431378862777584L),
+ TEST_c_c (casinh, -0x1.fp-100L, -1.0L, -1.236292038260260888664514866457202186027e-15L, -1.570796326794895382939283431378862777584L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-100L, 8.813735870195430252326093249797923090282e-1L, 1.080754735021050612990719608916167354321e-30L),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-100L, -8.813735870195430252326093249797923090282e-1L, 1.080754735021050612990719608916167354321e-30L),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-100L, 8.813735870195430252326093249797923090282e-1L, -1.080754735021050612990719608916167354321e-30L),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-100L, -8.813735870195430252326093249797923090282e-1L, -1.080754735021050612990719608916167354321e-30L),
+ TEST_c_c (casinh, 0x1.fp-129L, 1.0L, 5.335635276982233498398987585285818977933e-20L, 1.570796326794896619177965338869929107115L),
+ TEST_c_c (casinh, 0x1.fp-129L, -1.0L, 5.335635276982233498398987585285818977933e-20L, -1.570796326794896619177965338869929107115L),
+ TEST_c_c (casinh, -0x1.fp-129L, 1.0L, -5.335635276982233498398987585285818977933e-20L, 1.570796326794896619177965338869929107115L),
+ TEST_c_c (casinh, -0x1.fp-129L, -1.0L, -5.335635276982233498398987585285818977933e-20L, -1.570796326794896619177965338869929107115L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-129L, 8.813735870195430252326093249797923090282e-1L, 2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-129L, -8.813735870195430252326093249797923090282e-1L, 2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-129L, 8.813735870195430252326093249797923090282e-1L, -2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-129L, -8.813735870195430252326093249797923090282e-1L, -2.013062564695348242280482517399205554874e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1000L, 1.0L, 4.252291453851660175550490409247739011867e-151L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-1000L, -1.0L, 4.252291453851660175550490409247739011867e-151L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1000L, 1.0L, -4.252291453851660175550490409247739011867e-151L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1000L, -1.0L, -4.252291453851660175550490409247739011867e-151L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-1000L, 8.813735870195430252326093249797923090282e-1L, 1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-1000L, -8.813735870195430252326093249797923090282e-1L, 1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-1000L, 8.813735870195430252326093249797923090282e-1L, -1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-1000L, -8.813735870195430252326093249797923090282e-1L, -1.278589251976747242280879285935084814093e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 0x1.fp-1025L, 1.0L, 7.340879205566679497036857179189356754017e-155L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-1025L, -1.0L, 7.340879205566679497036857179189356754017e-155L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, 1.0L, -7.340879205566679497036857179189356754017e-155L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, -1.0L, -7.340879205566679497036857179189356754017e-155L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-1025L, 8.813735870195430252326093249797923090282e-1L, 3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-1025L, -8.813735870195430252326093249797923090282e-1L, 3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-1025L, 8.813735870195430252326093249797923090282e-1L, -3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-1025L, -8.813735870195430252326093249797923090282e-1L, -3.810492908885321743133304375216617626230e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (casinh, 0x1.fp-10000L, 1.0L, 9.854680208706673586644342922051388714633e-1506L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-10000L, -1.0L, 9.854680208706673586644342922051388714633e-1506L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-10000L, 1.0L, -9.854680208706673586644342922051388714633e-1506L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-10000L, -1.0L, -9.854680208706673586644342922051388714633e-1506L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-10000L, 8.813735870195430252326093249797923090282e-1L, 6.867047849047171855399183659351043150871e-3011L);
- TEST_c_c (casinh, -1.0L, 0x1.fp-10000L, -8.813735870195430252326093249797923090282e-1L, 6.867047849047171855399183659351043150871e-3011L);
- TEST_c_c (casinh, 1.0L, -0x1.fp-10000L, 8.813735870195430252326093249797923090282e-1L, -6.867047849047171855399183659351043150871e-3011L);
- TEST_c_c (casinh, -1.0L, -0x1.fp-10000L, -8.813735870195430252326093249797923090282e-1L, -6.867047849047171855399183659351043150871e-3011L);
- TEST_c_c (casinh, 0x1.fp-16385L, 1.0L, 9.023632056840860275214893047597614177639e-2467L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 0x1.fp-16385L, -1.0L, 9.023632056840860275214893047597614177639e-2467L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-16385L, 1.0L, -9.023632056840860275214893047597614177639e-2467L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, -0x1.fp-16385L, -1.0L, -9.023632056840860275214893047597614177639e-2467L, -1.570796326794896619231321691639751442099L);
- TEST_c_c (casinh, 1.0L, 0x1.fp-16385L, 8.813735870195430252326093249797923090282e-1L, 5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, -1.0L, 0x1.fp-16385L, -8.813735870195430252326093249797923090282e-1L, 5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, 1.0L, -0x1.fp-16385L, 8.813735870195430252326093249797923090282e-1L, -5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION);
- TEST_c_c (casinh, -1.0L, -0x1.fp-16385L, -8.813735870195430252326093249797923090282e-1L, -5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION);
-#endif
-
- TEST_c_c (casinh, 0x1p-23L, 0x1.000002p0L, 5.364668491573609633134147164031476452679e-4L, 1.570574114956455764594481054234834678422L)
- TEST_c_c (casinh, 0x1p-23L, -0x1.000002p0L, 5.364668491573609633134147164031476452679e-4L, -1.570574114956455764594481054234834678422L)
- TEST_c_c (casinh, -0x1p-23L, 0x1.000002p0L, -5.364668491573609633134147164031476452679e-4L, 1.570574114956455764594481054234834678422L)
- TEST_c_c (casinh, -0x1p-23L, -0x1.000002p0L, -5.364668491573609633134147164031476452679e-4L, -1.570574114956455764594481054234834678422L)
- TEST_c_c (casinh, 0x1.000002p0L, 0x1p-23L, 8.813736713132400470205730751186547909968e-1L, 8.429369199749229560964789467980644296420e-8L)
- TEST_c_c (casinh, -0x1.000002p0L, 0x1p-23L, -8.813736713132400470205730751186547909968e-1L, 8.429369199749229560964789467980644296420e-8L)
- TEST_c_c (casinh, 0x1.000002p0L, -0x1p-23L, 8.813736713132400470205730751186547909968e-1L, -8.429369199749229560964789467980644296420e-8L)
- TEST_c_c (casinh, -0x1.000002p0L, -0x1p-23L, -8.813736713132400470205730751186547909968e-1L, -8.429369199749229560964789467980644296420e-8L)
- TEST_c_c (casinh, 0x1.fp-129L, 0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751436268L)
- TEST_c_c (casinh, 0x1.fp-129L, -0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751436268L)
- TEST_c_c (casinh, -0x1.fp-129L, 0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751436268L)
- TEST_c_c (casinh, -0x1.fp-129L, -0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751436268L)
- TEST_c_c (casinh, 0x1.000002p0L, 0x1.fp-129L, 8.813736713132375348727889167749389235161e-1L, 2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casinh, -0x1.000002p0L, 0x1.fp-129L, -8.813736713132375348727889167749389235161e-1L, 2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casinh, 0x1.000002p0L, -0x1.fp-129L, 8.813736713132375348727889167749389235161e-1L, -2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casinh, -0x1.000002p0L, -0x1.fp-129L, -8.813736713132375348727889167749389235161e-1L, -2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT)
- TEST_c_c (casinh, 0.0L, 0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0.0L, -0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, 0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, -0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.000002p0L, 0.0L, 8.813736713132375348727889167749389235161e-1L, 0.0L)
- TEST_c_c (casinh, -0x1.000002p0L, 0.0L, -8.813736713132375348727889167749389235161e-1L, 0.0L)
- TEST_c_c (casinh, 0x1.000002p0L, -0.0L, 8.813736713132375348727889167749389235161e-1L, -0.0L)
- TEST_c_c (casinh, -0x1.000002p0L, -0.0L, -8.813736713132375348727889167749389235161e-1L, -0.0L)
-#ifndef TEST_FLOAT
- TEST_c_c (casinh, 0x1p-52L, 0x1.0000000000001p0L, 2.315303644582684770975188768022139415020e-8L, 1.570796317204594913251280305810847349436L)
- TEST_c_c (casinh, 0x1p-52L, -0x1.0000000000001p0L, 2.315303644582684770975188768022139415020e-8L, -1.570796317204594913251280305810847349436L)
- TEST_c_c (casinh, -0x1p-52L, 0x1.0000000000001p0L, -2.315303644582684770975188768022139415020e-8L, 1.570796317204594913251280305810847349436L)
- TEST_c_c (casinh, -0x1p-52L, -0x1.0000000000001p0L, -2.315303644582684770975188768022139415020e-8L, -1.570796317204594913251280305810847349436L)
- TEST_c_c (casinh, 0x1.0000000000001p0L, 0x1p-52L, 8.813735870195431822418551933572982483664e-1L, 1.570092458683774885078102529858632363236e-16L)
- TEST_c_c (casinh, -0x1.0000000000001p0L, 0x1p-52L, -8.813735870195431822418551933572982483664e-1L, 1.570092458683774885078102529858632363236e-16L)
- TEST_c_c (casinh, 0x1.0000000000001p0L, -0x1p-52L, 8.813735870195431822418551933572982483664e-1L, -1.570092458683774885078102529858632363236e-16L)
- TEST_c_c (casinh, -0x1.0000000000001p0L, -0x1p-52L, -8.813735870195431822418551933572982483664e-1L, -1.570092458683774885078102529858632363236e-16L)
- TEST_c_c (casinh, 0x1.fp-1025L, 0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.fp-1025L, -0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-1025L, 0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-1025L, -0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000001p0L, 0x1.fp-1025L, 8.813735870195431822418551933572895326024e-1L, 3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, -0x1.0000000000001p0L, 0x1.fp-1025L, -8.813735870195431822418551933572895326024e-1L, 3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, 0x1.0000000000001p0L, -0x1.fp-1025L, 8.813735870195431822418551933572895326024e-1L, -3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, -0x1.0000000000001p0L, -0x1.fp-1025L, -8.813735870195431822418551933572895326024e-1L, -3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, 0.0L, 0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0.0L, -0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, 0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, -0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000001p0L, 0.0L, 8.813735870195431822418551933572895326024e-1L, 0.0L)
- TEST_c_c (casinh, -0x1.0000000000001p0L, 0.0L, -8.813735870195431822418551933572895326024e-1L, 0.0L)
- TEST_c_c (casinh, 0x1.0000000000001p0L, -0.0L, 8.813735870195431822418551933572895326024e-1L, -0.0L)
- TEST_c_c (casinh, -0x1.0000000000001p0L, -0.0L, -8.813735870195431822418551933572895326024e-1L, -0.0L)
+ TEST_c_c (casinh, 0x1.fp-10000L, 1.0L, 9.854680208706673586644342922051388714633e-1506L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-10000L, -1.0L, 9.854680208706673586644342922051388714633e-1506L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-10000L, 1.0L, -9.854680208706673586644342922051388714633e-1506L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-10000L, -1.0L, -9.854680208706673586644342922051388714633e-1506L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-10000L, 8.813735870195430252326093249797923090282e-1L, 6.867047849047171855399183659351043150871e-3011L),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-10000L, -8.813735870195430252326093249797923090282e-1L, 6.867047849047171855399183659351043150871e-3011L),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-10000L, 8.813735870195430252326093249797923090282e-1L, -6.867047849047171855399183659351043150871e-3011L),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-10000L, -8.813735870195430252326093249797923090282e-1L, -6.867047849047171855399183659351043150871e-3011L),
+ TEST_c_c (casinh, 0x1.fp-16385L, 1.0L, 9.023632056840860275214893047597614177639e-2467L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -1.0L, 9.023632056840860275214893047597614177639e-2467L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 1.0L, -9.023632056840860275214893047597614177639e-2467L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -1.0L, -9.023632056840860275214893047597614177639e-2467L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 1.0L, 0x1.fp-16385L, 8.813735870195430252326093249797923090282e-1L, 5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -1.0L, 0x1.fp-16385L, -8.813735870195430252326093249797923090282e-1L, 5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 1.0L, -0x1.fp-16385L, 8.813735870195430252326093249797923090282e-1L, -5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -1.0L, -0x1.fp-16385L, -8.813735870195430252326093249797923090282e-1L, -5.757683115456107044131264955348448954458e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+
+ TEST_c_c (casinh, 0x1p-23L, 0x1.000002p0L, 5.364668491573609633134147164031476452679e-4L, 1.570574114956455764594481054234834678422L),
+ TEST_c_c (casinh, 0x1p-23L, -0x1.000002p0L, 5.364668491573609633134147164031476452679e-4L, -1.570574114956455764594481054234834678422L),
+ TEST_c_c (casinh, -0x1p-23L, 0x1.000002p0L, -5.364668491573609633134147164031476452679e-4L, 1.570574114956455764594481054234834678422L),
+ TEST_c_c (casinh, -0x1p-23L, -0x1.000002p0L, -5.364668491573609633134147164031476452679e-4L, -1.570574114956455764594481054234834678422L),
+ TEST_c_c (casinh, 0x1.000002p0L, 0x1p-23L, 8.813736713132400470205730751186547909968e-1L, 8.429369199749229560964789467980644296420e-8L),
+ TEST_c_c (casinh, -0x1.000002p0L, 0x1p-23L, -8.813736713132400470205730751186547909968e-1L, 8.429369199749229560964789467980644296420e-8L),
+ TEST_c_c (casinh, 0x1.000002p0L, -0x1p-23L, 8.813736713132400470205730751186547909968e-1L, -8.429369199749229560964789467980644296420e-8L),
+ TEST_c_c (casinh, -0x1.000002p0L, -0x1p-23L, -8.813736713132400470205730751186547909968e-1L, -8.429369199749229560964789467980644296420e-8L),
+ TEST_c_c (casinh, 0x1.fp-129L, 0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751436268L),
+ TEST_c_c (casinh, 0x1.fp-129L, -0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751436268L),
+ TEST_c_c (casinh, -0x1.fp-129L, 0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751436268L),
+ TEST_c_c (casinh, -0x1.fp-129L, -0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751436268L),
+ TEST_c_c (casinh, 0x1.000002p0L, 0x1.fp-129L, 8.813736713132375348727889167749389235161e-1L, 2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.000002p0L, 0x1.fp-129L, -8.813736713132375348727889167749389235161e-1L, 2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x1.000002p0L, -0x1.fp-129L, 8.813736713132375348727889167749389235161e-1L, -2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.000002p0L, -0x1.fp-129L, -8.813736713132375348727889167749389235161e-1L, -2.013062444707472738895109955455676357057e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0.0L, 0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0.0L, -0x1.000002p0L, 4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, 0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, -0x1.000002p0L, -4.882812451493617206486388134172712975070e-4L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.000002p0L, 0.0L, 8.813736713132375348727889167749389235161e-1L, 0.0L),
+ TEST_c_c (casinh, -0x1.000002p0L, 0.0L, -8.813736713132375348727889167749389235161e-1L, 0.0L),
+ TEST_c_c (casinh, 0x1.000002p0L, -0.0L, 8.813736713132375348727889167749389235161e-1L, -0.0L),
+ TEST_c_c (casinh, -0x1.000002p0L, -0.0L, -8.813736713132375348727889167749389235161e-1L, -0.0L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1p-52L, 0x1.0000000000001p0L, 2.315303644582684770975188768022139415020e-8L, 1.570796317204594913251280305810847349436L),
+ TEST_c_c (casinh, 0x1p-52L, -0x1.0000000000001p0L, 2.315303644582684770975188768022139415020e-8L, -1.570796317204594913251280305810847349436L),
+ TEST_c_c (casinh, -0x1p-52L, 0x1.0000000000001p0L, -2.315303644582684770975188768022139415020e-8L, 1.570796317204594913251280305810847349436L),
+ TEST_c_c (casinh, -0x1p-52L, -0x1.0000000000001p0L, -2.315303644582684770975188768022139415020e-8L, -1.570796317204594913251280305810847349436L),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, 0x1p-52L, 8.813735870195431822418551933572982483664e-1L, 1.570092458683774885078102529858632363236e-16L),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, 0x1p-52L, -8.813735870195431822418551933572982483664e-1L, 1.570092458683774885078102529858632363236e-16L),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, -0x1p-52L, 8.813735870195431822418551933572982483664e-1L, -1.570092458683774885078102529858632363236e-16L),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, -0x1p-52L, -8.813735870195431822418551933572982483664e-1L, -1.570092458683774885078102529858632363236e-16L),
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, 0x1.fp-1025L, 8.813735870195431822418551933572895326024e-1L, 3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, 0x1.fp-1025L, -8.813735870195431822418551933572895326024e-1L, 3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, -0x1.fp-1025L, 8.813735870195431822418551933572895326024e-1L, -3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, -0x1.fp-1025L, -8.813735870195431822418551933572895326024e-1L, -3.810492908885321320083608113679347200012e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.0L, 0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0.0L, -0x1.0000000000001p0L, 2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, 0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, -0x1.0000000000001p0L, -2.107342425544701550354780375182800088393e-8L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, 0.0L, 8.813735870195431822418551933572895326024e-1L, 0.0L),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, 0.0L, -8.813735870195431822418551933572895326024e-1L, 0.0L),
+ TEST_c_c (casinh, 0x1.0000000000001p0L, -0.0L, 8.813735870195431822418551933572895326024e-1L, -0.0L),
+ TEST_c_c (casinh, -0x1.0000000000001p0L, -0.0L, -8.813735870195431822418551933572895326024e-1L, -0.0L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_c_c (casinh, 0x1p-63L, 0x1.0000000000000002p0L, 5.116146586219826555037807251857670783420e-10L, 1.570796326582978888921215348380499122131L)
- TEST_c_c (casinh, 0x1p-63L, -0x1.0000000000000002p0L, 5.116146586219826555037807251857670783420e-10L, -1.570796326582978888921215348380499122131L)
- TEST_c_c (casinh, -0x1p-63L, 0x1.0000000000000002p0L, -5.116146586219826555037807251857670783420e-10L, 1.570796326582978888921215348380499122131L)
- TEST_c_c (casinh, -0x1p-63L, -0x1.0000000000000002p0L, -5.116146586219826555037807251857670783420e-10L, -1.570796326582978888921215348380499122131L)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, 0x1p-63L, 8.813735870195430253092739958139610131001e-1L, 7.666467083416870406778649849746878368519e-20L)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, 0x1p-63L, -8.813735870195430253092739958139610131001e-1L, 7.666467083416870406778649849746878368519e-20L)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, -0x1p-63L, 8.813735870195430253092739958139610131001e-1L, -7.666467083416870406778649849746878368519e-20L)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, -0x1p-63L, -8.813735870195430253092739958139610131001e-1L, -7.666467083416870406778649849746878368519e-20L)
+ TEST_c_c (casinh, 0x1p-63L, 0x1.0000000000000002p0L, 5.116146586219826555037807251857670783420e-10L, 1.570796326582978888921215348380499122131L),
+ TEST_c_c (casinh, 0x1p-63L, -0x1.0000000000000002p0L, 5.116146586219826555037807251857670783420e-10L, -1.570796326582978888921215348380499122131L),
+ TEST_c_c (casinh, -0x1p-63L, 0x1.0000000000000002p0L, -5.116146586219826555037807251857670783420e-10L, 1.570796326582978888921215348380499122131L),
+ TEST_c_c (casinh, -0x1p-63L, -0x1.0000000000000002p0L, -5.116146586219826555037807251857670783420e-10L, -1.570796326582978888921215348380499122131L),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, 0x1p-63L, 8.813735870195430253092739958139610131001e-1L, 7.666467083416870406778649849746878368519e-20L),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, 0x1p-63L, -8.813735870195430253092739958139610131001e-1L, 7.666467083416870406778649849746878368519e-20L),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, -0x1p-63L, 8.813735870195430253092739958139610131001e-1L, -7.666467083416870406778649849746878368519e-20L),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, -0x1p-63L, -8.813735870195430253092739958139610131001e-1L, -7.666467083416870406778649849746878368519e-20L),
# if LDBL_MIN_EXP <= -16381
- TEST_c_c (casinh, 0x1.fp-16385L, 0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.fp-16385L, -0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-16385L, 0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-16385L, -0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, 0x1.fp-16385L, 8.813735870195430253092739958139610130980e-1L, 5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, 0x1.fp-16385L, -8.813735870195430253092739958139610130980e-1L, 5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, -0x1.fp-16385L, 8.813735870195430253092739958139610130980e-1L, -5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, -0x1.fp-16385L, -8.813735870195430253092739958139610130980e-1L, -5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION)
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, 0x1.fp-16385L, 8.813735870195430253092739958139610130980e-1L, 5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, 0x1.fp-16385L, -8.813735870195430253092739958139610130980e-1L, 5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, -0x1.fp-16385L, 8.813735870195430253092739958139610130980e-1L, -5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, -0x1.fp-16385L, -8.813735870195430253092739958139610130980e-1L, -5.757683115456107043819140328235418018963e-4933L, UNDERFLOW_EXCEPTION),
# endif
- TEST_c_c (casinh, 0.0L, 0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0.0L, -0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, 0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, -0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, 0.0L, 8.813735870195430253092739958139610130980e-1L, 0.0L)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, 0.0L, -8.813735870195430253092739958139610130980e-1L, 0.0L)
- TEST_c_c (casinh, 0x1.0000000000000002p0L, -0.0L, 8.813735870195430253092739958139610130980e-1L, -0.0L)
- TEST_c_c (casinh, -0x1.0000000000000002p0L, -0.0L, -8.813735870195430253092739958139610130980e-1L, -0.0L)
+ TEST_c_c (casinh, 0.0L, 0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0.0L, -0x1.0000000000000002p0L, 4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, 0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, -0x1.0000000000000002p0L, -4.656612873077392578082927418388212703712e-10L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, 0.0L, 8.813735870195430253092739958139610130980e-1L, 0.0L),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, 0.0L, -8.813735870195430253092739958139610130980e-1L, 0.0L),
+ TEST_c_c (casinh, 0x1.0000000000000002p0L, -0.0L, 8.813735870195430253092739958139610130980e-1L, -0.0L),
+ TEST_c_c (casinh, -0x1.0000000000000002p0L, -0.0L, -8.813735870195430253092739958139610130980e-1L, -0.0L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (casinh, 0x1p-106L, 0x1.000000000000000000000000008p0L, 2.285028863093221674154232933662774454211e-16L, 1.570796326794896565289107467733682961928L)
- TEST_c_c (casinh, 0x1p-106L, -0x1.000000000000000000000000008p0L, 2.285028863093221674154232933662774454211e-16L, -1.570796326794896565289107467733682961928L)
- TEST_c_c (casinh, -0x1p-106L, 0x1.000000000000000000000000008p0L, -2.285028863093221674154232933662774454211e-16L, 1.570796326794896565289107467733682961928L)
- TEST_c_c (casinh, -0x1p-106L, -0x1.000000000000000000000000008p0L, -2.285028863093221674154232933662774454211e-16L, -1.570796326794896565289107467733682961928L)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0x1p-106L, 8.813735870195430252326093249798097405561e-1L, 8.715763992105246878957416200936726072500e-33L)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0x1p-106L, -8.813735870195430252326093249798097405561e-1L, 8.715763992105246878957416200936726072500e-33L)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0x1p-106L, 8.813735870195430252326093249798097405561e-1L, -8.715763992105246878957416200936726072500e-33L)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0x1p-106L, -8.813735870195430252326093249798097405561e-1L, -8.715763992105246878957416200936726072500e-33L)
- TEST_c_c (casinh, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 8.813735870195430252326093249798097405561e-1L, 3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, -8.813735870195430252326093249798097405561e-1L, 3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 8.813735870195430252326093249798097405561e-1L, -3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, -8.813735870195430252326093249798097405561e-1L, -3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE)
- TEST_c_c (casinh, 0.0L, 0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0.0L, -0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, 0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, -0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0.0L, 8.813735870195430252326093249798097405561e-1L, 0.0L)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0.0L, -8.813735870195430252326093249798097405561e-1L, 0.0L)
- TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0.0L, 8.813735870195430252326093249798097405561e-1L, -0.0L)
- TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0.0L, -8.813735870195430252326093249798097405561e-1L, -0.0L)
+ TEST_c_c (casinh, 0x1p-106L, 0x1.000000000000000000000000008p0L, 2.285028863093221674154232933662774454211e-16L, 1.570796326794896565289107467733682961928L),
+ TEST_c_c (casinh, 0x1p-106L, -0x1.000000000000000000000000008p0L, 2.285028863093221674154232933662774454211e-16L, -1.570796326794896565289107467733682961928L),
+ TEST_c_c (casinh, -0x1p-106L, 0x1.000000000000000000000000008p0L, -2.285028863093221674154232933662774454211e-16L, 1.570796326794896565289107467733682961928L),
+ TEST_c_c (casinh, -0x1p-106L, -0x1.000000000000000000000000008p0L, -2.285028863093221674154232933662774454211e-16L, -1.570796326794896565289107467733682961928L),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0x1p-106L, 8.813735870195430252326093249798097405561e-1L, 8.715763992105246878957416200936726072500e-33L),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0x1p-106L, -8.813735870195430252326093249798097405561e-1L, 8.715763992105246878957416200936726072500e-33L),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0x1p-106L, 8.813735870195430252326093249798097405561e-1L, -8.715763992105246878957416200936726072500e-33L),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0x1p-106L, -8.813735870195430252326093249798097405561e-1L, -8.715763992105246878957416200936726072500e-33L),
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0x1.fp-1025L, 8.813735870195430252326093249798097405561e-1L, 3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0x1.fp-1025L, -8.813735870195430252326093249798097405561e-1L, 3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0x1.fp-1025L, 8.813735870195430252326093249798097405561e-1L, -3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0x1.fp-1025L, -8.813735870195430252326093249798097405561e-1L, -3.810492908885321743133304375216570658278e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.0L, 0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0.0L, -0x1.000000000000000000000000008p0L, 2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, 0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, -0x1.000000000000000000000000008p0L, -2.220446049250313080847263336181636063482e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, 0.0L, 8.813735870195430252326093249798097405561e-1L, 0.0L),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, 0.0L, -8.813735870195430252326093249798097405561e-1L, 0.0L),
+ TEST_c_c (casinh, 0x1.000000000000000000000000008p0L, -0.0L, 8.813735870195430252326093249798097405561e-1L, -0.0L),
+ TEST_c_c (casinh, -0x1.000000000000000000000000008p0L, -0.0L, -8.813735870195430252326093249798097405561e-1L, -0.0L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_c_c (casinh, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 2.019699255375255198156433710951064632386e-17L, 1.570796326794896614463458507897073960405L)
- TEST_c_c (casinh, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 2.019699255375255198156433710951064632386e-17L, -1.570796326794896614463458507897073960405L)
- TEST_c_c (casinh, -0x1p-113L, 0x1.0000000000000000000000000001p0L, -2.019699255375255198156433710951064632386e-17L, 1.570796326794896614463458507897073960405L)
- TEST_c_c (casinh, -0x1p-113L, -0x1.0000000000000000000000000001p0L, -2.019699255375255198156433710951064632386e-17L, -1.570796326794896614463458507897073960405L)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 8.813735870195430252326093249797924452120e-1L, 6.809190618832224124185481406981900518193e-35L)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0x1p-113L, -8.813735870195430252326093249797924452120e-1L, 6.809190618832224124185481406981900518193e-35L)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 8.813735870195430252326093249797924452120e-1L, -6.809190618832224124185481406981900518193e-35L)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0x1p-113L, -8.813735870195430252326093249797924452120e-1L, -6.809190618832224124185481406981900518193e-35L)
- TEST_c_c (casinh, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 8.813735870195430252326093249797924452120e-1L, 5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, -8.813735870195430252326093249797924452120e-1L, 5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 8.813735870195430252326093249797924452120e-1L, -5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, -8.813735870195430252326093249797924452120e-1L, -5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION)
- TEST_c_c (casinh, 0.0L, 0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0.0L, -0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, 0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, -0.0L, -0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0.0L, 8.813735870195430252326093249797924452120e-1L, 0.0L)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0.0L, -8.813735870195430252326093249797924452120e-1L, 0.0L)
- TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0.0L, 8.813735870195430252326093249797924452120e-1L, -0.0L)
- TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0.0L, -8.813735870195430252326093249797924452120e-1L, -0.0L)
-#endif
-
- TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L, 0.911738290968487636358489564316731207L);
- TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L, -0.96465850440760279204541105949953237L);
-
- END (casinh, complex);
-}
+ TEST_c_c (casinh, 0x1p-113L, 0x1.0000000000000000000000000001p0L, 2.019699255375255198156433710951064632386e-17L, 1.570796326794896614463458507897073960405L),
+ TEST_c_c (casinh, 0x1p-113L, -0x1.0000000000000000000000000001p0L, 2.019699255375255198156433710951064632386e-17L, -1.570796326794896614463458507897073960405L),
+ TEST_c_c (casinh, -0x1p-113L, 0x1.0000000000000000000000000001p0L, -2.019699255375255198156433710951064632386e-17L, 1.570796326794896614463458507897073960405L),
+ TEST_c_c (casinh, -0x1p-113L, -0x1.0000000000000000000000000001p0L, -2.019699255375255198156433710951064632386e-17L, -1.570796326794896614463458507897073960405L),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0x1p-113L, 8.813735870195430252326093249797924452120e-1L, 6.809190618832224124185481406981900518193e-35L),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0x1p-113L, -8.813735870195430252326093249797924452120e-1L, 6.809190618832224124185481406981900518193e-35L),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0x1p-113L, 8.813735870195430252326093249797924452120e-1L, -6.809190618832224124185481406981900518193e-35L),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0x1p-113L, -8.813735870195430252326093249797924452120e-1L, -6.809190618832224124185481406981900518193e-35L),
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, 8.813735870195430252326093249797924452120e-1L, 5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0x1.fp-16385L, -8.813735870195430252326093249797924452120e-1L, 5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, 8.813735870195430252326093249797924452120e-1L, -5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0x1.fp-16385L, -8.813735870195430252326093249797924452120e-1L, -5.757683115456107044131264955348448400014e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0.0L, 0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0.0L, -0x1.0000000000000000000000000001p0L, 1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, 0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, -0.0L, -0x1.0000000000000000000000000001p0L, -1.962615573354718824241727964954454332780e-17L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, 0.0L, 8.813735870195430252326093249797924452120e-1L, 0.0L),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, 0.0L, -8.813735870195430252326093249797924452120e-1L, 0.0L),
+ TEST_c_c (casinh, 0x1.0000000000000000000000000001p0L, -0.0L, 8.813735870195430252326093249797924452120e-1L, -0.0L),
+ TEST_c_c (casinh, -0x1.0000000000000000000000000001p0L, -0.0L, -8.813735870195430252326093249797924452120e-1L, -0.0L),
+#endif
+
+ TEST_c_c (casinh, 0x1p-23L, 0x0.ffffffp0L, 2.714321200917194650737217746780928423385e-4L, 1.570357140408705570520377172865353621698L),
+ TEST_c_c (casinh, 0x1p-23L, -0x0.ffffffp0L, 2.714321200917194650737217746780928423385e-4L, -1.570357140408705570520377172865353621698L),
+ TEST_c_c (casinh, -0x1p-23L, 0x0.ffffffp0L, -2.714321200917194650737217746780928423385e-4L, 1.570357140408705570520377172865353621698L),
+ TEST_c_c (casinh, -0x1p-23L, -0x0.ffffffp0L, -2.714321200917194650737217746780928423385e-4L, -1.570357140408705570520377172865353621698L),
+ TEST_c_c (casinh, 0x0.ffffffp0L, 0x1p-23L, 8.813735448726963984495965873956465777250e-1L, 8.429369953393598499000760938112968755257e-8L),
+ TEST_c_c (casinh, -0x0.ffffffp0L, 0x1p-23L, -8.813735448726963984495965873956465777250e-1L, 8.429369953393598499000760938112968755257e-8L),
+ TEST_c_c (casinh, 0x0.ffffffp0L, -0x1p-23L, 8.813735448726963984495965873956465777250e-1L, -8.429369953393598499000760938112968755257e-8L),
+ TEST_c_c (casinh, -0x0.ffffffp0L, -0x1p-23L, -8.813735448726963984495965873956465777250e-1L, -8.429369953393598499000760938112968755257e-8L),
+ TEST_c_c (casinh, 0x1.fp-129L, 0x0.ffffffp0L, 8.245504387859737323891843603996428534945e-36L, 1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, 0x1.fp-129L, -0x0.ffffffp0L, 8.245504387859737323891843603996428534945e-36L, -1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, -0x1.fp-129L, 0x0.ffffffp0L, -8.245504387859737323891843603996428534945e-36L, 1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, -0x1.fp-129L, -0x0.ffffffp0L, -8.245504387859737323891843603996428534945e-36L, -1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, 0x0.ffffffp0L, 0x1.fp-129L, 8.813735448726938863015878255140556727969e-1L, 2.013062624689288675911339929224634593425e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x0.ffffffp0L, 0x1.fp-129L, -8.813735448726938863015878255140556727969e-1L, 2.013062624689288675911339929224634593425e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x0.ffffffp0L, -0x1.fp-129L, 8.813735448726938863015878255140556727969e-1L, -2.013062624689288675911339929224634593425e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x0.ffffffp0L, -0x1.fp-129L, -8.813735448726938863015878255140556727969e-1L, -2.013062624689288675911339929224634593425e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0.0L, 0x0.ffffffp0L, 0.0L, 1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, 0.0L, -0x0.ffffffp0L, 0.0L, -1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, -0.0L, 0x0.ffffffp0L, -0.0L, 1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, -0.0L, -0x0.ffffffp0L, -0.0L, -1.570451059810180415643718442157112705601L),
+ TEST_c_c (casinh, 0x0.ffffffp0L, 0.0L, 8.813735448726938863015878255140556727969e-1L, 0.0L),
+ TEST_c_c (casinh, -0x0.ffffffp0L, 0.0L, -8.813735448726938863015878255140556727969e-1L, 0.0L),
+ TEST_c_c (casinh, 0x0.ffffffp0L, -0.0L, 8.813735448726938863015878255140556727969e-1L, -0.0L),
+ TEST_c_c (casinh, -0x0.ffffffp0L, -0.0L, -8.813735448726938863015878255140556727969e-1L, -0.0L),
+ TEST_c_c (casinh, 0x1p-23L, 0.5L, 1.376510308240943236356088341381173571841e-7L, 5.235987755982934033165770729745469098254e-1L),
+ TEST_c_c (casinh, 0x1p-23L, -0.5L, 1.376510308240943236356088341381173571841e-7L, -5.235987755982934033165770729745469098254e-1L),
+ TEST_c_c (casinh, -0x1p-23L, 0.5L, -1.376510308240943236356088341381173571841e-7L, 5.235987755982934033165770729745469098254e-1L),
+ TEST_c_c (casinh, -0x1p-23L, -0.5L, -1.376510308240943236356088341381173571841e-7L, -5.235987755982934033165770729745469098254e-1L),
+ TEST_c_c (casinh, 0.5L, 0x1p-23L, 4.812118250596059896127318386463676808798e-1L, 1.066240299940009780479664302917201696886e-7L),
+ TEST_c_c (casinh, -0.5L, 0x1p-23L, -4.812118250596059896127318386463676808798e-1L, 1.066240299940009780479664302917201696886e-7L),
+ TEST_c_c (casinh, 0.5L, -0x1p-23L, 4.812118250596059896127318386463676808798e-1L, -1.066240299940009780479664302917201696886e-7L),
+ TEST_c_c (casinh, -0.5L, -0x1p-23L, -4.812118250596059896127318386463676808798e-1L, -1.066240299940009780479664302917201696886e-7L),
+ TEST_c_c (casinh, 0x1.fp-129L, 0.5L, 3.287317402534702257036015056278368274737e-39L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x1.fp-129L, -0.5L, 3.287317402534702257036015056278368274737e-39L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, 0.5L, -3.287317402534702257036015056278368274737e-39L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, -0.5L, -3.287317402534702257036015056278368274737e-39L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0.5L, 0x1.fp-129L, 4.812118250596034474977589134243684231352e-1L, 2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0.5L, 0x1.fp-129L, -4.812118250596034474977589134243684231352e-1L, 2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0.5L, -0x1.fp-129L, 4.812118250596034474977589134243684231352e-1L, -2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0.5L, -0x1.fp-129L, -4.812118250596034474977589134243684231352e-1L, -2.546345110742945032959687790021055102355e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x1p-23L, 0x1p-23L, 1.192092895507818146886315028596704749235e-7L, 1.192092895507806853113684971258850504935e-7L),
+ TEST_c_c (casinh, 0x1p-23L, -0x1p-23L, 1.192092895507818146886315028596704749235e-7L, -1.192092895507806853113684971258850504935e-7L),
+ TEST_c_c (casinh, -0x1p-23L, 0x1p-23L, -1.192092895507818146886315028596704749235e-7L, 1.192092895507806853113684971258850504935e-7L),
+ TEST_c_c (casinh, -0x1p-23L, -0x1p-23L, -1.192092895507818146886315028596704749235e-7L, -1.192092895507806853113684971258850504935e-7L),
+ TEST_c_c (casinh, 0x1.fp-129L, 0x1p-23L, 2.846900380897747786805634596726756660388e-39L, 1.192092895507815323443157514352519154304e-7L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x1.fp-129L, -0x1p-23L, 2.846900380897747786805634596726756660388e-39L, -1.192092895507815323443157514352519154304e-7L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, 0x1p-23L, -2.846900380897747786805634596726756660388e-39L, 1.192092895507815323443157514352519154304e-7L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, -0x1p-23L, -2.846900380897747786805634596726756660388e-39L, -1.192092895507815323443157514352519154304e-7L, UNDERFLOW_EXCEPTION_FLOAT),
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casinh, 0x1p-23L, 0x1.fp-129L, 1.192092895507809676556842485683592032154e-7L, 2.846900380897707329917933005874691056564e-39L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casinh, -0x1p-23L, 0x1.fp-129L, -1.192092895507809676556842485683592032154e-7L, 2.846900380897707329917933005874691056564e-39L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casinh, 0x1p-23L, -0x1.fp-129L, 1.192092895507809676556842485683592032154e-7L, -2.846900380897707329917933005874691056564e-39L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casinh, -0x1p-23L, -0x1.fp-129L, -1.192092895507809676556842485683592032154e-7L, -2.846900380897707329917933005874691056564e-39L, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_c_c (casinh, 0.0L, 0x1p-23L, 0.0L, 1.192092895507815323443157514352519154304e-7L),
+ TEST_c_c (casinh, 0.0L, -0x1p-23L, 0.0L, -1.192092895507815323443157514352519154304e-7L),
+ TEST_c_c (casinh, -0.0L, 0x1p-23L, -0.0L, 1.192092895507815323443157514352519154304e-7L),
+ TEST_c_c (casinh, -0.0L, -0x1p-23L, -0.0L, -1.192092895507815323443157514352519154304e-7L),
+ TEST_c_c (casinh, 0x1p-23L, 0.0L, 1.192092895507809676556842485683592032154e-7L, 0.0L),
+ TEST_c_c (casinh, -0x1p-23L, 0.0L, -1.192092895507809676556842485683592032154e-7L, 0.0L),
+ TEST_c_c (casinh, 0x1p-23L, -0.0L, 1.192092895507809676556842485683592032154e-7L, -0.0L),
+ TEST_c_c (casinh, -0x1p-23L, -0.0L, -1.192092895507809676556842485683592032154e-7L, -0.0L),
+ TEST_c_c (casinh, 0x1.fp-129L, 0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, 0x1.fp-129L, -0x1.fp-129L, 2.846900380897727558361783801085126250967e-39L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, 0x1.fp-129L, -2.846900380897727558361783801085126250967e-39L, 2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (casinh, -0x1.fp-129L, -0x1.fp-129L, -2.846900380897727558361783801085126250967e-39L, -2.846900380897727558361783801085126250967e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1p-52L, 0x0.fffffffffffff8p0L, 1.171456840272878582596796205397918831268e-8L, 1.570796307840326780080580569360500172043L),
+ TEST_c_c (casinh, 0x1p-52L, -0x0.fffffffffffff8p0L, 1.171456840272878582596796205397918831268e-8L, -1.570796307840326780080580569360500172043L),
+ TEST_c_c (casinh, -0x1p-52L, 0x0.fffffffffffff8p0L, -1.171456840272878582596796205397918831268e-8L, 1.570796307840326780080580569360500172043L),
+ TEST_c_c (casinh, -0x1p-52L, -0x0.fffffffffffff8p0L, -1.171456840272878582596796205397918831268e-8L, -1.570796307840326780080580569360500172043L),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, 0x1p-52L, 8.813735870195429467279863907910458761820e-1L, 1.570092458683775146551022293016031474627e-16L),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, 0x1p-52L, -8.813735870195429467279863907910458761820e-1L, 1.570092458683775146551022293016031474627e-16L),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, -0x1p-52L, 8.813735870195429467279863907910458761820e-1L, -1.570092458683775146551022293016031474627e-16L),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, -0x1p-52L, -8.813735870195429467279863907910458761820e-1L, -1.570092458683775146551022293016031474627e-16L),
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x0.fffffffffffff8p0L, 3.616396521699973256461764099945789620604e-301L, 1.570796311893735425383665303776316016594L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x0.fffffffffffff8p0L, 3.616396521699973256461764099945789620604e-301L, -1.570796311893735425383665303776316016594L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x0.fffffffffffff8p0L, -3.616396521699973256461764099945789620604e-301L, 1.570796311893735425383665303776316016594L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x0.fffffffffffff8p0L, -3.616396521699973256461764099945789620604e-301L, -1.570796311893735425383665303776316016594L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, 0x1.fp-1025L, 8.813735870195429467279863907910371604180e-1L, 3.810492908885321954658152505985270452320e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, 0x1.fp-1025L, -8.813735870195429467279863907910371604180e-1L, 3.810492908885321954658152505985270452320e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, -0x1.fp-1025L, 8.813735870195429467279863907910371604180e-1L, -3.810492908885321954658152505985270452320e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, -0x1.fp-1025L, -8.813735870195429467279863907910371604180e-1L, -3.810492908885321954658152505985270452320e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.0L, 0x0.fffffffffffff8p0L, 0.0L, 1.570796311893735425383665303776316016594L),
+ TEST_c_c (casinh, 0.0L, -0x0.fffffffffffff8p0L, 0.0L, -1.570796311893735425383665303776316016594L),
+ TEST_c_c (casinh, -0.0L, 0x0.fffffffffffff8p0L, -0.0L, 1.570796311893735425383665303776316016594L),
+ TEST_c_c (casinh, -0.0L, -0x0.fffffffffffff8p0L, -0.0L, -1.570796311893735425383665303776316016594L),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, 0.0L, 8.813735870195429467279863907910371604180e-1L, 0.0L),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, 0.0L, -8.813735870195429467279863907910371604180e-1L, 0.0L),
+ TEST_c_c (casinh, 0x0.fffffffffffff8p0L, -0.0L, 8.813735870195429467279863907910371604180e-1L, -0.0L),
+ TEST_c_c (casinh, -0x0.fffffffffffff8p0L, -0.0L, -8.813735870195429467279863907910371604180e-1L, -0.0L),
+#endif
+ TEST_c_c (casinh, 0x1p-52L, 0.5L, 2.563950248511418570403591756798643804971e-16L, 5.235987755982988730771072305465648369889e-1L),
+ TEST_c_c (casinh, 0x1p-52L, -0.5L, 2.563950248511418570403591756798643804971e-16L, -5.235987755982988730771072305465648369889e-1L),
+ TEST_c_c (casinh, -0x1p-52L, 0.5L, -2.563950248511418570403591756798643804971e-16L, 5.235987755982988730771072305465648369889e-1L),
+ TEST_c_c (casinh, -0x1p-52L, -0.5L, -2.563950248511418570403591756798643804971e-16L, -5.235987755982988730771072305465648369889e-1L),
+ TEST_c_c (casinh, 0.5L, 0x1p-52L, 4.812118250596034474977589134243772428682e-1L, 1.986027322597818397661816253158024383707e-16L),
+ TEST_c_c (casinh, -0.5L, 0x1p-52L, -4.812118250596034474977589134243772428682e-1L, 1.986027322597818397661816253158024383707e-16L),
+ TEST_c_c (casinh, 0.5L, -0x1p-52L, 4.812118250596034474977589134243772428682e-1L, -1.986027322597818397661816253158024383707e-16L),
+ TEST_c_c (casinh, -0.5L, -0x1p-52L, -4.812118250596034474977589134243772428682e-1L, -1.986027322597818397661816253158024383707e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1025L, 0.5L, 6.222508863508420569166420770843207333493e-309L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0.5L, 6.222508863508420569166420770843207333493e-309L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0.5L, -6.222508863508420569166420770843207333493e-309L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0.5L, -6.222508863508420569166420770843207333493e-309L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.5L, 0x1.fp-1025L, 4.812118250596034474977589134243684231352e-1L, 4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0.5L, 0x1.fp-1025L, -4.812118250596034474977589134243684231352e-1L, 4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.5L, -0x1.fp-1025L, 4.812118250596034474977589134243684231352e-1L, -4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0.5L, -0x1.fp-1025L, -4.812118250596034474977589134243684231352e-1L, -4.819934639999230680322935210539402497827e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+ TEST_c_c (casinh, 0x1p-52L, 0x1p-52L, 2.220446049250313080847263336181677117148e-16L, 2.220446049250313080847263336181604132852e-16L),
+ TEST_c_c (casinh, 0x1p-52L, -0x1p-52L, 2.220446049250313080847263336181677117148e-16L, -2.220446049250313080847263336181604132852e-16L),
+ TEST_c_c (casinh, -0x1p-52L, 0x1p-52L, -2.220446049250313080847263336181677117148e-16L, 2.220446049250313080847263336181604132852e-16L),
+ TEST_c_c (casinh, -0x1p-52L, -0x1p-52L, -2.220446049250313080847263336181677117148e-16L, -2.220446049250313080847263336181604132852e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x1p-52L, 5.388850751072128349671657362289548938458e-309L, 2.220446049250313080847263336181658871074e-16L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x1p-52L, 5.388850751072128349671657362289548938458e-309L, -2.220446049250313080847263336181658871074e-16L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x1p-52L, -5.388850751072128349671657362289548938458e-309L, 2.220446049250313080847263336181658871074e-16L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x1p-52L, -5.388850751072128349671657362289548938458e-309L, -2.220446049250313080847263336181658871074e-16L, UNDERFLOW_EXCEPTION_DOUBLE),
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casinh, 0x1p-52L, 0x1.fp-1025L, 2.220446049250313080847263336181622378926e-16L, 5.388850751072128349671657362289283247603e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, -0x1p-52L, 0x1.fp-1025L, -2.220446049250313080847263336181622378926e-16L, 5.388850751072128349671657362289283247603e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, 0x1p-52L, -0x1.fp-1025L, 2.220446049250313080847263336181622378926e-16L, -5.388850751072128349671657362289283247603e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, -0x1p-52L, -0x1.fp-1025L, -2.220446049250313080847263336181622378926e-16L, -5.388850751072128349671657362289283247603e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+#endif
+ TEST_c_c (casinh, 0.0L, 0x1p-52L, 0.0L, 2.220446049250313080847263336181658871074e-16L),
+ TEST_c_c (casinh, 0.0L, -0x1p-52L, 0.0L, -2.220446049250313080847263336181658871074e-16L),
+ TEST_c_c (casinh, -0.0L, 0x1p-52L, -0.0L, 2.220446049250313080847263336181658871074e-16L),
+ TEST_c_c (casinh, -0.0L, -0x1p-52L, -0.0L, -2.220446049250313080847263336181658871074e-16L),
+ TEST_c_c (casinh, 0x1p-52L, 0.0L, 2.220446049250313080847263336181622378926e-16L, 0.0L),
+ TEST_c_c (casinh, -0x1p-52L, 0.0L, -2.220446049250313080847263336181622378926e-16L, 0.0L),
+ TEST_c_c (casinh, 0x1p-52L, -0.0L, 2.220446049250313080847263336181622378926e-16L, -0.0L),
+ TEST_c_c (casinh, -0x1p-52L, -0.0L, -2.220446049250313080847263336181622378926e-16L, -0.0L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x1.fp-1025L, 5.388850751072128349671657362289416093031e-309L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x1.fp-1025L, -5.388850751072128349671657362289416093031e-309L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x1.fp-1025L, -5.388850751072128349671657362289416093031e-309L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (casinh, 0x1p-63L, 0x0.ffffffffffffffffp0L, 2.588578361325995866221775673638805081337e-10L, 1.570796326376055842114524927965556247908L),
+ TEST_c_c (casinh, 0x1p-63L, -0x0.ffffffffffffffffp0L, 2.588578361325995866221775673638805081337e-10L, -1.570796326376055842114524927965556247908L),
+ TEST_c_c (casinh, -0x1p-63L, 0x0.ffffffffffffffffp0L, -2.588578361325995866221775673638805081337e-10L, 1.570796326376055842114524927965556247908L),
+ TEST_c_c (casinh, -0x1p-63L, -0x0.ffffffffffffffffp0L, -2.588578361325995866221775673638805081337e-10L, -1.570796326376055842114524927965556247908L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, 0x1p-63L, 8.813735870195430251942769895627079569937e-1L, 7.666467083416870407402049869781566856442e-20L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, 0x1p-63L, -8.813735870195430251942769895627079569937e-1L, 7.666467083416870407402049869781566856442e-20L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, -0x1p-63L, 8.813735870195430251942769895627079569937e-1L, -7.666467083416870407402049869781566856442e-20L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, -0x1p-63L, -8.813735870195430251942769895627079569937e-1L, -7.666467083416870407402049869781566856442e-20L),
+# if LDBL_MIN_EXP <= -16381
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x0.ffffffffffffffffp0L, 2.472906068161537187835415298076415423459e-4923L, 1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x0.ffffffffffffffffp0L, 2.472906068161537187835415298076415423459e-4923L, -1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x0.ffffffffffffffffp0L, -2.472906068161537187835415298076415423459e-4923L, 1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x0.ffffffffffffffffp0L, -2.472906068161537187835415298076415423459e-4923L, -1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, 0x1.fp-16385L, 8.813735870195430251942769895627079569917e-1L, 5.757683115456107044287327268904964422212e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, 0x1.fp-16385L, -8.813735870195430251942769895627079569917e-1L, 5.757683115456107044287327268904964422212e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, -0x1.fp-16385L, 8.813735870195430251942769895627079569917e-1L, -5.757683115456107044287327268904964422212e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, -0x1.fp-16385L, -8.813735870195430251942769895627079569917e-1L, -5.757683115456107044287327268904964422212e-4933L, UNDERFLOW_EXCEPTION),
+# endif
+ TEST_c_c (casinh, 0.0L, 0x0.ffffffffffffffffp0L, 0.0L, 1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, 0.0L, -0x0.ffffffffffffffffp0L, 0.0L, -1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, -0.0L, 0x0.ffffffffffffffffp0L, -0.0L, 1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, -0.0L, -0x0.ffffffffffffffffp0L, -0.0L, -1.570796326465624365239962068302568888898L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, 0.0L, 8.813735870195430251942769895627079569917e-1L, 0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, 0.0L, -8.813735870195430251942769895627079569917e-1L, 0.0L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffp0L, -0.0L, 8.813735870195430251942769895627079569917e-1L, -0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffp0L, -0.0L, -8.813735870195430251942769895627079569917e-1L, -0.0L),
+#endif
+ TEST_c_c (casinh, 0x1p-63L, 0.5L, 1.251928832280966098829878787499365228659e-19L, 5.235987755982988730771072305465838140283e-1L),
+ TEST_c_c (casinh, 0x1p-63L, -0.5L, 1.251928832280966098829878787499365228659e-19L, -5.235987755982988730771072305465838140283e-1L),
+ TEST_c_c (casinh, -0x1p-63L, 0.5L, -1.251928832280966098829878787499365228659e-19L, 5.235987755982988730771072305465838140283e-1L),
+ TEST_c_c (casinh, -0x1p-63L, -0.5L, -1.251928832280966098829878787499365228659e-19L, -5.235987755982988730771072305465838140283e-1L),
+ TEST_c_c (casinh, 0.5L, 0x1p-63L, 4.812118250596034474977589134243684231373e-1L, 9.697399036122160144833087173623140436413e-20L),
+ TEST_c_c (casinh, -0.5L, 0x1p-63L, -4.812118250596034474977589134243684231373e-1L, 9.697399036122160144833087173623140436413e-20L),
+ TEST_c_c (casinh, 0.5L, -0x1p-63L, 4.812118250596034474977589134243684231373e-1L, -9.697399036122160144833087173623140436413e-20L),
+ TEST_c_c (casinh, -0.5L, -0x1p-63L, -4.812118250596034474977589134243684231373e-1L, -9.697399036122160144833087173623140436413e-20L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casinh, 0x1.fp-16385L, 0.5L, 9.402257155670418112159334875199821342890e-4933L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0.5L, 9.402257155670418112159334875199821342890e-4933L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0.5L, -9.402257155670418112159334875199821342890e-4933L, 5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0.5L, -9.402257155670418112159334875199821342890e-4933L, -5.235987755982988730771072305465838140329e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0.5L, 0x1.fp-16385L, 4.812118250596034474977589134243684231352e-1L, 7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0.5L, 0x1.fp-16385L, -4.812118250596034474977589134243684231352e-1L, 7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0.5L, -0x1.fp-16385L, 4.812118250596034474977589134243684231352e-1L, -7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0.5L, -0x1.fp-16385L, -4.812118250596034474977589134243684231352e-1L, -7.282957076134209141226696333885150260319e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casinh, 0x1p-63L, 0x1p-63L, 1.084202172485504434007452800869941711430e-19L, 1.084202172485504434007452800869941711422e-19L),
+ TEST_c_c (casinh, 0x1p-63L, -0x1p-63L, 1.084202172485504434007452800869941711430e-19L, -1.084202172485504434007452800869941711422e-19L),
+ TEST_c_c (casinh, -0x1p-63L, 0x1p-63L, -1.084202172485504434007452800869941711430e-19L, 1.084202172485504434007452800869941711422e-19L),
+ TEST_c_c (casinh, -0x1p-63L, -0x1p-63L, -1.084202172485504434007452800869941711430e-19L, -1.084202172485504434007452800869941711422e-19L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x1p-63L, 8.142593549724601460479922838826119584465e-4933L, 1.084202172485504434007452800869941711428e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x1p-63L, 8.142593549724601460479922838826119584465e-4933L, -1.084202172485504434007452800869941711428e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x1p-63L, -8.142593549724601460479922838826119584465e-4933L, 1.084202172485504434007452800869941711428e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x1p-63L, -8.142593549724601460479922838826119584465e-4933L, -1.084202172485504434007452800869941711428e-19L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1p-63L, 0x1.fp-16385L, 1.084202172485504434007452800869941711424e-19L, 8.142593549724601460479922838826119584369e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1p-63L, 0x1.fp-16385L, -1.084202172485504434007452800869941711424e-19L, 8.142593549724601460479922838826119584369e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1p-63L, -0x1.fp-16385L, 1.084202172485504434007452800869941711424e-19L, -8.142593549724601460479922838826119584369e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1p-63L, -0x1.fp-16385L, -1.084202172485504434007452800869941711424e-19L, -8.142593549724601460479922838826119584369e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casinh, 0.0L, 0x1p-63L, 0.0L, 1.084202172485504434007452800869941711428e-19L),
+ TEST_c_c (casinh, 0.0L, -0x1p-63L, 0.0L, -1.084202172485504434007452800869941711428e-19L),
+ TEST_c_c (casinh, -0.0L, 0x1p-63L, -0.0L, 1.084202172485504434007452800869941711428e-19L),
+ TEST_c_c (casinh, -0.0L, -0x1p-63L, -0.0L, -1.084202172485504434007452800869941711428e-19L),
+ TEST_c_c (casinh, 0x1p-63L, 0.0L, 1.084202172485504434007452800869941711424e-19L, 0.0L),
+ TEST_c_c (casinh, -0x1p-63L, 0.0L, -1.084202172485504434007452800869941711424e-19L, 0.0L),
+ TEST_c_c (casinh, 0x1p-63L, -0.0L, 1.084202172485504434007452800869941711424e-19L, -0.0L),
+ TEST_c_c (casinh, -0x1p-63L, -0.0L, -1.084202172485504434007452800869941711424e-19L, -0.0L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x1.fp-16385L, 8.142593549724601460479922838826119584417e-4933L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x1.fp-16385L, -8.142593549724601460479922838826119584417e-4933L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x1.fp-16385L, -8.142593549724601460479922838826119584417e-4933L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (casinh, 0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, 1.234330349600789959989661887846005659983e-16L, 1.570796326794896419512475791677915736035L),
+ TEST_c_c (casinh, 0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, 1.234330349600789959989661887846005659983e-16L, -1.570796326794896419512475791677915736035L),
+ TEST_c_c (casinh, -0x1p-105L, 0x0.ffffffffffffffffffffffffffcp0L, -1.234330349600789959989661887846005659983e-16L, 1.570796326794896419512475791677915736035L),
+ TEST_c_c (casinh, -0x1p-105L, -0x0.ffffffffffffffffffffffffffcp0L, -1.234330349600789959989661887846005659983e-16L, -1.570796326794896419512475791677915736035L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, 8.813735870195430252326093249797835932642e-1L, 1.743152798421049375791483240187377443526e-32L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-105L, -8.813735870195430252326093249797835932642e-1L, 1.743152798421049375791483240187377443526e-32L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, 8.813735870195430252326093249797835932642e-1L, -1.743152798421049375791483240187377443526e-32L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-105L, -8.813735870195430252326093249797835932642e-1L, -1.743152798421049375791483240187377443526e-32L),
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, 3.432186888910770473784103112009399360940e-293L, 1.570796326794896462222075823262245502760L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, 3.432186888910770473784103112009399360940e-293L, -1.570796326794896462222075823262245502760L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x0.ffffffffffffffffffffffffffcp0L, -3.432186888910770473784103112009399360940e-293L, 1.570796326794896462222075823262245502760L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x0.ffffffffffffffffffffffffffcp0L, -3.432186888910770473784103112009399360940e-293L, -1.570796326794896462222075823262245502760L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, 8.813735870195430252326093249797835932642e-1L, 3.810492908885321743133304375216641110205e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1.fp-1025L, -8.813735870195430252326093249797835932642e-1L, 3.810492908885321743133304375216641110205e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, 8.813735870195430252326093249797835932642e-1L, -3.810492908885321743133304375216641110205e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1.fp-1025L, -8.813735870195430252326093249797835932642e-1L, -3.810492908885321743133304375216641110205e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0.0L, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 1.570796326794896462222075823262245502760L),
+ TEST_c_c (casinh, 0.0L, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, -1.570796326794896462222075823262245502760L),
+ TEST_c_c (casinh, -0.0L, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 1.570796326794896462222075823262245502760L),
+ TEST_c_c (casinh, -0.0L, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, -1.570796326794896462222075823262245502760L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, 0.0L, 8.813735870195430252326093249797835932642e-1L, 0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, 0.0L, -8.813735870195430252326093249797835932642e-1L, 0.0L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffcp0L, -0.0L, 8.813735870195430252326093249797835932642e-1L, -0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffcp0L, -0.0L, -8.813735870195430252326093249797835932642e-1L, -0.0L),
+#endif
+ TEST_c_c (casinh, 0x1p-105L, 0.5L, 2.846556599890768890940941645338546615370e-32L, 5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, 0x1p-105L, -0.5L, 2.846556599890768890940941645338546615370e-32L, -5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, -0x1p-105L, 0.5L, -2.846556599890768890940941645338546615370e-32L, 5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, -0x1p-105L, -0.5L, -2.846556599890768890940941645338546615370e-32L, -5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, 0.5L, 0x1p-105L, 4.812118250596034474977589134243684231352e-1L, 2.204933261082751447436996198490110245167e-32L),
+ TEST_c_c (casinh, -0.5L, 0x1p-105L, -4.812118250596034474977589134243684231352e-1L, 2.204933261082751447436996198490110245167e-32L),
+ TEST_c_c (casinh, 0.5L, -0x1p-105L, 4.812118250596034474977589134243684231352e-1L, -2.204933261082751447436996198490110245167e-32L),
+ TEST_c_c (casinh, -0.5L, -0x1p-105L, -4.812118250596034474977589134243684231352e-1L, -2.204933261082751447436996198490110245167e-32L),
+ TEST_c_c (casinh, 0x1p-105L, 0x1p-105L, 2.465190328815661891911651766508706967729e-32L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, 0x1p-105L, -0x1p-105L, 2.465190328815661891911651766508706967729e-32L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, -0x1p-105L, 0x1p-105L, -2.465190328815661891911651766508706967729e-32L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, -0x1p-105L, -0x1p-105L, -2.465190328815661891911651766508706967729e-32L, -2.465190328815661891911651766508706967729e-32L),
+#ifndef TEST_FLOAT
+ TEST_c_c (casinh, 0x1.fp-1025L, 0x1p-105L, 5.388850751072128349671657362289416093031e-309L, 2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, 0x1.fp-1025L, -0x1p-105L, 5.388850751072128349671657362289416093031e-309L, -2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, 0x1p-105L, -5.388850751072128349671657362289416093031e-309L, 2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (casinh, -0x1.fp-1025L, -0x1p-105L, -5.388850751072128349671657362289416093031e-309L, -2.465190328815661891911651766508706967729e-32L, UNDERFLOW_EXCEPTION_DOUBLE),
+ /* Bug 15319: underflow exception may be missing. */
+ TEST_c_c (casinh, 0x1p-105L, 0x1.fp-1025L, 2.465190328815661891911651766508706967729e-32L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, -0x1p-105L, 0x1.fp-1025L, -2.465190328815661891911651766508706967729e-32L, 5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, 0x1p-105L, -0x1.fp-1025L, 2.465190328815661891911651766508706967729e-32L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+ TEST_c_c (casinh, -0x1p-105L, -0x1.fp-1025L, -2.465190328815661891911651766508706967729e-32L, -5.388850751072128349671657362289416093031e-309L, UNDERFLOW_EXCEPTION_OK_DOUBLE),
+#endif
+ TEST_c_c (casinh, 0.0L, 0x1p-105L, 0.0L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, 0.0L, -0x1p-105L, 0.0L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, -0.0L, 0x1p-105L, -0.0L, 2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, -0.0L, -0x1p-105L, -0.0L, -2.465190328815661891911651766508706967729e-32L),
+ TEST_c_c (casinh, 0x1p-105L, 0.0L, 2.465190328815661891911651766508706967729e-32L, 0.0L),
+ TEST_c_c (casinh, -0x1p-105L, 0.0L, -2.465190328815661891911651766508706967729e-32L, 0.0L),
+ TEST_c_c (casinh, 0x1p-105L, -0.0L, 2.465190328815661891911651766508706967729e-32L, -0.0L),
+ TEST_c_c (casinh, -0x1p-105L, -0.0L, -2.465190328815661891911651766508706967729e-32L, -0.0L),
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (casinh, 0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.091004200533850618345330909857103457781e-17L, 1.570796326794896601578502908312986698624L),
+ TEST_c_c (casinh, 0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.091004200533850618345330909857103457781e-17L, -1.570796326794896601578502908312986698624L),
+ TEST_c_c (casinh, -0x1p-112L, 0x0.ffffffffffffffffffffffffffff8p0L, -1.091004200533850618345330909857103457781e-17L, 1.570796326794896601578502908312986698624L),
+ TEST_c_c (casinh, -0x1p-112L, -0x0.ffffffffffffffffffffffffffff8p0L, -1.091004200533850618345330909857103457781e-17L, -1.570796326794896601578502908312986698624L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, 8.813735870195430252326093249797922409363e-1L, 1.361838123766444824837096281396380300349e-34L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-112L, -8.813735870195430252326093249797922409363e-1L, 1.361838123766444824837096281396380300349e-34L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, 8.813735870195430252326093249797922409363e-1L, -1.361838123766444824837096281396380300349e-34L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-112L, -8.813735870195430252326093249797922409363e-1L, -1.361838123766444824837096281396380300349e-34L),
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, 5.867357004219059108790368268900490184505e-4916L, 1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, 5.867357004219059108790368268900490184505e-4916L, -1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x0.ffffffffffffffffffffffffffff8p0L, -5.867357004219059108790368268900490184505e-4916L, 1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x0.ffffffffffffffffffffffffffff8p0L, -5.867357004219059108790368268900490184505e-4916L, -1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, 8.813735870195430252326093249797922409363e-1L, 5.757683115456107044131264955348449231681e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1.fp-16385L, -8.813735870195430252326093249797922409363e-1L, 5.757683115456107044131264955348449231681e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, 8.813735870195430252326093249797922409363e-1L, -5.757683115456107044131264955348449231681e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1.fp-16385L, -8.813735870195430252326093249797922409363e-1L, -5.757683115456107044131264955348449231681e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, 0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, -1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, -0.0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, -0.0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, -1.570796326794896605353533883825294686803L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, 8.813735870195430252326093249797922409363e-1L, 0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, 0.0L, -8.813735870195430252326093249797922409363e-1L, 0.0L),
+ TEST_c_c (casinh, 0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, 8.813735870195430252326093249797922409363e-1L, -0.0L),
+ TEST_c_c (casinh, -0x0.ffffffffffffffffffffffffffff8p0L, -0.0L, -8.813735870195430252326093249797922409363e-1L, -0.0L),
+#endif
+ TEST_c_c (casinh, 0x1p-112L, 0.5L, 2.223872343664663196047610660420739543258e-34L, 5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, 0x1p-112L, -0.5L, 2.223872343664663196047610660420739543258e-34L, -5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, -0x1p-112L, 0.5L, -2.223872343664663196047610660420739543258e-34L, 5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, -0x1p-112L, -0.5L, -2.223872343664663196047610660420739543258e-34L, -5.235987755982988730771072305465838140329e-1L),
+ TEST_c_c (casinh, 0.5L, 0x1p-112L, 4.812118250596034474977589134243684231352e-1L, 1.722604110220899568310153280070398629037e-34L),
+ TEST_c_c (casinh, -0.5L, 0x1p-112L, -4.812118250596034474977589134243684231352e-1L, 1.722604110220899568310153280070398629037e-34L),
+ TEST_c_c (casinh, 0.5L, -0x1p-112L, 4.812118250596034474977589134243684231352e-1L, -1.722604110220899568310153280070398629037e-34L),
+ TEST_c_c (casinh, -0.5L, -0x1p-112L, -4.812118250596034474977589134243684231352e-1L, -1.722604110220899568310153280070398629037e-34L),
+ TEST_c_c (casinh, 0x1p-112L, 0x1p-112L, 1.925929944387235853055977942584927318538e-34L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, 0x1p-112L, -0x1p-112L, 1.925929944387235853055977942584927318538e-34L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, -0x1p-112L, 0x1p-112L, -1.925929944387235853055977942584927318538e-34L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, -0x1p-112L, -0x1p-112L, -1.925929944387235853055977942584927318538e-34L, -1.925929944387235853055977942584927318538e-34L),
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (casinh, 0x1.fp-16385L, 0x1p-112L, 8.142593549724601460479922838826119584417e-4933L, 1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1.fp-16385L, -0x1p-112L, 8.142593549724601460479922838826119584417e-4933L, -1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, 0x1p-112L, -8.142593549724601460479922838826119584417e-4933L, 1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1.fp-16385L, -0x1p-112L, -8.142593549724601460479922838826119584417e-4933L, -1.925929944387235853055977942584927318538e-34L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1p-112L, 0x1.fp-16385L, 1.925929944387235853055977942584927318538e-34L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1p-112L, 0x1.fp-16385L, -1.925929944387235853055977942584927318538e-34L, 8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, 0x1p-112L, -0x1.fp-16385L, 1.925929944387235853055977942584927318538e-34L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (casinh, -0x1p-112L, -0x1.fp-16385L, -1.925929944387235853055977942584927318538e-34L, -8.142593549724601460479922838826119584417e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (casinh, 0.0L, 0x1p-112L, 0.0L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, 0.0L, -0x1p-112L, 0.0L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, -0.0L, 0x1p-112L, -0.0L, 1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, -0.0L, -0x1p-112L, -0.0L, -1.925929944387235853055977942584927318538e-34L),
+ TEST_c_c (casinh, 0x1p-112L, 0.0L, 1.925929944387235853055977942584927318538e-34L, 0.0L),
+ TEST_c_c (casinh, -0x1p-112L, 0.0L, -1.925929944387235853055977942584927318538e-34L, 0.0L),
+ TEST_c_c (casinh, 0x1p-112L, -0.0L, 1.925929944387235853055977942584927318538e-34L, -0.0L),
+ TEST_c_c (casinh, -0x1p-112L, -0.0L, -1.925929944387235853055977942584927318538e-34L, -0.0L),
+
+ TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L, 0.911738290968487636358489564316731207L),
+ TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L, -0.96465850440760279204541105949953237L),
+ };
+static void
+casinh_test (void)
+{
+ START (casinh);
+ RUN_TEST_LOOP_c_c (casinh, casinh_test_data, );
+ END_COMPLEX;
+}
+
+
+static const struct test_c_c_data catan_test_data[] =
+ {
+ TEST_c_c (catan, 0, 0, 0, 0),
+ TEST_c_c (catan, minus_zero, 0, minus_zero, 0),
+ TEST_c_c (catan, 0, minus_zero, 0, minus_zero),
+ TEST_c_c (catan, minus_zero, minus_zero, minus_zero, minus_zero),
+
+ TEST_c_c (catan, 1.0L, plus_zero, M_PI_4l, plus_zero),
+ TEST_c_c (catan, 1.0L, minus_zero, M_PI_4l, minus_zero),
+ TEST_c_c (catan, -1.0L, plus_zero, -M_PI_4l, plus_zero),
+ TEST_c_c (catan, -1.0L, minus_zero, -M_PI_4l, minus_zero),
+ TEST_c_c (catan, plus_zero, 1.0L, plus_zero, plus_infty, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catan, minus_zero, 1.0L, minus_zero, plus_infty, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catan, plus_zero, -1.0L, plus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catan, minus_zero, -1.0L, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION),
+
+ TEST_c_c (catan, plus_infty, plus_infty, M_PI_2l, 0),
+ TEST_c_c (catan, plus_infty, minus_infty, M_PI_2l, minus_zero),
+ TEST_c_c (catan, minus_infty, plus_infty, -M_PI_2l, 0),
+ TEST_c_c (catan, minus_infty, minus_infty, -M_PI_2l, minus_zero),
+
+
+ TEST_c_c (catan, plus_infty, -10.0, M_PI_2l, minus_zero),
+ TEST_c_c (catan, minus_infty, -10.0, -M_PI_2l, minus_zero),
+ TEST_c_c (catan, plus_infty, minus_zero, M_PI_2l, minus_zero),
+ TEST_c_c (catan, minus_infty, minus_zero, -M_PI_2l, minus_zero),
+ TEST_c_c (catan, plus_infty, 0.0, M_PI_2l, 0),
+ TEST_c_c (catan, minus_infty, 0.0, -M_PI_2l, 0),
+ TEST_c_c (catan, plus_infty, 0.1L, M_PI_2l, 0),
+ TEST_c_c (catan, minus_infty, 0.1L, -M_PI_2l, 0),
+
+ TEST_c_c (catan, 0.0, minus_infty, M_PI_2l, minus_zero),
+ TEST_c_c (catan, minus_zero, minus_infty, -M_PI_2l, minus_zero),
+ TEST_c_c (catan, 100.0, minus_infty, M_PI_2l, minus_zero),
+ TEST_c_c (catan, -100.0, minus_infty, -M_PI_2l, minus_zero),
+
+ TEST_c_c (catan, 0.0, plus_infty, M_PI_2l, 0),
+ TEST_c_c (catan, minus_zero, plus_infty, -M_PI_2l, 0),
+ TEST_c_c (catan, 0.5, plus_infty, M_PI_2l, 0),
+ TEST_c_c (catan, -0.5, plus_infty, -M_PI_2l, 0),
+
+ TEST_c_c (catan, qnan_value, 0.0, qnan_value, 0),
+ TEST_c_c (catan, qnan_value, minus_zero, qnan_value, minus_zero),
+
+ TEST_c_c (catan, qnan_value, plus_infty, qnan_value, 0),
+ TEST_c_c (catan, qnan_value, minus_infty, qnan_value, minus_zero),
+
+ TEST_c_c (catan, 0.0, qnan_value, qnan_value, qnan_value),
+ TEST_c_c (catan, minus_zero, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (catan, plus_infty, qnan_value, M_PI_2l, 0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (catan, minus_infty, qnan_value, -M_PI_2l, 0, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (catan, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (catan, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (catan, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (catan, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (catan, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (catan, 0x1p50L, 0.0L, 1.570796326794895731052901991514519103193L, 0.0L),
+ TEST_c_c (catan, 0x1p50L, -0.0L, 1.570796326794895731052901991514519103193L, -0.0L),
+ TEST_c_c (catan, -0x1p50L, 0.0L, -1.570796326794895731052901991514519103193L, 0.0L),
+ TEST_c_c (catan, -0x1p50L, -0.0L, -1.570796326794895731052901991514519103193L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p50L, 1.570796326794896619231321691639751442099L, 8.881784197001252323389053344728897997441e-16L),
+ TEST_c_c (catan, -0.0L, 0x1p50L, -1.570796326794896619231321691639751442099L, 8.881784197001252323389053344728897997441e-16L),
+ TEST_c_c (catan, 0.0L, -0x1p50L, 1.570796326794896619231321691639751442099L, -8.881784197001252323389053344728897997441e-16L),
+ TEST_c_c (catan, -0.0L, -0x1p50L, -1.570796326794896619231321691639751442099L, -8.881784197001252323389053344728897997441e-16L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catan, 0x1p500L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1p500L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1p500L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1p500L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p500L, 1.570796326794896619231321691639751442099L, 3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (catan, -0.0L, 0x1p500L, -1.570796326794896619231321691639751442099L, 3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (catan, 0.0L, -0x1p500L, 1.570796326794896619231321691639751442099L, -3.054936363499604682051979393213617699789e-151L),
+ TEST_c_c (catan, -0.0L, -0x1p500L, -1.570796326794896619231321691639751442099L, -3.054936363499604682051979393213617699789e-151L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catan, 0x1p5000L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1p5000L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1p5000L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1p5000L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p5000L, 1.570796326794896619231321691639751442099L, 7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (catan, -0.0L, 0x1p5000L, -1.570796326794896619231321691639751442099L, 7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (catan, 0.0L, -0x1p5000L, 1.570796326794896619231321691639751442099L, -7.079811261048172892385615158694057552948e-1506L),
+ TEST_c_c (catan, -0.0L, -0x1p5000L, -1.570796326794896619231321691639751442099L, -7.079811261048172892385615158694057552948e-1506L),
+#endif
+ TEST_c_c (catan, 0x1p63L, 0.5L, 1.570796326794896619122901474391200998698L, 5.877471754111437539843682686111228389007e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1p63L, -0.5L, 1.570796326794896619122901474391200998698L, -5.877471754111437539843682686111228389007e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1p63L, 0.5L, -1.570796326794896619122901474391200998698L, 5.877471754111437539843682686111228389007e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1p63L, -0.5L, -1.570796326794896619122901474391200998698L, -5.877471754111437539843682686111228389007e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0.5L, 0x1p63L, 1.570796326794896619231321691639751442093L, 1.084202172485504434007452800869941711427e-19L),
+ TEST_c_c (catan, -0.5L, 0x1p63L, -1.570796326794896619231321691639751442093L, 1.084202172485504434007452800869941711427e-19L),
+ TEST_c_c (catan, 0.5L, -0x1p63L, 1.570796326794896619231321691639751442093L, -1.084202172485504434007452800869941711427e-19L),
+ TEST_c_c (catan, -0.5L, -0x1p63L, -1.570796326794896619231321691639751442093L, -1.084202172485504434007452800869941711427e-19L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catan, 0x1p511L, 0.5L, 1.570796326794896619231321691639751442099L, 1.112536929253600691545116358666202032110e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p511L, -0.5L, 1.570796326794896619231321691639751442099L, -1.112536929253600691545116358666202032110e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1p511L, 0.5L, -1.570796326794896619231321691639751442099L, 1.112536929253600691545116358666202032110e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1p511L, -0.5L, -1.570796326794896619231321691639751442099L, -1.112536929253600691545116358666202032110e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0.5L, 0x1p511L, 1.570796326794896619231321691639751442099L, 1.491668146240041348658193063092586767475e-154L),
+ TEST_c_c (catan, -0.5L, 0x1p511L, -1.570796326794896619231321691639751442099L, 1.491668146240041348658193063092586767475e-154L),
+ TEST_c_c (catan, 0.5L, -0x1p511L, 1.570796326794896619231321691639751442099L, -1.491668146240041348658193063092586767475e-154L),
+ TEST_c_c (catan, -0.5L, -0x1p511L, -1.570796326794896619231321691639751442099L, -1.491668146240041348658193063092586767475e-154L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catan, 0x1p8191L, 0.5L, 1.570796326794896619231321691639751442099L, 1.681051571556046753131338908660876301299e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1p8191L, -0.5L, 1.570796326794896619231321691639751442099L, -1.681051571556046753131338908660876301299e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1p8191L, 0.5L, -1.570796326794896619231321691639751442099L, 1.681051571556046753131338908660876301299e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1p8191L, -0.5L, -1.570796326794896619231321691639751442099L, -1.681051571556046753131338908660876301299e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0.5L, 0x1p8191L, 1.570796326794896619231321691639751442099L, 1.833603867554847165621412392048483165956e-2466L),
+ TEST_c_c (catan, -0.5L, 0x1p8191L, -1.570796326794896619231321691639751442099L, 1.833603867554847165621412392048483165956e-2466L),
+ TEST_c_c (catan, 0.5L, -0x1p8191L, 1.570796326794896619231321691639751442099L, -1.833603867554847165621412392048483165956e-2466L),
+ TEST_c_c (catan, -0.5L, -0x1p8191L, -1.570796326794896619231321691639751442099L, -1.833603867554847165621412392048483165956e-2466L),
+#endif
+ TEST_c_c (catan, 0x1p100L, 0.0L, 1.570796326794896619231321691638962581193L, 0.0L),
+ TEST_c_c (catan, 0x1p100L, -0.0L, 1.570796326794896619231321691638962581193L, -0.0L),
+ TEST_c_c (catan, -0x1p100L, 0.0L, -1.570796326794896619231321691638962581193L, 0.0L),
+ TEST_c_c (catan, -0x1p100L, -0.0L, -1.570796326794896619231321691638962581193L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p100L, 1.570796326794896619231321691639751442099L, 7.888609052210118054117285652827862296732e-31L),
+ TEST_c_c (catan, -0.0L, 0x1p100L, -1.570796326794896619231321691639751442099L, 7.888609052210118054117285652827862296732e-31L),
+ TEST_c_c (catan, 0.0L, -0x1p100L, 1.570796326794896619231321691639751442099L, -7.888609052210118054117285652827862296732e-31L),
+ TEST_c_c (catan, -0.0L, -0x1p100L, -1.570796326794896619231321691639751442099L, -7.888609052210118054117285652827862296732e-31L),
+ TEST_c_c (catan, 0x1.fp127L, 0.0L, 1.570796326794896619231321691639751442096L, 0.0L),
+ TEST_c_c (catan, 0x1.fp127L, -0.0L, 1.570796326794896619231321691639751442096L, -0.0L),
+ TEST_c_c (catan, -0x1.fp127L, 0.0L, -1.570796326794896619231321691639751442096L, 0.0L),
+ TEST_c_c (catan, -0x1.fp127L, -0.0L, -1.570796326794896619231321691639751442096L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1.fp127L, 1.570796326794896619231321691639751442099L, 3.033533808573645181854803967025150136306e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0.0L, 0x1.fp127L, -1.570796326794896619231321691639751442099L, 3.033533808573645181854803967025150136306e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0.0L, -0x1.fp127L, 1.570796326794896619231321691639751442099L, -3.033533808573645181854803967025150136306e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0.0L, -0x1.fp127L, -1.570796326794896619231321691639751442099L, -3.033533808573645181854803967025150136306e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1.fp127L, 0x1.fp127L, 1.570796326794896619231321691639751442097L, 1.516766904286822590927401983512575068153e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1.fp127L, -0x1.fp127L, 1.570796326794896619231321691639751442097L, -1.516766904286822590927401983512575068153e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1.fp127L, 0x1.fp127L, -1.570796326794896619231321691639751442097L, 1.516766904286822590927401983512575068153e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1.fp127L, -0x1.fp127L, -1.570796326794896619231321691639751442097L, -1.516766904286822590927401983512575068153e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (catan, 0x1p900L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1p900L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1p900L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1p900L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p900L, 1.570796326794896619231321691639751442099L, 1.183052186166774710972751597518026531652e-271L),
+ TEST_c_c (catan, -0.0L, 0x1p900L, -1.570796326794896619231321691639751442099L, 1.183052186166774710972751597518026531652e-271L),
+ TEST_c_c (catan, 0.0L, -0x1p900L, 1.570796326794896619231321691639751442099L, -1.183052186166774710972751597518026531652e-271L),
+ TEST_c_c (catan, -0.0L, -0x1p900L, -1.570796326794896619231321691639751442099L, -1.183052186166774710972751597518026531652e-271L),
+ TEST_c_c (catan, 0x1.fp1023L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1.fp1023L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1.fp1023L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1.fp1023L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1.fp1023L, 1.570796326794896619231321691639751442099L, 5.742126086470197117652213464083623391533e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0.0L, 0x1.fp1023L, -1.570796326794896619231321691639751442099L, 5.742126086470197117652213464083623391533e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0.0L, -0x1.fp1023L, 1.570796326794896619231321691639751442099L, -5.742126086470197117652213464083623391533e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0.0L, -0x1.fp1023L, -1.570796326794896619231321691639751442099L, -5.742126086470197117652213464083623391533e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1.fp1023L, 0x1.fp1023L, 1.570796326794896619231321691639751442099L, 2.871063043235098558826106732041811695767e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1.fp1023L, -0x1.fp1023L, 1.570796326794896619231321691639751442099L, -2.871063043235098558826106732041811695767e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.fp1023L, 0x1.fp1023L, -1.570796326794896619231321691639751442099L, 2.871063043235098558826106732041811695767e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.fp1023L, -0x1.fp1023L, -1.570796326794896619231321691639751442099L, -2.871063043235098558826106732041811695767e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catan, 0x1p10000L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1p10000L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1p10000L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1p10000L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1p10000L, 1.570796326794896619231321691639751442099L, 5.012372749206452009297555933742977749322e-3011L),
+ TEST_c_c (catan, -0.0L, 0x1p10000L, -1.570796326794896619231321691639751442099L, 5.012372749206452009297555933742977749322e-3011L),
+ TEST_c_c (catan, 0.0L, -0x1p10000L, 1.570796326794896619231321691639751442099L, -5.012372749206452009297555933742977749322e-3011L),
+ TEST_c_c (catan, -0.0L, -0x1p10000L, -1.570796326794896619231321691639751442099L, -5.012372749206452009297555933742977749322e-3011L),
+ TEST_c_c (catan, 0x1.fp16383L, 0.0L, 1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, 0x1.fp16383L, -0.0L, 1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, -0x1.fp16383L, 0.0L, -1.570796326794896619231321691639751442099L, 0.0L),
+ TEST_c_c (catan, -0x1.fp16383L, -0.0L, -1.570796326794896619231321691639751442099L, -0.0L),
+ TEST_c_c (catan, 0.0L, 0x1.fp16383L, 1.570796326794896619231321691639751442099L, 8.676395208031209048419813722120651877672e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0.0L, 0x1.fp16383L, -1.570796326794896619231321691639751442099L, 8.676395208031209048419813722120651877672e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0.0L, -0x1.fp16383L, 1.570796326794896619231321691639751442099L, -8.676395208031209048419813722120651877672e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0.0L, -0x1.fp16383L, -1.570796326794896619231321691639751442099L, -8.676395208031209048419813722120651877672e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1.fp16383L, 0x1.fp16383L, 1.570796326794896619231321691639751442099L, 4.338197604015604524209906861060325938836e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1.fp16383L, -0x1.fp16383L, 1.570796326794896619231321691639751442099L, -4.338197604015604524209906861060325938836e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.fp16383L, 0x1.fp16383L, -1.570796326794896619231321691639751442099L, 4.338197604015604524209906861060325938836e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.fp16383L, -0x1.fp16383L, -1.570796326794896619231321691639751442099L, -4.338197604015604524209906861060325938836e-4933L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (catan, 0x1p-13L, 1.0L, 7.854286809755354140031716771044626356262e-1L, 4.852030264850939738801379894163661227127L),
+ TEST_c_c (catan, 0x1p-13L, -1.0L, 7.854286809755354140031716771044626356262e-1L, -4.852030264850939738801379894163661227127L),
+ TEST_c_c (catan, -0x1p-13L, 1.0L, -7.854286809755354140031716771044626356262e-1L, 4.852030264850939738801379894163661227127L),
+ TEST_c_c (catan, -0x1p-13L, -1.0L, -7.854286809755354140031716771044626356262e-1L, -4.852030264850939738801379894163661227127L),
+ TEST_c_c (catan, 1.0L, 0x1p-13L, 7.853981671227386080775748393881580082970e-1L, 6.103515609841754902688560615027452023669e-5L),
+ TEST_c_c (catan, -1.0L, 0x1p-13L, -7.853981671227386080775748393881580082970e-1L, 6.103515609841754902688560615027452023669e-5L),
+ TEST_c_c (catan, 1.0L, -0x1p-13L, 7.853981671227386080775748393881580082970e-1L, -6.103515609841754902688560615027452023669e-5L),
+ TEST_c_c (catan, -1.0L, -0x1p-13L, -7.853981671227386080775748393881580082970e-1L, -6.103515609841754902688560615027452023669e-5L),
+ TEST_c_c (catan, 0x1p-27L, 1.0L, 7.853981652600934588466178684534110069553e-1L, 9.704060527839234335310696652368086117807L),
+ TEST_c_c (catan, 0x1p-27L, -1.0L, 7.853981652600934588466178684534110069553e-1L, -9.704060527839234335310696652368086117807L),
+ TEST_c_c (catan, -0x1p-27L, 1.0L, -7.853981652600934588466178684534110069553e-1L, 9.704060527839234335310696652368086117807L),
+ TEST_c_c (catan, -0x1p-27L, -1.0L, -7.853981652600934588466178684534110069553e-1L, -9.704060527839234335310696652368086117807L),
+ TEST_c_c (catan, 1.0L, 0x1p-27L, 7.853981633974483234934486536343324763447e-1L, 3.725290298461914028034141143623846306386e-9L),
+ TEST_c_c (catan, -1.0L, 0x1p-27L, -7.853981633974483234934486536343324763447e-1L, 3.725290298461914028034141143623846306386e-9L),
+ TEST_c_c (catan, 1.0L, -0x1p-27L, 7.853981633974483234934486536343324763447e-1L, -3.725290298461914028034141143623846306386e-9L),
+ TEST_c_c (catan, -1.0L, -0x1p-27L, -7.853981633974483234934486536343324763447e-1L, -3.725290298461914028034141143623846306386e-9L),
+ TEST_c_c (catan, 0x1p-33L, 1.0L, 7.853981634265521400723945494331241018449e-1L, 1.178350206951907026009379309773625595762e1L),
+ TEST_c_c (catan, 0x1p-33L, -1.0L, 7.853981634265521400723945494331241018449e-1L, -1.178350206951907026009379309773625595762e1L),
+ TEST_c_c (catan, -0x1p-33L, 1.0L, -7.853981634265521400723945494331241018449e-1L, 1.178350206951907026009379309773625595762e1L),
+ TEST_c_c (catan, -0x1p-33L, -1.0L, -7.853981634265521400723945494331241018449e-1L, -1.178350206951907026009379309773625595762e1L),
+ TEST_c_c (catan, 1.0L, 0x1p-33L, 7.853981633974483096190489776088929224056e-1L, 5.820766091346740722643102318246316469910e-11L),
+ TEST_c_c (catan, -1.0L, 0x1p-33L, -7.853981633974483096190489776088929224056e-1L, 5.820766091346740722643102318246316469910e-11L),
+ TEST_c_c (catan, 1.0L, -0x1p-33L, 7.853981633974483096190489776088929224056e-1L, -5.820766091346740722643102318246316469910e-11L),
+ TEST_c_c (catan, -1.0L, -0x1p-33L, -7.853981633974483096190489776088929224056e-1L, -5.820766091346740722643102318246316469910e-11L),
+ TEST_c_c (catan, 0x1p-54L, 1.0L, 7.853981633974483234934486536343324763447e-1L, 1.906154746539849600897388334009985581467e1L),
+ TEST_c_c (catan, 0x1p-54L, -1.0L, 7.853981633974483234934486536343324763447e-1L, -1.906154746539849600897388334009985581467e1L),
+ TEST_c_c (catan, -0x1p-54L, 1.0L, -7.853981633974483234934486536343324763447e-1L, 1.906154746539849600897388334009985581467e1L),
+ TEST_c_c (catan, -0x1p-54L, -1.0L, -7.853981633974483234934486536343324763447e-1L, -1.906154746539849600897388334009985581467e1L),
+ TEST_c_c (catan, 1.0L, 0x1p-54L, 7.853981633974483096156608458198764914213e-1L, 2.775557561562891351059079170227049355775e-17L),
+ TEST_c_c (catan, -1.0L, 0x1p-54L, -7.853981633974483096156608458198764914213e-1L, 2.775557561562891351059079170227049355775e-17L),
+ TEST_c_c (catan, 1.0L, -0x1p-54L, 7.853981633974483096156608458198764914213e-1L, -2.775557561562891351059079170227049355775e-17L),
+ TEST_c_c (catan, -1.0L, -0x1p-54L, -7.853981633974483096156608458198764914213e-1L, -2.775557561562891351059079170227049355775e-17L),
+ TEST_c_c (catan, 0x1p-57L, 1.0L, 7.853981633974483113503843217966828154612e-1L, 2.010126823623841397309973152228712047720e1L),
+ TEST_c_c (catan, 0x1p-57L, -1.0L, 7.853981633974483113503843217966828154612e-1L, -2.010126823623841397309973152228712047720e1L),
+ TEST_c_c (catan, -0x1p-57L, 1.0L, -7.853981633974483113503843217966828154612e-1L, 2.010126823623841397309973152228712047720e1L),
+ TEST_c_c (catan, -0x1p-57L, -1.0L, -7.853981633974483113503843217966828154612e-1L, -2.010126823623841397309973152228712047720e1L),
+ TEST_c_c (catan, 1.0L, 0x1p-57L, 7.853981633974483096156608458198757330864e-1L, 3.469446951953614188823848962783813448721e-18L),
+ TEST_c_c (catan, -1.0L, 0x1p-57L, -7.853981633974483096156608458198757330864e-1L, 3.469446951953614188823848962783813448721e-18L),
+ TEST_c_c (catan, 1.0L, -0x1p-57L, 7.853981633974483096156608458198757330864e-1L, -3.469446951953614188823848962783813448721e-18L),
+ TEST_c_c (catan, -1.0L, -0x1p-57L, -7.853981633974483096156608458198757330864e-1L, -3.469446951953614188823848962783813448721e-18L),
+ TEST_c_c (catan, 0x1p-13L, 0x1.000002p0L, 7.859169620684960844300240092596908675974e-1L, 4.852030056234795712498957387213592193975L),
+ TEST_c_c (catan, 0x1p-13L, -0x1.000002p0L, 7.859169620684960844300240092596908675974e-1L, -4.852030056234795712498957387213592193975L),
+ TEST_c_c (catan, -0x1p-13L, 0x1.000002p0L, -7.859169620684960844300240092596908675974e-1L, 4.852030056234795712498957387213592193975L),
+ TEST_c_c (catan, -0x1p-13L, -0x1.000002p0L, -7.859169620684960844300240092596908675974e-1L, -4.852030056234795712498957387213592193975L),
+ TEST_c_c (catan, 0x1.000002p0L, 0x1p-13L, 7.853982267273793866654490522673596014524e-1L, 6.103514882246036852433556327261700380577e-5L),
+ TEST_c_c (catan, -0x1.000002p0L, 0x1p-13L, -7.853982267273793866654490522673596014524e-1L, 6.103514882246036852433556327261700380577e-5L),
+ TEST_c_c (catan, 0x1.000002p0L, -0x1p-13L, 7.853982267273793866654490522673596014524e-1L, -6.103514882246036852433556327261700380577e-5L),
+ TEST_c_c (catan, -0x1.000002p0L, -0x1p-13L, -7.853982267273793866654490522673596014524e-1L, -6.103514882246036852433556327261700380577e-5L),
+ TEST_c_c (catan, 0x1p-13L, 0x0.ffffffp0L, 7.851845403708474595909269086711426246675e-1L, 4.852030190345140708455871037447717761868L),
+ TEST_c_c (catan, 0x1p-13L, -0x0.ffffffp0L, 7.851845403708474595909269086711426246675e-1L, -4.852030190345140708455871037447717761868L),
+ TEST_c_c (catan, -0x1p-13L, 0x0.ffffffp0L, -7.851845403708474595909269086711426246675e-1L, 4.852030190345140708455871037447717761868L),
+ TEST_c_c (catan, -0x1p-13L, -0x0.ffffffp0L, -7.851845403708474595909269086711426246675e-1L, -4.852030190345140708455871037447717761868L),
+ TEST_c_c (catan, 0x0.ffffffp0L, 0x1p-13L, 7.853981373204155542484315721351697277336e-1L, 6.103515973639646453881721999956617260502e-5L),
+ TEST_c_c (catan, -0x0.ffffffp0L, 0x1p-13L, -7.853981373204155542484315721351697277336e-1L, 6.103515973639646453881721999956617260502e-5L),
+ TEST_c_c (catan, 0x0.ffffffp0L, -0x1p-13L, 7.853981373204155542484315721351697277336e-1L, -6.103515973639646453881721999956617260502e-5L),
+ TEST_c_c (catan, -0x0.ffffffp0L, -0x1p-13L, -7.853981373204155542484315721351697277336e-1L, -6.103515973639646453881721999956617260502e-5L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catan, 0x1p-27L, 0x1.0000000000001p0L, 7.853981801612546526942695000283242525531e-1L, 9.704060527839234168777242958594699810015L),
+ TEST_c_c (catan, 0x1p-27L, -0x1.0000000000001p0L, 7.853981801612546526942695000283242525531e-1L, -9.704060527839234168777242958594699810015L),
+ TEST_c_c (catan, -0x1p-27L, 0x1.0000000000001p0L, -7.853981801612546526942695000283242525531e-1L, 9.704060527839234168777242958594699810015L),
+ TEST_c_c (catan, -0x1p-27L, -0x1.0000000000001p0L, -7.853981801612546526942695000283242525531e-1L, -9.704060527839234168777242958594699810015L),
+ TEST_c_c (catan, 0x1.0000000000001p0L, 0x1p-27L, 7.853981633974484345157511161499711112683e-1L, 3.725290298461913200853528590596263270474e-9L),
+ TEST_c_c (catan, -0x1.0000000000001p0L, 0x1p-27L, -7.853981633974484345157511161499711112683e-1L, 3.725290298461913200853528590596263270474e-9L),
+ TEST_c_c (catan, 0x1.0000000000001p0L, -0x1p-27L, 7.853981633974484345157511161499711112683e-1L, -3.725290298461913200853528590596263270474e-9L),
+ TEST_c_c (catan, -0x1.0000000000001p0L, -0x1p-27L, -7.853981633974484345157511161499711112683e-1L, -3.725290298461913200853528590596263270474e-9L),
+ TEST_c_c (catan, 0x1p-27L, 0x0.fffffffffffff8p0L, 7.853981578095128619227903983047292781021e-1L, 9.704060527839234252043969805481351363824L),
+ TEST_c_c (catan, 0x1p-27L, -0x0.fffffffffffff8p0L, 7.853981578095128619227903983047292781021e-1L, -9.704060527839234252043969805481351363824L),
+ TEST_c_c (catan, -0x1p-27L, 0x0.fffffffffffff8p0L, -7.853981578095128619227903983047292781021e-1L, 9.704060527839234252043969805481351363824L),
+ TEST_c_c (catan, -0x1p-27L, -0x0.fffffffffffff8p0L, -7.853981578095128619227903983047292781021e-1L, -9.704060527839234252043969805481351363824L),
+ TEST_c_c (catan, 0x0.fffffffffffff8p0L, 0x1p-27L, 7.853981633974482679822974223765039144191e-1L, 3.725290298461914441624447420137706700965e-9L),
+ TEST_c_c (catan, -0x0.fffffffffffff8p0L, 0x1p-27L, -7.853981633974482679822974223765039144191e-1L, 3.725290298461914441624447420137706700965e-9L),
+ TEST_c_c (catan, 0x0.fffffffffffff8p0L, -0x1p-27L, 7.853981633974482679822974223765039144191e-1L, -3.725290298461914441624447420137706700965e-9L),
+ TEST_c_c (catan, -0x0.fffffffffffff8p0L, -0x1p-27L, -7.853981633974482679822974223765039144191e-1L, -3.725290298461914441624447420137706700965e-9L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (catan, 0x1p-33L, 0x1.0000000000000002p0L, 7.853981638922134273801338071094141188767e-1L, 1.178350206951907025990405771755129268176e1L),
+ TEST_c_c (catan, 0x1p-33L, -0x1.0000000000000002p0L, 7.853981638922134273801338071094141188767e-1L, -1.178350206951907025990405771755129268176e1L),
+ TEST_c_c (catan, -0x1p-33L, 0x1.0000000000000002p0L, -7.853981638922134273801338071094141188767e-1L, 1.178350206951907025990405771755129268176e1L),
+ TEST_c_c (catan, -0x1p-33L, -0x1.0000000000000002p0L, -7.853981638922134273801338071094141188767e-1L, -1.178350206951907025990405771755129268176e1L),
+ TEST_c_c (catan, 0x1.0000000000000002p0L, 0x1p-33L, 7.853981633974483096732590862331681441026e-1L, 5.820766091346740722012013594069507025615e-11L),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, 0x1p-33L, -7.853981633974483096732590862331681441026e-1L, 5.820766091346740722012013594069507025615e-11L),
+ TEST_c_c (catan, 0x1.0000000000000002p0L, -0x1p-33L, 7.853981633974483096732590862331681441026e-1L, -5.820766091346740722012013594069507025615e-11L),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, -0x1p-33L, -7.853981633974483096732590862331681441026e-1L, -5.820766091346740722012013594069507025615e-11L),
+ TEST_c_c (catan, 0x1p-33L, 0x0.ffffffffffffffffp0L, 7.853981631937214964185249205444919953948e-1L, 1.178350206951907026002603046195591193050e1L),
+ TEST_c_c (catan, 0x1p-33L, -0x0.ffffffffffffffffp0L, 7.853981631937214964185249205444919953948e-1L, -1.178350206951907026002603046195591193050e1L),
+ TEST_c_c (catan, -0x1p-33L, 0x0.ffffffffffffffffp0L, -7.853981631937214964185249205444919953948e-1L, 1.178350206951907026002603046195591193050e1L),
+ TEST_c_c (catan, -0x1p-33L, -0x0.ffffffffffffffffp0L, -7.853981631937214964185249205444919953948e-1L, -1.178350206951907026002603046195591193050e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, 0x1p-33L, 7.853981633974483095919439232967553115548e-1L, 5.820766091346740722958646680334721192083e-11L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, 0x1p-33L, -7.853981633974483095919439232967553115548e-1L, 5.820766091346740722958646680334721192083e-11L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, -0x1p-33L, 7.853981633974483095919439232967553115548e-1L, -5.820766091346740722958646680334721192083e-11L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, -0x1p-33L, -7.853981633974483095919439232967553115548e-1L, -5.820766091346740722958646680334721192083e-11L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (catan, 0x1p-54L, 0x1.000000000000000000000000008p0L, 7.853981633974485455380535786656405610710e-1L, 1.906154746539849600897388334009981267384e1L),
+ TEST_c_c (catan, 0x1p-54L, -0x1.000000000000000000000000008p0L, 7.853981633974485455380535786656405610710e-1L, -1.906154746539849600897388334009981267384e1L),
+ TEST_c_c (catan, -0x1p-54L, 0x1.000000000000000000000000008p0L, -7.853981633974485455380535786656405610710e-1L, 1.906154746539849600897388334009981267384e1L),
+ TEST_c_c (catan, -0x1p-54L, -0x1.000000000000000000000000008p0L, -7.853981633974485455380535786656405610710e-1L, -1.906154746539849600897388334009981267384e1L),
+ TEST_c_c (catan, 0x1.000000000000000000000000008p0L, 0x1p-54L, 7.853981633974483096156608458198888173729e-1L, 2.775557561562891351059079170226980932999e-17L),
+ TEST_c_c (catan, -0x1.000000000000000000000000008p0L, 0x1p-54L, -7.853981633974483096156608458198888173729e-1L, 2.775557561562891351059079170226980932999e-17L),
+ TEST_c_c (catan, 0x1.000000000000000000000000008p0L, -0x1p-54L, 7.853981633974483096156608458198888173729e-1L, -2.775557561562891351059079170226980932999e-17L),
+ TEST_c_c (catan, -0x1.000000000000000000000000008p0L, -0x1p-54L, -7.853981633974483096156608458198888173729e-1L, -2.775557561562891351059079170226980932999e-17L),
+ TEST_c_c (catan, 0x1p-54L, 0x0.ffffffffffffffffffffffffffcp0L, 7.853981633974482124711461911186784339815e-1L, 1.906154746539849600897388334009984040723e1L),
+ TEST_c_c (catan, 0x1p-54L, -0x0.ffffffffffffffffffffffffffcp0L, 7.853981633974482124711461911186784339815e-1L, -1.906154746539849600897388334009984040723e1L),
+ TEST_c_c (catan, -0x1p-54L, 0x0.ffffffffffffffffffffffffffcp0L, -7.853981633974482124711461911186784339815e-1L, 1.906154746539849600897388334009984040723e1L),
+ TEST_c_c (catan, -0x1p-54L, -0x0.ffffffffffffffffffffffffffcp0L, -7.853981633974482124711461911186784339815e-1L, -1.906154746539849600897388334009984040723e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-54L, 7.853981633974483096156608458198703284454e-1L, 2.775557561562891351059079170227083567164e-17L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-54L, -7.853981633974483096156608458198703284454e-1L, 2.775557561562891351059079170227083567164e-17L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-54L, 7.853981633974483096156608458198703284454e-1L, -2.775557561562891351059079170227083567164e-17L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-54L, -7.853981633974483096156608458198703284454e-1L, -2.775557561562891351059079170227083567164e-17L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (catan, 0x1p-57L, 0x1.0000000000000000000000000001p0L, 7.853981633974483252281721296111395707566e-1L, 2.010126823623841397309973152228712033275e1L),
+ TEST_c_c (catan, 0x1p-57L, -0x1.0000000000000000000000000001p0L, 7.853981633974483252281721296111395707566e-1L, -2.010126823623841397309973152228712033275e1L),
+ TEST_c_c (catan, -0x1p-57L, 0x1.0000000000000000000000000001p0L, -7.853981633974483252281721296111395707566e-1L, 2.010126823623841397309973152228712033275e1L),
+ TEST_c_c (catan, -0x1p-57L, -0x1.0000000000000000000000000001p0L, -7.853981633974483252281721296111395707566e-1L, -2.010126823623841397309973152228712033275e1L),
+ TEST_c_c (catan, 0x1.0000000000000000000000000001p0L, 0x1p-57L, 7.853981633974483096156608458198758293829e-1L, 3.469446951953614188823848962783812780530e-18L),
+ TEST_c_c (catan, -0x1.0000000000000000000000000001p0L, 0x1p-57L, -7.853981633974483096156608458198758293829e-1L, 3.469446951953614188823848962783812780530e-18L),
+ TEST_c_c (catan, 0x1.0000000000000000000000000001p0L, -0x1p-57L, 7.853981633974483096156608458198758293829e-1L, -3.469446951953614188823848962783812780530e-18L),
+ TEST_c_c (catan, -0x1.0000000000000000000000000001p0L, -0x1p-57L, -7.853981633974483096156608458198758293829e-1L, -3.469446951953614188823848962783812780530e-18L),
+ TEST_c_c (catan, 0x1p-57L, 0x0.ffffffffffffffffffffffffffff8p0L, 7.853981633974483044114904178894544378135e-1L, 2.010126823623841397309973152228712040498e1L),
+ TEST_c_c (catan, 0x1p-57L, -0x0.ffffffffffffffffffffffffffff8p0L, 7.853981633974483044114904178894544378135e-1L, -2.010126823623841397309973152228712040498e1L),
+ TEST_c_c (catan, -0x1p-57L, 0x0.ffffffffffffffffffffffffffff8p0L, -7.853981633974483044114904178894544378135e-1L, 2.010126823623841397309973152228712040498e1L),
+ TEST_c_c (catan, -0x1p-57L, -0x0.ffffffffffffffffffffffffffff8p0L, -7.853981633974483044114904178894544378135e-1L, -2.010126823623841397309973152228712040498e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-57L, 7.853981633974483096156608458198756849381e-1L, 3.469446951953614188823848962783813782817e-18L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-57L, -7.853981633974483096156608458198756849381e-1L, 3.469446951953614188823848962783813782817e-18L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-57L, 7.853981633974483096156608458198756849381e-1L, -3.469446951953614188823848962783813782817e-18L),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-57L, -7.853981633974483096156608458198756849381e-1L, -3.469446951953614188823848962783813782817e-18L),
+#endif
+ TEST_c_c (catan, 1.0L, 0x1p-64L, 7.853981633974483096156608458198757210500e-1L, 2.710505431213761085018632002174854278563e-20L),
+ TEST_c_c (catan, 1.0L, -0x1p-64L, 7.853981633974483096156608458198757210500e-1L, -2.710505431213761085018632002174854278563e-20L),
+ TEST_c_c (catan, -1.0L, 0x1p-64L, -7.853981633974483096156608458198757210500e-1L, 2.710505431213761085018632002174854278563e-20L),
+ TEST_c_c (catan, -1.0L, -0x1p-64L, -7.853981633974483096156608458198757210500e-1L, -2.710505431213761085018632002174854278563e-20L),
+ TEST_c_c (catan, 0x1p-64L, 1.0L, 7.853981633974483096292133729759445264744e-1L, 2.252728336819822255606004394739073846245e1L),
+ TEST_c_c (catan, -0x1p-64L, 1.0L, -7.853981633974483096292133729759445264744e-1L, 2.252728336819822255606004394739073846245e1L),
+ TEST_c_c (catan, 0x1p-64L, -1.0L, 7.853981633974483096292133729759445264744e-1L, -2.252728336819822255606004394739073846245e1L),
+ TEST_c_c (catan, -0x1p-64L, -1.0L, -7.853981633974483096292133729759445264744e-1L, -2.252728336819822255606004394739073846245e1L),
+ TEST_c_c (catan, 1.0L, 0x1.3p-73L, 7.853981633974483096156608458198757210493e-1L, 6.286572655403010329022706059731717687100e-23L),
+ TEST_c_c (catan, 1.0L, -0x1.3p-73L, 7.853981633974483096156608458198757210493e-1L, -6.286572655403010329022706059731717687100e-23L),
+ TEST_c_c (catan, -1.0L, 0x1.3p-73L, -7.853981633974483096156608458198757210493e-1L, 6.286572655403010329022706059731717687100e-23L),
+ TEST_c_c (catan, -1.0L, -0x1.3p-73L, -7.853981633974483096156608458198757210493e-1L, -6.286572655403010329022706059731717687100e-23L),
+ TEST_c_c (catan, 0x1.3p-73L, 1.0L, 7.853981633974483096156922786831527361009e-1L, 2.556052055225464683726753902092495938633e1L),
+ TEST_c_c (catan, -0x1.3p-73L, 1.0L, -7.853981633974483096156922786831527361009e-1L, 2.556052055225464683726753902092495938633e1L),
+ TEST_c_c (catan, 0x1.3p-73L, -1.0L, 7.853981633974483096156922786831527361009e-1L, -2.556052055225464683726753902092495938633e1L),
+ TEST_c_c (catan, -0x1.3p-73L, -1.0L, -7.853981633974483096156922786831527361009e-1L, -2.556052055225464683726753902092495938633e1L),
+ TEST_c_c (catan, 1.0L, 0x1p-124L, 7.853981633974483096156608458198757210493e-1L, 2.350988701644575015937473074444491355637e-38L),
+ TEST_c_c (catan, 1.0L, -0x1p-124L, 7.853981633974483096156608458198757210493e-1L, -2.350988701644575015937473074444491355637e-38L),
+ TEST_c_c (catan, -1.0L, 0x1p-124L, -7.853981633974483096156608458198757210493e-1L, 2.350988701644575015937473074444491355637e-38L),
+ TEST_c_c (catan, -1.0L, -0x1p-124L, -7.853981633974483096156608458198757210493e-1L, -2.350988701644575015937473074444491355637e-38L),
+ TEST_c_c (catan, 0x1p-124L, 1.0L, 7.853981633974483096156608458198757210610e-1L, 4.332169878499658183857700759113603550472e1L),
+ TEST_c_c (catan, -0x1p-124L, 1.0L, -7.853981633974483096156608458198757210610e-1L, 4.332169878499658183857700759113603550472e1L),
+ TEST_c_c (catan, 0x1p-124L, -1.0L, 7.853981633974483096156608458198757210610e-1L, -4.332169878499658183857700759113603550472e1L),
+ TEST_c_c (catan, -0x1p-124L, -1.0L, -7.853981633974483096156608458198757210610e-1L, -4.332169878499658183857700759113603550472e1L),
+ TEST_c_c (catan, 0x1.000002p0L, 0x1p-126L, 7.853982230020895322927482174768220815493e-1L, 5.877471053462247139383742414506671233336e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1.000002p0L, -0x1p-126L, 7.853982230020895322927482174768220815493e-1L, -5.877471053462247139383742414506671233336e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1.000002p0L, 0x1p-126L, -7.853982230020895322927482174768220815493e-1L, 5.877471053462247139383742414506671233336e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x1.000002p0L, -0x1p-126L, -7.853982230020895322927482174768220815493e-1L, -5.877471053462247139383742414506671233336e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1p-126L, 0x1.000002p0L, 1.570796326794896619231321691639702138295L, 8.317766196521665212523713550410777685446L),
+ TEST_c_c (catan, -0x1p-126L, 0x1.000002p0L, -1.570796326794896619231321691639702138295L, 8.317766196521665212523713550410777685446L),
+ TEST_c_c (catan, 0x1p-126L, -0x1.000002p0L, 1.570796326794896619231321691639702138295L, -8.317766196521665212523713550410777685446L),
+ TEST_c_c (catan, -0x1p-126L, -0x1.000002p0L, -1.570796326794896619231321691639702138295L, -8.317766196521665212523713550410777685446L),
+ TEST_c_c (catan, 0x0.ffffffp0L, 0x1p-126L, 7.853981335951250337419109991749089175724e-1L, 5.877472104436064061535099214664320916184e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x0.ffffffp0L, -0x1p-126L, 7.853981335951250337419109991749089175724e-1L, -5.877472104436064061535099214664320916184e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x0.ffffffp0L, 0x1p-126L, -7.853981335951250337419109991749089175724e-1L, 5.877472104436064061535099214664320916184e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, -0x0.ffffffp0L, -0x1p-126L, -7.853981335951250337419109991749089175724e-1L, -5.877472104436064061535099214664320916184e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catan, 0x1p-126L, 0x0.ffffffp0L, 9.860761609136244031334147100512154160097e-32L, 8.664339742098154951823135931565866792454L),
+ TEST_c_c (catan, -0x1p-126L, 0x0.ffffffp0L, -9.860761609136244031334147100512154160097e-32L, 8.664339742098154951823135931565866792454L),
+ TEST_c_c (catan, 0x1p-126L, -0x0.ffffffp0L, 9.860761609136244031334147100512154160097e-32L, -8.664339742098154951823135931565866792454L),
+ TEST_c_c (catan, -0x1p-126L, -0x0.ffffffp0L, -9.860761609136244031334147100512154160097e-32L, -8.664339742098154951823135931565866792454L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catan, 1.0L, 0x1p-512L, 7.853981633974483096156608458198757210493e-1L, 3.729170365600103371645482657731466918688e-155L),
+ TEST_c_c (catan, 1.0L, -0x1p-512L, 7.853981633974483096156608458198757210493e-1L, -3.729170365600103371645482657731466918688e-155L),
+ TEST_c_c (catan, -1.0L, 0x1p-512L, -7.853981633974483096156608458198757210493e-1L, 3.729170365600103371645482657731466918688e-155L),
+ TEST_c_c (catan, -1.0L, -0x1p-512L, -7.853981633974483096156608458198757210493e-1L, -3.729170365600103371645482657731466918688e-155L),
+ TEST_c_c (catan, 0x1p-512L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 1.777922518136259718655200391540222897114e2L),
+ TEST_c_c (catan, -0x1p-512L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 1.777922518136259718655200391540222897114e2L),
+ TEST_c_c (catan, 0x1p-512L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -1.777922518136259718655200391540222897114e2L),
+ TEST_c_c (catan, -0x1p-512L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -1.777922518136259718655200391540222897114e2L),
+ TEST_c_c (catan, 1.0L, 0x1.3p-536L, 7.853981633974483096156608458198757210493e-1L, 2.639526015013529511588222179446290115084e-162L),
+ TEST_c_c (catan, 1.0L, -0x1.3p-536L, 7.853981633974483096156608458198757210493e-1L, -2.639526015013529511588222179446290115084e-162L),
+ TEST_c_c (catan, -1.0L, 0x1.3p-536L, -7.853981633974483096156608458198757210493e-1L, 2.639526015013529511588222179446290115084e-162L),
+ TEST_c_c (catan, -1.0L, -0x1.3p-536L, -7.853981633974483096156608458198757210493e-1L, -2.639526015013529511588222179446290115084e-162L),
+ TEST_c_c (catan, 0x1.3p-536L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 1.860240928518819859673567751384928348958e2L),
+ TEST_c_c (catan, -0x1.3p-536L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 1.860240928518819859673567751384928348958e2L),
+ TEST_c_c (catan, 0x1.3p-536L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -1.860240928518819859673567751384928348958e2L),
+ TEST_c_c (catan, -0x1.3p-536L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -1.860240928518819859673567751384928348958e2L),
+ TEST_c_c (catan, 1.0L, 0x1p-1020L, 7.853981633974483096156608458198757210493e-1L, 4.450147717014402766180465434664808128438e-308L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, 1.0L, -0x1p-1020L, 7.853981633974483096156608458198757210493e-1L, -4.450147717014402766180465434664808128438e-308L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, -1.0L, 0x1p-1020L, -7.853981633974483096156608458198757210493e-1L, 4.450147717014402766180465434664808128438e-308L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, -1.0L, -0x1p-1020L, -7.853981633974483096156608458198757210493e-1L, -4.450147717014402766180465434664808128438e-308L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, 0x1p-1020L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 3.538516356758520804574969980043991380025e2L),
+ TEST_c_c (catan, -0x1p-1020L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 3.538516356758520804574969980043991380025e2L),
+ TEST_c_c (catan, 0x1p-1020L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -3.538516356758520804574969980043991380025e2L),
+ TEST_c_c (catan, -0x1p-1020L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -3.538516356758520804574969980043991380025e2L),
+ TEST_c_c (catan, 0x1.0000000000001p0L, 0x1p-1022L, 7.853981633974484206379633083355174374608e-1L, 1.112536929253600444512293438042957369978e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1.0000000000001p0L, -0x1p-1022L, 7.853981633974484206379633083355174374608e-1L, -1.112536929253600444512293438042957369978e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.0000000000001p0L, 0x1p-1022L, -7.853981633974484206379633083355174374608e-1L, 1.112536929253600444512293438042957369978e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.0000000000001p0L, -0x1p-1022L, -7.853981633974484206379633083355174374608e-1L, -1.112536929253600444512293438042957369978e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, 1.836840028483855075506780244989950299369e1L),
+ TEST_c_c (catan, -0x1p-1022L, 0x1.0000000000001p0L, -1.570796326794896619231321691639751442099L, 1.836840028483855075506780244989950299369e1L),
+ TEST_c_c (catan, 0x1p-1022L, -0x1.0000000000001p0L, 1.570796326794896619231321691639751442099L, -1.836840028483855075506780244989950299369e1L),
+ TEST_c_c (catan, -0x1p-1022L, -0x1.0000000000001p0L, -1.570796326794896619231321691639751442099L, -1.836840028483855075506780244989950299369e1L),
+ TEST_c_c (catan, 0x0.fffffffffffff8p0L, 0x1p-1022L, 7.853981633974482541045096145620456183798e-1L, 1.112536929253600815061527818977844932790e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x0.fffffffffffff8p0L, -0x1p-1022L, 7.853981633974482541045096145620456183798e-1L, -1.112536929253600815061527818977844932790e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.fffffffffffff8p0L, 0x1p-1022L, -7.853981633974482541045096145620456183798e-1L, 1.112536929253600815061527818977844932790e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.fffffffffffff8p0L, -0x1p-1022L, -7.853981633974482541045096145620456183798e-1L, -1.112536929253600815061527818977844932790e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x0.fffffffffffff8p0L, 1.002084180004486444624900488355118689113e-292L, 1.871497387511852332650969166374185305708e1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, -0x1p-1022L, 0x0.fffffffffffff8p0L, -1.002084180004486444624900488355118689113e-292L, 1.871497387511852332650969166374185305708e1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, 0x1p-1022L, -0x0.fffffffffffff8p0L, 1.002084180004486444624900488355118689113e-292L, -1.871497387511852332650969166374185305708e1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catan, -0x1p-1022L, -0x0.fffffffffffff8p0L, -1.002084180004486444624900488355118689113e-292L, -1.871497387511852332650969166374185305708e1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (catan, 0x1.0000000000000002p0L, 0x1p-1022L, 7.853981633974483096698709544441509427467e-1L, 1.112536929253600691424494863099491450042e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1.0000000000000002p0L, -0x1p-1022L, 7.853981633974483096698709544441509427467e-1L, -1.112536929253600691424494863099491450042e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, 0x1p-1022L, -7.853981633974483096698709544441509427467e-1L, 1.112536929253600691424494863099491450042e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, -0x1p-1022L, -7.853981633974483096698709544441509427467e-1L, -1.112536929253600691424494863099491450042e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, -0x1p-1022L, 0x1.0000000000000002p0L, -1.570796326794896619231321691639751442099L, 2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, 0x1p-1022L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, -0x1p-1022L, -0x1.0000000000000002p0L, -1.570796326794896619231321691639751442099L, -2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, 0x1p-1022L, 7.853981633974483095885557915077381101984e-1L, 1.112536929253600691605427106449557323148e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, -0x1p-1022L, 7.853981633974483095885557915077381101984e-1L, -1.112536929253600691605427106449557323148e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, 0x1p-1022L, -7.853981633974483095885557915077381101984e-1L, 1.112536929253600691605427106449557323148e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, -0x1p-1022L, -7.853981633974483095885557915077381101984e-1L, -1.112536929253600691605427106449557323148e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x0.ffffffffffffffffp0L, 2.052268400649188124723641491045245971623e-289L, 2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, -0x1p-1022L, 0x0.ffffffffffffffffp0L, -2.052268400649188124723641491045245971623e-289L, 2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, 0x1p-1022L, -0x0.ffffffffffffffffp0L, 2.052268400649188124723641491045245971623e-289L, -2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, -0x1p-1022L, -0x0.ffffffffffffffffp0L, -2.052268400649188124723641491045245971623e-289L, -2.252728336819822255604649142023466965703e1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (catan, 0x1.000000000000000000000000008p0L, 0x1p-1022L, 7.853981633974483096156608458198880470009e-1L, 1.112536929253600691545116358666174605957e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1.000000000000000000000000008p0L, -0x1p-1022L, 7.853981633974483096156608458198880470009e-1L, -1.112536929253600691545116358666174605957e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.000000000000000000000000008p0L, 0x1p-1022L, -7.853981633974483096156608458198880470009e-1L, 1.112536929253600691545116358666174605957e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x1.000000000000000000000000008p0L, -0x1p-1022L, -7.853981633974483096156608458198880470009e-1L, -1.112536929253600691545116358666174605957e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, 3.673680056967710139911330243728336427098e1L),
+ TEST_c_c (catan, -0x1p-1022L, 0x1.000000000000000000000000008p0L, -1.570796326794896619231321691639751442099L, 3.673680056967710139911330243728336427098e1L),
+ TEST_c_c (catan, 0x1p-1022L, -0x1.000000000000000000000000008p0L, 1.570796326794896619231321691639751442099L, -3.673680056967710139911330243728336427098e1L),
+ TEST_c_c (catan, -0x1p-1022L, -0x1.000000000000000000000000008p0L, -1.570796326794896619231321691639751442099L, -3.673680056967710139911330243728336427098e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-1022L, 7.853981633974483096156608458198695580735e-1L, 1.112536929253600691545116358666215745186e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-1022L, 7.853981633974483096156608458198695580735e-1L, -1.112536929253600691545116358666215745186e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-1022L, -7.853981633974483096156608458198695580735e-1L, 1.112536929253600691545116358666215745186e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-1022L, -7.853981633974483096156608458198695580735e-1L, -1.112536929253600691545116358666215745186e-308L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catan, 0x1p-1022L, 0x0.ffffffffffffffffffffffffffcp0L, 9.025971879324147880346310405868788320726e-277L, 3.708337415995707405382191849801244331055e1L),
+ TEST_c_c (catan, -0x1p-1022L, 0x0.ffffffffffffffffffffffffffcp0L, -9.025971879324147880346310405868788320726e-277L, 3.708337415995707405382191849801244331055e1L),
+ TEST_c_c (catan, 0x1p-1022L, -0x0.ffffffffffffffffffffffffffcp0L, 9.025971879324147880346310405868788320726e-277L, -3.708337415995707405382191849801244331055e1L),
+ TEST_c_c (catan, -0x1p-1022L, -0x0.ffffffffffffffffffffffffffcp0L, -9.025971879324147880346310405868788320726e-277L, -3.708337415995707405382191849801244331055e1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catan, 1.0L, 0x1p-8192L, 7.853981633974483096156608458198757210493e-1L, 4.584009668887117914053530980121207914891e-2467L),
+ TEST_c_c (catan, 1.0L, -0x1p-8192L, 7.853981633974483096156608458198757210493e-1L, -4.584009668887117914053530980121207914891e-2467L),
+ TEST_c_c (catan, -1.0L, 0x1p-8192L, -7.853981633974483096156608458198757210493e-1L, 4.584009668887117914053530980121207914891e-2467L),
+ TEST_c_c (catan, -1.0L, -0x1p-8192L, -7.853981633974483096156608458198757210493e-1L, -4.584009668887117914053530980121207914891e-2467L),
+ TEST_c_c (catan, 0x1p-8192L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 2.839477425163815960027691385553420311121e3L),
+ TEST_c_c (catan, -0x1p-8192L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 2.839477425163815960027691385553420311121e3L),
+ TEST_c_c (catan, 0x1p-8192L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -2.839477425163815960027691385553420311121e3L),
+ TEST_c_c (catan, -0x1p-8192L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -2.839477425163815960027691385553420311121e3L),
+ TEST_c_c (catan, 1.0L, 0x1.3p-8221L, 7.853981633974483096156608458198757210493e-1L, 1.013933025636421986471594877335044443409e-2475L),
+ TEST_c_c (catan, 1.0L, -0x1.3p-8221L, 7.853981633974483096156608458198757210493e-1L, -1.013933025636421986471594877335044443409e-2475L),
+ TEST_c_c (catan, -1.0L, 0x1.3p-8221L, -7.853981633974483096156608458198757210493e-1L, 1.013933025636421986471594877335044443409e-2475L),
+ TEST_c_c (catan, -1.0L, -0x1.3p-8221L, -7.853981633974483096156608458198757210493e-1L, -1.013933025636421986471594877335044443409e-2475L),
+ TEST_c_c (catan, 0x1.3p-8221L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 2.849442134153471837403071201841536297726e3L),
+ TEST_c_c (catan, -0x1.3p-8221L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 2.849442134153471837403071201841536297726e3L),
+ TEST_c_c (catan, 0x1.3p-8221L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -2.849442134153471837403071201841536297726e3L),
+ TEST_c_c (catan, -0x1.3p-8221L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -2.849442134153471837403071201841536297726e3L),
+ TEST_c_c (catan, 1.0L, 0x1.3p-8246L, 7.853981633974483096156608458198757210493e-1L, 3.021755890954798419688924781486524472858e-2483L),
+ TEST_c_c (catan, 1.0L, -0x1.3p-8246L, 7.853981633974483096156608458198757210493e-1L, -3.021755890954798419688924781486524472858e-2483L),
+ TEST_c_c (catan, -1.0L, 0x1.3p-8246L, -7.853981633974483096156608458198757210493e-1L, 3.021755890954798419688924781486524472858e-2483L),
+ TEST_c_c (catan, -1.0L, -0x1.3p-8246L, -7.853981633974483096156608458198757210493e-1L, -3.021755890954798419688924781486524472858e-2483L),
+ TEST_c_c (catan, 0x1.3p-8246L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 2.858106473910471153770786603359763504827e3L),
+ TEST_c_c (catan, -0x1.3p-8246L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 2.858106473910471153770786603359763504827e3L),
+ TEST_c_c (catan, 0x1.3p-8246L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -2.858106473910471153770786603359763504827e3L),
+ TEST_c_c (catan, -0x1.3p-8246L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -2.858106473910471153770786603359763504827e3L),
+ TEST_c_c (catan, 1.0L, 0x1p-16380L, 7.853981633974483096156608458198757210493e-1L, 6.724206286224187012525355634643505205196e-4932L),
+ TEST_c_c (catan, 1.0L, -0x1p-16380L, 7.853981633974483096156608458198757210493e-1L, -6.724206286224187012525355634643505205196e-4932L),
+ TEST_c_c (catan, -1.0L, 0x1p-16380L, -7.853981633974483096156608458198757210493e-1L, 6.724206286224187012525355634643505205196e-4932L),
+ TEST_c_c (catan, -1.0L, -0x1p-16380L, -7.853981633974483096156608458198757210493e-1L, -6.724206286224187012525355634643505205196e-4932L),
+ TEST_c_c (catan, 0x1p-16380L, 1.0L, 7.853981633974483096156608458198757210493e-1L, 5.677221982376232056781839690803195180822e3L),
+ TEST_c_c (catan, -0x1p-16380L, 1.0L, -7.853981633974483096156608458198757210493e-1L, 5.677221982376232056781839690803195180822e3L),
+ TEST_c_c (catan, 0x1p-16380L, -1.0L, 7.853981633974483096156608458198757210493e-1L, -5.677221982376232056781839690803195180822e3L),
+ TEST_c_c (catan, -0x1p-16380L, -1.0L, -7.853981633974483096156608458198757210493e-1L, -5.677221982376232056781839690803195180822e3L),
+ TEST_c_c (catan, 0x1.0000000000000002p0L, 0x1p-16382L, 7.853981633974483096698709544441509427467e-1L, 1.681051571556046752949078932066752571182e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1.0000000000000002p0L, -0x1p-16382L, 7.853981633974483096698709544441509427467e-1L, -1.681051571556046752949078932066752571182e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, 0x1p-16382L, -7.853981633974483096698709544441509427467e-1L, 1.681051571556046752949078932066752571182e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.0000000000000002p0L, -0x1p-16382L, -7.853981633974483096698709544441509427467e-1L, -1.681051571556046752949078932066752571182e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1p-16382L, 0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, 2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, -0x1p-16382L, 0x1.0000000000000002p0L, -1.570796326794896619231321691639751442099L, 2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, 0x1p-16382L, -0x1.0000000000000002p0L, 1.570796326794896619231321691639751442099L, -2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, -0x1p-16382L, -0x1.0000000000000002p0L, -1.570796326794896619231321691639751442099L, -2.218070977791824990137853294097378778927e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, 0x1p-16382L, 7.853981633974483095885557915077381101984e-1L, 1.681051571556046753222468896957938166365e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x0.ffffffffffffffffp0L, -0x1p-16382L, 7.853981633974483095885557915077381101984e-1L, -1.681051571556046753222468896957938166365e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, 0x1p-16382L, -7.853981633974483095885557915077381101984e-1L, 1.681051571556046753222468896957938166365e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x0.ffffffffffffffffp0L, -0x1p-16382L, -7.853981633974483095885557915077381101984e-1L, -1.681051571556046753222468896957938166365e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1p-16382L, 0x0.ffffffffffffffffp0L, 3.100992811520163369065387859792822623745e-4913L, 2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, -0x1p-16382L, 0x0.ffffffffffffffffp0L, -3.100992811520163369065387859792822623745e-4913L, 2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, 0x1p-16382L, -0x0.ffffffffffffffffp0L, 3.100992811520163369065387859792822623745e-4913L, -2.252728336819822255604649142023466965703e1L),
+ TEST_c_c (catan, -0x1p-16382L, -0x0.ffffffffffffffffp0L, -3.100992811520163369065387859792822623745e-4913L, -2.252728336819822255604649142023466965703e1L),
+# if LDBL_MANT_DIG >= 113
+ TEST_c_c (catan, 0x1.0000000000000000000000000001p0L, 0x1p-16382L, 7.853981633974483096156608458198758173458e-1L, 1.681051571556046753131338908660875977540e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1.0000000000000000000000000001p0L, -0x1p-16382L, 7.853981633974483096156608458198758173458e-1L, -1.681051571556046753131338908660875977540e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.0000000000000000000000000001p0L, 0x1p-16382L, -7.853981633974483096156608458198758173458e-1L, 1.681051571556046753131338908660875977540e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x1.0000000000000000000000000001p0L, -0x1p-16382L, -7.853981633974483096156608458198758173458e-1L, -1.681051571556046753131338908660875977540e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1p-16382L, 0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, 3.916281570163690998207361486238697614441e1L),
+ TEST_c_c (catan, -0x1p-16382L, 0x1.0000000000000000000000000001p0L, -1.570796326794896619231321691639751442099L, 3.916281570163690998207361486238697614441e1L),
+ TEST_c_c (catan, 0x1p-16382L, -0x1.0000000000000000000000000001p0L, 1.570796326794896619231321691639751442099L, -3.916281570163690998207361486238697614441e1L),
+ TEST_c_c (catan, -0x1p-16382L, -0x1.0000000000000000000000000001p0L, -1.570796326794896619231321691639751442099L, -3.916281570163690998207361486238697614441e1L),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-16382L, 7.853981633974483096156608458198756729010e-1L, 1.681051571556046753131338908660876463178e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-16382L, 7.853981633974483096156608458198756729010e-1L, -1.681051571556046753131338908660876463178e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-16382L, -7.853981633974483096156608458198756729010e-1L, 1.681051571556046753131338908660876463178e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-16382L, -7.853981633974483096156608458198756729010e-1L, -1.681051571556046753131338908660876463178e-4932L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catan, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.745703758805099310527547423749501866998e-4898L, 3.950938929191688263678223092311606435623e1L),
+ TEST_c_c (catan, -0x1p-16382L, 0x0.ffffffffffffffffffffffffffff8p0L, -1.745703758805099310527547423749501866998e-4898L, 3.950938929191688263678223092311606435623e1L),
+ TEST_c_c (catan, 0x1p-16382L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.745703758805099310527547423749501866998e-4898L, -3.950938929191688263678223092311606435623e1L),
+ TEST_c_c (catan, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffff8p0L, -1.745703758805099310527547423749501866998e-4898L, -3.950938929191688263678223092311606435623e1L),
+# endif
+#endif
+
+ TEST_c_c (catan, 0.75L, 1.25L, 1.10714871779409050301706546017853704L, 0.549306144334054845697622618461262852L),
+ TEST_c_c (catan, -2, -3, -1.4099210495965755225306193844604208L, -0.22907268296853876629588180294200276L),
+ };
static void
catan_test (void)
{
- errno = 0;
- FUNC(catan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (catan);
+ RUN_TEST_LOOP_c_c (catan, catan_test_data, );
+ END_COMPLEX;
+}
+
+static const struct test_c_c_data catanh_test_data[] =
+ {
+ TEST_c_c (catanh, 0, 0, 0.0, 0.0),
+ TEST_c_c (catanh, minus_zero, 0, minus_zero, 0.0),
+ TEST_c_c (catanh, 0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (catanh, minus_zero, minus_zero, minus_zero, minus_zero),
+
+ TEST_c_c (catanh, 1.0L, plus_zero, plus_infty, plus_zero, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catanh, 1.0L, minus_zero, plus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catanh, -1.0L, plus_zero, minus_infty, plus_zero, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catanh, -1.0L, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (catanh, plus_zero, 1.0L, plus_zero, M_PI_4l),
+ TEST_c_c (catanh, minus_zero, 1.0L, minus_zero, M_PI_4l),
+ TEST_c_c (catanh, plus_zero, -1.0L, plus_zero, -M_PI_4l),
+ TEST_c_c (catanh, minus_zero, -1.0L, minus_zero, -M_PI_4l),
+
+ TEST_c_c (catanh, plus_infty, plus_infty, 0.0, M_PI_2l),
+ TEST_c_c (catanh, plus_infty, minus_infty, 0.0, -M_PI_2l),
+ TEST_c_c (catanh, minus_infty, plus_infty, minus_zero, M_PI_2l),
+ TEST_c_c (catanh, minus_infty, minus_infty, minus_zero, -M_PI_2l),
+
+ TEST_c_c (catanh, -10.0, plus_infty, minus_zero, M_PI_2l),
+ TEST_c_c (catanh, -10.0, minus_infty, minus_zero, -M_PI_2l),
+ TEST_c_c (catanh, minus_zero, plus_infty, minus_zero, M_PI_2l),
+ TEST_c_c (catanh, minus_zero, minus_infty, minus_zero, -M_PI_2l),
+ TEST_c_c (catanh, 0, plus_infty, 0.0, M_PI_2l),
+ TEST_c_c (catanh, 0, minus_infty, 0.0, -M_PI_2l),
+ TEST_c_c (catanh, 0.1L, plus_infty, 0.0, M_PI_2l),
+ TEST_c_c (catanh, 0.1L, minus_infty, 0.0, -M_PI_2l),
+
+ TEST_c_c (catanh, minus_infty, 0, minus_zero, M_PI_2l),
+ TEST_c_c (catanh, minus_infty, minus_zero, minus_zero, -M_PI_2l),
+ TEST_c_c (catanh, minus_infty, 100, minus_zero, M_PI_2l),
+ TEST_c_c (catanh, minus_infty, -100, minus_zero, -M_PI_2l),
+
+ TEST_c_c (catanh, plus_infty, 0, 0.0, M_PI_2l),
+ TEST_c_c (catanh, plus_infty, minus_zero, 0.0, -M_PI_2l),
+ TEST_c_c (catanh, plus_infty, 0.5, 0.0, M_PI_2l),
+ TEST_c_c (catanh, plus_infty, -0.5, 0.0, -M_PI_2l),
+
+ TEST_c_c (catanh, 0, qnan_value, 0.0, qnan_value),
+ TEST_c_c (catanh, minus_zero, qnan_value, minus_zero, qnan_value),
+
+ TEST_c_c (catanh, plus_infty, qnan_value, 0.0, qnan_value),
+ TEST_c_c (catanh, minus_infty, qnan_value, minus_zero, qnan_value),
+
+ TEST_c_c (catanh, qnan_value, 0, qnan_value, qnan_value),
+ TEST_c_c (catanh, qnan_value, minus_zero, qnan_value, qnan_value),
+
+ TEST_c_c (catanh, qnan_value, plus_infty, 0.0, M_PI_2l, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (catanh, qnan_value, minus_infty, 0.0, -M_PI_2l, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (catanh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (catanh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (catanh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (catanh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (catanh, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (catanh, 0x1p50L, 0.0L, 8.881784197001252323389053344728897997441e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p50L, -0.0L, 8.881784197001252323389053344728897997441e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p50L, 0.0L, -8.881784197001252323389053344728897997441e-16L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p50L, -0.0L, -8.881784197001252323389053344728897997441e-16L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p50L, 0.0L, 1.570796326794895731052901991514519103193L),
+ TEST_c_c (catanh, -0.0L, 0x1p50L, -0.0L, 1.570796326794895731052901991514519103193L),
+ TEST_c_c (catanh, 0.0L, -0x1p50L, 0.0L, -1.570796326794895731052901991514519103193L),
+ TEST_c_c (catanh, -0.0L, -0x1p50L, -0.0L, -1.570796326794895731052901991514519103193L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catanh, 0x1p500L, 0.0L, 3.054936363499604682051979393213617699789e-151L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p500L, -0.0L, 3.054936363499604682051979393213617699789e-151L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p500L, 0.0L, -3.054936363499604682051979393213617699789e-151L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p500L, -0.0L, -3.054936363499604682051979393213617699789e-151L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p500L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1p500L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1p500L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1p500L, -0.0L, -1.570796326794896619231321691639751442099L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catanh, 0x1p5000L, 0.0L, 7.079811261048172892385615158694057552948e-1506L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p5000L, -0.0L, 7.079811261048172892385615158694057552948e-1506L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p5000L, 0.0L, -7.079811261048172892385615158694057552948e-1506L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p5000L, -0.0L, -7.079811261048172892385615158694057552948e-1506L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p5000L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1p5000L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1p5000L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1p5000L, -0.0L, -1.570796326794896619231321691639751442099L),
+#endif
+ TEST_c_c (catanh, 0x1p63L, 0.5L, 1.084202172485504434007452800869941711427e-19L, 1.570796326794896619231321691639751442093L),
+ TEST_c_c (catanh, 0x1p63L, -0.5L, 1.084202172485504434007452800869941711427e-19L, -1.570796326794896619231321691639751442093L),
+ TEST_c_c (catanh, -0x1p63L, 0.5L, -1.084202172485504434007452800869941711427e-19L, 1.570796326794896619231321691639751442093L),
+ TEST_c_c (catanh, -0x1p63L, -0.5L, -1.084202172485504434007452800869941711427e-19L, -1.570796326794896619231321691639751442093L),
+ TEST_c_c (catanh, 0.5L, 0x1p63L, 5.877471754111437539843682686111228389007e-39L, 1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0.5L, 0x1p63L, -5.877471754111437539843682686111228389007e-39L, 1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0.5L, -0x1p63L, 5.877471754111437539843682686111228389007e-39L, -1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0.5L, -0x1p63L, -5.877471754111437539843682686111228389007e-39L, -1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (catanh, 0x1p511L, 0.5L, 1.491668146240041348658193063092586767475e-154L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p511L, -0.5L, 1.491668146240041348658193063092586767475e-154L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p511L, 0.5L, -1.491668146240041348658193063092586767475e-154L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p511L, -0.5L, -1.491668146240041348658193063092586767475e-154L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.5L, 0x1p511L, 1.112536929253600691545116358666202032110e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0.5L, 0x1p511L, -1.112536929253600691545116358666202032110e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0.5L, -0x1p511L, 1.112536929253600691545116358666202032110e-308L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0.5L, -0x1p511L, -1.112536929253600691545116358666202032110e-308L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catanh, 0x1p8191L, 0.5L, 1.833603867554847165621412392048483165956e-2466L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p8191L, -0.5L, 1.833603867554847165621412392048483165956e-2466L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p8191L, 0.5L, -1.833603867554847165621412392048483165956e-2466L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p8191L, -0.5L, -1.833603867554847165621412392048483165956e-2466L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.5L, 0x1p8191L, 1.681051571556046753131338908660876301299e-4932L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0.5L, 0x1p8191L, -1.681051571556046753131338908660876301299e-4932L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0.5L, -0x1p8191L, 1.681051571556046753131338908660876301299e-4932L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0.5L, -0x1p8191L, -1.681051571556046753131338908660876301299e-4932L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (catanh, 0x1p100L, 0.0L, 7.888609052210118054117285652827862296732e-31L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p100L, -0.0L, 7.888609052210118054117285652827862296732e-31L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p100L, 0.0L, -7.888609052210118054117285652827862296732e-31L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p100L, -0.0L, -7.888609052210118054117285652827862296732e-31L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p100L, 0.0L, 1.570796326794896619231321691638962581193L),
+ TEST_c_c (catanh, -0.0L, 0x1p100L, -0.0L, 1.570796326794896619231321691638962581193L),
+ TEST_c_c (catanh, 0.0L, -0x1p100L, 0.0L, -1.570796326794896619231321691638962581193L),
+ TEST_c_c (catanh, -0.0L, -0x1p100L, -0.0L, -1.570796326794896619231321691638962581193L),
+ TEST_c_c (catanh, 0x1.fp127L, 0.0L, 3.033533808573645181854803967025150136306e-39L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0x1.fp127L, -0.0L, 3.033533808573645181854803967025150136306e-39L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1.fp127L, 0.0L, -3.033533808573645181854803967025150136306e-39L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1.fp127L, -0.0L, -3.033533808573645181854803967025150136306e-39L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0.0L, 0x1.fp127L, 0.0L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (catanh, -0.0L, 0x1.fp127L, -0.0L, 1.570796326794896619231321691639751442096L),
+ TEST_c_c (catanh, 0.0L, -0x1.fp127L, 0.0L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (catanh, -0.0L, -0x1.fp127L, -0.0L, -1.570796326794896619231321691639751442096L),
+ TEST_c_c (catanh, 0x1.fp127L, 0x1.fp127L, 1.516766904286822590927401983512575068153e-39L, 1.570796326794896619231321691639751442097L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0x1.fp127L, -0x1.fp127L, 1.516766904286822590927401983512575068153e-39L, -1.570796326794896619231321691639751442097L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1.fp127L, 0x1.fp127L, -1.516766904286822590927401983512575068153e-39L, 1.570796326794896619231321691639751442097L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1.fp127L, -0x1.fp127L, -1.516766904286822590927401983512575068153e-39L, -1.570796326794896619231321691639751442097L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (catanh, 0x1p900L, 0.0L, 1.183052186166774710972751597518026531652e-271L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p900L, -0.0L, 1.183052186166774710972751597518026531652e-271L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p900L, 0.0L, -1.183052186166774710972751597518026531652e-271L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p900L, -0.0L, -1.183052186166774710972751597518026531652e-271L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p900L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1p900L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1p900L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1p900L, -0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.fp1023L, 0.0L, 5.742126086470197117652213464083623391533e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1.fp1023L, -0.0L, 5.742126086470197117652213464083623391533e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1.fp1023L, 0.0L, -5.742126086470197117652213464083623391533e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1.fp1023L, -0.0L, -5.742126086470197117652213464083623391533e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0.0L, 0x1.fp1023L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1.fp1023L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1.fp1023L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1.fp1023L, -0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.fp1023L, 0x1.fp1023L, 2.871063043235098558826106732041811695767e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1.fp1023L, -0x1.fp1023L, 2.871063043235098558826106732041811695767e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1.fp1023L, 0x1.fp1023L, -2.871063043235098558826106732041811695767e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1.fp1023L, -0x1.fp1023L, -2.871063043235098558826106732041811695767e-309L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catanh, 0x1p10000L, 0.0L, 5.012372749206452009297555933742977749322e-3011L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p10000L, -0.0L, 5.012372749206452009297555933742977749322e-3011L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p10000L, 0.0L, -5.012372749206452009297555933742977749322e-3011L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1p10000L, -0.0L, -5.012372749206452009297555933742977749322e-3011L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, 0x1p10000L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1p10000L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1p10000L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1p10000L, -0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.fp16383L, 0.0L, 8.676395208031209048419813722120651877672e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1.fp16383L, -0.0L, 8.676395208031209048419813722120651877672e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1.fp16383L, 0.0L, -8.676395208031209048419813722120651877672e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1.fp16383L, -0.0L, -8.676395208031209048419813722120651877672e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0.0L, 0x1.fp16383L, 0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, 0x1.fp16383L, -0.0L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0.0L, -0x1.fp16383L, 0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0.0L, -0x1.fp16383L, -0.0L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.fp16383L, 0x1.fp16383L, 4.338197604015604524209906861060325938836e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1.fp16383L, -0x1.fp16383L, 4.338197604015604524209906861060325938836e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1.fp16383L, 0x1.fp16383L, -4.338197604015604524209906861060325938836e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1.fp16383L, -0x1.fp16383L, -4.338197604015604524209906861060325938836e-4933L, -1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+#endif
+ TEST_c_c (catanh, 0x1p-13L, 1.0L, 6.103515609841754902688560615027452023669e-5L, 7.853981671227386080775748393881580082970e-1L),
+ TEST_c_c (catanh, 0x1p-13L, -1.0L, 6.103515609841754902688560615027452023669e-5L, -7.853981671227386080775748393881580082970e-1L),
+ TEST_c_c (catanh, -0x1p-13L, 1.0L, -6.103515609841754902688560615027452023669e-5L, 7.853981671227386080775748393881580082970e-1L),
+ TEST_c_c (catanh, -0x1p-13L, -1.0L, -6.103515609841754902688560615027452023669e-5L, -7.853981671227386080775748393881580082970e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-13L, 4.852030264850939738801379894163661227127L, 7.854286809755354140031716771044626356262e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-13L, -4.852030264850939738801379894163661227127L, 7.854286809755354140031716771044626356262e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-13L, 4.852030264850939738801379894163661227127L, -7.854286809755354140031716771044626356262e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-13L, -4.852030264850939738801379894163661227127L, -7.854286809755354140031716771044626356262e-1L),
+ TEST_c_c (catanh, 0x1p-27L, 1.0L, 3.725290298461914028034141143623846306386e-9L, 7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, 0x1p-27L, -1.0L, 3.725290298461914028034141143623846306386e-9L, -7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, -0x1p-27L, 1.0L, -3.725290298461914028034141143623846306386e-9L, 7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, -0x1p-27L, -1.0L, -3.725290298461914028034141143623846306386e-9L, -7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-27L, 9.704060527839234335310696652368086117807L, 7.853981652600934588466178684534110069553e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-27L, -9.704060527839234335310696652368086117807L, 7.853981652600934588466178684534110069553e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-27L, 9.704060527839234335310696652368086117807L, -7.853981652600934588466178684534110069553e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-27L, -9.704060527839234335310696652368086117807L, -7.853981652600934588466178684534110069553e-1L),
+ TEST_c_c (catanh, 0x1p-33L, 1.0L, 5.820766091346740722643102318246316469910e-11L, 7.853981633974483096190489776088929224056e-1L),
+ TEST_c_c (catanh, 0x1p-33L, -1.0L, 5.820766091346740722643102318246316469910e-11L, -7.853981633974483096190489776088929224056e-1L),
+ TEST_c_c (catanh, -0x1p-33L, 1.0L, -5.820766091346740722643102318246316469910e-11L, 7.853981633974483096190489776088929224056e-1L),
+ TEST_c_c (catanh, -0x1p-33L, -1.0L, -5.820766091346740722643102318246316469910e-11L, -7.853981633974483096190489776088929224056e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-33L, 1.178350206951907026009379309773625595762e1L, 7.853981634265521400723945494331241018449e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-33L, -1.178350206951907026009379309773625595762e1L, 7.853981634265521400723945494331241018449e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-33L, 1.178350206951907026009379309773625595762e1L, -7.853981634265521400723945494331241018449e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-33L, -1.178350206951907026009379309773625595762e1L, -7.853981634265521400723945494331241018449e-1L),
+ TEST_c_c (catanh, 0x1p-54L, 1.0L, 2.775557561562891351059079170227049355775e-17L, 7.853981633974483096156608458198764914213e-1L),
+ TEST_c_c (catanh, 0x1p-54L, -1.0L, 2.775557561562891351059079170227049355775e-17L, -7.853981633974483096156608458198764914213e-1L),
+ TEST_c_c (catanh, -0x1p-54L, 1.0L, -2.775557561562891351059079170227049355775e-17L, 7.853981633974483096156608458198764914213e-1L),
+ TEST_c_c (catanh, -0x1p-54L, -1.0L, -2.775557561562891351059079170227049355775e-17L, -7.853981633974483096156608458198764914213e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-54L, 1.906154746539849600897388334009985581467e1L, 7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-54L, -1.906154746539849600897388334009985581467e1L, 7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-54L, 1.906154746539849600897388334009985581467e1L, -7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-54L, -1.906154746539849600897388334009985581467e1L, -7.853981633974483234934486536343324763447e-1L),
+ TEST_c_c (catanh, 0x1p-57L, 1.0L, 3.469446951953614188823848962783813448721e-18L, 7.853981633974483096156608458198757330864e-1L),
+ TEST_c_c (catanh, 0x1p-57L, -1.0L, 3.469446951953614188823848962783813448721e-18L, -7.853981633974483096156608458198757330864e-1L),
+ TEST_c_c (catanh, -0x1p-57L, 1.0L, -3.469446951953614188823848962783813448721e-18L, 7.853981633974483096156608458198757330864e-1L),
+ TEST_c_c (catanh, -0x1p-57L, -1.0L, -3.469446951953614188823848962783813448721e-18L, -7.853981633974483096156608458198757330864e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-57L, 2.010126823623841397309973152228712047720e1L, 7.853981633974483113503843217966828154612e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-57L, -2.010126823623841397309973152228712047720e1L, 7.853981633974483113503843217966828154612e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-57L, 2.010126823623841397309973152228712047720e1L, -7.853981633974483113503843217966828154612e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-57L, -2.010126823623841397309973152228712047720e1L, -7.853981633974483113503843217966828154612e-1L),
+ TEST_c_c (catanh, 0x1p-13L, 0x1.000002p0L, 6.103514882246036852433556327261700380577e-5L, 7.853982267273793866654490522673596014524e-1L),
+ TEST_c_c (catanh, 0x1p-13L, -0x1.000002p0L, 6.103514882246036852433556327261700380577e-5L, -7.853982267273793866654490522673596014524e-1L),
+ TEST_c_c (catanh, -0x1p-13L, 0x1.000002p0L, -6.103514882246036852433556327261700380577e-5L, 7.853982267273793866654490522673596014524e-1L),
+ TEST_c_c (catanh, -0x1p-13L, -0x1.000002p0L, -6.103514882246036852433556327261700380577e-5L, -7.853982267273793866654490522673596014524e-1L),
+ TEST_c_c (catanh, 0x1.000002p0L, 0x1p-13L, 4.852030056234795712498957387213592193975L, 7.859169620684960844300240092596908675974e-1L),
+ TEST_c_c (catanh, -0x1.000002p0L, 0x1p-13L, -4.852030056234795712498957387213592193975L, 7.859169620684960844300240092596908675974e-1L),
+ TEST_c_c (catanh, 0x1.000002p0L, -0x1p-13L, 4.852030056234795712498957387213592193975L, -7.859169620684960844300240092596908675974e-1L),
+ TEST_c_c (catanh, -0x1.000002p0L, -0x1p-13L, -4.852030056234795712498957387213592193975L, -7.859169620684960844300240092596908675974e-1L),
+ TEST_c_c (catanh, 0x1p-13L, 0x0.ffffffp0L, 6.103515973639646453881721999956617260502e-5L, 7.853981373204155542484315721351697277336e-1L),
+ TEST_c_c (catanh, 0x1p-13L, -0x0.ffffffp0L, 6.103515973639646453881721999956617260502e-5L, -7.853981373204155542484315721351697277336e-1L),
+ TEST_c_c (catanh, -0x1p-13L, 0x0.ffffffp0L, -6.103515973639646453881721999956617260502e-5L, 7.853981373204155542484315721351697277336e-1L),
+ TEST_c_c (catanh, -0x1p-13L, -0x0.ffffffp0L, -6.103515973639646453881721999956617260502e-5L, -7.853981373204155542484315721351697277336e-1L),
+ TEST_c_c (catanh, 0x0.ffffffp0L, 0x1p-13L, 4.852030190345140708455871037447717761868L, 7.851845403708474595909269086711426246675e-1L),
+ TEST_c_c (catanh, -0x0.ffffffp0L, 0x1p-13L, -4.852030190345140708455871037447717761868L, 7.851845403708474595909269086711426246675e-1L),
+ TEST_c_c (catanh, 0x0.ffffffp0L, -0x1p-13L, 4.852030190345140708455871037447717761868L, -7.851845403708474595909269086711426246675e-1L),
+ TEST_c_c (catanh, -0x0.ffffffp0L, -0x1p-13L, -4.852030190345140708455871037447717761868L, -7.851845403708474595909269086711426246675e-1L),
+#ifndef TEST_FLOAT
+ TEST_c_c (catanh, 0x1p-27L, 0x1.0000000000001p0L, 3.725290298461913200853528590596263270474e-9L, 7.853981633974484345157511161499711112683e-1L),
+ TEST_c_c (catanh, 0x1p-27L, -0x1.0000000000001p0L, 3.725290298461913200853528590596263270474e-9L, -7.853981633974484345157511161499711112683e-1L),
+ TEST_c_c (catanh, -0x1p-27L, 0x1.0000000000001p0L, -3.725290298461913200853528590596263270474e-9L, 7.853981633974484345157511161499711112683e-1L),
+ TEST_c_c (catanh, -0x1p-27L, -0x1.0000000000001p0L, -3.725290298461913200853528590596263270474e-9L, -7.853981633974484345157511161499711112683e-1L),
+ TEST_c_c (catanh, 0x1.0000000000001p0L, 0x1p-27L, 9.704060527839234168777242958594699810015L, 7.853981801612546526942695000283242525531e-1L),
+ TEST_c_c (catanh, -0x1.0000000000001p0L, 0x1p-27L, -9.704060527839234168777242958594699810015L, 7.853981801612546526942695000283242525531e-1L),
+ TEST_c_c (catanh, 0x1.0000000000001p0L, -0x1p-27L, 9.704060527839234168777242958594699810015L, -7.853981801612546526942695000283242525531e-1L),
+ TEST_c_c (catanh, -0x1.0000000000001p0L, -0x1p-27L, -9.704060527839234168777242958594699810015L, -7.853981801612546526942695000283242525531e-1L),
+ TEST_c_c (catanh, 0x1p-27L, 0x0.fffffffffffff8p0L, 3.725290298461914441624447420137706700965e-9L, 7.853981633974482679822974223765039144191e-1L),
+ TEST_c_c (catanh, 0x1p-27L, -0x0.fffffffffffff8p0L, 3.725290298461914441624447420137706700965e-9L, -7.853981633974482679822974223765039144191e-1L),
+ TEST_c_c (catanh, -0x1p-27L, 0x0.fffffffffffff8p0L, -3.725290298461914441624447420137706700965e-9L, 7.853981633974482679822974223765039144191e-1L),
+ TEST_c_c (catanh, -0x1p-27L, -0x0.fffffffffffff8p0L, -3.725290298461914441624447420137706700965e-9L, -7.853981633974482679822974223765039144191e-1L),
+ TEST_c_c (catanh, 0x0.fffffffffffff8p0L, 0x1p-27L, 9.704060527839234252043969805481351363824L, 7.853981578095128619227903983047292781021e-1L),
+ TEST_c_c (catanh, -0x0.fffffffffffff8p0L, 0x1p-27L, -9.704060527839234252043969805481351363824L, 7.853981578095128619227903983047292781021e-1L),
+ TEST_c_c (catanh, 0x0.fffffffffffff8p0L, -0x1p-27L, 9.704060527839234252043969805481351363824L, -7.853981578095128619227903983047292781021e-1L),
+ TEST_c_c (catanh, -0x0.fffffffffffff8p0L, -0x1p-27L, -9.704060527839234252043969805481351363824L, -7.853981578095128619227903983047292781021e-1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (catanh, 0x1p-33L, 0x1.0000000000000002p0L, 5.820766091346740722012013594069507025615e-11L, 7.853981633974483096732590862331681441026e-1L),
+ TEST_c_c (catanh, 0x1p-33L, -0x1.0000000000000002p0L, 5.820766091346740722012013594069507025615e-11L, -7.853981633974483096732590862331681441026e-1L),
+ TEST_c_c (catanh, -0x1p-33L, 0x1.0000000000000002p0L, -5.820766091346740722012013594069507025615e-11L, 7.853981633974483096732590862331681441026e-1L),
+ TEST_c_c (catanh, -0x1p-33L, -0x1.0000000000000002p0L, -5.820766091346740722012013594069507025615e-11L, -7.853981633974483096732590862331681441026e-1L),
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, 0x1p-33L, 1.178350206951907025990405771755129268176e1L, 7.853981638922134273801338071094141188767e-1L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, 0x1p-33L, -1.178350206951907025990405771755129268176e1L, 7.853981638922134273801338071094141188767e-1L),
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, -0x1p-33L, 1.178350206951907025990405771755129268176e1L, -7.853981638922134273801338071094141188767e-1L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, -0x1p-33L, -1.178350206951907025990405771755129268176e1L, -7.853981638922134273801338071094141188767e-1L),
+ TEST_c_c (catanh, 0x1p-33L, 0x0.ffffffffffffffffp0L, 5.820766091346740722958646680334721192083e-11L, 7.853981633974483095919439232967553115548e-1L),
+ TEST_c_c (catanh, 0x1p-33L, -0x0.ffffffffffffffffp0L, 5.820766091346740722958646680334721192083e-11L, -7.853981633974483095919439232967553115548e-1L),
+ TEST_c_c (catanh, -0x1p-33L, 0x0.ffffffffffffffffp0L, -5.820766091346740722958646680334721192083e-11L, 7.853981633974483095919439232967553115548e-1L),
+ TEST_c_c (catanh, -0x1p-33L, -0x0.ffffffffffffffffp0L, -5.820766091346740722958646680334721192083e-11L, -7.853981633974483095919439232967553115548e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, 0x1p-33L, 1.178350206951907026002603046195591193050e1L, 7.853981631937214964185249205444919953948e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, 0x1p-33L, -1.178350206951907026002603046195591193050e1L, 7.853981631937214964185249205444919953948e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, -0x1p-33L, 1.178350206951907026002603046195591193050e1L, -7.853981631937214964185249205444919953948e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, -0x1p-33L, -1.178350206951907026002603046195591193050e1L, -7.853981631937214964185249205444919953948e-1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (catanh, 0x1p-54L, 0x1.000000000000000000000000008p0L, 2.775557561562891351059079170226980932999e-17L, 7.853981633974483096156608458198888173729e-1L),
+ TEST_c_c (catanh, 0x1p-54L, -0x1.000000000000000000000000008p0L, 2.775557561562891351059079170226980932999e-17L, -7.853981633974483096156608458198888173729e-1L),
+ TEST_c_c (catanh, -0x1p-54L, 0x1.000000000000000000000000008p0L, -2.775557561562891351059079170226980932999e-17L, 7.853981633974483096156608458198888173729e-1L),
+ TEST_c_c (catanh, -0x1p-54L, -0x1.000000000000000000000000008p0L, -2.775557561562891351059079170226980932999e-17L, -7.853981633974483096156608458198888173729e-1L),
+ TEST_c_c (catanh, 0x1.000000000000000000000000008p0L, 0x1p-54L, 1.906154746539849600897388334009981267384e1L, 7.853981633974485455380535786656405610710e-1L),
+ TEST_c_c (catanh, -0x1.000000000000000000000000008p0L, 0x1p-54L, -1.906154746539849600897388334009981267384e1L, 7.853981633974485455380535786656405610710e-1L),
+ TEST_c_c (catanh, 0x1.000000000000000000000000008p0L, -0x1p-54L, 1.906154746539849600897388334009981267384e1L, -7.853981633974485455380535786656405610710e-1L),
+ TEST_c_c (catanh, -0x1.000000000000000000000000008p0L, -0x1p-54L, -1.906154746539849600897388334009981267384e1L, -7.853981633974485455380535786656405610710e-1L),
+ TEST_c_c (catanh, 0x1p-54L, 0x0.ffffffffffffffffffffffffffcp0L, 2.775557561562891351059079170227083567164e-17L, 7.853981633974483096156608458198703284454e-1L),
+ TEST_c_c (catanh, 0x1p-54L, -0x0.ffffffffffffffffffffffffffcp0L, 2.775557561562891351059079170227083567164e-17L, -7.853981633974483096156608458198703284454e-1L),
+ TEST_c_c (catanh, -0x1p-54L, 0x0.ffffffffffffffffffffffffffcp0L, -2.775557561562891351059079170227083567164e-17L, 7.853981633974483096156608458198703284454e-1L),
+ TEST_c_c (catanh, -0x1p-54L, -0x0.ffffffffffffffffffffffffffcp0L, -2.775557561562891351059079170227083567164e-17L, -7.853981633974483096156608458198703284454e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-54L, 1.906154746539849600897388334009984040723e1L, 7.853981633974482124711461911186784339815e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-54L, -1.906154746539849600897388334009984040723e1L, 7.853981633974482124711461911186784339815e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-54L, 1.906154746539849600897388334009984040723e1L, -7.853981633974482124711461911186784339815e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-54L, -1.906154746539849600897388334009984040723e1L, -7.853981633974482124711461911186784339815e-1L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
+ TEST_c_c (catanh, 0x1p-57L, 0x1.0000000000000000000000000001p0L, 3.469446951953614188823848962783812780530e-18L, 7.853981633974483096156608458198758293829e-1L),
+ TEST_c_c (catanh, 0x1p-57L, -0x1.0000000000000000000000000001p0L, 3.469446951953614188823848962783812780530e-18L, -7.853981633974483096156608458198758293829e-1L),
+ TEST_c_c (catanh, -0x1p-57L, 0x1.0000000000000000000000000001p0L, -3.469446951953614188823848962783812780530e-18L, 7.853981633974483096156608458198758293829e-1L),
+ TEST_c_c (catanh, -0x1p-57L, -0x1.0000000000000000000000000001p0L, -3.469446951953614188823848962783812780530e-18L, -7.853981633974483096156608458198758293829e-1L),
+ TEST_c_c (catanh, 0x1.0000000000000000000000000001p0L, 0x1p-57L, 2.010126823623841397309973152228712033275e1L, 7.853981633974483252281721296111395707566e-1L),
+ TEST_c_c (catanh, -0x1.0000000000000000000000000001p0L, 0x1p-57L, -2.010126823623841397309973152228712033275e1L, 7.853981633974483252281721296111395707566e-1L),
+ TEST_c_c (catanh, 0x1.0000000000000000000000000001p0L, -0x1p-57L, 2.010126823623841397309973152228712033275e1L, -7.853981633974483252281721296111395707566e-1L),
+ TEST_c_c (catanh, -0x1.0000000000000000000000000001p0L, -0x1p-57L, -2.010126823623841397309973152228712033275e1L, -7.853981633974483252281721296111395707566e-1L),
+ TEST_c_c (catanh, 0x1p-57L, 0x0.ffffffffffffffffffffffffffff8p0L, 3.469446951953614188823848962783813782817e-18L, 7.853981633974483096156608458198756849381e-1L),
+ TEST_c_c (catanh, 0x1p-57L, -0x0.ffffffffffffffffffffffffffff8p0L, 3.469446951953614188823848962783813782817e-18L, -7.853981633974483096156608458198756849381e-1L),
+ TEST_c_c (catanh, -0x1p-57L, 0x0.ffffffffffffffffffffffffffff8p0L, -3.469446951953614188823848962783813782817e-18L, 7.853981633974483096156608458198756849381e-1L),
+ TEST_c_c (catanh, -0x1p-57L, -0x0.ffffffffffffffffffffffffffff8p0L, -3.469446951953614188823848962783813782817e-18L, -7.853981633974483096156608458198756849381e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-57L, 2.010126823623841397309973152228712040498e1L, 7.853981633974483044114904178894544378135e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-57L, -2.010126823623841397309973152228712040498e1L, 7.853981633974483044114904178894544378135e-1L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-57L, 2.010126823623841397309973152228712040498e1L, -7.853981633974483044114904178894544378135e-1L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-57L, -2.010126823623841397309973152228712040498e1L, -7.853981633974483044114904178894544378135e-1L),
+#endif
+ TEST_c_c (catanh, 1.0L, 0x1p-64L, 2.252728336819822255606004394739073846245e1L, 7.853981633974483096292133729759445264744e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-64L, 2.252728336819822255606004394739073846245e1L, -7.853981633974483096292133729759445264744e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-64L, -2.252728336819822255606004394739073846245e1L, 7.853981633974483096292133729759445264744e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-64L, -2.252728336819822255606004394739073846245e1L, -7.853981633974483096292133729759445264744e-1L),
+ TEST_c_c (catanh, 0x1p-64L, 1.0L, 2.710505431213761085018632002174854278563e-20L, 7.853981633974483096156608458198757210500e-1L),
+ TEST_c_c (catanh, -0x1p-64L, 1.0L, -2.710505431213761085018632002174854278563e-20L, 7.853981633974483096156608458198757210500e-1L),
+ TEST_c_c (catanh, 0x1p-64L, -1.0L, 2.710505431213761085018632002174854278563e-20L, -7.853981633974483096156608458198757210500e-1L),
+ TEST_c_c (catanh, -0x1p-64L, -1.0L, -2.710505431213761085018632002174854278563e-20L, -7.853981633974483096156608458198757210500e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1.3p-73L, 2.556052055225464683726753902092495938633e1L, 7.853981633974483096156922786831527361009e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1.3p-73L, 2.556052055225464683726753902092495938633e1L, -7.853981633974483096156922786831527361009e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1.3p-73L, -2.556052055225464683726753902092495938633e1L, 7.853981633974483096156922786831527361009e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1.3p-73L, -2.556052055225464683726753902092495938633e1L, -7.853981633974483096156922786831527361009e-1L),
+ TEST_c_c (catanh, 0x1.3p-73L, 1.0L, 6.286572655403010329022706059731717687100e-23L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-73L, 1.0L, -6.286572655403010329022706059731717687100e-23L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-73L, -1.0L, 6.286572655403010329022706059731717687100e-23L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-73L, -1.0L, -6.286572655403010329022706059731717687100e-23L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-124L, 4.332169878499658183857700759113603550472e1L, 7.853981633974483096156608458198757210610e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-124L, 4.332169878499658183857700759113603550472e1L, -7.853981633974483096156608458198757210610e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-124L, -4.332169878499658183857700759113603550472e1L, 7.853981633974483096156608458198757210610e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-124L, -4.332169878499658183857700759113603550472e1L, -7.853981633974483096156608458198757210610e-1L),
+ TEST_c_c (catanh, 0x1p-124L, 1.0L, 2.350988701644575015937473074444491355637e-38L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-124L, 1.0L, -2.350988701644575015937473074444491355637e-38L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-124L, -1.0L, 2.350988701644575015937473074444491355637e-38L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-124L, -1.0L, -2.350988701644575015937473074444491355637e-38L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.000002p0L, 0x1p-126L, 8.317766196521665212523713550410777685446L, 1.570796326794896619231321691639702138295L),
+ TEST_c_c (catanh, 0x1.000002p0L, -0x1p-126L, 8.317766196521665212523713550410777685446L, -1.570796326794896619231321691639702138295L),
+ TEST_c_c (catanh, -0x1.000002p0L, 0x1p-126L, -8.317766196521665212523713550410777685446L, 1.570796326794896619231321691639702138295L),
+ TEST_c_c (catanh, -0x1.000002p0L, -0x1p-126L, -8.317766196521665212523713550410777685446L, -1.570796326794896619231321691639702138295L),
+ TEST_c_c (catanh, 0x1p-126L, 0x1.000002p0L, 5.877471053462247139383742414506671233336e-39L, 7.853982230020895322927482174768220815493e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1p-126L, 0x1.000002p0L, -5.877471053462247139383742414506671233336e-39L, 7.853982230020895322927482174768220815493e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0x1p-126L, -0x1.000002p0L, 5.877471053462247139383742414506671233336e-39L, -7.853982230020895322927482174768220815493e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1p-126L, -0x1.000002p0L, -5.877471053462247139383742414506671233336e-39L, -7.853982230020895322927482174768220815493e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0x0.ffffffp0L, 0x1p-126L, 8.664339742098154951823135931565866792454L, 9.860761609136244031334147100512154160097e-32L),
+ TEST_c_c (catanh, 0x0.ffffffp0L, -0x1p-126L, 8.664339742098154951823135931565866792454L, -9.860761609136244031334147100512154160097e-32L),
+ TEST_c_c (catanh, -0x0.ffffffp0L, 0x1p-126L, -8.664339742098154951823135931565866792454L, 9.860761609136244031334147100512154160097e-32L),
+ TEST_c_c (catanh, -0x0.ffffffp0L, -0x1p-126L, -8.664339742098154951823135931565866792454L, -9.860761609136244031334147100512154160097e-32L),
+ TEST_c_c (catanh, 0x1p-126L, 0x0.ffffffp0L, 5.877472104436064061535099214664320916184e-39L, 7.853981335951250337419109991749089175724e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1p-126L, 0x0.ffffffp0L, -5.877472104436064061535099214664320916184e-39L, 7.853981335951250337419109991749089175724e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, 0x1p-126L, -0x0.ffffffp0L, 5.877472104436064061535099214664320916184e-39L, -7.853981335951250337419109991749089175724e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (catanh, -0x1p-126L, -0x0.ffffffp0L, -5.877472104436064061535099214664320916184e-39L, -7.853981335951250337419109991749089175724e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_c_c (catanh, 1.0L, 0x1p-512L, 1.777922518136259718655200391540222897114e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-512L, 1.777922518136259718655200391540222897114e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-512L, -1.777922518136259718655200391540222897114e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-512L, -1.777922518136259718655200391540222897114e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-512L, 1.0L, 3.729170365600103371645482657731466918688e-155L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-512L, 1.0L, -3.729170365600103371645482657731466918688e-155L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-512L, -1.0L, 3.729170365600103371645482657731466918688e-155L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-512L, -1.0L, -3.729170365600103371645482657731466918688e-155L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1.3p-536L, 1.860240928518819859673567751384928348958e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1.3p-536L, 1.860240928518819859673567751384928348958e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1.3p-536L, -1.860240928518819859673567751384928348958e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1.3p-536L, -1.860240928518819859673567751384928348958e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-536L, 1.0L, 2.639526015013529511588222179446290115084e-162L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-536L, 1.0L, -2.639526015013529511588222179446290115084e-162L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-536L, -1.0L, 2.639526015013529511588222179446290115084e-162L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-536L, -1.0L, -2.639526015013529511588222179446290115084e-162L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-1020L, 3.538516356758520804574969980043991380025e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-1020L, 3.538516356758520804574969980043991380025e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-1020L, -3.538516356758520804574969980043991380025e2L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-1020L, -3.538516356758520804574969980043991380025e2L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-1020L, 1.0L, 4.450147717014402766180465434664808128438e-308L, 7.853981633974483096156608458198757210493e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, -0x1p-1020L, 1.0L, -4.450147717014402766180465434664808128438e-308L, 7.853981633974483096156608458198757210493e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, 0x1p-1020L, -1.0L, 4.450147717014402766180465434664808128438e-308L, -7.853981633974483096156608458198757210493e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, -0x1p-1020L, -1.0L, -4.450147717014402766180465434664808128438e-308L, -7.853981633974483096156608458198757210493e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, 0x1.0000000000001p0L, 0x1p-1022L, 1.836840028483855075506780244989950299369e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.0000000000001p0L, -0x1p-1022L, 1.836840028483855075506780244989950299369e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000001p0L, 0x1p-1022L, -1.836840028483855075506780244989950299369e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000001p0L, -0x1p-1022L, -1.836840028483855075506780244989950299369e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p-1022L, 0x1.0000000000001p0L, 1.112536929253600444512293438042957369978e-308L, 7.853981633974484206379633083355174374608e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x1.0000000000001p0L, -1.112536929253600444512293438042957369978e-308L, 7.853981633974484206379633083355174374608e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x1.0000000000001p0L, 1.112536929253600444512293438042957369978e-308L, -7.853981633974484206379633083355174374608e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x1.0000000000001p0L, -1.112536929253600444512293438042957369978e-308L, -7.853981633974484206379633083355174374608e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x0.fffffffffffff8p0L, 0x1p-1022L, 1.871497387511852332650969166374185305708e1L, 1.002084180004486444624900488355118689113e-292L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, 0x0.fffffffffffff8p0L, -0x1p-1022L, 1.871497387511852332650969166374185305708e1L, -1.002084180004486444624900488355118689113e-292L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, -0x0.fffffffffffff8p0L, 0x1p-1022L, -1.871497387511852332650969166374185305708e1L, 1.002084180004486444624900488355118689113e-292L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, -0x0.fffffffffffff8p0L, -0x1p-1022L, -1.871497387511852332650969166374185305708e1L, -1.002084180004486444624900488355118689113e-292L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (catanh, 0x1p-1022L, 0x0.fffffffffffff8p0L, 1.112536929253600815061527818977844932790e-308L, 7.853981633974482541045096145620456183798e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x0.fffffffffffff8p0L, -1.112536929253600815061527818977844932790e-308L, 7.853981633974482541045096145620456183798e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x0.fffffffffffff8p0L, 1.112536929253600815061527818977844932790e-308L, -7.853981633974482541045096145620456183798e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x0.fffffffffffff8p0L, -1.112536929253600815061527818977844932790e-308L, -7.853981633974482541045096145620456183798e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, 0x1p-1022L, 2.218070977791824990137853294097378778927e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, -0x1p-1022L, 2.218070977791824990137853294097378778927e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, 0x1p-1022L, -2.218070977791824990137853294097378778927e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, -0x1p-1022L, -2.218070977791824990137853294097378778927e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p-1022L, 0x1.0000000000000002p0L, 1.112536929253600691424494863099491450042e-308L, 7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x1.0000000000000002p0L, -1.112536929253600691424494863099491450042e-308L, 7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x1.0000000000000002p0L, 1.112536929253600691424494863099491450042e-308L, -7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x1.0000000000000002p0L, -1.112536929253600691424494863099491450042e-308L, -7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, 0x1p-1022L, 2.252728336819822255604649142023466965703e1L, 2.052268400649188124723641491045245971623e-289L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, -0x1p-1022L, 2.252728336819822255604649142023466965703e1L, -2.052268400649188124723641491045245971623e-289L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, 0x1p-1022L, -2.252728336819822255604649142023466965703e1L, 2.052268400649188124723641491045245971623e-289L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, -0x1p-1022L, -2.252728336819822255604649142023466965703e1L, -2.052268400649188124723641491045245971623e-289L),
+ TEST_c_c (catanh, 0x1p-1022L, 0x0.ffffffffffffffffp0L, 1.112536929253600691605427106449557323148e-308L, 7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x0.ffffffffffffffffp0L, -1.112536929253600691605427106449557323148e-308L, 7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x0.ffffffffffffffffp0L, 1.112536929253600691605427106449557323148e-308L, -7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x0.ffffffffffffffffp0L, -1.112536929253600691605427106449557323148e-308L, -7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_c_c (catanh, 0x1.000000000000000000000000008p0L, 0x1p-1022L, 3.673680056967710139911330243728336427098e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.000000000000000000000000008p0L, -0x1p-1022L, 3.673680056967710139911330243728336427098e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.000000000000000000000000008p0L, 0x1p-1022L, -3.673680056967710139911330243728336427098e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.000000000000000000000000008p0L, -0x1p-1022L, -3.673680056967710139911330243728336427098e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p-1022L, 0x1.000000000000000000000000008p0L, 1.112536929253600691545116358666174605957e-308L, 7.853981633974483096156608458198880470009e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x1.000000000000000000000000008p0L, -1.112536929253600691545116358666174605957e-308L, 7.853981633974483096156608458198880470009e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x1.000000000000000000000000008p0L, 1.112536929253600691545116358666174605957e-308L, -7.853981633974483096156608458198880470009e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x1.000000000000000000000000008p0L, -1.112536929253600691545116358666174605957e-308L, -7.853981633974483096156608458198880470009e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffcp0L, 0x1p-1022L, 3.708337415995707405382191849801244331055e1L, 9.025971879324147880346310405868788320726e-277L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffcp0L, -0x1p-1022L, 3.708337415995707405382191849801244331055e1L, -9.025971879324147880346310405868788320726e-277L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffcp0L, 0x1p-1022L, -3.708337415995707405382191849801244331055e1L, 9.025971879324147880346310405868788320726e-277L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffcp0L, -0x1p-1022L, -3.708337415995707405382191849801244331055e1L, -9.025971879324147880346310405868788320726e-277L),
+ TEST_c_c (catanh, 0x1p-1022L, 0x0.ffffffffffffffffffffffffffcp0L, 1.112536929253600691545116358666215745186e-308L, 7.853981633974483096156608458198695580735e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, 0x0.ffffffffffffffffffffffffffcp0L, -1.112536929253600691545116358666215745186e-308L, 7.853981633974483096156608458198695580735e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, 0x1p-1022L, -0x0.ffffffffffffffffffffffffffcp0L, 1.112536929253600691545116358666215745186e-308L, -7.853981633974483096156608458198695580735e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (catanh, -0x1p-1022L, -0x0.ffffffffffffffffffffffffffcp0L, -1.112536929253600691545116358666215745186e-308L, -7.853981633974483096156608458198695580735e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_c_c (catanh, 1.0L, 0x1p-8192L, 2.839477425163815960027691385553420311121e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-8192L, 2.839477425163815960027691385553420311121e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-8192L, -2.839477425163815960027691385553420311121e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-8192L, -2.839477425163815960027691385553420311121e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-8192L, 1.0L, 4.584009668887117914053530980121207914891e-2467L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-8192L, 1.0L, -4.584009668887117914053530980121207914891e-2467L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-8192L, -1.0L, 4.584009668887117914053530980121207914891e-2467L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-8192L, -1.0L, -4.584009668887117914053530980121207914891e-2467L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1.3p-8221L, 2.849442134153471837403071201841536297726e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1.3p-8221L, 2.849442134153471837403071201841536297726e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1.3p-8221L, -2.849442134153471837403071201841536297726e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1.3p-8221L, -2.849442134153471837403071201841536297726e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-8221L, 1.0L, 1.013933025636421986471594877335044443409e-2475L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-8221L, 1.0L, -1.013933025636421986471594877335044443409e-2475L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-8221L, -1.0L, 1.013933025636421986471594877335044443409e-2475L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-8221L, -1.0L, -1.013933025636421986471594877335044443409e-2475L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1.3p-8246L, 2.858106473910471153770786603359763504827e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1.3p-8246L, 2.858106473910471153770786603359763504827e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1.3p-8246L, -2.858106473910471153770786603359763504827e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1.3p-8246L, -2.858106473910471153770786603359763504827e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-8246L, 1.0L, 3.021755890954798419688924781486524472858e-2483L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-8246L, 1.0L, -3.021755890954798419688924781486524472858e-2483L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.3p-8246L, -1.0L, 3.021755890954798419688924781486524472858e-2483L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1.3p-8246L, -1.0L, -3.021755890954798419688924781486524472858e-2483L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, 0x1p-16380L, 5.677221982376232056781839690803195180822e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 1.0L, -0x1p-16380L, 5.677221982376232056781839690803195180822e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, 0x1p-16380L, -5.677221982376232056781839690803195180822e3L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -1.0L, -0x1p-16380L, -5.677221982376232056781839690803195180822e3L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-16380L, 1.0L, 6.724206286224187012525355634643505205196e-4932L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-16380L, 1.0L, -6.724206286224187012525355634643505205196e-4932L, 7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1p-16380L, -1.0L, 6.724206286224187012525355634643505205196e-4932L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, -0x1p-16380L, -1.0L, -6.724206286224187012525355634643505205196e-4932L, -7.853981633974483096156608458198757210493e-1L),
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, 0x1p-16382L, 2.218070977791824990137853294097378778927e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.0000000000000002p0L, -0x1p-16382L, 2.218070977791824990137853294097378778927e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, 0x1p-16382L, -2.218070977791824990137853294097378778927e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000002p0L, -0x1p-16382L, -2.218070977791824990137853294097378778927e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p-16382L, 0x1.0000000000000002p0L, 1.681051571556046752949078932066752571182e-4932L, 7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, 0x1.0000000000000002p0L, -1.681051571556046752949078932066752571182e-4932L, 7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1p-16382L, -0x1.0000000000000002p0L, 1.681051571556046752949078932066752571182e-4932L, -7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, -0x1.0000000000000002p0L, -1.681051571556046752949078932066752571182e-4932L, -7.853981633974483096698709544441509427467e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, 0x1p-16382L, 2.252728336819822255604649142023466965703e1L, 3.100992811520163369065387859792822623745e-4913L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffp0L, -0x1p-16382L, 2.252728336819822255604649142023466965703e1L, -3.100992811520163369065387859792822623745e-4913L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, 0x1p-16382L, -2.252728336819822255604649142023466965703e1L, 3.100992811520163369065387859792822623745e-4913L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffp0L, -0x1p-16382L, -2.252728336819822255604649142023466965703e1L, -3.100992811520163369065387859792822623745e-4913L),
+ TEST_c_c (catanh, 0x1p-16382L, 0x0.ffffffffffffffffp0L, 1.681051571556046753222468896957938166365e-4932L, 7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, 0x0.ffffffffffffffffp0L, -1.681051571556046753222468896957938166365e-4932L, 7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1p-16382L, -0x0.ffffffffffffffffp0L, 1.681051571556046753222468896957938166365e-4932L, -7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, -0x0.ffffffffffffffffp0L, -1.681051571556046753222468896957938166365e-4932L, -7.853981633974483095885557915077381101984e-1L, UNDERFLOW_EXCEPTION),
+# if LDBL_MANT_DIG >= 113
+ TEST_c_c (catanh, 0x1.0000000000000000000000000001p0L, 0x1p-16382L, 3.916281570163690998207361486238697614441e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1.0000000000000000000000000001p0L, -0x1p-16382L, 3.916281570163690998207361486238697614441e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000000000000000001p0L, 0x1p-16382L, -3.916281570163690998207361486238697614441e1L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, -0x1.0000000000000000000000000001p0L, -0x1p-16382L, -3.916281570163690998207361486238697614441e1L, -1.570796326794896619231321691639751442099L),
+ TEST_c_c (catanh, 0x1p-16382L, 0x1.0000000000000000000000000001p0L, 1.681051571556046753131338908660875977540e-4932L, 7.853981633974483096156608458198758173458e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, 0x1.0000000000000000000000000001p0L, -1.681051571556046753131338908660875977540e-4932L, 7.853981633974483096156608458198758173458e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1p-16382L, -0x1.0000000000000000000000000001p0L, 1.681051571556046753131338908660875977540e-4932L, -7.853981633974483096156608458198758173458e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, -0x1.0000000000000000000000000001p0L, -1.681051571556046753131338908660875977540e-4932L, -7.853981633974483096156608458198758173458e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-16382L, 3.950938929191688263678223092311606435623e1L, 1.745703758805099310527547423749501866998e-4898L),
+ TEST_c_c (catanh, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-16382L, 3.950938929191688263678223092311606435623e1L, -1.745703758805099310527547423749501866998e-4898L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffff8p0L, 0x1p-16382L, -3.950938929191688263678223092311606435623e1L, 1.745703758805099310527547423749501866998e-4898L),
+ TEST_c_c (catanh, -0x0.ffffffffffffffffffffffffffff8p0L, -0x1p-16382L, -3.950938929191688263678223092311606435623e1L, -1.745703758805099310527547423749501866998e-4898L),
+ TEST_c_c (catanh, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffff8p0L, 1.681051571556046753131338908660876463178e-4932L, 7.853981633974483096156608458198756729010e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, 0x0.ffffffffffffffffffffffffffff8p0L, -1.681051571556046753131338908660876463178e-4932L, 7.853981633974483096156608458198756729010e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, 0x1p-16382L, -0x0.ffffffffffffffffffffffffffff8p0L, 1.681051571556046753131338908660876463178e-4932L, -7.853981633974483096156608458198756729010e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (catanh, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffff8p0L, -1.681051571556046753131338908660876463178e-4932L, -7.853981633974483096156608458198756729010e-1L, UNDERFLOW_EXCEPTION),
+# endif
+#endif
- TEST_c_c (catan, 0, 0, 0, 0);
- TEST_c_c (catan, minus_zero, 0, minus_zero, 0);
- TEST_c_c (catan, 0, minus_zero, 0, minus_zero);
- TEST_c_c (catan, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (catan, plus_infty, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, plus_infty, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, plus_infty, -M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, minus_infty, -M_PI_2l, minus_zero);
-
-
- TEST_c_c (catan, plus_infty, -10.0, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, -10.0, -M_PI_2l, minus_zero);
- TEST_c_c (catan, plus_infty, minus_zero, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_infty, minus_zero, -M_PI_2l, minus_zero);
- TEST_c_c (catan, plus_infty, 0.0, M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, 0.0, -M_PI_2l, 0);
- TEST_c_c (catan, plus_infty, 0.1L, M_PI_2l, 0);
- TEST_c_c (catan, minus_infty, 0.1L, -M_PI_2l, 0);
-
- TEST_c_c (catan, 0.0, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, minus_zero, minus_infty, -M_PI_2l, minus_zero);
- TEST_c_c (catan, 100.0, minus_infty, M_PI_2l, minus_zero);
- TEST_c_c (catan, -100.0, minus_infty, -M_PI_2l, minus_zero);
-
- TEST_c_c (catan, 0.0, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, minus_zero, plus_infty, -M_PI_2l, 0);
- TEST_c_c (catan, 0.5, plus_infty, M_PI_2l, 0);
- TEST_c_c (catan, -0.5, plus_infty, -M_PI_2l, 0);
-
- TEST_c_c (catan, qnan_value, 0.0, qnan_value, 0);
- TEST_c_c (catan, qnan_value, minus_zero, qnan_value, minus_zero);
-
- TEST_c_c (catan, qnan_value, plus_infty, qnan_value, 0);
- TEST_c_c (catan, qnan_value, minus_infty, qnan_value, minus_zero);
-
- TEST_c_c (catan, 0.0, qnan_value, qnan_value, qnan_value);
- TEST_c_c (catan, minus_zero, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (catan, plus_infty, qnan_value, M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (catan, minus_infty, qnan_value, -M_PI_2l, 0, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (catan, qnan_value, 10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catan, qnan_value, -10.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catan, 0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catan, -0.75, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catan, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (catan, 0.75L, 1.25L, 1.10714871779409050301706546017853704L, 0.549306144334054845697622618461262852L);
- TEST_c_c (catan, -2, -3, -1.4099210495965755225306193844604208L, -0.22907268296853876629588180294200276L);
-
- END (catan, complex);
-}
+ TEST_c_c (catanh, 0.75L, 1.25L, 0.261492138795671927078652057366532140L, 0.996825126463918666098902241310446708L),
+ TEST_c_c (catanh, -2, -3, -0.14694666622552975204743278515471595L, -1.3389725222944935611241935759091443L),
+ };
static void
catanh_test (void)
{
- errno = 0;
- FUNC(catanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (catanh);
+ RUN_TEST_LOOP_c_c (catanh, catanh_test_data, );
+ END_COMPLEX;
+}
- TEST_c_c (catanh, 0, 0, 0.0, 0.0);
- TEST_c_c (catanh, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (catanh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (catanh, minus_zero, minus_zero, minus_zero, minus_zero);
-
- TEST_c_c (catanh, plus_infty, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, minus_infty, 0.0, -M_PI_2l);
- TEST_c_c (catanh, minus_infty, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, minus_infty, minus_zero, -M_PI_2l);
-
- TEST_c_c (catanh, -10.0, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, -10.0, minus_infty, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, minus_zero, plus_infty, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_zero, minus_infty, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, 0, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, 0, minus_infty, 0.0, -M_PI_2l);
- TEST_c_c (catanh, 0.1L, plus_infty, 0.0, M_PI_2l);
- TEST_c_c (catanh, 0.1L, minus_infty, 0.0, -M_PI_2l);
-
- TEST_c_c (catanh, minus_infty, 0, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, minus_zero, minus_zero, -M_PI_2l);
- TEST_c_c (catanh, minus_infty, 100, minus_zero, M_PI_2l);
- TEST_c_c (catanh, minus_infty, -100, minus_zero, -M_PI_2l);
-
- TEST_c_c (catanh, plus_infty, 0, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, minus_zero, 0.0, -M_PI_2l);
- TEST_c_c (catanh, plus_infty, 0.5, 0.0, M_PI_2l);
- TEST_c_c (catanh, plus_infty, -0.5, 0.0, -M_PI_2l);
-
- TEST_c_c (catanh, 0, qnan_value, 0.0, qnan_value);
- TEST_c_c (catanh, minus_zero, qnan_value, minus_zero, qnan_value);
-
- TEST_c_c (catanh, plus_infty, qnan_value, 0.0, qnan_value);
- TEST_c_c (catanh, minus_infty, qnan_value, minus_zero, qnan_value);
-
- TEST_c_c (catanh, qnan_value, 0, qnan_value, qnan_value);
- TEST_c_c (catanh, qnan_value, minus_zero, qnan_value, qnan_value);
-
- TEST_c_c (catanh, qnan_value, plus_infty, 0.0, M_PI_2l, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (catanh, qnan_value, minus_infty, 0.0, -M_PI_2l, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (catanh, 10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catanh, -10.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (catanh, qnan_value, 0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (catanh, qnan_value, -0.75, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+static const struct test_f_f_data cbrt_test_data[] =
+ {
+ TEST_f_f (cbrt, 0.0, 0.0),
+ TEST_f_f (cbrt, minus_zero, minus_zero),
- TEST_c_c (catanh, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_f_f (cbrt, plus_infty, plus_infty),
+ TEST_f_f (cbrt, minus_infty, minus_infty),
+ TEST_f_f (cbrt, qnan_value, qnan_value),
- TEST_c_c (catanh, 0.75L, 1.25L, 0.261492138795671927078652057366532140L, 0.996825126463918666098902241310446708L);
- TEST_c_c (catanh, -2, -3, -0.14694666622552975204743278515471595L, -1.3389725222944935611241935759091443L);
-
- END (catanh, complex);
-}
+ TEST_f_f (cbrt, -0.001L, -0.1L),
+ TEST_f_f (cbrt, 8, 2),
+ TEST_f_f (cbrt, -27.0, -3.0),
+ TEST_f_f (cbrt, 0.9921875L, 0.997389022060725270579075195353955217L),
+ TEST_f_f (cbrt, 0.75L, 0.908560296416069829445605878163630251L),
+ };
static void
cbrt_test (void)
{
- errno = 0;
- FUNC(cbrt) (8);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cbrt);
-
- TEST_f_f (cbrt, 0.0, 0.0);
- TEST_f_f (cbrt, minus_zero, minus_zero);
-
- TEST_f_f (cbrt, plus_infty, plus_infty);
- TEST_f_f (cbrt, minus_infty, minus_infty);
- TEST_f_f (cbrt, qnan_value, qnan_value);
-
- TEST_f_f (cbrt, -0.001L, -0.1L);
- TEST_f_f (cbrt, 8, 2);
- TEST_f_f (cbrt, -27.0, -3.0);
- TEST_f_f (cbrt, 0.9921875L, 0.997389022060725270579075195353955217L);
- TEST_f_f (cbrt, 0.75L, 0.908560296416069829445605878163630251L);
-
- END (cbrt);
+ RUN_TEST_LOOP_f_f (cbrt, cbrt_test_data, );
+ END;
}
-static void
-ccos_test (void)
-{
- errno = 0;
- FUNC(ccos) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ccos);
-
- TEST_c_c (ccos, 0.0, 0.0, 1.0, minus_zero);
- TEST_c_c (ccos, minus_zero, 0.0, 1.0, 0.0);
- TEST_c_c (ccos, 0.0, minus_zero, 1.0, 0.0);
- TEST_c_c (ccos, minus_zero, minus_zero, 1.0, minus_zero);
+static const struct test_c_c_data ccos_test_data[] =
+ {
+ TEST_c_c (ccos, 0.0, 0.0, 1.0, minus_zero),
+ TEST_c_c (ccos, minus_zero, 0.0, 1.0, 0.0),
+ TEST_c_c (ccos, 0.0, minus_zero, 1.0, 0.0),
+ TEST_c_c (ccos, minus_zero, minus_zero, 1.0, minus_zero),
- TEST_c_c (ccos, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccos, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccos, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccos, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccos, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccos, 0.0, plus_infty, plus_infty, minus_zero);
- TEST_c_c (ccos, 0.0, minus_infty, plus_infty, 0.0);
- TEST_c_c (ccos, minus_zero, plus_infty, plus_infty, 0.0);
- TEST_c_c (ccos, minus_zero, minus_infty, plus_infty, minus_zero);
+ TEST_c_c (ccos, 0.0, plus_infty, plus_infty, minus_zero),
+ TEST_c_c (ccos, 0.0, minus_infty, plus_infty, 0.0),
+ TEST_c_c (ccos, minus_zero, plus_infty, plus_infty, 0.0),
+ TEST_c_c (ccos, minus_zero, minus_infty, plus_infty, minus_zero),
- TEST_c_c (ccos, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ccos, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ccos, 4.625, plus_infty, minus_infty, plus_infty);
- TEST_c_c (ccos, 4.625, minus_infty, minus_infty, minus_infty);
- TEST_c_c (ccos, -4.625, plus_infty, minus_infty, minus_infty);
- TEST_c_c (ccos, -4.625, minus_infty, minus_infty, plus_infty);
+ TEST_c_c (ccos, 4.625, plus_infty, minus_infty, plus_infty),
+ TEST_c_c (ccos, 4.625, minus_infty, minus_infty, minus_infty),
+ TEST_c_c (ccos, -4.625, plus_infty, minus_infty, minus_infty),
+ TEST_c_c (ccos, -4.625, minus_infty, minus_infty, plus_infty),
- TEST_c_c (ccos, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccos, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ccos, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccos, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ccos, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccos, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccos, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccos, qnan_value, plus_infty, plus_infty, qnan_value);
- TEST_c_c (ccos, qnan_value, minus_infty, plus_infty, qnan_value);
+ TEST_c_c (ccos, qnan_value, plus_infty, plus_infty, qnan_value),
+ TEST_c_c (ccos, qnan_value, minus_infty, plus_infty, qnan_value),
- TEST_c_c (ccos, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccos, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccos, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccos, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccos, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccos, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccos, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccos, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, -10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccos, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccos, -10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccos, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccos, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccos, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccos, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccos, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (ccos, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (ccos, 0.75L, 1.25L, 1.38173873063425888530729933139078645L, -1.09193013555397466170919531722024128L);
- TEST_c_c (ccos, -2, -3, -4.18962569096880723013255501961597373L, -9.10922789375533659797919726277886212L);
+ TEST_c_c (ccos, 0.75L, 1.25L, 1.38173873063425888530729933139078645L, -1.09193013555397466170919531722024128L),
+ TEST_c_c (ccos, -2, -3, -4.18962569096880723013255501961597373L, -9.10922789375533659797919726277886212L),
- TEST_c_c (ccos, 0.75, 89.5, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccos, 0.75, -89.5, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccos, -0.75, 89.5, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccos, -0.75, -89.5, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
+ TEST_c_c (ccos, 0.75, 89.5, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccos, 0.75, -89.5, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccos, -0.75, 89.5, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccos, -0.75, -89.5, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
#ifndef TEST_FLOAT
- TEST_c_c (ccos, 0.75, 710.5, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccos, 0.75, -710.5, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccos, -0.75, 710.5, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccos, -0.75, -710.5, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
+ TEST_c_c (ccos, 0.75, 710.5, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccos, 0.75, -710.5, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccos, -0.75, 710.5, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccos, -0.75, -710.5, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ccos, 0.75, 11357.25, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccos, 0.75, -11357.25, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccos, -0.75, 11357.25, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccos, -0.75, -11357.25, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
+ TEST_c_c (ccos, 0.75, 11357.25, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccos, 0.75, -11357.25, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccos, -0.75, 11357.25, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccos, -0.75, -11357.25, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
#endif
#ifdef TEST_FLOAT
- TEST_c_c (ccos, 0x1p-149, 180, plus_infty, -1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccos, 0x1p-149, 180, plus_infty, -1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (ccos, 0x1p-1074, 1440, plus_infty, -5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccos, 0x1p-1074, 1440, plus_infty, -5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ccos, 0x1p-16434L, 22730, plus_infty, -1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccos, 0x1p-16434L, 22730, plus_infty, -1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION),
#endif
- END (ccos, complex);
-}
-
+ TEST_c_c (ccos, min_subnorm_value * 0x1p120, 0x1p-120, 1.0, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ccos, 0x1p-120, min_subnorm_value * 0x1p120, 1.0, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ };
static void
-ccosh_test (void)
+ccos_test (void)
{
- errno = 0;
- FUNC(ccosh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (ccos);
+ RUN_TEST_LOOP_c_c (ccos, ccos_test_data, );
+ END_COMPLEX;
+}
- START (ccosh);
- TEST_c_c (ccosh, 0.0, 0.0, 1.0, 0.0);
- TEST_c_c (ccosh, minus_zero, 0.0, 1.0, minus_zero);
- TEST_c_c (ccosh, 0.0, minus_zero, 1.0, minus_zero);
- TEST_c_c (ccosh, minus_zero, minus_zero, 1.0, 0.0);
+static const struct test_c_c_data ccosh_test_data[] =
+ {
+ TEST_c_c (ccosh, 0.0, 0.0, 1.0, 0.0),
+ TEST_c_c (ccosh, minus_zero, 0.0, 1.0, minus_zero),
+ TEST_c_c (ccosh, 0.0, minus_zero, 1.0, minus_zero),
+ TEST_c_c (ccosh, minus_zero, minus_zero, 1.0, 0.0),
- TEST_c_c (ccosh, 0.0, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, 0.0, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccosh, 0.0, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccosh, minus_zero, plus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccosh, 0.0, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccosh, minus_zero, minus_infty, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccosh, plus_infty, 0.0, plus_infty, 0.0);
- TEST_c_c (ccosh, minus_infty, 0.0, plus_infty, minus_zero);
- TEST_c_c (ccosh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (ccosh, minus_infty, minus_zero, plus_infty, 0.0);
+ TEST_c_c (ccosh, plus_infty, 0.0, plus_infty, 0.0),
+ TEST_c_c (ccosh, minus_infty, 0.0, plus_infty, minus_zero),
+ TEST_c_c (ccosh, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (ccosh, minus_infty, minus_zero, plus_infty, 0.0),
- TEST_c_c (ccosh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ccosh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ccosh, plus_infty, 4.625, minus_infty, minus_infty);
- TEST_c_c (ccosh, minus_infty, 4.625, minus_infty, plus_infty);
- TEST_c_c (ccosh, plus_infty, -4.625, minus_infty, plus_infty);
- TEST_c_c (ccosh, minus_infty, -4.625, minus_infty, minus_infty);
+ TEST_c_c (ccosh, plus_infty, 4.625, minus_infty, minus_infty),
+ TEST_c_c (ccosh, minus_infty, 4.625, minus_infty, plus_infty),
+ TEST_c_c (ccosh, plus_infty, -4.625, minus_infty, plus_infty),
+ TEST_c_c (ccosh, minus_infty, -4.625, minus_infty, minus_infty),
- TEST_c_c (ccosh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ccosh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ccosh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ccosh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ccosh, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccosh, 0.0, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccosh, minus_zero, qnan_value, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccosh, plus_infty, qnan_value, plus_infty, qnan_value);
- TEST_c_c (ccosh, minus_infty, qnan_value, plus_infty, qnan_value);
+ TEST_c_c (ccosh, plus_infty, qnan_value, plus_infty, qnan_value),
+ TEST_c_c (ccosh, minus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (ccosh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccosh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccosh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccosh, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ccosh, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ccosh, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ccosh, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ccosh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccosh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccosh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccosh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ccosh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ccosh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ccosh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ccosh, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (ccosh, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (ccosh, 0.75L, 1.25L, 0.408242591877968807788852146397499084L, 0.780365930845853240391326216300863152L);
+ TEST_c_c (ccosh, 0.75L, 1.25L, 0.408242591877968807788852146397499084L, 0.780365930845853240391326216300863152L),
- TEST_c_c (ccosh, -2, -3, -3.72454550491532256547397070325597253L, 0.511822569987384608834463849801875634L);
+ TEST_c_c (ccosh, -2, -3, -3.72454550491532256547397070325597253L, 0.511822569987384608834463849801875634L),
- TEST_c_c (ccosh, 89.5, 0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccosh, -89.5, 0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccosh, 89.5, -0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
- TEST_c_c (ccosh, -89.5, -0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
+ TEST_c_c (ccosh, 89.5, 0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccosh, -89.5, 0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccosh, 89.5, -0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (ccosh, -89.5, -0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
#ifndef TEST_FLOAT
- TEST_c_c (ccosh, 710.5, 0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccosh, -710.5, 0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccosh, 710.5, -0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
- TEST_c_c (ccosh, -710.5, -0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
+ TEST_c_c (ccosh, 710.5, 0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccosh, -710.5, 0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccosh, 710.5, -0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (ccosh, -710.5, -0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ccosh, 11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccosh, -11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccosh, 11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (ccosh, -11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
+ TEST_c_c (ccosh, 11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccosh, -11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccosh, 11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (ccosh, -11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
#endif
#ifdef TEST_FLOAT
- TEST_c_c (ccosh, 180, 0x1p-149, plus_infty, 1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccosh, 180, 0x1p-149, plus_infty, 1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (ccosh, 1440, 0x1p-1074, plus_infty, 5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccosh, 1440, 0x1p-1074, plus_infty, 5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ccosh, 22730, 0x1p-16434L, plus_infty, 1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION);
+ TEST_c_c (ccosh, 22730, 0x1p-16434L, plus_infty, 1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION),
#endif
- END (ccosh, complex);
-}
-
+ TEST_c_c (ccosh, min_subnorm_value * 0x1p120, 0x1p-120, 1.0, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ccosh, 0x1p-120, min_subnorm_value * 0x1p120, 1.0, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ };
static void
-ceil_test (void)
+ccosh_test (void)
{
- START (ceil);
+ START (ccosh);
+ RUN_TEST_LOOP_c_c (ccosh, ccosh_test_data, );
+ END_COMPLEX;
+}
- TEST_f_f (ceil, 0.0, 0.0);
- TEST_f_f (ceil, minus_zero, minus_zero);
- TEST_f_f (ceil, plus_infty, plus_infty);
- TEST_f_f (ceil, minus_infty, minus_infty);
- TEST_f_f (ceil, qnan_value, qnan_value);
-
- TEST_f_f (ceil, M_PIl, 4.0);
- TEST_f_f (ceil, -M_PIl, -3.0);
- TEST_f_f (ceil, 0.1, 1.0);
- TEST_f_f (ceil, 0.25, 1.0);
- TEST_f_f (ceil, 0.625, 1.0);
- TEST_f_f (ceil, -0.1, minus_zero);
- TEST_f_f (ceil, -0.25, minus_zero);
- TEST_f_f (ceil, -0.625, minus_zero);
+
+static const struct test_f_f_data ceil_test_data[] =
+ {
+ TEST_f_f (ceil, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ /* Bug 15479: spurious "inexact" exception may occur. */
+ TEST_f_f (ceil, M_PIl, 4.0),
+ TEST_f_f (ceil, -M_PIl, -3.0),
+ TEST_f_f (ceil, 0.1, 1.0),
+ TEST_f_f (ceil, 0.25, 1.0),
+ TEST_f_f (ceil, 0.625, 1.0),
+ TEST_f_f (ceil, -0.1, minus_zero),
+ TEST_f_f (ceil, -0.25, minus_zero),
+ TEST_f_f (ceil, -0.625, minus_zero),
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (ceil, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (ceil, 4503599627370496.25L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370496.5L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (ceil, 4503599627370497.5L, 4503599627370498.0L);
-
- TEST_f_f (ceil, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (ceil, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (ceil, 4503599627370495.5L, 4503599627370496.0L),
+ TEST_f_f (ceil, 4503599627370496.25L, 4503599627370497.0L),
+ TEST_f_f (ceil, 4503599627370496.5L, 4503599627370497.0L),
+ TEST_f_f (ceil, 4503599627370496.75L, 4503599627370497.0L),
+ TEST_f_f (ceil, 4503599627370497.5L, 4503599627370498.0L),
+
+ TEST_f_f (ceil, -4503599627370495.5L, -4503599627370495.0L),
+ TEST_f_f (ceil, -4503599627370496.25L, -4503599627370496.0L),
+ TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L),
+ TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L),
+ TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L);
- TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L);
- TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L);
- TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L);
- TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L);
- TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L),
+ TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L),
+ TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L),
+ TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L),
+ TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L),
+ TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L),
# endif
- TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740993.5L, 9007199254740994.0L);
+ TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L),
+ TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L),
+ TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L),
+ TEST_f_f (ceil, 9007199254740992.75L, 9007199254740993.0L),
+ TEST_f_f (ceil, 9007199254740993.5L, 9007199254740994.0L),
- TEST_f_f (ceil, -9007199254740991.5L, -9007199254740991.0L);
- TEST_f_f (ceil, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L);
+ TEST_f_f (ceil, -9007199254740991.5L, -9007199254740991.0L),
+ TEST_f_f (ceil, -9007199254740992.25L, -9007199254740992.0L),
+ TEST_f_f (ceil, -9007199254740992.5L, -9007199254740992.0L),
+ TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L),
+ TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L);
- TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L);
- TEST_f_f (ceil, 9007199254740991.5000000000001L, 9007199254740992.0L);
- TEST_f_f (ceil, 9007199254740992.5000000000001L, 9007199254740993.0L);
- TEST_f_f (ceil, 9007199254740993.5000000000001L, 9007199254740994.0L);
-
- TEST_f_f (ceil, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (ceil, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L);
- TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L);
- TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L),
+ TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L),
+ TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L),
+ TEST_f_f (ceil, 9007199254740991.5000000000001L, 9007199254740992.0L),
+ TEST_f_f (ceil, 9007199254740992.5000000000001L, 9007199254740993.0L),
+ TEST_f_f (ceil, 9007199254740993.5000000000001L, 9007199254740994.0L),
+
+ TEST_f_f (ceil, -9007199254740991.0000000000001L, -9007199254740991.0L),
+ TEST_f_f (ceil, -9007199254740992.0000000000001L, -9007199254740992.0L),
+ TEST_f_f (ceil, -9007199254740993.0000000000001L, -9007199254740993.0L),
+ TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L),
+ TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L),
+ TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L),
# endif
- TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (ceil, 72057594037927937.5L, 72057594037927938.0L);
+ TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L),
+ TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L),
+ TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L),
+ TEST_f_f (ceil, 72057594037927936.75L, 72057594037927937.0L),
+ TEST_f_f (ceil, 72057594037927937.5L, 72057594037927938.0L),
- TEST_f_f (ceil, -72057594037927935.5L, -72057594037927935.0L);
- TEST_f_f (ceil, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L);
- TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L);
+ TEST_f_f (ceil, -72057594037927935.5L, -72057594037927935.0L),
+ TEST_f_f (ceil, -72057594037927936.25L, -72057594037927936.0L),
+ TEST_f_f (ceil, -72057594037927936.5L, -72057594037927936.0L),
+ TEST_f_f (ceil, -72057594037927936.75L, -72057594037927936.0L),
+ TEST_f_f (ceil, -72057594037927937.5L, -72057594037927937.0L),
- TEST_f_f (ceil, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.25L, 10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L);
- TEST_f_f (ceil, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L);
+ TEST_f_f (ceil, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L),
+ TEST_f_f (ceil, 10141204801825835211973625643008.25L, 10141204801825835211973625643009.0L),
+ TEST_f_f (ceil, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L),
+ TEST_f_f (ceil, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L),
+ TEST_f_f (ceil, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L),
#endif
-
- END (ceil);
-}
-
+ };
static void
-cexp_test (void)
+ceil_test (void)
{
- errno = 0;
- FUNC(cexp) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (ceil);
+ RUN_TEST_LOOP_f_f (ceil, ceil_test_data, );
+ END;
+}
- START (cexp);
- TEST_c_c (cexp, plus_zero, plus_zero, 1, 0.0);
- TEST_c_c (cexp, minus_zero, plus_zero, 1, 0.0);
- TEST_c_c (cexp, plus_zero, minus_zero, 1, minus_zero);
- TEST_c_c (cexp, minus_zero, minus_zero, 1, minus_zero);
+static const struct test_c_c_data cexp_test_data[] =
+ {
+ TEST_c_c (cexp, plus_zero, plus_zero, 1, 0.0),
+ TEST_c_c (cexp, minus_zero, plus_zero, 1, 0.0),
+ TEST_c_c (cexp, plus_zero, minus_zero, 1, minus_zero),
+ TEST_c_c (cexp, minus_zero, minus_zero, 1, minus_zero),
- TEST_c_c (cexp, plus_infty, plus_zero, plus_infty, 0.0);
- TEST_c_c (cexp, plus_infty, minus_zero, plus_infty, minus_zero);
+ TEST_c_c (cexp, plus_infty, plus_zero, plus_infty, 0.0),
+ TEST_c_c (cexp, plus_infty, minus_zero, plus_infty, minus_zero),
- TEST_c_c (cexp, minus_infty, plus_zero, 0.0, 0.0);
- TEST_c_c (cexp, minus_infty, minus_zero, 0.0, minus_zero);
+ TEST_c_c (cexp, minus_infty, plus_zero, 0.0, 0.0),
+ TEST_c_c (cexp, minus_infty, minus_zero, 0.0, minus_zero),
- TEST_c_c (cexp, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (cexp, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (cexp, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (cexp, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (cexp, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (cexp, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (cexp, 100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, -100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (cexp, 100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (cexp, -100.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (cexp, 100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (cexp, -100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (cexp, 100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (cexp, -100.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (cexp, minus_infty, 2.0, minus_zero, 0.0);
- TEST_c_c (cexp, minus_infty, 4.0, minus_zero, minus_zero);
- TEST_c_c (cexp, plus_infty, 2.0, minus_infty, plus_infty);
- TEST_c_c (cexp, plus_infty, 4.0, minus_infty, minus_infty);
+ TEST_c_c (cexp, minus_infty, 2.0, minus_zero, 0.0),
+ TEST_c_c (cexp, minus_infty, 4.0, minus_zero, minus_zero),
+ TEST_c_c (cexp, plus_infty, 2.0, minus_infty, plus_infty),
+ TEST_c_c (cexp, plus_infty, 4.0, minus_infty, minus_infty),
- TEST_c_c (cexp, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cexp, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (cexp, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (cexp, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (cexp, minus_infty, plus_infty, 0.0, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (cexp, minus_infty, minus_infty, 0.0, minus_zero, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (cexp, minus_infty, plus_infty, 0.0, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (cexp, minus_infty, minus_infty, 0.0, minus_zero, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (cexp, minus_infty, qnan_value, 0, 0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (cexp, minus_infty, qnan_value, 0, 0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (cexp, plus_infty, qnan_value, plus_infty, qnan_value);
+ TEST_c_c (cexp, plus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (cexp, qnan_value, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, qnan_value, 1.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (cexp, qnan_value, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cexp, qnan_value, 1.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (cexp, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (cexp, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (cexp, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cexp, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cexp, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cexp, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (cexp, 0.75L, 1.25L, 0.667537446429131586942201977015932112L, 2.00900045494094876258347228145863909L);
- TEST_c_c (cexp, -2.0, -3.0, -0.13398091492954261346140525546115575L, -0.019098516261135196432576240858800925L);
+ TEST_c_c (cexp, 0.75L, 1.25L, 0.667537446429131586942201977015932112L, 2.00900045494094876258347228145863909L),
+ TEST_c_c (cexp, -2.0, -3.0, -0.13398091492954261346140525546115575L, -0.019098516261135196432576240858800925L),
- TEST_c_c (cexp, 0, 0x1p65, 0.99888622066058013610642172179340364209972L, -0.047183876212354673805106149805700013943218L);
- TEST_c_c (cexp, 0, -0x1p65, 0.99888622066058013610642172179340364209972L, 0.047183876212354673805106149805700013943218L);
- TEST_c_c (cexp, 50, 0x1p127, 4.053997150228616856622417636046265337193e21L, 3.232070315463388524466674772633810238819e21L);
+ TEST_c_c (cexp, 0, 0x1p65, 0.99888622066058013610642172179340364209972L, -0.047183876212354673805106149805700013943218L),
+ TEST_c_c (cexp, 0, -0x1p65, 0.99888622066058013610642172179340364209972L, 0.047183876212354673805106149805700013943218L),
+ TEST_c_c (cexp, 50, 0x1p127, 4.053997150228616856622417636046265337193e21L, 3.232070315463388524466674772633810238819e21L),
#ifndef TEST_FLOAT
- TEST_c_c (cexp, 0, 1e22, 0.5232147853951389454975944733847094921409L, -0.8522008497671888017727058937530293682618L);
- TEST_c_c (cexp, 0, 0x1p1023, -0.826369834614147994500785680811743734805L, 0.5631277798508840134529434079444683477104L);
- TEST_c_c (cexp, 500, 0x1p1023, -1.159886268932754433233243794561351783426e217L, 7.904017694554466595359379965081774849708e216L);
+ TEST_c_c (cexp, 0, 1e22, 0.5232147853951389454975944733847094921409L, -0.8522008497671888017727058937530293682618L),
+ TEST_c_c (cexp, 0, 0x1p1023, -0.826369834614147994500785680811743734805L, 0.5631277798508840134529434079444683477104L),
+ TEST_c_c (cexp, 500, 0x1p1023, -1.159886268932754433233243794561351783426e217L, 7.904017694554466595359379965081774849708e216L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (cexp, 0, 0x1p16383L, 0.9210843909921906206874509522505756251609L, 0.3893629985894208126948115852610595405563L);
- TEST_c_c (cexp, -10000, 0x1p16383L, 1.045876464564882298442774542991176546722e-4343L, 4.421154026488516836023811173959413420548e-4344L);
+ TEST_c_c (cexp, 0, 0x1p16383L, 0.9210843909921906206874509522505756251609L, 0.3893629985894208126948115852610595405563L),
+ TEST_c_c (cexp, -10000, 0x1p16383L, 1.045876464564882298442774542991176546722e-4343L, 4.421154026488516836023811173959413420548e-4344L),
#endif
- TEST_c_c (cexp, 88.75, 0.75, 2.558360358486542817001900410314204322891e38L, 2.383359453227311447654736314679677655100e38L);
- TEST_c_c (cexp, -95, 0.75, 4.039714446238306526889476684000081624047e-42L, 3.763383677300535390271646960780570275931e-42L, UNDERFLOW_EXCEPTION_FLOAT);
+ TEST_c_c (cexp, 88.75, 0.75, 2.558360358486542817001900410314204322891e38L, 2.383359453227311447654736314679677655100e38L),
+ TEST_c_c (cexp, -95, 0.75, 4.039714446238306526889476684000081624047e-42L, 3.763383677300535390271646960780570275931e-42L, UNDERFLOW_EXCEPTION_FLOAT),
#ifndef TEST_FLOAT
- TEST_c_c (cexp, 709.8125, 0.75, 1.355121963080879535248452862759108365762e308L, 1.262426823598609432507811340856186873507e308L);
- TEST_c_c (cexp, -720, 0.75, 1.486960657116368433685753325516638551722e-313L, 1.385247284245720590980701226843815229385e-313L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (cexp, 709.8125, 0.75, 1.355121963080879535248452862759108365762e308L, 1.262426823598609432507811340856186873507e308L),
+ TEST_c_c (cexp, -720, 0.75, 1.486960657116368433685753325516638551722e-313L, 1.385247284245720590980701226843815229385e-313L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (cexp, 11356.5625, 0.75, 9.052188470850960144814815984311663764287e4931L, 8.432986734191301036267148978260970230200e4931L);
- TEST_c_c (cexp, -11370, 0.75, 8.631121063182211587489310508568170739592e-4939L, 8.040721827809267291427062346918413482824e-4939L, UNDERFLOW_EXCEPTION);
+ TEST_c_c (cexp, 11356.5625, 0.75, 9.052188470850960144814815984311663764287e4931L, 8.432986734191301036267148978260970230200e4931L),
+ TEST_c_c (cexp, -11370, 0.75, 8.631121063182211587489310508568170739592e-4939L, 8.040721827809267291427062346918413482824e-4939L, UNDERFLOW_EXCEPTION),
#endif
#ifdef TEST_FLOAT
- TEST_c_c (cexp, 180, 0x1p-149, plus_infty, 2.087071793345235105931967606907855310664e33L, OVERFLOW_EXCEPTION);
+ TEST_c_c (cexp, 180, 0x1p-149, plus_infty, 2.087071793345235105931967606907855310664e33L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (cexp, 1440, 0x1p-1074, plus_infty, 1.196295853897226111293303155636183216483e302L, OVERFLOW_EXCEPTION);
+ TEST_c_c (cexp, 1440, 0x1p-1074, plus_infty, 1.196295853897226111293303155636183216483e302L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (cexp, 22730, 0x1p-16434L, plus_infty, 2.435706297811211974162115164702304105374e4924L, OVERFLOW_EXCEPTION);
+ TEST_c_c (cexp, 22730, 0x1p-16434L, plus_infty, 2.435706297811211974162115164702304105374e4924L, OVERFLOW_EXCEPTION),
#endif
- TEST_c_c (cexp, 1e6, 0, plus_infty, 0, OVERFLOW_EXCEPTION);
- TEST_c_c (cexp, 1e6, min_value, plus_infty, plus_infty, OVERFLOW_EXCEPTION);
- TEST_c_c (cexp, 1e6, -min_value, plus_infty, minus_infty, OVERFLOW_EXCEPTION);
+ TEST_c_c (cexp, 1e6, 0, plus_infty, 0, OVERFLOW_EXCEPTION),
+ TEST_c_c (cexp, 1e6, min_value, plus_infty, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_c_c (cexp, 1e6, -min_value, plus_infty, minus_infty, OVERFLOW_EXCEPTION),
- END (cexp, complex);
+ TEST_c_c (cexp, min_value, min_subnorm_value, 1.0, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_c_c (cexp, min_value, -min_subnorm_value, 1.0, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ };
+
+static void
+cexp_test (void)
+{
+ START (cexp);
+ RUN_TEST_LOOP_c_c (cexp, cexp_test_data, );
+ END_COMPLEX;
}
+static const struct test_c_f_data cimag_test_data[] =
+ {
+ TEST_c_f (cimag, 1.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 2.0, 3.0, 3.0, NO_INEXACT_EXCEPTION),
+ };
+
static void
cimag_test (void)
{
START (cimag);
- TEST_c_f (cimag, 1.0, 0.0, 0.0);
- TEST_c_f (cimag, 1.0, minus_zero, minus_zero);
- TEST_c_f (cimag, 1.0, qnan_value, qnan_value);
- TEST_c_f (cimag, qnan_value, qnan_value, qnan_value);
- TEST_c_f (cimag, 1.0, plus_infty, plus_infty);
- TEST_c_f (cimag, 1.0, minus_infty, minus_infty);
- TEST_c_f (cimag, 2.0, 3.0, 3.0);
-
- END (cimag);
+ RUN_TEST_LOOP_c_f (cimag, cimag_test_data, );
+ END;
}
-static void
-clog_test (void)
-{
- errno = 0;
- FUNC(clog) (BUILD_COMPLEX (-2, -3));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (clog);
-
- TEST_c_c (clog, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog, minus_zero, minus_zero, minus_infty, -M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
+static const struct test_c_c_data clog_test_data[] =
+ {
+ TEST_c_c (clog, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (clog, minus_zero, minus_zero, minus_infty, -M_PIl, DIVIDE_BY_ZERO_EXCEPTION),
- TEST_c_c (clog, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION);
+ TEST_c_c (clog, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (clog, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION),
- TEST_c_c (clog, minus_infty, plus_infty, plus_infty, M_PI_34l);
- TEST_c_c (clog, minus_infty, minus_infty, plus_infty, -M_PI_34l);
+ TEST_c_c (clog, minus_infty, plus_infty, plus_infty, M_PI_34l),
+ TEST_c_c (clog, minus_infty, minus_infty, plus_infty, -M_PI_34l),
- TEST_c_c (clog, plus_infty, plus_infty, plus_infty, M_PI_4l);
- TEST_c_c (clog, plus_infty, minus_infty, plus_infty, -M_PI_4l);
+ TEST_c_c (clog, plus_infty, plus_infty, plus_infty, M_PI_4l),
+ TEST_c_c (clog, plus_infty, minus_infty, plus_infty, -M_PI_4l),
- TEST_c_c (clog, 0, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, 3, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, minus_zero, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, -3, plus_infty, plus_infty, M_PI_2l);
- TEST_c_c (clog, 0, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, 3, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, minus_zero, minus_infty, plus_infty, -M_PI_2l);
- TEST_c_c (clog, -3, minus_infty, plus_infty, -M_PI_2l);
+ TEST_c_c (clog, 0, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (clog, 3, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (clog, minus_zero, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (clog, -3, plus_infty, plus_infty, M_PI_2l),
+ TEST_c_c (clog, 0, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (clog, 3, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (clog, minus_zero, minus_infty, plus_infty, -M_PI_2l),
+ TEST_c_c (clog, -3, minus_infty, plus_infty, -M_PI_2l),
- TEST_c_c (clog, minus_infty, 0, plus_infty, M_PIl);
- TEST_c_c (clog, minus_infty, 1, plus_infty, M_PIl);
- TEST_c_c (clog, minus_infty, minus_zero, plus_infty, -M_PIl);
- TEST_c_c (clog, minus_infty, -1, plus_infty, -M_PIl);
+ TEST_c_c (clog, minus_infty, 0, plus_infty, M_PIl),
+ TEST_c_c (clog, minus_infty, 1, plus_infty, M_PIl),
+ TEST_c_c (clog, minus_infty, minus_zero, plus_infty, -M_PIl),
+ TEST_c_c (clog, minus_infty, -1, plus_infty, -M_PIl),
- TEST_c_c (clog, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (clog, plus_infty, 1, plus_infty, 0.0);
- TEST_c_c (clog, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (clog, plus_infty, -1, plus_infty, minus_zero);
+ TEST_c_c (clog, plus_infty, 0, plus_infty, 0.0),
+ TEST_c_c (clog, plus_infty, 1, plus_infty, 0.0),
+ TEST_c_c (clog, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (clog, plus_infty, -1, plus_infty, minus_zero),
- TEST_c_c (clog, plus_infty, qnan_value, plus_infty, qnan_value);
- TEST_c_c (clog, minus_infty, qnan_value, plus_infty, qnan_value);
+ TEST_c_c (clog, plus_infty, qnan_value, plus_infty, qnan_value),
+ TEST_c_c (clog, minus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (clog, qnan_value, plus_infty, plus_infty, qnan_value);
- TEST_c_c (clog, qnan_value, minus_infty, plus_infty, qnan_value);
+ TEST_c_c (clog, qnan_value, plus_infty, plus_infty, qnan_value),
+ TEST_c_c (clog, qnan_value, minus_infty, plus_infty, qnan_value),
- TEST_c_c (clog, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (clog, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (clog, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (clog, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (clog, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (clog, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (clog, 0.75L, 1.25L, 0.376885901188190075998919126749298416L, 1.03037682652431246378774332703115153L);
- TEST_c_c (clog, -2, -3, 1.2824746787307683680267437207826593L, -2.1587989303424641704769327722648368L);
+ TEST_c_c (clog, 0.75L, 1.25L, 0.376885901188190075998919126749298416L, 1.03037682652431246378774332703115153L),
+ TEST_c_c (clog, -2, -3, 1.2824746787307683680267437207826593L, -2.1587989303424641704769327722648368L),
- TEST_c_c (clog, 0x1.fffffep+127L, 0x1.fffffep+127L, 89.06941264234832570836679262104313101776L, M_PI_4l);
- TEST_c_c (clog, 0x1.fffffep+127L, 1.0L, 88.72283905206835305365817656031404273372L, 2.938736052218037251011746307725933020145e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (clog, 0x1p-149L, 0x1p-149L, -102.9323563131518784484589700365392203592L, M_PI_4l);
- TEST_c_c (clog, 0x1p-147L, 0x1p-147L, -101.5460619520319878296245057936228672231L, M_PI_4l);
+ TEST_c_c (clog, 0x1.fffffep+127L, 0x1.fffffep+127L, 89.06941264234832570836679262104313101776L, M_PI_4l),
+ TEST_c_c (clog, 0x1.fffffep+127L, 1.0L, 88.72283905206835305365817656031404273372L, 2.938736052218037251011746307725933020145e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (clog, 0x1p-149L, 0x1p-149L, -102.9323563131518784484589700365392203592L, M_PI_4l),
+ TEST_c_c (clog, 0x1p-147L, 0x1p-147L, -101.5460619520319878296245057936228672231L, M_PI_4l),
#ifndef TEST_FLOAT
- TEST_c_c (clog, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 710.1292864836639693869320059713862337880L, M_PI_4l);
- TEST_c_c (clog, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 709.8942846690411016323109979483151967689L, 0.4636476090008061606231772164674799632783L);
- TEST_c_c (clog, 0x1p-1074L, 0x1p-1074L, -744.0934983311012896593986823853525458290L, M_PI_4l);
- TEST_c_c (clog, 0x1p-1073L, 0x1p-1073L, -743.4003511505413443499814502638943692610L, M_PI_4l);
+ TEST_c_c (clog, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 710.1292864836639693869320059713862337880L, M_PI_4l),
+ TEST_c_c (clog, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 709.8942846690411016323109979483151967689L, 0.4636476090008061606231772164674799632783L),
+ TEST_c_c (clog, 0x1p-1074L, 0x1p-1074L, -744.0934983311012896593986823853525458290L, M_PI_4l),
+ TEST_c_c (clog, 0x1p-1073L, 0x1p-1073L, -743.4003511505413443499814502638943692610L, M_PI_4l),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog, 0x1.fp+16383L, 0x1.fp+16383L, 11356.83823118610934184548269774874545400L, M_PI_4l);
- TEST_c_c (clog, 0x1.fp+16383L, 0x1p+16383L, 11356.60974243783798653123798337822335902L, 0.4764674194737066993385333770295162295856L);
- TEST_c_c (clog, 0x1p-16440L, 0x1p-16441L, -11395.22807662984378194141292922726786191L, 0.4636476090008061162142562314612144020285L);
+ TEST_c_c (clog, 0x1.fp+16383L, 0x1.fp+16383L, 11356.83823118610934184548269774874545400L, M_PI_4l),
+ TEST_c_c (clog, 0x1.fp+16383L, 0x1p+16383L, 11356.60974243783798653123798337822335902L, 0.4764674194737066993385333770295162295856L),
+ TEST_c_c (clog, 0x1p-16440L, 0x1p-16441L, -11395.22807662984378194141292922726786191L, 0.4636476090008061162142562314612144020285L),
#endif
- TEST_c_c (clog, 0x1p-149L, 0x1.fp+127L, 88.69109041335841930424871526389807508374L, M_PI_2l);
- TEST_c_c (clog, -0x1p-149L, 0x1.fp+127L, 88.69109041335841930424871526389807508374L, M_PI_2l);
- TEST_c_c (clog, 0x1p-149L, -0x1.fp+127L, 88.69109041335841930424871526389807508374L, -M_PI_2l);
- TEST_c_c (clog, -0x1p-149L, -0x1.fp+127L, 88.69109041335841930424871526389807508374L, -M_PI_2l);
- TEST_c_c (clog, -0x1.fp+127L, 0x1p-149L, 88.69109041335841930424871526389807508374L, M_PIl);
- TEST_c_c (clog, -0x1.fp+127L, -0x1p-149L, 88.69109041335841930424871526389807508374L, -M_PIl);
+ TEST_c_c (clog, 0x1p-149L, 0x1.fp+127L, 88.69109041335841930424871526389807508374L, M_PI_2l),
+ TEST_c_c (clog, -0x1p-149L, 0x1.fp+127L, 88.69109041335841930424871526389807508374L, M_PI_2l),
+ TEST_c_c (clog, 0x1p-149L, -0x1.fp+127L, 88.69109041335841930424871526389807508374L, -M_PI_2l),
+ TEST_c_c (clog, -0x1p-149L, -0x1.fp+127L, 88.69109041335841930424871526389807508374L, -M_PI_2l),
+ TEST_c_c (clog, -0x1.fp+127L, 0x1p-149L, 88.69109041335841930424871526389807508374L, M_PIl),
+ TEST_c_c (clog, -0x1.fp+127L, -0x1p-149L, 88.69109041335841930424871526389807508374L, -M_PIl),
#ifdef TEST_FLOAT
- TEST_c_c (clog, 0x1.fp+127L, 0x1p-149L, 88.69109041335841930424871526389807508374L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog, 0x1.fp+127L, -0x1p-149L, 88.69109041335841930424871526389807508374L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog, 0x1.fp+127L, 0x1p-149L, 88.69109041335841930424871526389807508374L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog, 0x1.fp+127L, -0x1p-149L, 88.69109041335841930424871526389807508374L, minus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifndef TEST_FLOAT
- TEST_c_c (clog, 0x1p-1074L, 0x1.fp+1023L, 709.7509641950694165420886960904242800794L, M_PI_2l);
- TEST_c_c (clog, -0x1p-1074L, 0x1.fp+1023L, 709.7509641950694165420886960904242800794L, M_PI_2l);
- TEST_c_c (clog, 0x1p-1074L, -0x1.fp+1023L, 709.7509641950694165420886960904242800794L, -M_PI_2l);
- TEST_c_c (clog, -0x1p-1074L, -0x1.fp+1023L, 709.7509641950694165420886960904242800794L, -M_PI_2l);
- TEST_c_c (clog, -0x1.fp+1023L, 0x1p-1074L, 709.7509641950694165420886960904242800794L, M_PIl);
- TEST_c_c (clog, -0x1.fp+1023L, -0x1p-1074L, 709.7509641950694165420886960904242800794L, -M_PIl);
+ TEST_c_c (clog, 0x1p-1074L, 0x1.fp+1023L, 709.7509641950694165420886960904242800794L, M_PI_2l),
+ TEST_c_c (clog, -0x1p-1074L, 0x1.fp+1023L, 709.7509641950694165420886960904242800794L, M_PI_2l),
+ TEST_c_c (clog, 0x1p-1074L, -0x1.fp+1023L, 709.7509641950694165420886960904242800794L, -M_PI_2l),
+ TEST_c_c (clog, -0x1p-1074L, -0x1.fp+1023L, 709.7509641950694165420886960904242800794L, -M_PI_2l),
+ TEST_c_c (clog, -0x1.fp+1023L, 0x1p-1074L, 709.7509641950694165420886960904242800794L, M_PIl),
+ TEST_c_c (clog, -0x1.fp+1023L, -0x1p-1074L, 709.7509641950694165420886960904242800794L, -M_PIl),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (clog, 0x1.fp+1023L, 0x1p-1074L, 709.7509641950694165420886960904242800794L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog, 0x1.fp+1023L, -0x1p-1074L, 709.7509641950694165420886960904242800794L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog, 0x1.fp+1023L, 0x1p-1074L, 709.7509641950694165420886960904242800794L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog, 0x1.fp+1023L, -0x1p-1074L, 709.7509641950694165420886960904242800794L, minus_zero, UNDERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog, 0x1p-16445L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l);
- TEST_c_c (clog, -0x1p-16445L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l);
- TEST_c_c (clog, 0x1p-16445L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l);
- TEST_c_c (clog, -0x1p-16445L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l);
- TEST_c_c (clog, -0x1.fp+16383L, 0x1p-16445L, 11356.49165759582936919077408168801636572L, M_PIl);
- TEST_c_c (clog, -0x1.fp+16383L, -0x1p-16445L, 11356.49165759582936919077408168801636572L, -M_PIl);
- TEST_c_c (clog, 0x1.fp+16383L, 0x1p-16445L, 11356.49165759582936919077408168801636572L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog, 0x1.fp+16383L, -0x1p-16445L, 11356.49165759582936919077408168801636572L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog, 0x1p-16445L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l),
+ TEST_c_c (clog, -0x1p-16445L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l),
+ TEST_c_c (clog, 0x1p-16445L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l),
+ TEST_c_c (clog, -0x1p-16445L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l),
+ TEST_c_c (clog, -0x1.fp+16383L, 0x1p-16445L, 11356.49165759582936919077408168801636572L, M_PIl),
+ TEST_c_c (clog, -0x1.fp+16383L, -0x1p-16445L, 11356.49165759582936919077408168801636572L, -M_PIl),
+ TEST_c_c (clog, 0x1.fp+16383L, 0x1p-16445L, 11356.49165759582936919077408168801636572L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog, 0x1.fp+16383L, -0x1p-16445L, 11356.49165759582936919077408168801636572L, minus_zero, UNDERFLOW_EXCEPTION),
# if LDBL_MANT_DIG >= 113
- TEST_c_c (clog, 0x1p-16494L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l);
- TEST_c_c (clog, -0x1p-16494L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l);
- TEST_c_c (clog, 0x1p-16494L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l);
- TEST_c_c (clog, -0x1p-16494L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l);
- TEST_c_c (clog, -0x1.fp+16383L, 0x1p-16494L, 11356.49165759582936919077408168801636572L, M_PIl);
- TEST_c_c (clog, -0x1.fp+16383L, -0x1p-16494L, 11356.49165759582936919077408168801636572L, -M_PIl);
- TEST_c_c (clog, 0x1.fp+16383L, 0x1p-16494L, 11356.49165759582936919077408168801636572L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog, 0x1.fp+16383L, -0x1p-16494L, 11356.49165759582936919077408168801636572L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog, 0x1p-16494L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l),
+ TEST_c_c (clog, -0x1p-16494L, 0x1.fp+16383L, 11356.49165759582936919077408168801636572L, M_PI_2l),
+ TEST_c_c (clog, 0x1p-16494L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l),
+ TEST_c_c (clog, -0x1p-16494L, -0x1.fp+16383L, 11356.49165759582936919077408168801636572L, -M_PI_2l),
+ TEST_c_c (clog, -0x1.fp+16383L, 0x1p-16494L, 11356.49165759582936919077408168801636572L, M_PIl),
+ TEST_c_c (clog, -0x1.fp+16383L, -0x1p-16494L, 11356.49165759582936919077408168801636572L, -M_PIl),
+ TEST_c_c (clog, 0x1.fp+16383L, 0x1p-16494L, 11356.49165759582936919077408168801636572L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog, 0x1.fp+16383L, -0x1p-16494L, 11356.49165759582936919077408168801636572L, minus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_c_c (clog, 1.0L, 0x1.234566p-10L, 6.172834701221959432440126967147726538097e-7L, 1.111110564353742042376451655136933182201e-3L);
- TEST_c_c (clog, -1.0L, 0x1.234566p-20L, 5.886877547844618300918562490463748605537e-13L, 3.141591568520436206990380699322226378452L);
- TEST_c_c (clog, 0x1.234566p-30L, 1.0L, 5.614163921211322622623353961365728040115e-19L, 1.570796325735258575254858696548386439740L);
- TEST_c_c (clog, -0x1.234566p-40L, -1.0L, 5.354083939753840089583620652120903838944e-25L, -1.570796326795931422008642456283782656359L);
- TEST_c_c (clog, 0x1.234566p-50L, 1.0L, 5.106052341226425256332038420428899201070e-31L, 1.570796326794895608681734464330528755366L);
- TEST_c_c (clog, 0x1.234566p-60L, 1.0L, 4.869510976053643471080816669875627875933e-37L, 1.570796326794896618244456860363082279319L);
- TEST_c_c (clog, 0x1p-62L, 1.0L, 2.350988701644575015937473074444491355582e-38L, 1.570796326794896619014481257142650555297L);
- TEST_c_c (clog, 0x1p-63L, 1.0L, 5.877471754111437539843682686111228389059e-39L, 1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (clog, 0x1p-64L, 1.0L, 1.469367938527859384960920671527807097271e-39L, 1.570796326794896619177111583015476220398L, UNDERFLOW_EXCEPTION_FLOAT);
+ TEST_c_c (clog, 1.0L, 0x1.234566p-10L, 6.172834701221959432440126967147726538097e-7L, 1.111110564353742042376451655136933182201e-3L),
+ TEST_c_c (clog, -1.0L, 0x1.234566p-20L, 5.886877547844618300918562490463748605537e-13L, 3.141591568520436206990380699322226378452L),
+ TEST_c_c (clog, 0x1.234566p-30L, 1.0L, 5.614163921211322622623353961365728040115e-19L, 1.570796325735258575254858696548386439740L),
+ TEST_c_c (clog, -0x1.234566p-40L, -1.0L, 5.354083939753840089583620652120903838944e-25L, -1.570796326795931422008642456283782656359L),
+ TEST_c_c (clog, 0x1.234566p-50L, 1.0L, 5.106052341226425256332038420428899201070e-31L, 1.570796326794895608681734464330528755366L),
+ TEST_c_c (clog, 0x1.234566p-60L, 1.0L, 4.869510976053643471080816669875627875933e-37L, 1.570796326794896618244456860363082279319L),
+ TEST_c_c (clog, 0x1p-62L, 1.0L, 2.350988701644575015937473074444491355582e-38L, 1.570796326794896619014481257142650555297L),
+ TEST_c_c (clog, 0x1p-63L, 1.0L, 5.877471754111437539843682686111228389059e-39L, 1.570796326794896619122901474391200998698L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (clog, 0x1p-64L, 1.0L, 1.469367938527859384960920671527807097271e-39L, 1.570796326794896619177111583015476220398L, UNDERFLOW_EXCEPTION_FLOAT),
#ifndef TEST_FLOAT
- TEST_c_c (clog, 0x1p-510L, 1.0L, 4.450147717014402766180465434664808128438e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (clog, 0x1p-511L, 1.0L, 1.112536929253600691545116358666202032110e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (clog, 0x1p-512L, 1.0L, 2.781342323134001728862790896665505080274e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (clog, 0x1p-510L, 1.0L, 4.450147717014402766180465434664808128438e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (clog, 0x1p-511L, 1.0L, 1.112536929253600691545116358666202032110e-308L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (clog, 0x1p-512L, 1.0L, 2.781342323134001728862790896665505080274e-309L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog, 0x1p-8190L, 1.0L, 6.724206286224187012525355634643505205196e-4932L, 1.570796326794896619231321691639751442099L);
- TEST_c_c (clog, 0x1p-8191L, 1.0L, 1.681051571556046753131338908660876301299e-4932L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog, 0x1p-8192L, 1.0L, 4.202628928890116882828347271652190753248e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog, 0x1p-8190L, 1.0L, 6.724206286224187012525355634643505205196e-4932L, 1.570796326794896619231321691639751442099L),
+ TEST_c_c (clog, 0x1p-8191L, 1.0L, 1.681051571556046753131338908660876301299e-4932L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog, 0x1p-8192L, 1.0L, 4.202628928890116882828347271652190753248e-4933L, 1.570796326794896619231321691639751442099L, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (clog, 0x1.000566p0L, 0x1.234p-10L, 8.298731898331237038231468223024422855654e-5L, 1.110938609507128729312743251313024793990e-3L);
- TEST_c_c (clog, 0x1.000566p0L, 0x1.234p-100L, 8.237022655933121125560939513260027133767e-5L, 8.974094312218060110948251664314290484113e-31L);
+ TEST_c_c (clog, 0x1.000566p0L, 0x1.234p-10L, 8.298731898331237038231468223024422855654e-5L, 1.110938609507128729312743251313024793990e-3L),
+ TEST_c_c (clog, 0x1.000566p0L, 0x1.234p-100L, 8.237022655933121125560939513260027133767e-5L, 8.974094312218060110948251664314290484113e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (clog, -0x1.0000000123456p0L, 0x1.2345678p-30L, 2.649094282537168795982991778475646793277e-10L, 3.141592652530155111500161671113150737892L);
- TEST_c_c (clog, -0x1.0000000123456p0L, 0x1.2345678p-1000L, 2.649094276923003995420209214900915462737e-10L, 3.141592653589793238462643383279502884197L);
+ TEST_c_c (clog, -0x1.0000000123456p0L, 0x1.2345678p-30L, 2.649094282537168795982991778475646793277e-10L, 3.141592652530155111500161671113150737892L),
+ TEST_c_c (clog, -0x1.0000000123456p0L, 0x1.2345678p-1000L, 2.649094276923003995420209214900915462737e-10L, 3.141592653589793238462643383279502884197L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (clog, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-60L, 9.868649107778739757272772275265050767867e-19L, 9.868649106423871142816660980898339912137e-19L);
- TEST_c_c (clog, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-1000L, 9.868649107778739752403260515979017248596e-19L, 1.061846605795612822522063052130030717368e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
+ TEST_c_c (clog, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-60L, 9.868649107778739757272772275265050767867e-19L, 9.868649106423871142816660980898339912137e-19L),
+ TEST_c_c (clog, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-1000L, 9.868649107778739752403260515979017248596e-19L, 1.061846605795612822522063052130030717368e-301L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
#endif
- TEST_c_c (clog, 0x0.ffffffp0L, 0x0.ffffffp-100L, -5.960464655174753498633255797994360530379e-8L, 7.888609052210118054117285652827862296732e-31L);
+ TEST_c_c (clog, 0x0.ffffffp0L, 0x0.ffffffp-100L, -5.960464655174753498633255797994360530379e-8L, 7.888609052210118054117285652827862296732e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (clog, 0x0.fffffffffffff8p0L, 0x0.fffffffffffff8p-1000L, -1.110223024625156602053389888482372171810e-16L, 9.332636185032188789900895447238171696171e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
+ TEST_c_c (clog, 0x0.fffffffffffff8p0L, 0x0.fffffffffffff8p-1000L, -1.110223024625156602053389888482372171810e-16L, 9.332636185032188789900895447238171696171e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (clog, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp-15000L, -5.421010862427522170184200798202494495630e-20L, 3.548665303440282824232502561095699343814e-4516L);
-#endif
-
- TEST_c_c (clog, 0x1a6p-10L, 0x3a5p-10L, -1.4305135209763571252847059962654228661815e-06L, 1.1460277178115757370775644871674016684074L);
- TEST_c_c (clog, 0xf2p-10L, 0x3e3p-10L, 6.1988446308070710970664736815277450078106e-06L, 1.3322126499153926210226335249558203898460L);
- TEST_c_c (clog, 0x4d4ep-15L, 0x6605p-15L, -1.6298145321400412054744424587143483169412e-08L, 0.9223574537155056772124552172295398141249L);
- TEST_c_c (clog, 0x2818p-15L, 0x798fp-15L, 1.5366822245016167178749091974664853785194e-08L, 1.2522014929038946066987318471922169174157L);
- TEST_c_c (clog, 0x9b57bp-20L, 0xcb7b4p-20L, -3.9563019528687610863490232935890272740908e-11L, 0.9187593477446338910857133065497364950682L);
- TEST_c_c (clog, 0x2731p-20L, 0xfffd0p-20L, 4.4110493034041283943115971658295280288115e-11L, 1.5612279663766352262688735061954290528838L);
- TEST_c_c (clog, 0x2ede88p-23L, 0x771c3fp-23L, -4.4764192352906350039050902870893173560494e-13L, 1.1959106857549200806818600493552847793381L);
- TEST_c_c (clog, 0x11682p-23L, 0x7ffed1p-23L, 1.1723955140027907954461000991619077811832e-12L, 1.5622968405332756349813737986164832897108L);
- TEST_c_c (clog, 0xa1f2c1p-24L, 0xc643aep-24L, -1.0480505352462576151523512837107080269981e-13L, 0.8858771987699967480545613322309315260313L);
- TEST_c_c (clog, 0x659feap-24L, 0xeaf6f9p-24L, 3.7303493627403868207597214252239749960738e-14L, 1.1625816408046866464773042283673653469061L);
-#ifndef TEST_FLOAT
- TEST_c_c (clog, 0x4447d7175p-35L, 0x6c445e00ap-35L, -1.4823076576950255933915367361099865652625e-20L, 1.0081311552703893116404606212158840190615L);
- TEST_c_c (clog, 0x2dd46725bp-35L, 0x7783a1284p-35L, 4.4469229730850767799109418892826021157328e-20L, 1.2046235979300843056806465045930070146351L);
- TEST_c_c (clog, 0x164c74eea876p-45L, 0x16f393482f77p-45L, -3.0292258760486853327810377824479932031744e-26L, 0.7998237934177411746093524982030330293980L);
- TEST_c_c (clog, 0xfe961079616p-45L, 0x1bc37e09e6d1p-45L, 5.3718272201930019901317065495843842735179e-26L, 1.0503831592447830576186444373011142397404L);
- TEST_c_c (clog, 0xa4722f19346cp-51L, 0x7f9631c5e7f07p-51L, -6.2122796286154679676173624516405339768606e-30L, 1.4904138780720095276446375492434049214172L);
- TEST_c_c (clog, 0x10673dd0f2481p-51L, 0x7ef1d17cefbd2p-51L, 3.2047474274603604594851472963586149973093e-29L, 1.4422922682185099608731642353544207976604L);
- TEST_c_c (clog, 0x8ecbf810c4ae6p-52L, 0xd479468b09a37p-52L, -9.7375017988218644730510244778042114638107e-30L, 0.9790637929494922564724108399524154766631L);
- TEST_c_c (clog, 0x5b06b680ea2ccp-52L, 0xef452b965da9fp-52L, 8.3076914081087805757422664530653247447136e-30L, 1.2072712126771536614482822173033535043206L);
- TEST_c_c (clog, 0x659b70ab7971bp-53L, 0x1f5d111e08abecp-53L, -2.5083311595699359750201056724289010648701e-30L, 1.3710185432462268491534742969536240564640L);
- TEST_c_c (clog, 0x15cfbd1990d1ffp-53L, 0x176a3973e09a9ap-53L, 1.0168910106364605304135563536838075568606e-30L, 0.8208373755522359859870890246475340086663L);
- TEST_c_c (clog, 0x1367a310575591p-54L, 0x3cfcc0a0541f60p-54L, 5.0844550531823026520677817684239496041087e-32L, 1.2627468605458094918919206628466016525397L);
- TEST_c_c (clog, 0x55cb6d0c83af5p-55L, 0x7fe33c0c7c4e90p-55L, -5.2000108498455368032511404449795741611813e-32L, 1.5288921536982513453421343495466824420259L);
+ TEST_c_c (clog, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp-15000L, -5.421010862427522170184200798202494495630e-20L, 3.548665303440282824232502561095699343814e-4516L),
+#endif
+
+ TEST_c_c (clog, 0x1a6p-10L, 0x3a5p-10L, -1.4305135209763571252847059962654228661815e-06L, 1.1460277178115757370775644871674016684074L),
+ TEST_c_c (clog, 0xf2p-10L, 0x3e3p-10L, 6.1988446308070710970664736815277450078106e-06L, 1.3322126499153926210226335249558203898460L),
+ TEST_c_c (clog, 0x4d4ep-15L, 0x6605p-15L, -1.6298145321400412054744424587143483169412e-08L, 0.9223574537155056772124552172295398141249L),
+ TEST_c_c (clog, 0x2818p-15L, 0x798fp-15L, 1.5366822245016167178749091974664853785194e-08L, 1.2522014929038946066987318471922169174157L),
+ TEST_c_c (clog, 0x9b57bp-20L, 0xcb7b4p-20L, -3.9563019528687610863490232935890272740908e-11L, 0.9187593477446338910857133065497364950682L),
+ TEST_c_c (clog, 0x2731p-20L, 0xfffd0p-20L, 4.4110493034041283943115971658295280288115e-11L, 1.5612279663766352262688735061954290528838L),
+ TEST_c_c (clog, 0x2ede88p-23L, 0x771c3fp-23L, -4.4764192352906350039050902870893173560494e-13L, 1.1959106857549200806818600493552847793381L),
+ TEST_c_c (clog, 0x11682p-23L, 0x7ffed1p-23L, 1.1723955140027907954461000991619077811832e-12L, 1.5622968405332756349813737986164832897108L),
+ TEST_c_c (clog, 0xa1f2c1p-24L, 0xc643aep-24L, -1.0480505352462576151523512837107080269981e-13L, 0.8858771987699967480545613322309315260313L),
+ TEST_c_c (clog, 0x659feap-24L, 0xeaf6f9p-24L, 3.7303493627403868207597214252239749960738e-14L, 1.1625816408046866464773042283673653469061L),
+#ifndef TEST_FLOAT
+ TEST_c_c (clog, 0x4447d7175p-35L, 0x6c445e00ap-35L, -1.4823076576950255933915367361099865652625e-20L, 1.0081311552703893116404606212158840190615L),
+ TEST_c_c (clog, 0x2dd46725bp-35L, 0x7783a1284p-35L, 4.4469229730850767799109418892826021157328e-20L, 1.2046235979300843056806465045930070146351L),
+ TEST_c_c (clog, 0x164c74eea876p-45L, 0x16f393482f77p-45L, -3.0292258760486853327810377824479932031744e-26L, 0.7998237934177411746093524982030330293980L),
+ TEST_c_c (clog, 0xfe961079616p-45L, 0x1bc37e09e6d1p-45L, 5.3718272201930019901317065495843842735179e-26L, 1.0503831592447830576186444373011142397404L),
+ TEST_c_c (clog, 0xa4722f19346cp-51L, 0x7f9631c5e7f07p-51L, -6.2122796286154679676173624516405339768606e-30L, 1.4904138780720095276446375492434049214172L),
+ TEST_c_c (clog, 0x10673dd0f2481p-51L, 0x7ef1d17cefbd2p-51L, 3.2047474274603604594851472963586149973093e-29L, 1.4422922682185099608731642353544207976604L),
+ TEST_c_c (clog, 0x8ecbf810c4ae6p-52L, 0xd479468b09a37p-52L, -9.7375017988218644730510244778042114638107e-30L, 0.9790637929494922564724108399524154766631L),
+ TEST_c_c (clog, 0x5b06b680ea2ccp-52L, 0xef452b965da9fp-52L, 8.3076914081087805757422664530653247447136e-30L, 1.2072712126771536614482822173033535043206L),
+ TEST_c_c (clog, 0x659b70ab7971bp-53L, 0x1f5d111e08abecp-53L, -2.5083311595699359750201056724289010648701e-30L, 1.3710185432462268491534742969536240564640L),
+ TEST_c_c (clog, 0x15cfbd1990d1ffp-53L, 0x176a3973e09a9ap-53L, 1.0168910106364605304135563536838075568606e-30L, 0.8208373755522359859870890246475340086663L),
+ TEST_c_c (clog, 0x1367a310575591p-54L, 0x3cfcc0a0541f60p-54L, 5.0844550531823026520677817684239496041087e-32L, 1.2627468605458094918919206628466016525397L),
+ TEST_c_c (clog, 0x55cb6d0c83af5p-55L, 0x7fe33c0c7c4e90p-55L, -5.2000108498455368032511404449795741611813e-32L, 1.5288921536982513453421343495466824420259L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_c_c (clog, 0x298c62cb546588a7p-63L, 0x7911b1dfcc4ecdaep-63L, -1.1931267660846218205882675852805793644095e-36L, 1.2402109774337032400594953899784058127412L);
- TEST_c_c (clog, 0x4d9c37e2b5cb4533p-63L, 0x65c98be2385a042ep-63L, 6.4064442119814669184296141278612389400075e-37L, 0.9193591364645830864185131402313014890145L);
- TEST_c_c (clog, 0x602fd5037c4792efp-64L, 0xed3e2086dcca80b8p-64L, -2.3362950222592964220878638677292132852104e-37L, 1.1856121127236268105413184264288408265852L);
- TEST_c_c (clog, 0x6b10b4f3520217b6p-64L, 0xe8893cbb449253a1p-64L, 2.4244570985709679851855191080208817099132e-37L, 1.1393074519572050614551047548718495655972L);
- TEST_c_c (clog, 0x81b7efa81fc35ad1p-65L, 0x1ef4b835f1c79d812p-65L, -9.9182335850630508484862145328126979066934e-39L, 1.3146479888794807046338799047003947008804L);
+ TEST_c_c (clog, 0x298c62cb546588a7p-63L, 0x7911b1dfcc4ecdaep-63L, -1.1931267660846218205882675852805793644095e-36L, 1.2402109774337032400594953899784058127412L),
+ TEST_c_c (clog, 0x4d9c37e2b5cb4533p-63L, 0x65c98be2385a042ep-63L, 6.4064442119814669184296141278612389400075e-37L, 0.9193591364645830864185131402313014890145L),
+ TEST_c_c (clog, 0x602fd5037c4792efp-64L, 0xed3e2086dcca80b8p-64L, -2.3362950222592964220878638677292132852104e-37L, 1.1856121127236268105413184264288408265852L),
+ TEST_c_c (clog, 0x6b10b4f3520217b6p-64L, 0xe8893cbb449253a1p-64L, 2.4244570985709679851855191080208817099132e-37L, 1.1393074519572050614551047548718495655972L),
+ TEST_c_c (clog, 0x81b7efa81fc35ad1p-65L, 0x1ef4b835f1c79d812p-65L, -9.9182335850630508484862145328126979066934e-39L, 1.3146479888794807046338799047003947008804L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (clog, 0x3f96469050f650869c2p-75L, 0x6f16b2c9c8b05988335p-75L, -1.0509738482436128031927971874674370984602e-45L, 1.0509191467640012308402149909370784281448L);
- TEST_c_c (clog, 0x3157fc1d73233e580c8p-75L, 0x761b52ccd435d7c7f5fp-75L, 1.3487497719126364307640897239165442763573e-43L, 1.1750493008528425228929764149024375035382L);
- TEST_c_c (clog, 0x155f8afc4c48685bf63610p-85L, 0x17d0cf2652cdbeb1294e19p-85L, -4.7775669192897997174762089350332738583822e-50L, 0.8393953487996880419413728440067635213372L);
- TEST_c_c (clog, 0x13836d58a13448d750b4b9p-85L, 0x195ca7bc3ab4f9161edbe6p-85L, 2.8398125044729578740243199963484494962411e-50L, 0.9149964976334130461795060758257083099706L);
- TEST_c_c (clog, 0x1df515eb171a808b9e400266p-95L, 0x7c71eb0cd4688dfe98581c77p-95L, -3.5048022044913950094635368750889659723004e-57L, 1.3345633256521815205858155673950177421079L);
- TEST_c_c (clog, 0xe33f66c9542ca25cc43c867p-95L, 0x7f35a68ebd3704a43c465864p-95L, 4.1101771307217268747345114262406964584250e-56L, 1.4596065864518742494094402406719567059585L);
- TEST_c_c (clog, 0x6771f22c64ed551b857c128b4cp-105L, 0x1f570e7a13cc3cf2f44fd793ea1p-105L, -1.4281333889622737316199756373421183559948e-62L, 1.3673546561165378090903506783353927980633L);
- TEST_c_c (clog, 0x15d8ab6ed05ca514086ac3a1e84p-105L, 0x1761e480aa094c0b10b34b09ce9p-105L, 1.0027319539522347477331743836657426754857e-62L, 0.8193464073721167323313606647411269414759L);
- TEST_c_c (clog, 0x187190c1a334497bdbde5a95f48p-106L, 0x3b25f08062d0a095c4cfbbc338dp-106L, -1.7471844652198029695350765775994001163767e-63L, 1.1789110097072986038243729592318526094314L);
- TEST_c_c (clog, 0x6241ef0da53f539f02fad67dabp-106L, 0x3fb46641182f7efd9caa769dac0p-106L, 4.3299788920664682288477984749202524623248e-63L, 1.4746938237585656250866370987773473745867L);
+ TEST_c_c (clog, 0x3f96469050f650869c2p-75L, 0x6f16b2c9c8b05988335p-75L, -1.0509738482436128031927971874674370984602e-45L, 1.0509191467640012308402149909370784281448L),
+ TEST_c_c (clog, 0x3157fc1d73233e580c8p-75L, 0x761b52ccd435d7c7f5fp-75L, 1.3487497719126364307640897239165442763573e-43L, 1.1750493008528425228929764149024375035382L),
+ TEST_c_c (clog, 0x155f8afc4c48685bf63610p-85L, 0x17d0cf2652cdbeb1294e19p-85L, -4.7775669192897997174762089350332738583822e-50L, 0.8393953487996880419413728440067635213372L),
+ TEST_c_c (clog, 0x13836d58a13448d750b4b9p-85L, 0x195ca7bc3ab4f9161edbe6p-85L, 2.8398125044729578740243199963484494962411e-50L, 0.9149964976334130461795060758257083099706L),
+ TEST_c_c (clog, 0x1df515eb171a808b9e400266p-95L, 0x7c71eb0cd4688dfe98581c77p-95L, -3.5048022044913950094635368750889659723004e-57L, 1.3345633256521815205858155673950177421079L),
+ TEST_c_c (clog, 0xe33f66c9542ca25cc43c867p-95L, 0x7f35a68ebd3704a43c465864p-95L, 4.1101771307217268747345114262406964584250e-56L, 1.4596065864518742494094402406719567059585L),
+ TEST_c_c (clog, 0x6771f22c64ed551b857c128b4cp-105L, 0x1f570e7a13cc3cf2f44fd793ea1p-105L, -1.4281333889622737316199756373421183559948e-62L, 1.3673546561165378090903506783353927980633L),
+ TEST_c_c (clog, 0x15d8ab6ed05ca514086ac3a1e84p-105L, 0x1761e480aa094c0b10b34b09ce9p-105L, 1.0027319539522347477331743836657426754857e-62L, 0.8193464073721167323313606647411269414759L),
+ TEST_c_c (clog, 0x187190c1a334497bdbde5a95f48p-106L, 0x3b25f08062d0a095c4cfbbc338dp-106L, -1.7471844652198029695350765775994001163767e-63L, 1.1789110097072986038243729592318526094314L),
+ TEST_c_c (clog, 0x6241ef0da53f539f02fad67dabp-106L, 0x3fb46641182f7efd9caa769dac0p-106L, 4.3299788920664682288477984749202524623248e-63L, 1.4746938237585656250866370987773473745867L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_c_c (clog, 0x3e1d0a105ac4ebeacd9c6952d34cp-112L, 0xf859b3d1b06d005dcbb5516d5479p-112L, -1.1683999374665377365054966073875064467108e-66L, 1.3257197596350832748781065387304444940172L);
- TEST_c_c (clog, 0x47017a2e36807acb1e5214b209dep-112L, 0xf5f4a550c9d75e3bb1839d865f0dp-112L, 1.5077923002544367932999503838191154621839e-65L, 1.2897445708311412721399861948957141824914L);
- TEST_c_c (clog, 0x148f818cb7a9258fca942ade2a0cap-113L, 0x18854a34780b8333ec53310ad7001p-113L, -7.1865869169568789348552370692485515571497e-67L, 0.8730167479365994646287897223471819363668L);
- TEST_c_c (clog, 0xfd95243681c055c2632286921092p-113L, 0x1bccabcd29ca2152860ec29e34ef7p-113L, 6.6255694866654064502633121109394710807528e-66L, 1.0526409614996288387567810726095850312049L);
- TEST_c_c (clog, 0xdb85c467ee2aadd5f425fe0f4b8dp-114L, 0x3e83162a0f95f1dcbf97dddf410eap-114L, 4.6017338806965821566734340588575402712716e-67L, 1.3547418904611758959096647942223384691728L);
- TEST_c_c (clog, 0x1415bcaf2105940d49a636e98ae59p-115L, 0x7e6a150adfcd1b0921d44b31f40f4p-115L, 2.5993421227864195179698176012564317527271e-67L, 1.4132318089683022770487383611430906982461L);
+ TEST_c_c (clog, 0x3e1d0a105ac4ebeacd9c6952d34cp-112L, 0xf859b3d1b06d005dcbb5516d5479p-112L, -1.1683999374665377365054966073875064467108e-66L, 1.3257197596350832748781065387304444940172L),
+ TEST_c_c (clog, 0x47017a2e36807acb1e5214b209dep-112L, 0xf5f4a550c9d75e3bb1839d865f0dp-112L, 1.5077923002544367932999503838191154621839e-65L, 1.2897445708311412721399861948957141824914L),
+ TEST_c_c (clog, 0x148f818cb7a9258fca942ade2a0cap-113L, 0x18854a34780b8333ec53310ad7001p-113L, -7.1865869169568789348552370692485515571497e-67L, 0.8730167479365994646287897223471819363668L),
+ TEST_c_c (clog, 0xfd95243681c055c2632286921092p-113L, 0x1bccabcd29ca2152860ec29e34ef7p-113L, 6.6255694866654064502633121109394710807528e-66L, 1.0526409614996288387567810726095850312049L),
+ TEST_c_c (clog, 0xdb85c467ee2aadd5f425fe0f4b8dp-114L, 0x3e83162a0f95f1dcbf97dddf410eap-114L, 4.6017338806965821566734340588575402712716e-67L, 1.3547418904611758959096647942223384691728L),
+ TEST_c_c (clog, 0x1415bcaf2105940d49a636e98ae59p-115L, 0x7e6a150adfcd1b0921d44b31f40f4p-115L, 2.5993421227864195179698176012564317527271e-67L, 1.4132318089683022770487383611430906982461L),
#endif
-
- END (clog, complex);
-}
-
+ };
static void
-clog10_test (void)
+clog_test (void)
{
- errno = 0;
- FUNC(clog10) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (clog);
+ RUN_TEST_LOOP_c_c (clog, clog_test_data, );
+ END_COMPLEX;
+}
- START (clog10);
- TEST_c_c (clog10, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog10, minus_zero, minus_zero, minus_infty, -M_PIl, DIVIDE_BY_ZERO_EXCEPTION);
+static const struct test_c_c_data clog10_test_data[] =
+ {
+ TEST_c_c (clog10, minus_zero, 0, minus_infty, M_PIl, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (clog10, minus_zero, minus_zero, minus_infty, -M_PIl, DIVIDE_BY_ZERO_EXCEPTION),
- TEST_c_c (clog10, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_c_c (clog10, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION);
+ TEST_c_c (clog10, 0, 0, minus_infty, 0.0, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_c_c (clog10, 0, minus_zero, minus_infty, minus_zero, DIVIDE_BY_ZERO_EXCEPTION),
- TEST_c_c (clog10, minus_infty, plus_infty, plus_infty, M_PI_34_LOG10El);
+ TEST_c_c (clog10, minus_infty, plus_infty, plus_infty, M_PI_34_LOG10El),
- TEST_c_c (clog10, plus_infty, plus_infty, plus_infty, M_PI4_LOG10El);
- TEST_c_c (clog10, plus_infty, minus_infty, plus_infty, -M_PI4_LOG10El);
+ TEST_c_c (clog10, plus_infty, plus_infty, plus_infty, M_PI4_LOG10El),
+ TEST_c_c (clog10, plus_infty, minus_infty, plus_infty, -M_PI4_LOG10El),
- TEST_c_c (clog10, 0, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, 3, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, minus_zero, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, -3, plus_infty, plus_infty, M_PI2_LOG10El);
- TEST_c_c (clog10, 0, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, 3, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, minus_zero, minus_infty, plus_infty, -M_PI2_LOG10El);
- TEST_c_c (clog10, -3, minus_infty, plus_infty, -M_PI2_LOG10El);
+ TEST_c_c (clog10, 0, plus_infty, plus_infty, M_PI2_LOG10El),
+ TEST_c_c (clog10, 3, plus_infty, plus_infty, M_PI2_LOG10El),
+ TEST_c_c (clog10, minus_zero, plus_infty, plus_infty, M_PI2_LOG10El),
+ TEST_c_c (clog10, -3, plus_infty, plus_infty, M_PI2_LOG10El),
+ TEST_c_c (clog10, 0, minus_infty, plus_infty, -M_PI2_LOG10El),
+ TEST_c_c (clog10, 3, minus_infty, plus_infty, -M_PI2_LOG10El),
+ TEST_c_c (clog10, minus_zero, minus_infty, plus_infty, -M_PI2_LOG10El),
+ TEST_c_c (clog10, -3, minus_infty, plus_infty, -M_PI2_LOG10El),
- TEST_c_c (clog10, minus_infty, 0, plus_infty, M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, 1, plus_infty, M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, minus_zero, plus_infty, -M_PI_LOG10El);
- TEST_c_c (clog10, minus_infty, -1, plus_infty, -M_PI_LOG10El);
+ TEST_c_c (clog10, minus_infty, 0, plus_infty, M_PI_LOG10El),
+ TEST_c_c (clog10, minus_infty, 1, plus_infty, M_PI_LOG10El),
+ TEST_c_c (clog10, minus_infty, minus_zero, plus_infty, -M_PI_LOG10El),
+ TEST_c_c (clog10, minus_infty, -1, plus_infty, -M_PI_LOG10El),
- TEST_c_c (clog10, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (clog10, plus_infty, 1, plus_infty, 0.0);
- TEST_c_c (clog10, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (clog10, plus_infty, -1, plus_infty, minus_zero);
+ TEST_c_c (clog10, plus_infty, 0, plus_infty, 0.0),
+ TEST_c_c (clog10, plus_infty, 1, plus_infty, 0.0),
+ TEST_c_c (clog10, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (clog10, plus_infty, -1, plus_infty, minus_zero),
- TEST_c_c (clog10, plus_infty, qnan_value, plus_infty, qnan_value);
- TEST_c_c (clog10, minus_infty, qnan_value, plus_infty, qnan_value);
+ TEST_c_c (clog10, plus_infty, qnan_value, plus_infty, qnan_value),
+ TEST_c_c (clog10, minus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (clog10, qnan_value, plus_infty, plus_infty, qnan_value);
- TEST_c_c (clog10, qnan_value, minus_infty, plus_infty, qnan_value);
+ TEST_c_c (clog10, qnan_value, plus_infty, plus_infty, qnan_value),
+ TEST_c_c (clog10, qnan_value, minus_infty, plus_infty, qnan_value),
- TEST_c_c (clog10, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (clog10, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, 3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, -3, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (clog10, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (clog10, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (clog10, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (clog10, qnan_value, -5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (clog10, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (clog10, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (clog10, 0.75L, 1.25L, 0.163679467193165171449476605077428975L, 0.447486970040493067069984724340855636L);
- TEST_c_c (clog10, -2, -3, 0.556971676153418384603252578971164214L, -0.937554462986374708541507952140189646L);
+ TEST_c_c (clog10, 0.75L, 1.25L, 0.163679467193165171449476605077428975L, 0.447486970040493067069984724340855636L),
+ TEST_c_c (clog10, -2, -3, 0.556971676153418384603252578971164214L, -0.937554462986374708541507952140189646L),
- TEST_c_c (clog10, 0x1.fffffep+127L, 0x1.fffffep+127L, 38.68235441693561449174780668781319348761L, M_PI4_LOG10El);
- TEST_c_c (clog10, 0x1.fffffep+127L, 1.0L, 38.53183941910362389414093724045094697423L, 1.276276851248440096917018665609900318458e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (clog10, 0x1p-149L, 0x1p-149L, -44.70295435610120748924022586658721447508L, M_PI4_LOG10El);
- TEST_c_c (clog10, 0x1p-147L, 0x1p-147L, -44.10089436477324509881274807713822842154L, M_PI4_LOG10El);
+ TEST_c_c (clog10, 0x1.fffffep+127L, 0x1.fffffep+127L, 38.68235441693561449174780668781319348761L, M_PI4_LOG10El),
+ TEST_c_c (clog10, 0x1.fffffep+127L, 1.0L, 38.53183941910362389414093724045094697423L, 1.276276851248440096917018665609900318458e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (clog10, 0x1p-149L, 0x1p-149L, -44.70295435610120748924022586658721447508L, M_PI4_LOG10El),
+ TEST_c_c (clog10, 0x1p-147L, 0x1p-147L, -44.10089436477324509881274807713822842154L, M_PI4_LOG10El),
#ifndef TEST_FLOAT
- TEST_c_c (clog10, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 308.4052305577487344482591243175787477115L, M_PI4_LOG10El);
- TEST_c_c (clog10, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 308.3031705664207720674749211936626341569L, 0.2013595981366865903254995612594728746470L);
- TEST_c_c (clog10, 0x1p-1074L, 0x1p-1074L, -323.1557003452838130619487034867432642357L, M_PI4_LOG10El);
- TEST_c_c (clog10, 0x1p-1073L, 0x1p-1073L, -322.8546703496198318667349645920187712089L, M_PI4_LOG10El);
+ TEST_c_c (clog10, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 308.4052305577487344482591243175787477115L, M_PI4_LOG10El),
+ TEST_c_c (clog10, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 308.3031705664207720674749211936626341569L, 0.2013595981366865903254995612594728746470L),
+ TEST_c_c (clog10, 0x1p-1074L, 0x1p-1074L, -323.1557003452838130619487034867432642357L, M_PI4_LOG10El),
+ TEST_c_c (clog10, 0x1p-1073L, 0x1p-1073L, -322.8546703496198318667349645920187712089L, M_PI4_LOG10El),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog10, 0x1.fp+16383L, 0x1.fp+16383L, 4932.212175672014259683102930239951947672L, M_PI4_LOG10El);
- TEST_c_c (clog10, 0x1.fp+16383L, 0x1p+16383L, 4932.112944269463028900262609694408579449L, 0.2069271710841128115912940666587802677383L);
- TEST_c_c (clog10, 0x1p-16440L, 0x1p-16441L, -4948.884673709346821106688037612752099609L, 0.2013595981366865710389502301937289472543L);
+ TEST_c_c (clog10, 0x1.fp+16383L, 0x1.fp+16383L, 4932.212175672014259683102930239951947672L, M_PI4_LOG10El),
+ TEST_c_c (clog10, 0x1.fp+16383L, 0x1p+16383L, 4932.112944269463028900262609694408579449L, 0.2069271710841128115912940666587802677383L),
+ TEST_c_c (clog10, 0x1p-16440L, 0x1p-16441L, -4948.884673709346821106688037612752099609L, 0.2013595981366865710389502301937289472543L),
#endif
- TEST_c_c (clog10, 0x1p-149L, 0x1.fp+127L, 38.51805116050395969095658815123105801479L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-149L, 0x1.fp+127L, 38.51805116050395969095658815123105801479L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, 0x1p-149L, -0x1.fp+127L, 38.51805116050395969095658815123105801479L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-149L, -0x1.fp+127L, 38.51805116050395969095658815123105801479L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1.fp+127L, 0x1p-149L, 38.51805116050395969095658815123105801479L, 1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, -0x1.fp+127L, -0x1p-149L, 38.51805116050395969095658815123105801479L, -1.364376353841841347485783625431355770210L);
+ TEST_c_c (clog10, 0x1p-149L, 0x1.fp+127L, 38.51805116050395969095658815123105801479L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-149L, 0x1.fp+127L, 38.51805116050395969095658815123105801479L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, 0x1p-149L, -0x1.fp+127L, 38.51805116050395969095658815123105801479L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-149L, -0x1.fp+127L, 38.51805116050395969095658815123105801479L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1.fp+127L, 0x1p-149L, 38.51805116050395969095658815123105801479L, 1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, -0x1.fp+127L, -0x1p-149L, 38.51805116050395969095658815123105801479L, -1.364376353841841347485783625431355770210L),
#ifdef TEST_FLOAT
- TEST_c_c (clog10, 0x1.fp+127L, 0x1p-149L, 38.51805116050395969095658815123105801479L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog10, 0x1.fp+127L, -0x1p-149L, 38.51805116050395969095658815123105801479L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog10, 0x1.fp+127L, 0x1p-149L, 38.51805116050395969095658815123105801479L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog10, 0x1.fp+127L, -0x1p-149L, 38.51805116050395969095658815123105801479L, minus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifndef TEST_FLOAT
- TEST_c_c (clog10, 0x1p-1074L, 0x1.fp+1023L, 308.2409272754311106024666378243768099991L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-1074L, 0x1.fp+1023L, 308.2409272754311106024666378243768099991L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, 0x1p-1074L, -0x1.fp+1023L, 308.2409272754311106024666378243768099991L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-1074L, -0x1.fp+1023L, 308.2409272754311106024666378243768099991L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1.fp+1023L, 0x1p-1074L, 308.2409272754311106024666378243768099991L, 1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, -0x1.fp+1023L, -0x1p-1074L, 308.2409272754311106024666378243768099991L, -1.364376353841841347485783625431355770210L);
+ TEST_c_c (clog10, 0x1p-1074L, 0x1.fp+1023L, 308.2409272754311106024666378243768099991L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-1074L, 0x1.fp+1023L, 308.2409272754311106024666378243768099991L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, 0x1p-1074L, -0x1.fp+1023L, 308.2409272754311106024666378243768099991L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-1074L, -0x1.fp+1023L, 308.2409272754311106024666378243768099991L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1.fp+1023L, 0x1p-1074L, 308.2409272754311106024666378243768099991L, 1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, -0x1.fp+1023L, -0x1p-1074L, 308.2409272754311106024666378243768099991L, -1.364376353841841347485783625431355770210L),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (clog10, 0x1.fp+1023L, 0x1p-1074L, 308.2409272754311106024666378243768099991L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog10, 0x1.fp+1023L, -0x1p-1074L, 308.2409272754311106024666378243768099991L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog10, 0x1.fp+1023L, 0x1p-1074L, 308.2409272754311106024666378243768099991L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog10, 0x1.fp+1023L, -0x1p-1074L, 308.2409272754311106024666378243768099991L, minus_zero, UNDERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog10, 0x1p-16445L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-16445L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, 0x1p-16445L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-16445L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1.fp+16383L, 0x1p-16445L, 4932.061660674182269085496060792589701158L, 1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, -0x1.fp+16383L, -0x1p-16445L, 4932.061660674182269085496060792589701158L, -1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, 0x1.fp+16383L, 0x1p-16445L, 4932.061660674182269085496060792589701158L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog10, 0x1.fp+16383L, -0x1p-16445L, 4932.061660674182269085496060792589701158L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog10, 0x1p-16445L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-16445L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, 0x1p-16445L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-16445L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1.fp+16383L, 0x1p-16445L, 4932.061660674182269085496060792589701158L, 1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, -0x1.fp+16383L, -0x1p-16445L, 4932.061660674182269085496060792589701158L, -1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, 0x1.fp+16383L, 0x1p-16445L, 4932.061660674182269085496060792589701158L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog10, 0x1.fp+16383L, -0x1p-16445L, 4932.061660674182269085496060792589701158L, minus_zero, UNDERFLOW_EXCEPTION),
# if LDBL_MANT_DIG >= 113
- TEST_c_c (clog10, 0x1p-16494L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-16494L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, 0x1p-16494L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1p-16494L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L);
- TEST_c_c (clog10, -0x1.fp+16383L, 0x1p-16494L, 4932.061660674182269085496060792589701158L, 1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, -0x1.fp+16383L, -0x1p-16494L, 4932.061660674182269085496060792589701158L, -1.364376353841841347485783625431355770210L);
- TEST_c_c (clog10, 0x1.fp+16383L, 0x1p-16494L, 4932.061660674182269085496060792589701158L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog10, 0x1.fp+16383L, -0x1p-16494L, 4932.061660674182269085496060792589701158L, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog10, 0x1p-16494L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-16494L, 0x1.fp+16383L, 4932.061660674182269085496060792589701158L, 0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, 0x1p-16494L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1p-16494L, -0x1.fp+16383L, 4932.061660674182269085496060792589701158L, -0.6821881769209206737428918127156778851051L),
+ TEST_c_c (clog10, -0x1.fp+16383L, 0x1p-16494L, 4932.061660674182269085496060792589701158L, 1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, -0x1.fp+16383L, -0x1p-16494L, 4932.061660674182269085496060792589701158L, -1.364376353841841347485783625431355770210L),
+ TEST_c_c (clog10, 0x1.fp+16383L, 0x1p-16494L, 4932.061660674182269085496060792589701158L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog10, 0x1.fp+16383L, -0x1p-16494L, 4932.061660674182269085496060792589701158L, minus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_c_c (clog10, 1.0L, 0x1.234566p-10L, 2.680828048441605163181684680300513080769e-7L, 4.825491868832381486767558728169977751564e-4L);
- TEST_c_c (clog10, -1.0L, 0x1.234566p-20L, 2.556638434669064077889576526006849923281e-13L, 1.364375882602207106407956770293808181427L);
- TEST_c_c (clog10, 0x1.234566p-30L, 1.0L, 2.438200411482400072282924063740535840474e-19L, 6.821881764607257184291586401763604544928e-1L);
- TEST_c_c (clog10, -0x1.234566p-40L, -1.0L, 2.325249110681915353442924915876654139373e-25L, -6.821881769213700828789403802671540158935e-1L);
- TEST_c_c (clog10, 0x1.234566p-50L, 1.0L, 2.217530356103816369479108963807448194409e-31L, 6.821881769209202348667823902864283966959e-1L);
- TEST_c_c (clog10, 0x1.234566p-60L, 1.0L, 2.114801746467415208319767917450504756866e-37L, 6.821881769209206733143018621078368211515e-1L);
- TEST_c_c (clog10, 0x1p-61L, 1.0L, 4.084085680564517578238994467153626207224e-38L, 6.821881769209206735545466044044889962925e-1L);
- TEST_c_c (clog10, 0x1p-62L, 1.0L, 1.021021420141129394559748616788406551878e-38L, 6.821881769209206736487192085600834406988e-1L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (clog10, 0x1p-63L, 1.0L, 2.552553550352823486399371541971016379740e-39L, 6.821881769209206736958055106378806629019e-1L, UNDERFLOW_EXCEPTION_FLOAT);
+ TEST_c_c (clog10, 1.0L, 0x1.234566p-10L, 2.680828048441605163181684680300513080769e-7L, 4.825491868832381486767558728169977751564e-4L),
+ TEST_c_c (clog10, -1.0L, 0x1.234566p-20L, 2.556638434669064077889576526006849923281e-13L, 1.364375882602207106407956770293808181427L),
+ TEST_c_c (clog10, 0x1.234566p-30L, 1.0L, 2.438200411482400072282924063740535840474e-19L, 6.821881764607257184291586401763604544928e-1L),
+ TEST_c_c (clog10, -0x1.234566p-40L, -1.0L, 2.325249110681915353442924915876654139373e-25L, -6.821881769213700828789403802671540158935e-1L),
+ TEST_c_c (clog10, 0x1.234566p-50L, 1.0L, 2.217530356103816369479108963807448194409e-31L, 6.821881769209202348667823902864283966959e-1L),
+ TEST_c_c (clog10, 0x1.234566p-60L, 1.0L, 2.114801746467415208319767917450504756866e-37L, 6.821881769209206733143018621078368211515e-1L),
+ TEST_c_c (clog10, 0x1p-61L, 1.0L, 4.084085680564517578238994467153626207224e-38L, 6.821881769209206735545466044044889962925e-1L),
+ TEST_c_c (clog10, 0x1p-62L, 1.0L, 1.021021420141129394559748616788406551878e-38L, 6.821881769209206736487192085600834406988e-1L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (clog10, 0x1p-63L, 1.0L, 2.552553550352823486399371541971016379740e-39L, 6.821881769209206736958055106378806629019e-1L, UNDERFLOW_EXCEPTION_FLOAT),
#ifndef TEST_FLOAT
- TEST_c_c (clog10, 0x1p-509L, 1.0L, 7.730698388614835910296270976605350994446e-308L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
- TEST_c_c (clog10, 0x1p-510L, 1.0L, 1.932674597153708977574067744151337748612e-308L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (clog10, 0x1p-511L, 1.0L, 4.831686492884272443935169360378344371529e-309L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (clog10, 0x1p-509L, 1.0L, 7.730698388614835910296270976605350994446e-308L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_c_c (clog10, 0x1p-510L, 1.0L, 1.932674597153708977574067744151337748612e-308L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (clog10, 0x1p-511L, 1.0L, 4.831686492884272443935169360378344371529e-309L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (clog10, 0x1p-8189L, 1.0L, 1.168114274114528946314738738025008370069e-4931L, 6.821881769209206737428918127156778851051e-1L);
- TEST_c_c (clog10, 0x1p-8190L, 1.0L, 2.920285685286322365786846845062520925172e-4932L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION);
- TEST_c_c (clog10, 0x1p-8191L, 1.0L, 7.300714213215805914467117112656302312931e-4933L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION);
+ TEST_c_c (clog10, 0x1p-8189L, 1.0L, 1.168114274114528946314738738025008370069e-4931L, 6.821881769209206737428918127156778851051e-1L),
+ TEST_c_c (clog10, 0x1p-8190L, 1.0L, 2.920285685286322365786846845062520925172e-4932L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (clog10, 0x1p-8191L, 1.0L, 7.300714213215805914467117112656302312931e-4933L, 6.821881769209206737428918127156778851051e-1L, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (clog10, 0x1.000566p0L, 0x1.234p-10L, 3.604093470239754109961125085078190708674e-5L, 4.824745078422174667425851670822596859720e-4L);
- TEST_c_c (clog10, 0x1.000566p0L, 0x1.234p-100L, 3.577293486783822178310971763308187385546e-5L, 3.897399639875661463735636919790792140598e-31L);
+ TEST_c_c (clog10, 0x1.000566p0L, 0x1.234p-10L, 3.604093470239754109961125085078190708674e-5L, 4.824745078422174667425851670822596859720e-4L),
+ TEST_c_c (clog10, 0x1.000566p0L, 0x1.234p-100L, 3.577293486783822178310971763308187385546e-5L, 3.897399639875661463735636919790792140598e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (clog10, -0x1.0000000123456p0L, 0x1.2345678p-30L, 1.150487028947346337782682105935961875822e-10L, 1.364376353381646356131680448946397884147L);
- TEST_c_c (clog10, -0x1.0000000123456p0L, 0x1.2345678p-1000L, 1.150487026509145544402795327729455391948e-10L, 1.364376353841841347485783625431355770210L);
+ TEST_c_c (clog10, -0x1.0000000123456p0L, 0x1.2345678p-30L, 1.150487028947346337782682105935961875822e-10L, 1.364376353381646356131680448946397884147L),
+ TEST_c_c (clog10, -0x1.0000000123456p0L, 0x1.2345678p-1000L, 1.150487026509145544402795327729455391948e-10L, 1.364376353841841347485783625431355770210L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (clog10, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-60L, 4.285899851347756188767674032946882584784e-19L, 4.285899850759344225805480528847018395861e-19L);
- TEST_c_c (clog10, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-1000L, 4.285899851347756186652871946325962330640e-19L, 4.611541215247321502041995872887317363241e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
+ TEST_c_c (clog10, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-60L, 4.285899851347756188767674032946882584784e-19L, 4.285899850759344225805480528847018395861e-19L),
+ TEST_c_c (clog10, 0x1.00000000000000123456789abcp0L, 0x1.23456789p-1000L, 4.285899851347756186652871946325962330640e-19L, 4.611541215247321502041995872887317363241e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
#endif
- TEST_c_c (clog10, 0x0.ffffffp0L, 0x0.ffffffp-100L, -2.588596909321764128428416045209904492216e-8L, 3.425979381266895667295625489912064603415e-31L);
+ TEST_c_c (clog10, 0x0.ffffffp0L, 0x0.ffffffp-100L, -2.588596909321764128428416045209904492216e-8L, 3.425979381266895667295625489912064603415e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (clog10, 0x0.fffffffffffff8p0L, 0x0.fffffffffffff8p-1000L, -4.821637332766435821255375046554377090472e-17L, 4.053112396770095089737411317782466262176e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
+ TEST_c_c (clog10, 0x0.fffffffffffff8p0L, 0x0.fffffffffffff8p-1000L, -4.821637332766435821255375046554377090472e-17L, 4.053112396770095089737411317782466262176e-302L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (clog10, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp-15000L, -2.354315103889861110220423157644627849164e-20L, 1.541165759405643564697852372112893034397e-4516L);
-#endif
-
- TEST_c_c (clog10, 0x1a6p-10L, 0x3a5p-10L, -6.2126412844802358329771948751248003038444e-07L, 0.4977135139537443711784513409096950995985L);
- TEST_c_c (clog10, 0xf2p-10L, 0x3e3p-10L, 2.6921240173351112953324592659528481616879e-06L, 0.5785726025799636431142862788413361783862L);
- TEST_c_c (clog10, 0x4d4ep-15L, 0x6605p-15L, -7.0781945783414996953799915941870192015212e-09L, 0.4005747524909781155537088181659175147564L);
- TEST_c_c (clog10, 0x2818p-15L, 0x798fp-15L, 6.6737261053986614395049481326819059203910e-09L, 0.5438241985991753781478398141908629586460L);
- TEST_c_c (clog10, 0x9b57bp-20L, 0xcb7b4p-20L, -1.7182001068739620267773842120965071561416e-11L, 0.3990121149225253562859800593935899629087L);
- TEST_c_c (clog10, 0x2731p-20L, 0xfffd0p-20L, 1.9156943718715958194239364991329064049438e-11L, 0.6780326907904082601285090019969008967595L);
- TEST_c_c (clog10, 0x2ede88p-23L, 0x771c3fp-23L, -1.9440841725722970687903291200493082253766e-13L, 0.5193774116724956222518530053006822210323L);
- TEST_c_c (clog10, 0x11682p-23L, 0x7ffed1p-23L, 5.0916490233953865181284669870035717560498e-13L, 0.6784968969384861816694467029319146542069L);
- TEST_c_c (clog10, 0xa1f2c1p-24L, 0xc643aep-24L, -4.5516256421319921959681423447271490869664e-14L, 0.3847315790697197749315054516562206543710L);
- TEST_c_c (clog10, 0x659feap-24L, 0xeaf6f9p-24L, 1.6200701438094619117335617123525612051457e-14L, 0.5049027913635038013499728086604870749732L);
-#ifndef TEST_FLOAT
- TEST_c_c (clog10, 0x4447d7175p-35L, 0x6c445e00ap-35L, -6.4375803621988389731799033530075237868110e-21L, 0.4378257977686804492768642780897650927167L);
- TEST_c_c (clog10, 0x2dd46725bp-35L, 0x7783a1284p-35L, 1.9312741086596516918394613098872836703188e-20L, 0.5231613813514771042838490538484014771862L);
- TEST_c_c (clog10, 0x164c74eea876p-45L, 0x16f393482f77p-45L, -1.3155760824064879362415202279780039150764e-26L, 0.3473590599762514228227328130640352044313L);
- TEST_c_c (clog10, 0xfe961079616p-45L, 0x1bc37e09e6d1p-45L, 2.3329549194675052736016290082882121135546e-26L, 0.4561756099441139182878993697611751382976L);
- TEST_c_c (clog10, 0xa4722f19346cp-51L, 0x7f9631c5e7f07p-51L, -2.6979587627476803379953050733225113494503e-30L, 0.6472785229986997177606324374555347813105L);
- TEST_c_c (clog10, 0x10673dd0f2481p-51L, 0x7ef1d17cefbd2p-51L, 1.3918041236396763648388478552321724382899e-29L, 0.6263795733790237053262025311642907438291L);
- TEST_c_c (clog10, 0x8ecbf810c4ae6p-52L, 0xd479468b09a37p-52L, -4.2289432987513243393180377141513840878196e-30L, 0.4252020027092323591068799049905597805296L);
- TEST_c_c (clog10, 0x5b06b680ea2ccp-52L, 0xef452b965da9fp-52L, 3.6079845358966994996207055940336690133424e-30L, 0.5243112258263349992771652393178033846555L);
- TEST_c_c (clog10, 0x659b70ab7971bp-53L, 0x1f5d111e08abecp-53L, -1.0893543813872082317104059174982092534059e-30L, 0.5954257879188711495921161433751775633232L);
- TEST_c_c (clog10, 0x15cfbd1990d1ffp-53L, 0x176a3973e09a9ap-53L, 4.4163015461643576961232672330852798804976e-31L, 0.3564851427422832755956993418877523303529L);
- TEST_c_c (clog10, 0x1367a310575591p-54L, 0x3cfcc0a0541f60p-54L, 2.2081507730821788480616336165447731164865e-32L, 0.5484039935757001196548030312819898864760L);
- TEST_c_c (clog10, 0x55cb6d0c83af5p-55L, 0x7fe33c0c7c4e90p-55L, -2.2583360179249556400630343805573865814771e-32L, 0.6639894257763289307423302343317622430835L);
+ TEST_c_c (clog10, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp-15000L, -2.354315103889861110220423157644627849164e-20L, 1.541165759405643564697852372112893034397e-4516L),
+#endif
+
+ TEST_c_c (clog10, 0x1a6p-10L, 0x3a5p-10L, -6.2126412844802358329771948751248003038444e-07L, 0.4977135139537443711784513409096950995985L),
+ TEST_c_c (clog10, 0xf2p-10L, 0x3e3p-10L, 2.6921240173351112953324592659528481616879e-06L, 0.5785726025799636431142862788413361783862L),
+ TEST_c_c (clog10, 0x4d4ep-15L, 0x6605p-15L, -7.0781945783414996953799915941870192015212e-09L, 0.4005747524909781155537088181659175147564L),
+ TEST_c_c (clog10, 0x2818p-15L, 0x798fp-15L, 6.6737261053986614395049481326819059203910e-09L, 0.5438241985991753781478398141908629586460L),
+ TEST_c_c (clog10, 0x9b57bp-20L, 0xcb7b4p-20L, -1.7182001068739620267773842120965071561416e-11L, 0.3990121149225253562859800593935899629087L),
+ TEST_c_c (clog10, 0x2731p-20L, 0xfffd0p-20L, 1.9156943718715958194239364991329064049438e-11L, 0.6780326907904082601285090019969008967595L),
+ TEST_c_c (clog10, 0x2ede88p-23L, 0x771c3fp-23L, -1.9440841725722970687903291200493082253766e-13L, 0.5193774116724956222518530053006822210323L),
+ TEST_c_c (clog10, 0x11682p-23L, 0x7ffed1p-23L, 5.0916490233953865181284669870035717560498e-13L, 0.6784968969384861816694467029319146542069L),
+ TEST_c_c (clog10, 0xa1f2c1p-24L, 0xc643aep-24L, -4.5516256421319921959681423447271490869664e-14L, 0.3847315790697197749315054516562206543710L),
+ TEST_c_c (clog10, 0x659feap-24L, 0xeaf6f9p-24L, 1.6200701438094619117335617123525612051457e-14L, 0.5049027913635038013499728086604870749732L),
+#ifndef TEST_FLOAT
+ TEST_c_c (clog10, 0x4447d7175p-35L, 0x6c445e00ap-35L, -6.4375803621988389731799033530075237868110e-21L, 0.4378257977686804492768642780897650927167L),
+ TEST_c_c (clog10, 0x2dd46725bp-35L, 0x7783a1284p-35L, 1.9312741086596516918394613098872836703188e-20L, 0.5231613813514771042838490538484014771862L),
+ TEST_c_c (clog10, 0x164c74eea876p-45L, 0x16f393482f77p-45L, -1.3155760824064879362415202279780039150764e-26L, 0.3473590599762514228227328130640352044313L),
+ TEST_c_c (clog10, 0xfe961079616p-45L, 0x1bc37e09e6d1p-45L, 2.3329549194675052736016290082882121135546e-26L, 0.4561756099441139182878993697611751382976L),
+ TEST_c_c (clog10, 0xa4722f19346cp-51L, 0x7f9631c5e7f07p-51L, -2.6979587627476803379953050733225113494503e-30L, 0.6472785229986997177606324374555347813105L),
+ TEST_c_c (clog10, 0x10673dd0f2481p-51L, 0x7ef1d17cefbd2p-51L, 1.3918041236396763648388478552321724382899e-29L, 0.6263795733790237053262025311642907438291L),
+ TEST_c_c (clog10, 0x8ecbf810c4ae6p-52L, 0xd479468b09a37p-52L, -4.2289432987513243393180377141513840878196e-30L, 0.4252020027092323591068799049905597805296L),
+ TEST_c_c (clog10, 0x5b06b680ea2ccp-52L, 0xef452b965da9fp-52L, 3.6079845358966994996207055940336690133424e-30L, 0.5243112258263349992771652393178033846555L),
+ TEST_c_c (clog10, 0x659b70ab7971bp-53L, 0x1f5d111e08abecp-53L, -1.0893543813872082317104059174982092534059e-30L, 0.5954257879188711495921161433751775633232L),
+ TEST_c_c (clog10, 0x15cfbd1990d1ffp-53L, 0x176a3973e09a9ap-53L, 4.4163015461643576961232672330852798804976e-31L, 0.3564851427422832755956993418877523303529L),
+ TEST_c_c (clog10, 0x1367a310575591p-54L, 0x3cfcc0a0541f60p-54L, 2.2081507730821788480616336165447731164865e-32L, 0.5484039935757001196548030312819898864760L),
+ TEST_c_c (clog10, 0x55cb6d0c83af5p-55L, 0x7fe33c0c7c4e90p-55L, -2.2583360179249556400630343805573865814771e-32L, 0.6639894257763289307423302343317622430835L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64
- TEST_c_c (clog10, 0x298c62cb546588a7p-63L, 0x7911b1dfcc4ecdaep-63L, -5.1816837072162316773907242302011632570857e-37L, 0.5386167838952956925896424154370364458140L);
- TEST_c_c (clog10, 0x4d9c37e2b5cb4533p-63L, 0x65c98be2385a042ep-63L, 2.7822833698845776001753149807484078521508e-37L, 0.3992725998539071066769046272515417679815L);
- TEST_c_c (clog10, 0x602fd5037c4792efp-64L, 0xed3e2086dcca80b8p-64L, -1.0146400362652473358437501879334790111898e-37L, 0.5149047982335273098246594109614460842099L);
- TEST_c_c (clog10, 0x6b10b4f3520217b6p-64L, 0xe8893cbb449253a1p-64L, 1.0529283395205396881397407610630442563938e-37L, 0.4947949395762683446121140513971996916447L);
- TEST_c_c (clog10, 0x81b7efa81fc35ad1p-65L, 0x1ef4b835f1c79d812p-65L, -4.3074341162203896332989394770760901408798e-39L, 0.5709443672155660428417571212549720987784L);
+ TEST_c_c (clog10, 0x298c62cb546588a7p-63L, 0x7911b1dfcc4ecdaep-63L, -5.1816837072162316773907242302011632570857e-37L, 0.5386167838952956925896424154370364458140L),
+ TEST_c_c (clog10, 0x4d9c37e2b5cb4533p-63L, 0x65c98be2385a042ep-63L, 2.7822833698845776001753149807484078521508e-37L, 0.3992725998539071066769046272515417679815L),
+ TEST_c_c (clog10, 0x602fd5037c4792efp-64L, 0xed3e2086dcca80b8p-64L, -1.0146400362652473358437501879334790111898e-37L, 0.5149047982335273098246594109614460842099L),
+ TEST_c_c (clog10, 0x6b10b4f3520217b6p-64L, 0xe8893cbb449253a1p-64L, 1.0529283395205396881397407610630442563938e-37L, 0.4947949395762683446121140513971996916447L),
+ TEST_c_c (clog10, 0x81b7efa81fc35ad1p-65L, 0x1ef4b835f1c79d812p-65L, -4.3074341162203896332989394770760901408798e-39L, 0.5709443672155660428417571212549720987784L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_c_c (clog10, 0x3f96469050f650869c2p-75L, 0x6f16b2c9c8b05988335p-75L, -4.5643214291682663316715446865040356750881e-46L, 0.4564083863660793840592614609053162690362L);
- TEST_c_c (clog10, 0x3157fc1d73233e580c8p-75L, 0x761b52ccd435d7c7f5fp-75L, 5.8575458340992751256451490143468457830297e-44L, 0.5103174273246635294300470585396890237265L);
- TEST_c_c (clog10, 0x155f8afc4c48685bf63610p-85L, 0x17d0cf2652cdbeb1294e19p-85L, -2.0748709499710785084693619097712106753591e-50L, 0.3645447681189598740620098186365764884771L);
- TEST_c_c (clog10, 0x13836d58a13448d750b4b9p-85L, 0x195ca7bc3ab4f9161edbe6p-85L, 1.2333149003324592532859843519619084433953e-50L, 0.3973779298829931059309198145608711073016L);
- TEST_c_c (clog10, 0x1df515eb171a808b9e400266p-95L, 0x7c71eb0cd4688dfe98581c77p-95L, -1.5221162575729652613635150540947625639689e-57L, 0.5795934880811949230121092882659698986043L);
- TEST_c_c (clog10, 0xe33f66c9542ca25cc43c867p-95L, 0x7f35a68ebd3704a43c465864p-95L, 1.7850272475173865337808494725293124613817e-56L, 0.6338990862456906754888183278564382516852L);
- TEST_c_c (clog10, 0x6771f22c64ed551b857c128b4cp-105L, 0x1f570e7a13cc3cf2f44fd793ea1p-105L, -6.2023045024810589256360494043570293518879e-63L, 0.5938345819561308555003145899438513900776L);
- TEST_c_c (clog10, 0x15d8ab6ed05ca514086ac3a1e84p-105L, 0x1761e480aa094c0b10b34b09ce9p-105L, 4.3548095442952115860848857519953610343042e-63L, 0.3558376234889641500775150477035448866763L);
- TEST_c_c (clog10, 0x187190c1a334497bdbde5a95f48p-106L, 0x3b25f08062d0a095c4cfbbc338dp-106L, -7.5879257211204444302994221436282805900756e-64L, 0.5119945461708707332160859198685423099187L);
- TEST_c_c (clog10, 0x6241ef0da53f539f02fad67dabp-106L, 0x3fb46641182f7efd9caa769dac0p-106L, 1.8804859395820231849002915747252695375405e-63L, 0.6404513901551516189871978418046651877394L);
+ TEST_c_c (clog10, 0x3f96469050f650869c2p-75L, 0x6f16b2c9c8b05988335p-75L, -4.5643214291682663316715446865040356750881e-46L, 0.4564083863660793840592614609053162690362L),
+ TEST_c_c (clog10, 0x3157fc1d73233e580c8p-75L, 0x761b52ccd435d7c7f5fp-75L, 5.8575458340992751256451490143468457830297e-44L, 0.5103174273246635294300470585396890237265L),
+ TEST_c_c (clog10, 0x155f8afc4c48685bf63610p-85L, 0x17d0cf2652cdbeb1294e19p-85L, -2.0748709499710785084693619097712106753591e-50L, 0.3645447681189598740620098186365764884771L),
+ TEST_c_c (clog10, 0x13836d58a13448d750b4b9p-85L, 0x195ca7bc3ab4f9161edbe6p-85L, 1.2333149003324592532859843519619084433953e-50L, 0.3973779298829931059309198145608711073016L),
+ TEST_c_c (clog10, 0x1df515eb171a808b9e400266p-95L, 0x7c71eb0cd4688dfe98581c77p-95L, -1.5221162575729652613635150540947625639689e-57L, 0.5795934880811949230121092882659698986043L),
+ TEST_c_c (clog10, 0xe33f66c9542ca25cc43c867p-95L, 0x7f35a68ebd3704a43c465864p-95L, 1.7850272475173865337808494725293124613817e-56L, 0.6338990862456906754888183278564382516852L),
+ TEST_c_c (clog10, 0x6771f22c64ed551b857c128b4cp-105L, 0x1f570e7a13cc3cf2f44fd793ea1p-105L, -6.2023045024810589256360494043570293518879e-63L, 0.5938345819561308555003145899438513900776L),
+ TEST_c_c (clog10, 0x15d8ab6ed05ca514086ac3a1e84p-105L, 0x1761e480aa094c0b10b34b09ce9p-105L, 4.3548095442952115860848857519953610343042e-63L, 0.3558376234889641500775150477035448866763L),
+ TEST_c_c (clog10, 0x187190c1a334497bdbde5a95f48p-106L, 0x3b25f08062d0a095c4cfbbc338dp-106L, -7.5879257211204444302994221436282805900756e-64L, 0.5119945461708707332160859198685423099187L),
+ TEST_c_c (clog10, 0x6241ef0da53f539f02fad67dabp-106L, 0x3fb46641182f7efd9caa769dac0p-106L, 1.8804859395820231849002915747252695375405e-63L, 0.6404513901551516189871978418046651877394L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_c_c (clog10, 0x3e1d0a105ac4ebeacd9c6952d34cp-112L, 0xf859b3d1b06d005dcbb5516d5479p-112L, -5.0742964549782184008668435276046798273476e-67L, 0.5757527761596220360985719127090110408283L);
- TEST_c_c (clog10, 0x47017a2e36807acb1e5214b209dep-112L, 0xf5f4a550c9d75e3bb1839d865f0dp-112L, 6.5482587585671294601662599808612773010057e-66L, 0.5601289501766423782280643144987875760229L);
- TEST_c_c (clog10, 0x148f818cb7a9258fca942ade2a0cap-113L, 0x18854a34780b8333ec53310ad7001p-113L, -3.1210950417524756037077807411854181477733e-67L, 0.3791463562379872585396164879981280044658L);
- TEST_c_c (clog10, 0xfd95243681c055c2632286921092p-113L, 0x1bccabcd29ca2152860ec29e34ef7p-113L, 2.8774482675253468630312378575186855052697e-66L, 0.4571561610046221605554903008571429975493L);
- TEST_c_c (clog10, 0xdb85c467ee2aadd5f425fe0f4b8dp-114L, 0x3e83162a0f95f1dcbf97dddf410eap-114L, 1.9985076315737626043096596036300177494613e-67L, 0.5883569274304683249184005177865521205198L);
- TEST_c_c (clog10, 0x1415bcaf2105940d49a636e98ae59p-115L, 0x7e6a150adfcd1b0921d44b31f40f4p-115L, 1.1288799405048268615023706955013387413519e-67L, 0.6137587762850841972073301550420510507903L);
+ TEST_c_c (clog10, 0x3e1d0a105ac4ebeacd9c6952d34cp-112L, 0xf859b3d1b06d005dcbb5516d5479p-112L, -5.0742964549782184008668435276046798273476e-67L, 0.5757527761596220360985719127090110408283L),
+ TEST_c_c (clog10, 0x47017a2e36807acb1e5214b209dep-112L, 0xf5f4a550c9d75e3bb1839d865f0dp-112L, 6.5482587585671294601662599808612773010057e-66L, 0.5601289501766423782280643144987875760229L),
+ TEST_c_c (clog10, 0x148f818cb7a9258fca942ade2a0cap-113L, 0x18854a34780b8333ec53310ad7001p-113L, -3.1210950417524756037077807411854181477733e-67L, 0.3791463562379872585396164879981280044658L),
+ TEST_c_c (clog10, 0xfd95243681c055c2632286921092p-113L, 0x1bccabcd29ca2152860ec29e34ef7p-113L, 2.8774482675253468630312378575186855052697e-66L, 0.4571561610046221605554903008571429975493L),
+ TEST_c_c (clog10, 0xdb85c467ee2aadd5f425fe0f4b8dp-114L, 0x3e83162a0f95f1dcbf97dddf410eap-114L, 1.9985076315737626043096596036300177494613e-67L, 0.5883569274304683249184005177865521205198L),
+ TEST_c_c (clog10, 0x1415bcaf2105940d49a636e98ae59p-115L, 0x7e6a150adfcd1b0921d44b31f40f4p-115L, 1.1288799405048268615023706955013387413519e-67L, 0.6137587762850841972073301550420510507903L),
#endif
+ };
- END (clog10, complex);
+static void
+clog10_test (void)
+{
+ START (clog10);
+ RUN_TEST_LOOP_c_c (clog10, clog10_test_data, );
+ END_COMPLEX;
}
+static const struct test_c_c_data conj_test_data[] =
+ {
+ TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0, NO_INEXACT_EXCEPTION),
+ };
+
static void
conj_test (void)
{
START (conj);
- TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero);
- TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0);
- TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value);
- TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty);
- TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty);
- TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0);
- TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0);
-
- END (conj, complex);
+ RUN_TEST_LOOP_c_c (conj, conj_test_data, );
+ END_COMPLEX;
}
-static void
-copysign_test (void)
-{
- START (copysign);
-
- TEST_ff_f (copysign, 0, 4, 0);
- TEST_ff_f (copysign, 0, -4, minus_zero);
- TEST_ff_f (copysign, minus_zero, 4, 0);
- TEST_ff_f (copysign, minus_zero, -4, minus_zero);
+static const struct test_ff_f_data copysign_test_data[] =
+ {
+ TEST_ff_f (copysign, 0, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, -4, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, -4, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_ff_f (copysign, plus_infty, 0, plus_infty);
- TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty);
- TEST_ff_f (copysign, minus_infty, 0, plus_infty);
- TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty);
+ TEST_ff_f (copysign, plus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (copysign, 0, plus_infty, 0);
- TEST_ff_f (copysign, 0, minus_zero, minus_zero);
- TEST_ff_f (copysign, minus_zero, plus_infty, 0);
- TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero);
-
- /* XXX More correctly we would have to check the sign of the NaN. */
- TEST_ff_f (copysign, qnan_value, 0, qnan_value);
- TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value);
- TEST_ff_f (copysign, -qnan_value, 0, qnan_value);
- TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value);
-
- END (copysign);
-}
+ TEST_ff_f (copysign, 0, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ /* XXX More correctly we would have to check the sign of the NaN. */
+ TEST_ff_f (copysign, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ };
static void
-cos_test (void)
+copysign_test (void)
{
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (copysign);
+ RUN_TEST_LOOP_ff_f (copysign, copysign_test_data, );
+ END;
+}
- START (cos);
- TEST_f_f (cos, 0, 1);
- TEST_f_f (cos, minus_zero, 1);
- errno = 0;
- TEST_f_f (cos, plus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for cos(+inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (cos, minus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for cos(-inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (cos, qnan_value, qnan_value);
- check_int ("errno for cos(qNaN) unchanged", errno, 0, 0, 0, 0);
+static const struct test_f_f_data cos_test_data[] =
+ {
+ TEST_f_f (cos, 0, 1),
+ TEST_f_f (cos, minus_zero, 1),
+ TEST_f_f (cos, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (cos, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (cos, qnan_value, qnan_value, ERRNO_UNCHANGED),
- TEST_f_f (cos, M_PI_6l * 2.0, 0.5);
- TEST_f_f (cos, M_PI_6l * 4.0, -0.5);
- TEST_f_f (cos, M_PI_2l, 0);
+ TEST_f_f (cos, M_PI_6l * 2.0, 0.5),
+ TEST_f_f (cos, M_PI_6l * 4.0, -0.5),
- TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L);
+ /* The value of M_PI_2l is never exactly PI/2, and therefore the
+ answer is never exactly zero. The answer is equal to the error
+ in rounding PI/2 for the type used. Thus the answer is unique
+ to each type. */
+#ifdef TEST_FLOAT
+ /* 32-bit float. */
+ TEST_f_f (cos, M_PI_2l, -0x1.777a5cp-25L),
+#endif
+#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53)
+ /* 64-bit double or 64-bit long double. */
+ TEST_f_f (cos, M_PI_2l, 0x1.1a62633145c07p-54L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64
+ /* 96-bit long double. */
+ TEST_f_f (cos, M_PI_2l, -0xe.ce675d1fc8f8cbbp-69L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106
+ /* 128-bit IBM long double. */
+ TEST_f_f (cos, M_PI_2l, 0x1.c1cd129024e088a67cc74020bcp-107L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113
+ /* 128-bit long double. */
+ TEST_f_f (cos, M_PI_2l, 0x1.cd129024e088a67cc74020bbea64p-115L),
+#endif
- TEST_f_f (cos, 0x1p65, 0.99888622066058013610642172179340364209972L);
- TEST_f_f (cos, -0x1p65, 0.99888622066058013610642172179340364209972L);
+ TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L),
+
+ TEST_f_f (cos, 0x1p65, 0.99888622066058013610642172179340364209972L),
+ TEST_f_f (cos, -0x1p65, 0.99888622066058013610642172179340364209972L),
#ifdef TEST_DOUBLE
- TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473);
+ TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473),
#endif
- TEST_f_f (cos, 0x1.442f74p+15, 2.4407839902314016628485779006274989801517e-06L);
+ TEST_f_f (cos, 0x1.442f74p+15, 2.4407839902314016628485779006274989801517e-06L),
#ifndef TEST_FLOAT
- TEST_f_f (cos, 1e22, 0.5232147853951389454975944733847094921409L);
- TEST_f_f (cos, 0x1p1023, -0.826369834614147994500785680811743734805L);
+ TEST_f_f (cos, 1e22, 0.5232147853951389454975944733847094921409L),
+ TEST_f_f (cos, 0x1p1023, -0.826369834614147994500785680811743734805L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (cos, 0x1p16383L, 0.9210843909921906206874509522505756251609L);
+ TEST_f_f (cos, 0x1p16383L, 0.9210843909921906206874509522505756251609L),
#endif
- TEST_f_f (cos, 0x1p+120, -9.25879022854837867303861764107414946730833e-01L);
- TEST_f_f (cos, 0x1p+127, 7.81914638714960072263910298466369236613162e-01L);
- TEST_f_f (cos, 0x1.fffff8p+127, 9.98819362551949040703862043664101081064641e-01L);
- TEST_f_f (cos, 0x1.fffffep+127, 8.53021039830304158051791467692161107353094e-01L);
- TEST_f_f (cos, 0x1p+50, 8.68095904660550604334592502063501320395739e-01L);
- TEST_f_f (cos, 0x1p+28, -1.65568979490578758865468278195361551113358e-01L);
+ TEST_f_f (cos, 0x1p+120, -9.25879022854837867303861764107414946730833e-01L),
+ TEST_f_f (cos, 0x1p+127, 7.81914638714960072263910298466369236613162e-01L),
+ TEST_f_f (cos, 0x1.fffff8p+127, 9.98819362551949040703862043664101081064641e-01L),
+ TEST_f_f (cos, 0x1.fffffep+127, 8.53021039830304158051791467692161107353094e-01L),
+ TEST_f_f (cos, 0x1p+50, 8.68095904660550604334592502063501320395739e-01L),
+ TEST_f_f (cos, 0x1p+28, -1.65568979490578758865468278195361551113358e-01L),
+ };
- END (cos);
+static void
+cos_test (void)
+{
+ START (cos);
+ RUN_TEST_LOOP_f_f (cos, cos_test_data, );
+ END;
}
+static const struct test_f_f_data cos_tonearest_test_data[] =
+ {
+ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L),
+ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L),
+ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L),
+ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L),
+ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L),
+ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L),
+ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L),
+ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L),
+ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L),
+ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L),
+ };
+
static void
cos_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cos_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
- TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
- TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
- TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
- TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
- TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
- TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
- TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
- TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
- TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
- }
-
- fesetround (save_round_mode);
-
- END (cos_tonearest);
+ RUN_TEST_LOOP_f_f (cos, cos_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data cos_towardzero_test_data[] =
+ {
+ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L),
+ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L),
+ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L),
+ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L),
+ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L),
+ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L),
+ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L),
+ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L),
+ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L),
+ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L),
+ };
+
static void
cos_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cos_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
- TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
- TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
- TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
- TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
- TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
- TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
- TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
- TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
- TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
- }
-
- fesetround (save_round_mode);
-
- END (cos_towardzero);
+ RUN_TEST_LOOP_f_f (cos, cos_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data cos_downward_test_data[] =
+ {
+ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L),
+ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L),
+ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L),
+ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L),
+ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L),
+ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L),
+ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L),
+ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L),
+ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L),
+ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L),
+ };
+
static void
cos_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cos_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
- TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
- TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
- TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
- TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
- TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
- TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
- TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
- TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
- TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
- }
-
- fesetround (save_round_mode);
-
- END (cos_downward);
+ RUN_TEST_LOOP_f_f (cos, cos_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data cos_upward_test_data[] =
+ {
+ TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L),
+ TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L),
+ TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L),
+ TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L),
+ TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L),
+ TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L),
+ TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L),
+ TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L),
+ TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L),
+ TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L),
+ };
+
static void
cos_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cos) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cos_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
- TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
- TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
- TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
- TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
- TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
- TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
- TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
- TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
- TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
- }
-
- fesetround (save_round_mode);
-
- END (cos_upward);
+ RUN_TEST_LOOP_f_f (cos, cos_upward_test_data, FE_UPWARD);
+ END;
}
-static void
-cosh_test (void)
-{
- errno = 0;
- FUNC(cosh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (cosh);
- TEST_f_f (cosh, 0, 1);
- TEST_f_f (cosh, minus_zero, 1);
+static const struct test_f_f_data cosh_test_data[] =
+ {
+ TEST_f_f (cosh, 0, 1),
+ TEST_f_f (cosh, minus_zero, 1),
#ifndef TEST_INLINE
- TEST_f_f (cosh, plus_infty, plus_infty);
- TEST_f_f (cosh, minus_infty, plus_infty);
+ TEST_f_f (cosh, plus_infty, plus_infty),
+ TEST_f_f (cosh, minus_infty, plus_infty),
#endif
- TEST_f_f (cosh, qnan_value, qnan_value);
+ TEST_f_f (cosh, qnan_value, qnan_value),
- TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L);
+ TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L),
#ifndef TEST_FLOAT
- TEST_f_f (cosh, 709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L);
- TEST_f_f (cosh, -709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L);
+ TEST_f_f (cosh, 709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L),
+ TEST_f_f (cosh, -709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L),
#endif
+ };
- END (cosh);
+static void
+cosh_test (void)
+{
+ START (cosh);
+ RUN_TEST_LOOP_f_f (cosh, cosh_test_data, );
+ END;
}
+static const struct test_f_f_data cosh_tonearest_test_data[] =
+ {
+ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L),
+ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L),
+ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L),
+ };
+
static void
cosh_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cosh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cosh_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
- TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
- TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
- }
-
- fesetround (save_round_mode);
-
- END (cosh_tonearest);
+ RUN_TEST_LOOP_f_f (cosh, cosh_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data cosh_towardzero_test_data[] =
+ {
+ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L),
+ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L),
+ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L),
+ };
+
static void
cosh_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cosh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cosh_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
- TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
- TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
- }
-
- fesetround (save_round_mode);
-
- END (cosh_towardzero);
+ RUN_TEST_LOOP_f_f (cosh, cosh_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data cosh_downward_test_data[] =
+ {
+ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L),
+ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L),
+ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L),
+ };
+
static void
cosh_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cosh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cosh_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
- TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
- TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
- }
-
- fesetround (save_round_mode);
-
- END (cosh_downward);
+ RUN_TEST_LOOP_f_f (cosh, cosh_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data cosh_upward_test_data[] =
+ {
+ TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L),
+ TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L),
+ TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L),
+ };
+
static void
cosh_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(cosh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cosh_upward);
+ RUN_TEST_LOOP_f_f (cosh, cosh_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
- TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
- TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
- }
+static const struct test_cc_c_data cpow_test_data[] =
+ {
+ TEST_cc_c (cpow, 1, 0, 0, 0, 1.0, 0.0),
+ TEST_cc_c (cpow, 2, 0, 10, 0, 1024.0, 0.0),
+#if 0
+ /* Disabled until we fix bug 14473. */
+ TEST_cc_c (cpow, M_El, 0, 0, 2 * M_PIl, 1.0, 0.0),
+#endif
+ TEST_cc_c (cpow, 2, 3, 4, 0, -119.0, -120.0),
- fesetround (save_round_mode);
-
- END (cosh_upward);
-}
+ TEST_cc_c (cpow, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value),
+ TEST_cc_c (cpow, 0.75L, 1.25L, 0.75L, 1.25L, 0.117506293914473555420279832210420483L, 0.346552747708338676483025352060418001L),
+ TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 1.0L, 0.0846958290317209430433805274189191353L, 0.513285749182902449043287190519090481L),
+ TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 0.0L, 0.75L, 1.25L),
+ TEST_cc_c (cpow, 0.75L, 1.25L, 0.0L, 1.0L, 0.331825439177608832276067945276730566L, 0.131338600281188544930936345230903032L),
+ };
static void
cpow_test (void)
{
- errno = 0;
- FUNC(cpow) (BUILD_COMPLEX (1, 0), BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (cpow);
+ RUN_TEST_LOOP_cc_c (cpow, cpow_test_data, );
+ END_COMPLEX;
+}
- TEST_cc_c (cpow, 1, 0, 0, 0, 1.0, 0.0);
- TEST_cc_c (cpow, 2, 0, 10, 0, 1024.0, 0.0);
-
- TEST_cc_c (cpow, M_El, 0, 0, 2 * M_PIl, 1.0, 0.0);
- TEST_cc_c (cpow, 2, 3, 4, 0, -119.0, -120.0);
- TEST_cc_c (cpow, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value, qnan_value);
+static const struct test_c_c_data cproj_test_data[] =
+ {
+ TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
- TEST_cc_c (cpow, 0.75L, 1.25L, 0.75L, 1.25L, 0.117506293914473555420279832210420483L, 0.346552747708338676483025352060418001L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 1.0L, 0.0846958290317209430433805274189191353L, 0.513285749182902449043287190519090481L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 1.0L, 0.0L, 0.75L, 1.25L);
- TEST_cc_c (cpow, 0.75L, 1.25L, 0.0L, 1.0L, 0.331825439177608832276067945276730566L, 0.131338600281188544930936345230903032L);
+ TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- END (cpow, complex);
-}
+ TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0, NO_INEXACT_EXCEPTION),
+ };
static void
cproj_test (void)
{
START (cproj);
- TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero);
- TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero);
- TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0);
-
- TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0);
- TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero);
- TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0);
- TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero);
-
- TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0);
- TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0);
-
- END (cproj, complex);
+ RUN_TEST_LOOP_c_c (cproj, cproj_test_data, );
+ END_COMPLEX;
}
+static const struct test_c_f_data creal_test_data[] =
+ {
+ TEST_c_f (creal, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_zero, 1.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, 1.0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, plus_infty, 1.0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_infty, 1.0, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, 2.0, 3.0, 2.0, NO_INEXACT_EXCEPTION),
+ };
+
static void
creal_test (void)
{
START (creal);
- TEST_c_f (creal, 0.0, 1.0, 0.0);
- TEST_c_f (creal, minus_zero, 1.0, minus_zero);
- TEST_c_f (creal, qnan_value, 1.0, qnan_value);
- TEST_c_f (creal, qnan_value, qnan_value, qnan_value);
- TEST_c_f (creal, plus_infty, 1.0, plus_infty);
- TEST_c_f (creal, minus_infty, 1.0, minus_infty);
- TEST_c_f (creal, 2.0, 3.0, 2.0);
-
- END (creal);
+ RUN_TEST_LOOP_c_f (creal, creal_test_data, );
+ END;
}
-static void
-csin_test (void)
-{
- errno = 0;
- FUNC(csin) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (csin);
+static const struct test_c_c_data csin_test_data[] =
+ {
+ TEST_c_c (csin, 0.0, 0.0, 0.0, 0.0),
+ TEST_c_c (csin, minus_zero, 0.0, minus_zero, 0.0),
+ TEST_c_c (csin, 0.0, minus_zero, 0, minus_zero),
+ TEST_c_c (csin, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (csin, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (csin, minus_zero, 0.0, minus_zero, 0.0);
- TEST_c_c (csin, 0.0, minus_zero, 0, minus_zero);
- TEST_c_c (csin, minus_zero, minus_zero, minus_zero, minus_zero);
+ TEST_c_c (csin, 0.0, plus_infty, 0.0, plus_infty),
+ TEST_c_c (csin, minus_zero, plus_infty, minus_zero, plus_infty),
+ TEST_c_c (csin, 0.0, minus_infty, 0.0, minus_infty),
+ TEST_c_c (csin, minus_zero, minus_infty, minus_zero, minus_infty),
- TEST_c_c (csin, 0.0, plus_infty, 0.0, plus_infty);
- TEST_c_c (csin, minus_zero, plus_infty, minus_zero, plus_infty);
- TEST_c_c (csin, 0.0, minus_infty, 0.0, minus_infty);
- TEST_c_c (csin, minus_zero, minus_infty, minus_zero, minus_infty);
+ TEST_c_c (csin, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csin, plus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, 0.0, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, plus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, minus_zero, qnan_value, 0.0, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csin, plus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, minus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, plus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, minus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csin, plus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, plus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, plus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, minus_infty, minus_infty, qnan_value, plus_infty, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csin, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csin, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csin, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csin, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (csin, plus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, plus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, minus_infty, 6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csin, minus_infty, -6.75, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (csin, 4.625, plus_infty, minus_infty, minus_infty),
+ TEST_c_c (csin, 4.625, minus_infty, minus_infty, plus_infty),
+ TEST_c_c (csin, -4.625, plus_infty, plus_infty, minus_infty),
+ TEST_c_c (csin, -4.625, minus_infty, plus_infty, plus_infty),
- TEST_c_c (csin, 4.625, plus_infty, minus_infty, minus_infty);
- TEST_c_c (csin, 4.625, minus_infty, minus_infty, plus_infty);
- TEST_c_c (csin, -4.625, plus_infty, plus_infty, minus_infty);
- TEST_c_c (csin, -4.625, minus_infty, plus_infty, plus_infty);
+ TEST_c_c (csin, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csin, qnan_value, 0.0, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, qnan_value, minus_zero, qnan_value, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csin, qnan_value, plus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csin, qnan_value, minus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csin, qnan_value, plus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csin, qnan_value, minus_infty, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csin, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csin, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csin, qnan_value, 9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, qnan_value, -9.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csin, 0.0, qnan_value, 0.0, qnan_value),
+ TEST_c_c (csin, minus_zero, qnan_value, minus_zero, qnan_value),
- TEST_c_c (csin, 0.0, qnan_value, 0.0, qnan_value);
- TEST_c_c (csin, minus_zero, qnan_value, minus_zero, qnan_value);
+ TEST_c_c (csin, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csin, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csin, 10.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csin, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csin, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csin, plus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csin, minus_infty, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csin, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (csin, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (csin, 0.75L, 1.25L, 1.28722291002649188575873510790565441L, 1.17210635989270256101081285116138863L),
+ TEST_c_c (csin, -2, -3, -9.15449914691142957346729954460983256L, 4.16890695996656435075481305885375484L),
- TEST_c_c (csin, 0.75L, 1.25L, 1.28722291002649188575873510790565441L, 1.17210635989270256101081285116138863L);
- TEST_c_c (csin, -2, -3, -9.15449914691142957346729954460983256L, 4.16890695996656435075481305885375484L);
-
- TEST_c_c (csin, 0.75, 89.5, 2.522786001038096774676288412995370563339e38L, 2.708024460708609732016532185663087200560e38L);
- TEST_c_c (csin, 0.75, -89.5, 2.522786001038096774676288412995370563339e38L, -2.708024460708609732016532185663087200560e38L);
- TEST_c_c (csin, -0.75, 89.5, -2.522786001038096774676288412995370563339e38L, 2.708024460708609732016532185663087200560e38L);
- TEST_c_c (csin, -0.75, -89.5, -2.522786001038096774676288412995370563339e38L, -2.708024460708609732016532185663087200560e38L);
+ TEST_c_c (csin, 0.75, 89.5, 2.522786001038096774676288412995370563339e38L, 2.708024460708609732016532185663087200560e38L),
+ TEST_c_c (csin, 0.75, -89.5, 2.522786001038096774676288412995370563339e38L, -2.708024460708609732016532185663087200560e38L),
+ TEST_c_c (csin, -0.75, 89.5, -2.522786001038096774676288412995370563339e38L, 2.708024460708609732016532185663087200560e38L),
+ TEST_c_c (csin, -0.75, -89.5, -2.522786001038096774676288412995370563339e38L, -2.708024460708609732016532185663087200560e38L),
#ifndef TEST_FLOAT
- TEST_c_c (csin, 0.75, 710.5, 1.255317763348154410745082950806112487736e308L, 1.347490911916428129246890157395342279438e308L);
- TEST_c_c (csin, 0.75, -710.5, 1.255317763348154410745082950806112487736e308L, -1.347490911916428129246890157395342279438e308L);
- TEST_c_c (csin, -0.75, 710.5, -1.255317763348154410745082950806112487736e308L, 1.347490911916428129246890157395342279438e308L);
- TEST_c_c (csin, -0.75, -710.5, -1.255317763348154410745082950806112487736e308L, -1.347490911916428129246890157395342279438e308L);
+ TEST_c_c (csin, 0.75, 710.5, 1.255317763348154410745082950806112487736e308L, 1.347490911916428129246890157395342279438e308L),
+ TEST_c_c (csin, 0.75, -710.5, 1.255317763348154410745082950806112487736e308L, -1.347490911916428129246890157395342279438e308L),
+ TEST_c_c (csin, -0.75, 710.5, -1.255317763348154410745082950806112487736e308L, 1.347490911916428129246890157395342279438e308L),
+ TEST_c_c (csin, -0.75, -710.5, -1.255317763348154410745082950806112487736e308L, -1.347490911916428129246890157395342279438e308L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (csin, 0.75, 11357.25, 8.385498349388321535962327491346664141020e4931L, 9.001213196851067077465606717616495588201e4931L);
- TEST_c_c (csin, 0.75, -11357.25, 8.385498349388321535962327491346664141020e4931L, -9.001213196851067077465606717616495588201e4931L);
- TEST_c_c (csin, -0.75, 11357.25, -8.385498349388321535962327491346664141020e4931L, 9.001213196851067077465606717616495588201e4931L);
- TEST_c_c (csin, -0.75, -11357.25, -8.385498349388321535962327491346664141020e4931L, -9.001213196851067077465606717616495588201e4931L);
+ TEST_c_c (csin, 0.75, 11357.25, 8.385498349388321535962327491346664141020e4931L, 9.001213196851067077465606717616495588201e4931L),
+ TEST_c_c (csin, 0.75, -11357.25, 8.385498349388321535962327491346664141020e4931L, -9.001213196851067077465606717616495588201e4931L),
+ TEST_c_c (csin, -0.75, 11357.25, -8.385498349388321535962327491346664141020e4931L, 9.001213196851067077465606717616495588201e4931L),
+ TEST_c_c (csin, -0.75, -11357.25, -8.385498349388321535962327491346664141020e4931L, -9.001213196851067077465606717616495588201e4931L),
#endif
#ifdef TEST_FLOAT
- TEST_c_c (csin, 0x1p-149, 180, 1.043535896672617552965983803453927655332e33L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_c_c (csin, 0x1p-149, 180, 1.043535896672617552965983803453927655332e33L, plus_infty, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (csin, 0x1p-1074, 1440, 5.981479269486130556466515778180916082415e301L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_c_c (csin, 0x1p-1074, 1440, 5.981479269486130556466515778180916082415e301L, plus_infty, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (csin, 0x1p-16434L, 22730, 1.217853148905605987081057582351152052687e4924L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_c_c (csin, 0x1p-16434L, 22730, 1.217853148905605987081057582351152052687e4924L, plus_infty, OVERFLOW_EXCEPTION),
#endif
- END (csin, complex);
-}
-
+ TEST_c_c (csin, min_subnorm_value, min_value, min_subnorm_value, min_value, UNDERFLOW_EXCEPTION),
+ TEST_c_c (csin, min_value, min_subnorm_value, min_value, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ };
static void
-csinh_test (void)
+csin_test (void)
{
- errno = 0;
- FUNC(csinh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (csin);
+ RUN_TEST_LOOP_c_c (csin, csin_test_data, );
+ END_COMPLEX;
+}
- START (csinh);
- TEST_c_c (csinh, 0.0, 0.0, 0.0, 0.0);
- TEST_c_c (csinh, minus_zero, 0.0, minus_zero, 0.0);
- TEST_c_c (csinh, 0.0, minus_zero, 0.0, minus_zero);
- TEST_c_c (csinh, minus_zero, minus_zero, minus_zero, minus_zero);
+static const struct test_c_c_data csinh_test_data[] =
+ {
+ TEST_c_c (csinh, 0.0, 0.0, 0.0, 0.0),
+ TEST_c_c (csinh, minus_zero, 0.0, minus_zero, 0.0),
+ TEST_c_c (csinh, 0.0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (csinh, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (csinh, 0.0, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, 0.0, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csinh, 0.0, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_zero, plus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, 0.0, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_zero, minus_infty, 0.0, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csinh, plus_infty, 0.0, plus_infty, 0.0);
- TEST_c_c (csinh, minus_infty, 0.0, minus_infty, 0.0);
- TEST_c_c (csinh, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (csinh, minus_infty, minus_zero, minus_infty, minus_zero);
+ TEST_c_c (csinh, plus_infty, 0.0, plus_infty, 0.0),
+ TEST_c_c (csinh, minus_infty, 0.0, minus_infty, 0.0),
+ TEST_c_c (csinh, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (csinh, minus_infty, minus_zero, minus_infty, minus_zero),
- TEST_c_c (csinh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csinh, plus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION|IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csinh, plus_infty, 4.625, minus_infty, minus_infty);
- TEST_c_c (csinh, minus_infty, 4.625, plus_infty, minus_infty);
- TEST_c_c (csinh, plus_infty, -4.625, minus_infty, plus_infty);
- TEST_c_c (csinh, minus_infty, -4.625, plus_infty, plus_infty);
+ TEST_c_c (csinh, plus_infty, 4.625, minus_infty, minus_infty),
+ TEST_c_c (csinh, minus_infty, 4.625, plus_infty, minus_infty),
+ TEST_c_c (csinh, plus_infty, -4.625, minus_infty, plus_infty),
+ TEST_c_c (csinh, minus_infty, -4.625, plus_infty, plus_infty),
- TEST_c_c (csinh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (csinh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (csinh, 6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csinh, -6.75, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csinh, 6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (csinh, -6.75, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (csinh, 0.0, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_zero, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csinh, 0.0, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_zero, qnan_value, 0.0, qnan_value, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csinh, plus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (csinh, minus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (csinh, plus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (csinh, minus_infty, qnan_value, plus_infty, qnan_value, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (csinh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csinh, 9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csinh, -9.0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csinh, qnan_value, 0.0, qnan_value, 0.0);
- TEST_c_c (csinh, qnan_value, minus_zero, qnan_value, minus_zero);
+ TEST_c_c (csinh, qnan_value, 0.0, qnan_value, 0.0),
+ TEST_c_c (csinh, qnan_value, minus_zero, qnan_value, minus_zero),
- TEST_c_c (csinh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csinh, qnan_value, 10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csinh, qnan_value, -10.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csinh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csinh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (csinh, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csinh, qnan_value, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (csinh, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (csinh, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (csinh, 0.75L, 1.25L, 0.259294854551162779153349830618433028L, 1.22863452409509552219214606515777594L);
- TEST_c_c (csinh, -2, -3, 3.59056458998577995201256544779481679L, -0.530921086248519805267040090660676560L);
+ TEST_c_c (csinh, 0.75L, 1.25L, 0.259294854551162779153349830618433028L, 1.22863452409509552219214606515777594L),
+ TEST_c_c (csinh, -2, -3, 3.59056458998577995201256544779481679L, -0.530921086248519805267040090660676560L),
- TEST_c_c (csinh, 89.5, 0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
- TEST_c_c (csinh, -89.5, 0.75, -2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L);
- TEST_c_c (csinh, 89.5, -0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
- TEST_c_c (csinh, -89.5, -0.75, -2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L);
+ TEST_c_c (csinh, 89.5, 0.75, 2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (csinh, -89.5, 0.75, -2.708024460708609732016532185663087200560e38L, 2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (csinh, 89.5, -0.75, 2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
+ TEST_c_c (csinh, -89.5, -0.75, -2.708024460708609732016532185663087200560e38L, -2.522786001038096774676288412995370563339e38L),
#ifndef TEST_FLOAT
- TEST_c_c (csinh, 710.5, 0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
- TEST_c_c (csinh, -710.5, 0.75, -1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L);
- TEST_c_c (csinh, 710.5, -0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
- TEST_c_c (csinh, -710.5, -0.75, -1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L);
+ TEST_c_c (csinh, 710.5, 0.75, 1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (csinh, -710.5, 0.75, -1.347490911916428129246890157395342279438e308L, 1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (csinh, 710.5, -0.75, 1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
+ TEST_c_c (csinh, -710.5, -0.75, -1.347490911916428129246890157395342279438e308L, -1.255317763348154410745082950806112487736e308L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (csinh, 11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (csinh, -11357.25, 0.75, -9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (csinh, 11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
- TEST_c_c (csinh, -11357.25, -0.75, -9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L);
+ TEST_c_c (csinh, 11357.25, 0.75, 9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (csinh, -11357.25, 0.75, -9.001213196851067077465606717616495588201e4931L, 8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (csinh, 11357.25, -0.75, 9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
+ TEST_c_c (csinh, -11357.25, -0.75, -9.001213196851067077465606717616495588201e4931L, -8.385498349388321535962327491346664141020e4931L),
#endif
#ifdef TEST_FLOAT
- TEST_c_c (csinh, 180, 0x1p-149, plus_infty, 1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION);
+ TEST_c_c (csinh, 180, 0x1p-149, plus_infty, 1.043535896672617552965983803453927655332e33L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (csinh, 1440, 0x1p-1074, plus_infty, 5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION);
+ TEST_c_c (csinh, 1440, 0x1p-1074, plus_infty, 5.981479269486130556466515778180916082415e301L, OVERFLOW_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (csinh, 22730, 0x1p-16434L, plus_infty, 1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION);
+ TEST_c_c (csinh, 22730, 0x1p-16434L, plus_infty, 1.217853148905605987081057582351152052687e4924L, OVERFLOW_EXCEPTION),
#endif
- END (csinh, complex);
-}
-
+ TEST_c_c (csinh, min_subnorm_value, min_value, min_subnorm_value, min_value, UNDERFLOW_EXCEPTION),
+ TEST_c_c (csinh, min_value, min_subnorm_value, min_value, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ };
static void
-csqrt_test (void)
+csinh_test (void)
{
- errno = 0;
- FUNC(csqrt) (BUILD_COMPLEX (-1, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (csqrt);
-
- TEST_c_c (csqrt, 0, 0, 0.0, 0.0);
- TEST_c_c (csqrt, 0, minus_zero, 0, minus_zero);
- TEST_c_c (csqrt, minus_zero, 0, 0.0, 0.0);
- TEST_c_c (csqrt, minus_zero, minus_zero, 0.0, minus_zero);
-
- TEST_c_c (csqrt, minus_infty, 0, 0.0, plus_infty);
- TEST_c_c (csqrt, minus_infty, 6, 0.0, plus_infty);
- TEST_c_c (csqrt, minus_infty, minus_zero, 0.0, minus_infty);
- TEST_c_c (csqrt, minus_infty, -6, 0.0, minus_infty);
-
- TEST_c_c (csqrt, plus_infty, 0, plus_infty, 0.0);
- TEST_c_c (csqrt, plus_infty, 6, plus_infty, 0.0);
- TEST_c_c (csqrt, plus_infty, minus_zero, plus_infty, minus_zero);
- TEST_c_c (csqrt, plus_infty, -6, plus_infty, minus_zero);
-
- TEST_c_c (csqrt, 0, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, 4, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, plus_infty, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, minus_zero, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, -4, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, minus_infty, plus_infty, plus_infty, plus_infty);
- TEST_c_c (csqrt, 0, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, 4, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, plus_infty, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, minus_zero, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, -4, minus_infty, plus_infty, minus_infty);
- TEST_c_c (csqrt, minus_infty, minus_infty, plus_infty, minus_infty);
-
- TEST_c_c (csqrt, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN);
-
- TEST_c_c (csqrt, plus_infty, qnan_value, plus_infty, qnan_value);
-
- TEST_c_c (csqrt, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, -1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csqrt, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, qnan_value, 8, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (csqrt, qnan_value, -8, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
-
- TEST_c_c (csqrt, qnan_value, qnan_value, qnan_value, qnan_value);
-
- TEST_c_c (csqrt, 16.0, -30.0, 5.0, -3.0);
- TEST_c_c (csqrt, -1, 0, 0.0, 1.0);
- TEST_c_c (csqrt, 0, 2, 1.0, 1.0);
- TEST_c_c (csqrt, 119, 120, 12.0, 5.0);
- TEST_c_c (csqrt, 0.75L, 1.25L, 1.05065169626078392338656675760808326L, 0.594868882070379067881984030639932657L);
- TEST_c_c (csqrt, -2, -3, 0.89597747612983812471573375529004348L, -1.6741492280355400404480393008490519L);
- TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L, 1.6741492280355400404480393008490519L);
- /* Principal square root should be returned (i.e., non-negative real
- part). */
- TEST_c_c (csqrt, 0, -1, M_SQRT_2_2, -M_SQRT_2_2);
-
- TEST_c_c (csqrt, 0x1.fffffep+127L, 0x1.fffffep+127L, 2.026714405498316804978751017492482558075e+19L, 8.394925938143272988211878516208015586281e+18L);
- TEST_c_c (csqrt, 0x1.fffffep+127L, 1.0L, 1.844674352395372953599975585936590505260e+19L, 2.710505511993121390769065968615872097053e-20L);
- TEST_c_c (csqrt, 0x1p-149L, 0x1p-149L, 4.112805464342778798097003462770175200803e-23L, 1.703579802732953750368659735601389709551e-23L);
- TEST_c_c (csqrt, 0x1p-147L, 0x1p-147L, 8.225610928685557596194006925540350401606e-23L, 3.407159605465907500737319471202779419102e-23L);
-
- TEST_c_c (csqrt, plus_zero, 0x1p-149L, 2.646977960169688559588507814623881131411e-23L, 2.646977960169688559588507814623881131411e-23L);
- TEST_c_c (csqrt, 0x1p-50L, 0x1p-149L, 2.980232238769531250000000000000000000000e-8L, 2.350988701644575015937473074444491355637e-38L);
+ START (csinh);
+ RUN_TEST_LOOP_c_c (csinh, csinh_test_data, );
+ END_COMPLEX;
+}
+
+
+static const struct test_c_c_data csqrt_test_data[] =
+ {
+ TEST_c_c (csqrt, 0, 0, 0.0, 0.0),
+ TEST_c_c (csqrt, 0, minus_zero, 0, minus_zero),
+ TEST_c_c (csqrt, minus_zero, 0, 0.0, 0.0),
+ TEST_c_c (csqrt, minus_zero, minus_zero, 0.0, minus_zero),
+
+ TEST_c_c (csqrt, minus_infty, 0, 0.0, plus_infty),
+ TEST_c_c (csqrt, minus_infty, 6, 0.0, plus_infty),
+ TEST_c_c (csqrt, minus_infty, minus_zero, 0.0, minus_infty),
+ TEST_c_c (csqrt, minus_infty, -6, 0.0, minus_infty),
+
+ TEST_c_c (csqrt, plus_infty, 0, plus_infty, 0.0),
+ TEST_c_c (csqrt, plus_infty, 6, plus_infty, 0.0),
+ TEST_c_c (csqrt, plus_infty, minus_zero, plus_infty, minus_zero),
+ TEST_c_c (csqrt, plus_infty, -6, plus_infty, minus_zero),
+
+ TEST_c_c (csqrt, 0, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, 4, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, plus_infty, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, minus_zero, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, -4, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, minus_infty, plus_infty, plus_infty, plus_infty),
+ TEST_c_c (csqrt, 0, minus_infty, plus_infty, minus_infty),
+ TEST_c_c (csqrt, 4, minus_infty, plus_infty, minus_infty),
+ TEST_c_c (csqrt, plus_infty, minus_infty, plus_infty, minus_infty),
+ TEST_c_c (csqrt, minus_zero, minus_infty, plus_infty, minus_infty),
+ TEST_c_c (csqrt, -4, minus_infty, plus_infty, minus_infty),
+ TEST_c_c (csqrt, minus_infty, minus_infty, plus_infty, minus_infty),
+
+ TEST_c_c (csqrt, minus_infty, qnan_value, qnan_value, plus_infty, IGNORE_ZERO_INF_SIGN),
+
+ TEST_c_c (csqrt, plus_infty, qnan_value, plus_infty, qnan_value),
+
+ TEST_c_c (csqrt, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, 1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, -1, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (csqrt, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, qnan_value, 8, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (csqrt, qnan_value, -8, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+
+ TEST_c_c (csqrt, qnan_value, qnan_value, qnan_value, qnan_value),
+
+ TEST_c_c (csqrt, 16.0, -30.0, 5.0, -3.0),
+ TEST_c_c (csqrt, -1, 0, 0.0, 1.0),
+ TEST_c_c (csqrt, 0, 2, 1.0, 1.0),
+ TEST_c_c (csqrt, 119, 120, 12.0, 5.0),
+ TEST_c_c (csqrt, 0.75L, 1.25L, 1.05065169626078392338656675760808326L, 0.594868882070379067881984030639932657L),
+ TEST_c_c (csqrt, -2, -3, 0.89597747612983812471573375529004348L, -1.6741492280355400404480393008490519L),
+ TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L, 1.6741492280355400404480393008490519L),
+ /* Principal square root should be returned (i.e., non-negative real
+ part). */
+ TEST_c_c (csqrt, 0, -1, M_SQRT1_2l, -M_SQRT1_2l),
+
+ TEST_c_c (csqrt, 0x1.fffffep+127L, 0x1.fffffep+127L, 2.026714405498316804978751017492482558075e+19L, 8.394925938143272988211878516208015586281e+18L),
+ TEST_c_c (csqrt, 0x1.fffffep+127L, 1.0L, 1.844674352395372953599975585936590505260e+19L, 2.710505511993121390769065968615872097053e-20L),
+ TEST_c_c (csqrt, 0x1p-149L, 0x1p-149L, 4.112805464342778798097003462770175200803e-23L, 1.703579802732953750368659735601389709551e-23L),
+ TEST_c_c (csqrt, 0x1p-147L, 0x1p-147L, 8.225610928685557596194006925540350401606e-23L, 3.407159605465907500737319471202779419102e-23L),
+
+ TEST_c_c (csqrt, plus_zero, 0x1p-149L, 2.646977960169688559588507814623881131411e-23L, 2.646977960169688559588507814623881131411e-23L),
+ TEST_c_c (csqrt, 0x1p-50L, 0x1p-149L, 2.980232238769531250000000000000000000000e-8L, 2.350988701644575015937473074444491355637e-38L),
#ifdef TEST_FLOAT
- TEST_c_c (csqrt, 0x1p+127L, 0x1p-149L, 1.304381782533278221234957180625250836888e19L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (csqrt, 0x1p+127L, 0x1p-149L, 1.304381782533278221234957180625250836888e19L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (csqrt, 0x1p-149L, 0x1p+127L, 9.223372036854775808000000000000000000000e18L, 9.223372036854775808000000000000000000000e18L);
- TEST_c_c (csqrt, 0x1.000002p-126L, 0x1.000002p-126L, 1.191195773697904627170323731331667740087e-19L, 4.934094449071842328766868579214125217132e-20L);
- TEST_c_c (csqrt, -0x1.000002p-126L, -0x1.000002p-126L, 4.934094449071842328766868579214125217132e-20L, -1.191195773697904627170323731331667740087e-19L);
+ TEST_c_c (csqrt, 0x1p-149L, 0x1p+127L, 9.223372036854775808000000000000000000000e18L, 9.223372036854775808000000000000000000000e18L),
+ TEST_c_c (csqrt, 0x1.000002p-126L, 0x1.000002p-126L, 1.191195773697904627170323731331667740087e-19L, 4.934094449071842328766868579214125217132e-20L),
+ TEST_c_c (csqrt, -0x1.000002p-126L, -0x1.000002p-126L, 4.934094449071842328766868579214125217132e-20L, -1.191195773697904627170323731331667740087e-19L),
#ifndef TEST_FLOAT
- TEST_c_c (csqrt, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 1.473094556905565378990473658199034571917e+154L, 6.101757441282702188537080005372547713595e+153L);
- TEST_c_c (csqrt, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 1.379778091031440685006200821918878702861e+154L, 3.257214233483129514781233066898042490248e+153L);
- TEST_c_c (csqrt, 0x1p-1074L, 0x1p-1074L, 2.442109726130830256743814843868934877597e-162L, 1.011554969366634726113090867589031782487e-162L);
- TEST_c_c (csqrt, 0x1p-1073L, 0x1p-1073L, 3.453664695497464982856905711457966660085e-162L, 1.430554756764195530630723976279903095110e-162L);
+ TEST_c_c (csqrt, 0x1.fffffffffffffp+1023L, 0x1.fffffffffffffp+1023L, 1.473094556905565378990473658199034571917e+154L, 6.101757441282702188537080005372547713595e+153L),
+ TEST_c_c (csqrt, 0x1.fffffffffffffp+1023L, 0x1p+1023L, 1.379778091031440685006200821918878702861e+154L, 3.257214233483129514781233066898042490248e+153L),
+ TEST_c_c (csqrt, 0x1p-1074L, 0x1p-1074L, 2.442109726130830256743814843868934877597e-162L, 1.011554969366634726113090867589031782487e-162L),
+ TEST_c_c (csqrt, 0x1p-1073L, 0x1p-1073L, 3.453664695497464982856905711457966660085e-162L, 1.430554756764195530630723976279903095110e-162L),
- TEST_c_c (csqrt, plus_zero, 0x1p-1074L, 1.571727784702628688909515672805082228285e-162L, 1.571727784702628688909515672805082228285e-162L);
- TEST_c_c (csqrt, 0x1p-500L, 0x1p-1074L, 5.527147875260444560247265192192255725514e-76L, 4.469444793151709302716387622440056066334e-249L);
+ TEST_c_c (csqrt, plus_zero, 0x1p-1074L, 1.571727784702628688909515672805082228285e-162L, 1.571727784702628688909515672805082228285e-162L),
+ TEST_c_c (csqrt, 0x1p-500L, 0x1p-1074L, 5.527147875260444560247265192192255725514e-76L, 4.469444793151709302716387622440056066334e-249L),
#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MAX_EXP == 1024)
- TEST_c_c (csqrt, 0x1p+1023L, 0x1p-1074L, 9.480751908109176726832526455652159260085e153L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (csqrt, 0x1p+1023L, 0x1p-1074L, 9.480751908109176726832526455652159260085e153L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (csqrt, 0x1p-1074L, 0x1p+1023L, 6.703903964971298549787012499102923063740e153L, 6.703903964971298549787012499102923063740e153L);
- TEST_c_c (csqrt, 0x1.0000000000001p-1022L, 0x1.0000000000001p-1022L, 1.638872094839911521020410942677082920935e-154L, 6.788430486774966350907249113759995429568e-155L);
- TEST_c_c (csqrt, -0x1.0000000000001p-1022L, -0x1.0000000000001p-1022L, 6.788430486774966350907249113759995429568e-155L, -1.638872094839911521020410942677082920935e-154L);
+ TEST_c_c (csqrt, 0x1p-1074L, 0x1p+1023L, 6.703903964971298549787012499102923063740e153L, 6.703903964971298549787012499102923063740e153L),
+ TEST_c_c (csqrt, 0x1.0000000000001p-1022L, 0x1.0000000000001p-1022L, 1.638872094839911521020410942677082920935e-154L, 6.788430486774966350907249113759995429568e-155L),
+ TEST_c_c (csqrt, -0x1.0000000000001p-1022L, -0x1.0000000000001p-1022L, 6.788430486774966350907249113759995429568e-155L, -1.638872094839911521020410942677082920935e-154L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (csqrt, 0x1.fp+16383L, 0x1.fp+16383L, 1.179514222452201722651836720466795901016e+2466L, 4.885707879516577666702435054303191575148e+2465L);
- TEST_c_c (csqrt, 0x1.fp+16383L, 0x1p+16383L, 1.106698967236475180613254276996359485630e+2466L, 2.687568007603946993388538156299100955642e+2465L);
- TEST_c_c (csqrt, 0x1p-16440L, 0x1p-16441L, 3.514690655930285351254618340783294558136e-2475L, 8.297059146828716918029689466551384219370e-2476L);
+ TEST_c_c (csqrt, 0x1.fp+16383L, 0x1.fp+16383L, 1.179514222452201722651836720466795901016e+2466L, 4.885707879516577666702435054303191575148e+2465L),
+ TEST_c_c (csqrt, 0x1.fp+16383L, 0x1p+16383L, 1.106698967236475180613254276996359485630e+2466L, 2.687568007603946993388538156299100955642e+2465L),
+ TEST_c_c (csqrt, 0x1p-16440L, 0x1p-16441L, 3.514690655930285351254618340783294558136e-2475L, 8.297059146828716918029689466551384219370e-2476L),
- TEST_c_c (csqrt, plus_zero, 0x1p-16445L, 4.269191686890197837775136325621239761720e-2476L, 4.269191686890197837775136325621239761720e-2476L);
- TEST_c_c (csqrt, 0x1p-5000L, 0x1p-16445L, 2.660791472672778409283210520357607795518e-753L, 6.849840675828785164910701384823702064234e-4199L);
- TEST_c_c (csqrt, 0x1p+16383L, 0x1p-16445L, 7.712754032630730034273323365543179095045e2465L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (csqrt, 0x1p-16445L, 0x1p+16383L, 5.453740678097079647314921223668914312241e2465L, 5.453740678097079647314921223668914312241e2465L);
- TEST_c_c (csqrt, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-16382L, 2.014551439675644900131815801350165472778e-2466L, 8.344545284118961664300307045791497724440e-2467L);
- TEST_c_c (csqrt, -0x1.0000000000000002p-16382L, -0x1.0000000000000002p-16382L, 8.344545284118961664300307045791497724440e-2467L, -2.014551439675644900131815801350165472778e-2466L);
+ TEST_c_c (csqrt, plus_zero, 0x1p-16445L, 4.269191686890197837775136325621239761720e-2476L, 4.269191686890197837775136325621239761720e-2476L),
+ TEST_c_c (csqrt, 0x1p-5000L, 0x1p-16445L, 2.660791472672778409283210520357607795518e-753L, 6.849840675828785164910701384823702064234e-4199L),
+ TEST_c_c (csqrt, 0x1p+16383L, 0x1p-16445L, 7.712754032630730034273323365543179095045e2465L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (csqrt, 0x1p-16445L, 0x1p+16383L, 5.453740678097079647314921223668914312241e2465L, 5.453740678097079647314921223668914312241e2465L),
+ TEST_c_c (csqrt, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-16382L, 2.014551439675644900131815801350165472778e-2466L, 8.344545284118961664300307045791497724440e-2467L),
+ TEST_c_c (csqrt, -0x1.0000000000000002p-16382L, -0x1.0000000000000002p-16382L, 8.344545284118961664300307045791497724440e-2467L, -2.014551439675644900131815801350165472778e-2466L),
# if LDBL_MANT_DIG >= 113
- TEST_c_c (csqrt, plus_zero, 0x1p-16494L, 1.799329752913293143453817328207572571442e-2483L, 1.799329752913293143453817328207572571442e-2483L);
- TEST_c_c (csqrt, 0x1p-5000L, 0x1p-16494L, 2.660791472672778409283210520357607795518e-753L, 1.216776133331049643422030716668249905907e-4213L);
- TEST_c_c (csqrt, 0x1p+16383L, 0x1p-16494L, 7.712754032630730034273323365543179095045e2465L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (csqrt, 0x1p-16494L, 0x1p+16383L, 5.453740678097079647314921223668914312241e2465L, 5.453740678097079647314921223668914312241e2465L);
- TEST_c_c (csqrt, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-16382L, 2.014551439675644900022606748976158925145e-2466L, 8.344545284118961663847948339519226074126e-2467L);
- TEST_c_c (csqrt, -0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-16382L, 8.344545284118961663847948339519226074126e-2467L, -2.014551439675644900022606748976158925145e-2466L);
+ TEST_c_c (csqrt, plus_zero, 0x1p-16494L, 1.799329752913293143453817328207572571442e-2483L, 1.799329752913293143453817328207572571442e-2483L),
+ TEST_c_c (csqrt, 0x1p-5000L, 0x1p-16494L, 2.660791472672778409283210520357607795518e-753L, 1.216776133331049643422030716668249905907e-4213L),
+ TEST_c_c (csqrt, 0x1p+16383L, 0x1p-16494L, 7.712754032630730034273323365543179095045e2465L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (csqrt, 0x1p-16494L, 0x1p+16383L, 5.453740678097079647314921223668914312241e2465L, 5.453740678097079647314921223668914312241e2465L),
+ TEST_c_c (csqrt, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-16382L, 2.014551439675644900022606748976158925145e-2466L, 8.344545284118961663847948339519226074126e-2467L),
+ TEST_c_c (csqrt, -0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-16382L, 8.344545284118961663847948339519226074126e-2467L, -2.014551439675644900022606748976158925145e-2466L),
# endif
#endif
-
- END (csqrt, complex);
-}
+ };
static void
-ctan_test (void)
+csqrt_test (void)
{
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ctan);
+ START (csqrt);
+ RUN_TEST_LOOP_c_c (csqrt, csqrt_test_data, );
+ END_COMPLEX;
+}
- TEST_c_c (ctan, 0, 0, 0.0, 0.0);
- TEST_c_c (ctan, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (ctan, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (ctan, minus_zero, minus_zero, minus_zero, minus_zero);
+static const struct test_c_c_data ctan_test_data[] =
+ {
+ TEST_c_c (ctan, 0, 0, 0.0, 0.0),
+ TEST_c_c (ctan, 0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (ctan, minus_zero, 0, minus_zero, 0.0),
+ TEST_c_c (ctan, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (ctan, 0, plus_infty, 0.0, 1.0);
- TEST_c_c (ctan, 1, plus_infty, 0.0, 1.0);
- TEST_c_c (ctan, minus_zero, plus_infty, minus_zero, 1.0);
- TEST_c_c (ctan, -1, plus_infty, minus_zero, 1.0);
+ TEST_c_c (ctan, 0, plus_infty, 0.0, 1.0),
+ TEST_c_c (ctan, 1, plus_infty, 0.0, 1.0),
+ TEST_c_c (ctan, minus_zero, plus_infty, minus_zero, 1.0),
+ TEST_c_c (ctan, -1, plus_infty, minus_zero, 1.0),
- TEST_c_c (ctan, 0, minus_infty, 0.0, -1.0);
- TEST_c_c (ctan, 1, minus_infty, 0.0, -1.0);
- TEST_c_c (ctan, minus_zero, minus_infty, minus_zero, -1.0);
- TEST_c_c (ctan, -1, minus_infty, minus_zero, -1.0);
+ TEST_c_c (ctan, 0, minus_infty, 0.0, -1.0),
+ TEST_c_c (ctan, 1, minus_infty, 0.0, -1.0),
+ TEST_c_c (ctan, minus_zero, minus_infty, minus_zero, -1.0),
+ TEST_c_c (ctan, -1, minus_infty, minus_zero, -1.0),
- TEST_c_c (ctan, plus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, plus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctan, minus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ctan, plus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, plus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, minus_infty, 0, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, minus_infty, 2, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, plus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, plus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, minus_infty, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctan, minus_infty, -2, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ctan, qnan_value, plus_infty, 0.0, 1.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ctan, qnan_value, minus_infty, 0.0, -1.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ctan, qnan_value, plus_infty, 0.0, 1.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ctan, qnan_value, minus_infty, 0.0, -1.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ctan, 0, qnan_value, 0.0, qnan_value);
- TEST_c_c (ctan, minus_zero, qnan_value, minus_zero, qnan_value);
+ TEST_c_c (ctan, 0, qnan_value, 0.0, qnan_value),
+ TEST_c_c (ctan, minus_zero, qnan_value, minus_zero, qnan_value),
- TEST_c_c (ctan, 0.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, -4.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ctan, 0.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctan, -4.5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ctan, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctan, qnan_value, -0.25, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ctan, qnan_value, 0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctan, qnan_value, 5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctan, qnan_value, minus_zero, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctan, qnan_value, -0.25, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ctan, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (ctan, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (ctan, 0.75L, 1.25L, 0.160807785916206426725166058173438663L, 0.975363285031235646193581759755216379L);
- TEST_c_c (ctan, -2, -3, 0.376402564150424829275122113032269084e-2L, -1.00323862735360980144635859782192726L);
+ TEST_c_c (ctan, 0.75L, 1.25L, 0.160807785916206426725166058173438663L, 0.975363285031235646193581759755216379L),
+ TEST_c_c (ctan, -2, -3, 0.376402564150424829275122113032269084e-2L, -1.00323862735360980144635859782192726L),
- TEST_c_c (ctan, 1, 45, 1.490158918874345552942703234806348520895e-39L, 1.000000000000000000000000000000000000001L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (ctan, 1, 47, 2.729321264492904590777293425576722354636e-41L, 1.0, UNDERFLOW_EXCEPTION_FLOAT);
+ TEST_c_c (ctan, 1, 45, 1.490158918874345552942703234806348520895e-39L, 1.000000000000000000000000000000000000001L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (ctan, 1, 47, 2.729321264492904590777293425576722354636e-41L, 1.0, UNDERFLOW_EXCEPTION_FLOAT),
#ifndef TEST_FLOAT
- TEST_c_c (ctan, 1, 355, 8.140551093483276762350406321792653551513e-309L, 1.0, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (ctan, 1, 365, 1.677892637497921890115075995898773550884e-317L, 1.0, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (ctan, 1, 355, 8.140551093483276762350406321792653551513e-309L, 1.0, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (ctan, 1, 365, 1.677892637497921890115075995898773550884e-317L, 1.0, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ctan, 1, 5680, 4.725214596136812019616700920476949798307e-4934L, 1.0, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctan, 1, 5690, 9.739393181626937151720816611272607059057e-4943L, 1.0, UNDERFLOW_EXCEPTION);
+ TEST_c_c (ctan, 1, 5680, 4.725214596136812019616700920476949798307e-4934L, 1.0, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctan, 1, 5690, 9.739393181626937151720816611272607059057e-4943L, 1.0, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (ctan, 0x3.243f6cp-1, 0, -2.287733242885645987394874673945769518150e7L, 0.0);
+ TEST_c_c (ctan, 0x3.243f6cp-1, 0, -2.287733242885645987394874673945769518150e7L, 0.0),
- TEST_c_c (ctan, 0x1p127, 1, 0.2446359391192790896381501310437708987204L, 0.9101334047676183761532873794426475906201L);
+ TEST_c_c (ctan, 0x1p127, 1, 0.2446359391192790896381501310437708987204L, 0.9101334047676183761532873794426475906201L),
#ifndef TEST_FLOAT
- TEST_c_c (ctan, 0x1p1023, 1, -0.2254627924997545057926782581695274244229L, 0.8786063118883068695462540226219865087189L);
+ TEST_c_c (ctan, 0x1p1023, 1, -0.2254627924997545057926782581695274244229L, 0.8786063118883068695462540226219865087189L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ctan, 0x1p16383L, 1, 0.1608598776370396607204448234354670036772L, 0.8133818522051542536316746743877629761488L);
+ TEST_c_c (ctan, 0x1p16383L, 1, 0.1608598776370396607204448234354670036772L, 0.8133818522051542536316746743877629761488L),
#endif
- TEST_c_c (ctan, 50000, 50000, plus_zero, 1.0, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctan, 50000, -50000, plus_zero, -1.0, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctan, -50000, 50000, minus_zero, 1.0, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctan, -50000, -50000, minus_zero, -1.0, UNDERFLOW_EXCEPTION);
+ TEST_c_c (ctan, 50000, 50000, plus_zero, 1.0, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctan, 50000, -50000, plus_zero, -1.0, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctan, -50000, 50000, minus_zero, 1.0, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctan, -50000, -50000, minus_zero, -1.0, UNDERFLOW_EXCEPTION),
+ };
- END (ctan, complex);
+static void
+ctan_test (void)
+{
+ START (ctan);
+ RUN_TEST_LOOP_c_c (ctan, ctan_test_data, );
+ END_COMPLEX;
}
+static const struct test_c_c_data ctan_tonearest_test_data[] =
+ {
+ TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L),
+
+#ifndef TEST_FLOAT
+ TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L),
+#endif
+
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L),
+#endif
+ };
+
static void
ctan_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctan_tonearest);
+ RUN_TEST_LOOP_c_c (ctan, ctan_tonearest_test_data, FE_TONEAREST);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TONEAREST))
- {
- TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L);
+static const struct test_c_c_data ctan_towardzero_test_data[] =
+ {
+ TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L);
+ TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L);
+ TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctan_tonearest, complex);
-}
-
+ };
static void
ctan_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctan_towardzero);
+ RUN_TEST_LOOP_c_c (ctan, ctan_towardzero_test_data, FE_TOWARDZERO);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L);
+static const struct test_c_c_data ctan_downward_test_data[] =
+ {
+ TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L);
+ TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L);
+ TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctan_towardzero, complex);
-}
-
+ };
static void
ctan_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctan_downward);
+ RUN_TEST_LOOP_c_c (ctan, ctan_downward_test_data, FE_DOWNWARD);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L);
+static const struct test_c_c_data ctan_upward_test_data[] =
+ {
+ TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L),
#ifndef TEST_FLOAT
- TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L);
+ TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L);
+ TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctan_downward, complex);
-}
-
+ };
static void
ctan_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctan) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctan_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_c_c (ctan, 0x1.921fb6p+0, 0x1p-149, -2.287733242885645987394874673945769518150e7L, 7.334008549954377778731880988481078535821e-31L);
-
-#ifndef TEST_FLOAT
- TEST_c_c (ctan, 0x1.921fb54442d18p+0, 0x1p-1074, 1.633123935319536975596773704152891653086e16L, 1.317719414943508315995636961402669067843e-291L);
-#endif
-
-#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctan, 0x1.921fb54442d1846ap+0L, 0x1p-16445L, -3.986797629811710706723242948653362815645e19L, 5.793882568875674066286163141055208625180e-4912L);
-#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctan_upward, complex);
+ RUN_TEST_LOOP_c_c (ctan, ctan_upward_test_data, FE_UPWARD);
+ END_COMPLEX;
}
-static void
-ctanh_test (void)
-{
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0, 0));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (ctanh);
-
- TEST_c_c (ctanh, 0, 0, 0.0, 0.0);
- TEST_c_c (ctanh, 0, minus_zero, 0.0, minus_zero);
- TEST_c_c (ctanh, minus_zero, 0, minus_zero, 0.0);
- TEST_c_c (ctanh, minus_zero, minus_zero, minus_zero, minus_zero);
+static const struct test_c_c_data ctanh_test_data[] =
+ {
+ TEST_c_c (ctanh, 0, 0, 0.0, 0.0),
+ TEST_c_c (ctanh, 0, minus_zero, 0.0, minus_zero),
+ TEST_c_c (ctanh, minus_zero, 0, minus_zero, 0.0),
+ TEST_c_c (ctanh, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (ctanh, plus_infty, 0, 1.0, 0.0);
- TEST_c_c (ctanh, plus_infty, 1, 1.0, 0.0);
- TEST_c_c (ctanh, plus_infty, minus_zero, 1.0, minus_zero);
- TEST_c_c (ctanh, plus_infty, -1, 1.0, minus_zero);
- TEST_c_c (ctanh, minus_infty, 0, -1.0, 0.0);
- TEST_c_c (ctanh, minus_infty, 1, -1.0, 0.0);
- TEST_c_c (ctanh, minus_infty, minus_zero, -1.0, minus_zero);
- TEST_c_c (ctanh, minus_infty, -1, -1.0, minus_zero);
+ TEST_c_c (ctanh, plus_infty, 0, 1.0, 0.0),
+ TEST_c_c (ctanh, plus_infty, 1, 1.0, 0.0),
+ TEST_c_c (ctanh, plus_infty, minus_zero, 1.0, minus_zero),
+ TEST_c_c (ctanh, plus_infty, -1, 1.0, minus_zero),
+ TEST_c_c (ctanh, minus_infty, 0, -1.0, 0.0),
+ TEST_c_c (ctanh, minus_infty, 1, -1.0, 0.0),
+ TEST_c_c (ctanh, minus_infty, minus_zero, -1.0, minus_zero),
+ TEST_c_c (ctanh, minus_infty, -1, -1.0, minus_zero),
- TEST_c_c (ctanh, 0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, 2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, -2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_c_c (ctanh, -2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
+ TEST_c_c (ctanh, 0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, 2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, 0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, 2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, minus_zero, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, -2, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, minus_zero, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_c_c (ctanh, -2, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_c_c (ctanh, plus_infty, qnan_value, 1.0, 0.0, IGNORE_ZERO_INF_SIGN);
- TEST_c_c (ctanh, minus_infty, qnan_value, -1.0, 0.0, IGNORE_ZERO_INF_SIGN);
+ TEST_c_c (ctanh, plus_infty, qnan_value, 1.0, 0.0, IGNORE_ZERO_INF_SIGN),
+ TEST_c_c (ctanh, minus_infty, qnan_value, -1.0, 0.0, IGNORE_ZERO_INF_SIGN),
- TEST_c_c (ctanh, qnan_value, 0, qnan_value, 0.0);
- TEST_c_c (ctanh, qnan_value, minus_zero, qnan_value, minus_zero);
+ TEST_c_c (ctanh, qnan_value, 0, qnan_value, 0.0),
+ TEST_c_c (ctanh, qnan_value, minus_zero, qnan_value, minus_zero),
- TEST_c_c (ctanh, qnan_value, 0.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, qnan_value, -4.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ctanh, qnan_value, 0.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctanh, qnan_value, -4.5, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ctanh, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, 5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_c_c (ctanh, -0.25, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
+ TEST_c_c (ctanh, 0, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctanh, 5, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctanh, minus_zero, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (ctanh, -0.25, qnan_value, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
- TEST_c_c (ctanh, qnan_value, qnan_value, qnan_value, qnan_value);
+ TEST_c_c (ctanh, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (ctanh, 0, M_PI_4l, 0.0, 1.0);
+ TEST_c_c (ctanh, 0, M_PI_4l, 0.0, 1.0),
- TEST_c_c (ctanh, 0.75L, 1.25L, 1.37260757053378320258048606571226857L, 0.385795952609750664177596760720790220L);
- TEST_c_c (ctanh, -2, -3, -0.965385879022133124278480269394560686L, 0.988437503832249372031403430350121098e-2L);
+ TEST_c_c (ctanh, 0.75L, 1.25L, 1.37260757053378320258048606571226857L, 0.385795952609750664177596760720790220L),
+ TEST_c_c (ctanh, -2, -3, -0.965385879022133124278480269394560686L, 0.988437503832249372031403430350121098e-2L),
- TEST_c_c (ctanh, 45, 1, 1.000000000000000000000000000000000000001L, 1.490158918874345552942703234806348520895e-39L, UNDERFLOW_EXCEPTION_FLOAT);
- TEST_c_c (ctanh, 47, 1, 1.0, 2.729321264492904590777293425576722354636e-41L, UNDERFLOW_EXCEPTION_FLOAT);
+ TEST_c_c (ctanh, 45, 1, 1.000000000000000000000000000000000000001L, 1.490158918874345552942703234806348520895e-39L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_c_c (ctanh, 47, 1, 1.0, 2.729321264492904590777293425576722354636e-41L, UNDERFLOW_EXCEPTION_FLOAT),
#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 355, 1, 1.0, 8.140551093483276762350406321792653551513e-309L, UNDERFLOW_EXCEPTION_DOUBLE);
- TEST_c_c (ctanh, 365, 1, 1.0, 1.677892637497921890115075995898773550884e-317L, UNDERFLOW_EXCEPTION_DOUBLE);
+ TEST_c_c (ctanh, 355, 1, 1.0, 8.140551093483276762350406321792653551513e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_c_c (ctanh, 365, 1, 1.0, 1.677892637497921890115075995898773550884e-317L, UNDERFLOW_EXCEPTION_DOUBLE),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ctanh, 5680, 1, 1.0, 4.725214596136812019616700920476949798307e-4934L, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctanh, 5690, 1, 1.0, 9.739393181626937151720816611272607059057e-4943L, UNDERFLOW_EXCEPTION);
+ TEST_c_c (ctanh, 5680, 1, 1.0, 4.725214596136812019616700920476949798307e-4934L, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctanh, 5690, 1, 1.0, 9.739393181626937151720816611272607059057e-4943L, UNDERFLOW_EXCEPTION),
#endif
- TEST_c_c (ctanh, 0, 0x3.243f6cp-1, 0.0, -2.287733242885645987394874673945769518150e7L);
+ TEST_c_c (ctanh, 0, 0x3.243f6cp-1, 0.0, -2.287733242885645987394874673945769518150e7L),
- TEST_c_c (ctanh, 1, 0x1p127, 0.9101334047676183761532873794426475906201L, 0.2446359391192790896381501310437708987204L);
+ TEST_c_c (ctanh, 1, 0x1p127, 0.9101334047676183761532873794426475906201L, 0.2446359391192790896381501310437708987204L),
#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 1, 0x1p1023, 0.8786063118883068695462540226219865087189L, -0.2254627924997545057926782581695274244229L);
+ TEST_c_c (ctanh, 1, 0x1p1023, 0.8786063118883068695462540226219865087189L, -0.2254627924997545057926782581695274244229L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_c_c (ctanh, 1, 0x1p16383L, 0.8133818522051542536316746743877629761488L, 0.1608598776370396607204448234354670036772L);
+ TEST_c_c (ctanh, 1, 0x1p16383L, 0.8133818522051542536316746743877629761488L, 0.1608598776370396607204448234354670036772L),
#endif
- TEST_c_c (ctanh, 50000, 50000, 1.0, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctanh, 50000, -50000, 1.0, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctanh, -50000, 50000, -1.0, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_c_c (ctanh, -50000, -50000, -1.0, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_c_c (ctanh, 50000, 50000, 1.0, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctanh, 50000, -50000, 1.0, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctanh, -50000, 50000, -1.0, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_c_c (ctanh, -50000, -50000, -1.0, minus_zero, UNDERFLOW_EXCEPTION),
+ };
- END (ctanh, complex);
+static void
+ctanh_test (void)
+{
+ START (ctanh);
+ RUN_TEST_LOOP_c_c (ctanh, ctanh_test_data, );
+ END_COMPLEX;
}
+static const struct test_c_c_data ctanh_tonearest_test_data[] =
+ {
+ TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L),
+
+#ifndef TEST_FLOAT
+ TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L),
+#endif
+
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L),
+#endif
+ };
+
static void
ctanh_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctanh_tonearest);
+ RUN_TEST_LOOP_c_c (ctanh, ctanh_tonearest_test_data, FE_TONEAREST);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TONEAREST))
- {
- TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L);
+static const struct test_c_c_data ctanh_towardzero_test_data[] =
+ {
+ TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L),
#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L);
+ TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L);
+ TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctanh_tonearest, complex);
-}
-
+ };
static void
ctanh_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctanh_towardzero);
+ RUN_TEST_LOOP_c_c (ctanh, ctanh_towardzero_test_data, FE_TOWARDZERO);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L);
+static const struct test_c_c_data ctanh_downward_test_data[] =
+ {
+ TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L),
#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L);
+ TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L);
+ TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctanh_towardzero, complex);
-}
-
+ };
static void
ctanh_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctanh_downward);
+ RUN_TEST_LOOP_c_c (ctanh, ctanh_downward_test_data, FE_DOWNWARD);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L);
+static const struct test_c_c_data ctanh_upward_test_data[] =
+ {
+ TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L),
#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L);
+ TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L);
+ TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L),
#endif
- }
-
- fesetround (save_round_mode);
-
- END (ctanh_downward, complex);
-}
-
+ };
static void
ctanh_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(ctanh) (BUILD_COMPLEX (0.7L, 1.2L));
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (ctanh_upward);
+ RUN_TEST_LOOP_c_c (ctanh, ctanh_upward_test_data, FE_UPWARD);
+ END_COMPLEX;
+}
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_c_c (ctanh, 0x1p-149, 0x1.921fb6p+0, 7.334008549954377778731880988481078535821e-31L, -2.287733242885645987394874673945769518150e7L);
-
-#ifndef TEST_FLOAT
- TEST_c_c (ctanh, 0x1p-1074, 0x1.921fb54442d18p+0, 1.317719414943508315995636961402669067843e-291L, 1.633123935319536975596773704152891653086e16L);
-#endif
-
-#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_c_c (ctanh, 0x1p-16445L, 0x1.921fb54442d1846ap+0L, 5.793882568875674066286163141055208625180e-4912L, -3.986797629811710706723242948653362815645e19L);
-#endif
- }
-
- fesetround (save_round_mode);
- END (ctanh_upward, complex);
-}
+static const struct test_f_f_data erf_test_data[] =
+ {
+ TEST_f_f (erf, 0, 0),
+ TEST_f_f (erf, minus_zero, minus_zero),
+ TEST_f_f (erf, plus_infty, 1),
+ TEST_f_f (erf, minus_infty, -1),
+ TEST_f_f (erf, qnan_value, qnan_value),
+ TEST_f_f (erf, 0.125L, 0.140316204801333817393029446521623398L),
+ TEST_f_f (erf, 0.75L, 0.711155633653515131598937834591410777L),
+ TEST_f_f (erf, 1.25L, 0.922900128256458230136523481197281140L),
+ TEST_f_f (erf, 2.0L, 0.995322265018952734162069256367252929L),
+ TEST_f_f (erf, 4.125L, 0.999999994576599200434933994687765914L),
+ TEST_f_f (erf, 27.0L, 1.0L),
+ };
static void
erf_test (void)
{
- errno = 0;
- FUNC(erf) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (erf);
-
- TEST_f_f (erf, 0, 0);
- TEST_f_f (erf, minus_zero, minus_zero);
- TEST_f_f (erf, plus_infty, 1);
- TEST_f_f (erf, minus_infty, -1);
- TEST_f_f (erf, qnan_value, qnan_value);
-
- TEST_f_f (erf, 0.125L, 0.140316204801333817393029446521623398L);
- TEST_f_f (erf, 0.75L, 0.711155633653515131598937834591410777L);
- TEST_f_f (erf, 1.25L, 0.922900128256458230136523481197281140L);
- TEST_f_f (erf, 2.0L, 0.995322265018952734162069256367252929L);
- TEST_f_f (erf, 4.125L, 0.999999994576599200434933994687765914L);
- TEST_f_f (erf, 27.0L, 1.0L);
-
- END (erf);
-}
-
-
-static void
-erfc_test (void)
-{
- errno = 0;
- FUNC(erfc) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (erfc);
-
- TEST_f_f (erfc, plus_infty, 0.0);
- TEST_f_f (erfc, minus_infty, 2.0);
- TEST_f_f (erfc, 0.0, 1.0);
- TEST_f_f (erfc, minus_zero, 1.0);
- TEST_f_f (erfc, qnan_value, qnan_value);
-
- TEST_f_f (erfc, 0.125L, 0.859683795198666182606970553478376602L);
- TEST_f_f (erfc, 0.75L, 0.288844366346484868401062165408589223L);
- TEST_f_f (erfc, 1.25L, 0.0770998717435417698634765188027188596L);
- TEST_f_f (erfc, 2.0L, 0.00467773498104726583793074363274707139L);
- TEST_f_f (erfc, 0x1.f7303cp+1L, 2.705500297238986897105236321218861842255e-8L);
- TEST_f_f (erfc, 4.125L, 0.542340079956506600531223408575531062e-8L);
- TEST_f_f (erfc, 0x1.ffa002p+2L, 1.233585992097580296336099501489175967033e-29L);
- TEST_f_f (erfc, 0x1.ffffc8p+2L, 1.122671365033056305522366683719541099329e-29L);
+ RUN_TEST_LOOP_f_f (erf, erf_test_data, );
+ END;
+}
+
+
+static const struct test_f_f_data erfc_test_data[] =
+ {
+ TEST_f_f (erfc, plus_infty, 0.0),
+ TEST_f_f (erfc, minus_infty, 2.0),
+ TEST_f_f (erfc, 0.0, 1.0),
+ TEST_f_f (erfc, minus_zero, 1.0),
+ TEST_f_f (erfc, qnan_value, qnan_value),
+
+ TEST_f_f (erfc, 0.125L, 0.859683795198666182606970553478376602L),
+ TEST_f_f (erfc, 0.75L, 0.288844366346484868401062165408589223L),
+ TEST_f_f (erfc, 1.25L, 0.0770998717435417698634765188027188596L),
+ TEST_f_f (erfc, 2.0L, 0.00467773498104726583793074363274707139L),
+ TEST_f_f (erfc, 0x1.f7303cp+1L, 2.705500297238986897105236321218861842255e-8L),
+ TEST_f_f (erfc, 4.125L, 0.542340079956506600531223408575531062e-8L),
+ TEST_f_f (erfc, 0x1.ffa002p+2L, 1.233585992097580296336099501489175967033e-29L),
+ TEST_f_f (erfc, 0x1.ffffc8p+2L, 1.122671365033056305522366683719541099329e-29L),
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
+ /* The result can only be represented in long double. */
# if LDBL_MIN_10_EXP < -319
- TEST_f_f (erfc, 27.0L, 0.523704892378925568501606768284954709e-318L);
+ TEST_f_f (erfc, 27.0L, 0.523704892378925568501606768284954709e-318L),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_f_f (erfc, 0x1.ffff56789abcdef0123456789a8p+2L, 1.123161416304655390092138725253789378459e-29L);
+ TEST_f_f (erfc, 0x1.ffff56789abcdef0123456789a8p+2L, 1.123161416304655390092138725253789378459e-29L),
# endif
#endif
-
- END (erfc);
-}
-
+ };
static void
-exp_test (void)
+erfc_test (void)
{
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (erfc);
+ RUN_TEST_LOOP_f_f (erfc, erfc_test_data, );
+ END;
+}
- START (exp);
- TEST_f_f (exp, 0, 1);
- TEST_f_f (exp, minus_zero, 1);
+static const struct test_f_f_data exp_test_data[] =
+ {
+ TEST_f_f (exp, 0, 1),
+ TEST_f_f (exp, minus_zero, 1),
#ifndef TEST_INLINE
- TEST_f_f (exp, plus_infty, plus_infty);
- TEST_f_f (exp, minus_infty, 0);
+ TEST_f_f (exp, plus_infty, plus_infty),
+ TEST_f_f (exp, minus_infty, 0),
#endif
- TEST_f_f (exp, qnan_value, qnan_value);
- TEST_f_f (exp, 1, M_El);
+ TEST_f_f (exp, qnan_value, qnan_value),
+ TEST_f_f (exp, 1, M_El),
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- TEST_f_f (exp, 0.75L, 2.11700001661267466854536981983709561L);
- TEST_f_f (exp, 50.0L, 5184705528587072464087.45332293348538L);
- TEST_f_f (exp, 88.72269439697265625L, 3.40233126623160774937554134772290447915e38L);
+ TEST_f_f (exp, 2, M_E2l),
+ TEST_f_f (exp, 3, M_E3l),
+ TEST_f_f (exp, 0.75L, 2.11700001661267466854536981983709561L),
+ TEST_f_f (exp, 50.0L, 5184705528587072464087.45332293348538L),
+ TEST_f_f (exp, 88.72269439697265625L, 3.40233126623160774937554134772290447915e38L),
#ifndef TEST_FLOAT
- TEST_f_f (exp, 709.75L, 1.739836873264160557698252711673830393864768e+308L);
+ TEST_f_f (exp, 709.75L, 1.739836873264160557698252711673830393864768e+308L),
#endif
#if defined TEST_LDOUBLE && __LDBL_MAX_EXP__ > 1024
- /* The result can only be represented in sane long double. */
- TEST_f_f (exp, 1000.0L, 0.197007111401704699388887935224332313e435L);
+ /* The result can only be represented in sane long double. */
+ TEST_f_f (exp, 1000.0L, 0.197007111401704699388887935224332313e435L),
#endif
#if !(defined TEST_LDOUBLE && LDBL_MAX_EXP > 1024)
- TEST_f_f (exp, 710, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp, -1234, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_f_f (exp, 710, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp, -1234, plus_zero, UNDERFLOW_EXCEPTION),
#endif
- TEST_f_f (exp, 1e5, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp, -max_value, 0, UNDERFLOW_EXCEPTION);
+ TEST_f_f (exp, 1e5, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp, -max_value, 0, UNDERFLOW_EXCEPTION),
+ };
- END (exp);
+static void
+exp_test (void)
+{
+ START (exp);
+ RUN_TEST_LOOP_f_f (exp, exp_test_data, );
+ END;
}
+static const struct test_f_f_data exp_tonearest_test_data[] =
+ {
+ TEST_f_f (exp, 1, M_El),
+ TEST_f_f (exp, 2, M_E2l),
+ TEST_f_f (exp, 3, M_E3l),
+ };
+
static void
exp_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (exp_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (exp, 1, M_El);
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- }
-
- fesetround (save_round_mode);
-
- END (exp_tonearest);
+ RUN_TEST_LOOP_f_f (exp, exp_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data exp_towardzero_test_data[] =
+ {
+ TEST_f_f (exp, 1, M_El),
+ TEST_f_f (exp, 2, M_E2l),
+ TEST_f_f (exp, 3, M_E3l),
+ };
+
static void
exp_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (exp_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (exp, 1, M_El);
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- }
-
- fesetround (save_round_mode);
-
- END (exp_towardzero);
+ RUN_TEST_LOOP_f_f (exp, exp_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data exp_downward_test_data[] =
+ {
+ TEST_f_f (exp, 1, M_El),
+ TEST_f_f (exp, 2, M_E2l),
+ TEST_f_f (exp, 3, M_E3l),
+ };
+
static void
exp_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (exp_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (exp, 1, M_El);
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- }
-
- fesetround (save_round_mode);
-
- END (exp_downward);
+ RUN_TEST_LOOP_f_f (exp, exp_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data exp_upward_test_data[] =
+ {
+ TEST_f_f (exp, 1, M_El),
+ TEST_f_f (exp, 2, M_E2l),
+ TEST_f_f (exp, 3, M_E3l),
+ };
+
static void
exp_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(exp) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (exp_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (exp, 1, M_El);
- TEST_f_f (exp, 2, M_E2l);
- TEST_f_f (exp, 3, M_E3l);
- }
-
- fesetround (save_round_mode);
-
- END (exp_upward);
+ RUN_TEST_LOOP_f_f (exp, exp_upward_test_data, FE_UPWARD);
+ END;
}
-static void
-exp10_test (void)
-{
- errno = 0;
- FUNC(exp10) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (exp10);
-
- TEST_f_f (exp10, 0, 1);
- TEST_f_f (exp10, minus_zero, 1);
+static const struct test_f_f_data exp10_test_data[] =
+ {
+ TEST_f_f (exp10, 0, 1),
+ TEST_f_f (exp10, minus_zero, 1),
- TEST_f_f (exp10, plus_infty, plus_infty);
- TEST_f_f (exp10, minus_infty, 0);
- TEST_f_f (exp10, qnan_value, qnan_value);
- TEST_f_f (exp10, 3, 1000);
- TEST_f_f (exp10, -1, 0.1L);
- TEST_f_f (exp10, 36, 1.0e36L);
- TEST_f_f (exp10, -36, 1.0e-36L);
+ TEST_f_f (exp10, plus_infty, plus_infty),
+ TEST_f_f (exp10, minus_infty, 0),
+ TEST_f_f (exp10, qnan_value, qnan_value),
+ TEST_f_f (exp10, 3, 1000),
+ TEST_f_f (exp10, -1, 0.1L),
+ TEST_f_f (exp10, 36, 1.0e36L),
+ TEST_f_f (exp10, -36, 1.0e-36L),
#ifndef TEST_FLOAT
- TEST_f_f (exp10, 305, 1.0e305L);
- TEST_f_f (exp10, -305, 1.0e-305L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM);
+ TEST_f_f (exp10, 305, 1.0e305L),
+ TEST_f_f (exp10, -305, 1.0e-305L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_10_EXP >= 4932
- TEST_f_f (exp10, 4932, 1.0e4932L);
- TEST_f_f (exp10, -4932, 1.0e-4932L, UNDERFLOW_EXCEPTION);
+ TEST_f_f (exp10, 4932, 1.0e4932L),
+ TEST_f_f (exp10, -4932, 1.0e-4932L, UNDERFLOW_EXCEPTION),
#endif
- TEST_f_f (exp10, 1e6, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp10, -1e6, 0, UNDERFLOW_EXCEPTION);
- TEST_f_f (exp10, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp10, -max_value, 0, UNDERFLOW_EXCEPTION);
- TEST_f_f (exp10, 0.75L, 5.62341325190349080394951039776481231L);
+ TEST_f_f (exp10, 1e6, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp10, -1e6, 0, UNDERFLOW_EXCEPTION),
+ TEST_f_f (exp10, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp10, -max_value, 0, UNDERFLOW_EXCEPTION),
+ TEST_f_f (exp10, 0.75L, 5.62341325190349080394951039776481231L),
+ };
- END (exp10);
+static void
+exp10_test (void)
+{
+ START (exp10);
+ RUN_TEST_LOOP_f_f (exp10, exp10_test_data, );
+ END;
}
-
static void
-exp2_test (void)
+pow10_test (void)
{
- errno = 0;
- FUNC(exp2) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (pow10);
+ /* pow10 uses the same test data as exp10. */
+ RUN_TEST_LOOP_f_f (pow10, exp10_test_data, );
+ END;
+}
- START (exp2);
- TEST_f_f (exp2, 0, 1);
- TEST_f_f (exp2, minus_zero, 1);
- TEST_f_f (exp2, plus_infty, plus_infty);
- TEST_f_f (exp2, minus_infty, 0);
- TEST_f_f (exp2, qnan_value, qnan_value);
+static const struct test_f_f_data exp2_test_data[] =
+ {
+ TEST_f_f (exp2, 0, 1),
+ TEST_f_f (exp2, minus_zero, 1),
+ TEST_f_f (exp2, plus_infty, plus_infty),
+ TEST_f_f (exp2, minus_infty, 0),
+ TEST_f_f (exp2, qnan_value, qnan_value),
- TEST_f_f (exp2, 10, 1024);
- TEST_f_f (exp2, -1, 0.5);
- TEST_f_f (exp2, 1e6, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp2, -1e6, 0, UNDERFLOW_EXCEPTION);
- TEST_f_f (exp2, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (exp2, -max_value, 0, UNDERFLOW_EXCEPTION);
- TEST_f_f (exp2, 0.75L, 1.68179283050742908606225095246642979L);
+ TEST_f_f (exp2, 10, 1024),
+ TEST_f_f (exp2, -1, 0.5),
+ TEST_f_f (exp2, 1e6, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp2, -1e6, 0, UNDERFLOW_EXCEPTION),
+ TEST_f_f (exp2, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (exp2, -max_value, 0, UNDERFLOW_EXCEPTION),
+ TEST_f_f (exp2, 0.75L, 1.68179283050742908606225095246642979L),
- TEST_f_f (exp2, 100.5, 1.792728671193156477399422023278661496394e+30L);
- TEST_f_f (exp2, 127, 0x1p127);
- TEST_f_f (exp2, -149, 0x1p-149);
+ TEST_f_f (exp2, 100.5, 1.792728671193156477399422023278661496394e+30L),
+ TEST_f_f (exp2, 127, 0x1p127),
+ TEST_f_f (exp2, -149, 0x1p-149),
#ifndef TEST_FLOAT
- TEST_f_f (exp2, 1000.25, 1.274245659452564874772384918171765416737e+301L);
- TEST_f_f (exp2, 1023, 0x1p1023);
- TEST_f_f (exp2, -1074, 0x1p-1074);
+ TEST_f_f (exp2, 1000.25, 1.274245659452564874772384918171765416737e+301L),
+ TEST_f_f (exp2, 1023, 0x1p1023),
+ TEST_f_f (exp2, -1074, 0x1p-1074),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (exp2, 16383, 0x1p16383L);
- TEST_f_f (exp2, -16400, 0x1p-16400L);
+ TEST_f_f (exp2, 16383, 0x1p16383L),
+ TEST_f_f (exp2, -16400, 0x1p-16400L),
#endif
-
- END (exp2);
-}
-
+ };
static void
-expm1_test (void)
+exp2_test (void)
{
- errno = 0;
- FUNC(expm1) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (exp2);
+ RUN_TEST_LOOP_f_f (exp2, exp2_test_data, );
+ END;
+}
- START (expm1);
- TEST_f_f (expm1, 0, 0);
- TEST_f_f (expm1, minus_zero, minus_zero);
+static const struct test_f_f_data expm1_test_data[] =
+ {
+ TEST_f_f (expm1, 0, 0),
+ TEST_f_f (expm1, minus_zero, minus_zero),
#ifndef TEST_INLINE
- TEST_f_f (expm1, plus_infty, plus_infty);
- TEST_f_f (expm1, minus_infty, -1);
+ TEST_f_f (expm1, plus_infty, plus_infty),
+ TEST_f_f (expm1, minus_infty, -1),
#endif
- TEST_f_f (expm1, qnan_value, qnan_value);
+ TEST_f_f (expm1, qnan_value, qnan_value),
- TEST_f_f (expm1, 1, M_El - 1.0);
- TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L);
+ TEST_f_f (expm1, 1, M_El - 1.0),
+ TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L),
- TEST_f_f (expm1, 50.0L, 5.1847055285870724640864533229334853848275e+21L);
+ TEST_f_f (expm1, 50.0L, 5.1847055285870724640864533229334853848275e+21L),
#ifndef TEST_FLOAT
- TEST_f_f (expm1, 127.0L, 1.4302079958348104463583671072905261080748e+55L);
- TEST_f_f (expm1, 500.0L, 1.4035922178528374107397703328409120821806e+217L);
+ TEST_f_f (expm1, 127.0L, 1.4302079958348104463583671072905261080748e+55L),
+ TEST_f_f (expm1, 500.0L, 1.4035922178528374107397703328409120821806e+217L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (expm1, 11356.25L, 9.05128237311923300051376115753226014206e+4931L);
-#endif
-
- TEST_f_f (expm1, -10.0, -0.9999546000702375151484644084844394493898L);
- TEST_f_f (expm1, -16.0, -0.9999998874648252807408854862248209398728L);
- TEST_f_f (expm1, -17.0, -0.9999999586006228121483334034897228104472L);
- TEST_f_f (expm1, -18.0, -0.9999999847700202552873715638633707664826L);
- TEST_f_f (expm1, -36.0, -0.9999999999999997680477169756430611687736L);
- TEST_f_f (expm1, -37.0, -0.9999999999999999146695237425593420572195L);
- TEST_f_f (expm1, -38.0, -0.9999999999999999686086720795197037129104L);
- TEST_f_f (expm1, -44.0, -0.9999999999999999999221886775886620348429L);
- TEST_f_f (expm1, -45.0, -0.9999999999999999999713748141945060635553L);
- TEST_f_f (expm1, -46.0, -0.9999999999999999999894693826424461876212L);
- TEST_f_f (expm1, -73.0, -0.9999999999999999999999999999999802074012L);
- TEST_f_f (expm1, -74.0, -0.9999999999999999999999999999999927187098L);
- TEST_f_f (expm1, -75.0, -0.9999999999999999999999999999999973213630L);
- TEST_f_f (expm1, -78.0, -0.9999999999999999999999999999999998666385L);
- TEST_f_f (expm1, -79.0, -0.9999999999999999999999999999999999509391L);
- TEST_f_f (expm1, -80.0, -0.9999999999999999999999999999999999819515L);
- TEST_f_f (expm1, -100.0, -1.0);
- TEST_f_f (expm1, -1000.0, -1.0);
- TEST_f_f (expm1, -10000.0, -1.0);
- TEST_f_f (expm1, -100000.0, -1.0);
-
- errno = 0;
- TEST_f_f (expm1, 100000.0, plus_infty, OVERFLOW_EXCEPTION);
- check_int ("errno for expm1(large) == ERANGE", errno, ERANGE, 0, 0, 0);
- TEST_f_f (expm1, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (expm1, -max_value, -1);
-
- END (expm1);
-}
-
+ TEST_f_f (expm1, 11356.25L, 9.05128237311923300051376115753226014206e+4931L),
+#endif
+
+ TEST_f_f (expm1, -10.0, -0.9999546000702375151484644084844394493898L),
+ TEST_f_f (expm1, -16.0, -0.9999998874648252807408854862248209398728L),
+ TEST_f_f (expm1, -17.0, -0.9999999586006228121483334034897228104472L),
+ TEST_f_f (expm1, -18.0, -0.9999999847700202552873715638633707664826L),
+ TEST_f_f (expm1, -36.0, -0.9999999999999997680477169756430611687736L),
+ TEST_f_f (expm1, -37.0, -0.9999999999999999146695237425593420572195L),
+ TEST_f_f (expm1, -38.0, -0.9999999999999999686086720795197037129104L),
+ TEST_f_f (expm1, -44.0, -0.9999999999999999999221886775886620348429L),
+ TEST_f_f (expm1, -45.0, -0.9999999999999999999713748141945060635553L),
+ TEST_f_f (expm1, -46.0, -0.9999999999999999999894693826424461876212L),
+ TEST_f_f (expm1, -73.0, -0.9999999999999999999999999999999802074012L),
+ TEST_f_f (expm1, -74.0, -0.9999999999999999999999999999999927187098L),
+ TEST_f_f (expm1, -75.0, -0.9999999999999999999999999999999973213630L),
+ TEST_f_f (expm1, -78.0, -0.9999999999999999999999999999999998666385L),
+ TEST_f_f (expm1, -79.0, -0.9999999999999999999999999999999999509391L),
+ TEST_f_f (expm1, -80.0, -0.9999999999999999999999999999999999819515L),
+ TEST_f_f (expm1, -100.0, -1.0),
+ TEST_f_f (expm1, -1000.0, -1.0),
+ TEST_f_f (expm1, -10000.0, -1.0),
+ TEST_f_f (expm1, -100000.0, -1.0),
+
+ TEST_f_f (expm1, 100000.0, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (expm1, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (expm1, -max_value, -1),
+ };
static void
-fabs_test (void)
+expm1_test (void)
{
- START (fabs);
-
- TEST_f_f (fabs, 0, 0);
- TEST_f_f (fabs, minus_zero, 0);
+ START (expm1);
+ RUN_TEST_LOOP_f_f (expm1, expm1_test_data, );
+ END;
+}
- TEST_f_f (fabs, plus_infty, plus_infty);
- TEST_f_f (fabs, minus_infty, plus_infty);
- TEST_f_f (fabs, qnan_value, qnan_value);
- TEST_f_f (fabs, 38.0, 38.0);
- TEST_f_f (fabs, -M_El, M_El);
+static const struct test_f_f_data fabs_test_data[] =
+ {
+ TEST_f_f (fabs, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_zero, 0, NO_INEXACT_EXCEPTION),
- END (fabs);
-}
+ TEST_f_f (fabs, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, 38.0, 38.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, -M_El, M_El, NO_INEXACT_EXCEPTION),
+ };
static void
-fdim_test (void)
+fabs_test (void)
{
- START (fdim);
-
- TEST_ff_f (fdim, 0, 0, 0);
- TEST_ff_f (fdim, 9, 0, 9);
- TEST_ff_f (fdim, 0, 9, 0);
- TEST_ff_f (fdim, -9, 0, 0);
- TEST_ff_f (fdim, 0, -9, 9);
-
- TEST_ff_f (fdim, plus_infty, 9, plus_infty);
- TEST_ff_f (fdim, plus_infty, -9, plus_infty);
- TEST_ff_f (fdim, minus_infty, 9, 0);
- TEST_ff_f (fdim, minus_infty, -9, 0);
- TEST_ff_f (fdim, 9, minus_infty, plus_infty);
- TEST_ff_f (fdim, -9, minus_infty, plus_infty);
- TEST_ff_f (fdim, 9, plus_infty, 0);
- TEST_ff_f (fdim, -9, plus_infty, 0);
-
- TEST_ff_f (fdim, 0, qnan_value, qnan_value);
- TEST_ff_f (fdim, 9, qnan_value, qnan_value);
- TEST_ff_f (fdim, -9, qnan_value, qnan_value);
- TEST_ff_f (fdim, qnan_value, 9, qnan_value);
- TEST_ff_f (fdim, qnan_value, -9, qnan_value);
- TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value);
- TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value);
- TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value);
- TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value);
- TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value);
-
- TEST_ff_f (fdim, plus_infty, plus_infty, 0);
-
- END (fdim);
-}
-
+ START (fabs);
+ RUN_TEST_LOOP_f_f (fabs, fabs_test_data, );
+ END;
+}
+
+
+static const struct test_ff_f_data fdim_test_data[] =
+ {
+ TEST_ff_f (fdim, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, -9, 9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, -9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ };
static void
-finite_test (void)
+fdim_test (void)
{
- START (finite);
-
- TEST_f_b (finite, 0, 1);
- TEST_f_b (finite, minus_zero, 1);
- TEST_f_b (finite, 10, 1);
- TEST_f_b (finite, min_subnorm_value, 1);
- TEST_f_b (finite, plus_infty, 0);
- TEST_f_b (finite, minus_infty, 0);
- TEST_f_b (finite, qnan_value, 0);
-
- END (finite);
+ START (fdim);
+ RUN_TEST_LOOP_ff_f (fdim, fdim_test_data, );
+ END;
}
-static void
-floor_test (void)
-{
- START (floor);
+static const struct test_f_f_data floor_test_data[] =
+ {
+ TEST_f_f (floor, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_f_f (floor, 0.0, 0.0);
- TEST_f_f (floor, minus_zero, minus_zero);
- TEST_f_f (floor, plus_infty, plus_infty);
- TEST_f_f (floor, minus_infty, minus_infty);
- TEST_f_f (floor, qnan_value, qnan_value);
+ /* Bug 15479: spurious "inexact" exception may occur. */
+ TEST_f_f (floor, M_PIl, 3.0),
+ TEST_f_f (floor, -M_PIl, -4.0),
- TEST_f_f (floor, M_PIl, 3.0);
- TEST_f_f (floor, -M_PIl, -4.0);
-
- TEST_f_f (floor, 0.1, 0.0);
- TEST_f_f (floor, 0.25, 0.0);
- TEST_f_f (floor, 0.625, 0.0);
- TEST_f_f (floor, -0.1, -1.0);
- TEST_f_f (floor, -0.25, -1.0);
- TEST_f_f (floor, -0.625, -1.0);
+ TEST_f_f (floor, 0.1, 0.0),
+ TEST_f_f (floor, 0.25, 0.0),
+ TEST_f_f (floor, 0.625, 0.0),
+ TEST_f_f (floor, -0.1, -1.0),
+ TEST_f_f (floor, -0.25, -1.0),
+ TEST_f_f (floor, -0.625, -1.0),
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (floor, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (floor, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (floor, 4503599627370495.5L, 4503599627370495.0L),
+ TEST_f_f (floor, 4503599627370496.25L, 4503599627370496.0L),
+ TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L),
+ TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L),
+ TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L);
- TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L);
- TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L),
+ TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L),
+ TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L),
# endif
- TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L),
+ TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L),
+ TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L),
+ TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L),
+ TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L);
- TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L);
- TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L);
+ TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L),
+ TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L),
+ TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L),
# endif
- TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L);
- TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L);
+ TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L),
+ TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L),
+ TEST_f_f (floor, 9007199254740992.5L, 9007199254740992.0L),
+ TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L),
+ TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L);
- TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L);
- TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L);
+ TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L),
+ TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L),
+ TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L),
+ TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L),
+ TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L),
+ TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L),
# endif
- TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740992.5L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L);
+ TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L),
+ TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L),
+ TEST_f_f (floor, -9007199254740992.5L, -9007199254740993.0L),
+ TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L),
+ TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L);
- TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L);
- TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L);
- TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L);
- TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L);
+ TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L),
+ TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L),
+ TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L),
+ TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L),
+ TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L),
+ TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L),
# endif
- TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L);
- TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927936.75L, 72057594037927936.0L);
- TEST_f_f (floor, 72057594037927937.5L, 72057594037927937.0L);
+ TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L),
+ TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L),
+ TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L),
+ TEST_f_f (floor, 72057594037927936.75L, 72057594037927936.0L),
+ TEST_f_f (floor, 72057594037927937.5L, 72057594037927937.0L),
- TEST_f_f (floor, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (floor, -72057594037927936.25L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927936.5L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (floor, -72057594037927937.5L, -72057594037927938.0L);
+ TEST_f_f (floor, -72057594037927935.5L, -72057594037927936.0L),
+ TEST_f_f (floor, -72057594037927936.25L, -72057594037927937.0L),
+ TEST_f_f (floor, -72057594037927936.5L, -72057594037927937.0L),
+ TEST_f_f (floor, -72057594037927936.75L, -72057594037927937.0L),
+ TEST_f_f (floor, -72057594037927937.5L, -72057594037927938.0L),
- TEST_f_f (floor, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L);
- TEST_f_f (floor, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L);
+ TEST_f_f (floor, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L),
+ TEST_f_f (floor, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L),
+ TEST_f_f (floor, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L),
+ TEST_f_f (floor, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L),
+ TEST_f_f (floor, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L),
- TEST_f_f (floor, 0xf.ffffffffffffff8p+47L, 0xf.fffffffffffep+47L);
- TEST_f_f (floor, -0x8.000000000000004p+48L, -0x8.000000000001p+48L);
+ TEST_f_f (floor, 0xf.ffffffffffffff8p+47L, 0xf.fffffffffffep+47L),
+ TEST_f_f (floor, -0x8.000000000000004p+48L, -0x8.000000000001p+48L),
#endif
-
- END (floor);
-}
-
+ };
static void
-fma_test (void)
+floor_test (void)
{
- START (fma);
-
- TEST_fff_f (fma, 1.0, 2.0, 3.0, 5.0);
- TEST_fff_f (fma, qnan_value, 2.0, 3.0, qnan_value);
- TEST_fff_f (fma, 1.0, qnan_value, 3.0, qnan_value);
- TEST_fff_f (fma, 1.0, 2.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, plus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, minus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK);
- TEST_fff_f (fma, plus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, 0.0, plus_infty, 1.0, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, 0.0, minus_infty, 1.0, qnan_value, INVALID_EXCEPTION);
-
- TEST_fff_f (fma, plus_infty, plus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, minus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, plus_infty, 3.5L, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, -7.5L, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, -13.5L, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_fff_f (fma, minus_infty, 7.5L, plus_infty, qnan_value, INVALID_EXCEPTION);
-
- TEST_fff_f (fma, 1.25L, 0.75L, 0.0625L, 1.0L);
-
- FLOAT fltmax = CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,
- LDBL_MAX, DBL_MAX, FLT_MAX);
- TEST_fff_f (fma, -fltmax, -fltmax, minus_infty, minus_infty);
- TEST_fff_f (fma, fltmax / 2, fltmax / 2, minus_infty, minus_infty);
- TEST_fff_f (fma, -fltmax, fltmax, plus_infty, plus_infty);
- TEST_fff_f (fma, fltmax / 2, -fltmax / 4, plus_infty, plus_infty);
- TEST_fff_f (fma, plus_infty, 4, plus_infty, plus_infty);
- TEST_fff_f (fma, 2, minus_infty, minus_infty, minus_infty);
- TEST_fff_f (fma, minus_infty, minus_infty, plus_infty, plus_infty);
- TEST_fff_f (fma, plus_infty, minus_infty, minus_infty, minus_infty);
-
- TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero);
-
- TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero);
- TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero);
-
- TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
-
- TEST_fff_f (fma, max_value, max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
+ START (floor);
+ RUN_TEST_LOOP_f_f (floor, floor_test_data, );
+ END;
+}
+
+
+static const struct test_fff_f_data fma_test_data[] =
+ {
+ TEST_fff_f (fma, 1.0, 2.0, 3.0, 5.0),
+ TEST_fff_f (fma, qnan_value, 2.0, 3.0, qnan_value),
+ TEST_fff_f (fma, 1.0, qnan_value, 3.0, qnan_value),
+ TEST_fff_f (fma, 1.0, 2.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_fff_f (fma, plus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_fff_f (fma, minus_infty, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_fff_f (fma, 0.0, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_fff_f (fma, 0.0, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_fff_f (fma, plus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, minus_infty, 0.0, 1.0, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, 0.0, plus_infty, 1.0, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, 0.0, minus_infty, 1.0, qnan_value, INVALID_EXCEPTION),
+
+ TEST_fff_f (fma, plus_infty, plus_infty, minus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, minus_infty, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, plus_infty, minus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, minus_infty, minus_infty, minus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, plus_infty, 3.5L, minus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, minus_infty, -7.5L, minus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, -13.5L, plus_infty, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_fff_f (fma, minus_infty, 7.5L, plus_infty, qnan_value, INVALID_EXCEPTION),
+
+ TEST_fff_f (fma, 1.25L, 0.75L, 0.0625L, 1.0L),
+
+ TEST_fff_f (fma, -max_value, -max_value, minus_infty, minus_infty),
+ TEST_fff_f (fma, max_value / 2, max_value / 2, minus_infty, minus_infty),
+ TEST_fff_f (fma, -max_value, max_value, plus_infty, plus_infty),
+ TEST_fff_f (fma, max_value / 2, -max_value / 4, plus_infty, plus_infty),
+ TEST_fff_f (fma, plus_infty, 4, plus_infty, plus_infty),
+ TEST_fff_f (fma, 2, minus_infty, minus_infty, minus_infty),
+ TEST_fff_f (fma, minus_infty, minus_infty, plus_infty, plus_infty),
+ TEST_fff_f (fma, plus_infty, minus_infty, minus_infty, minus_infty),
+
+ TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero),
+
+ TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero),
+ TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero),
+
+ TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+
+ TEST_fff_f (fma, max_value, max_value, min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION),
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
- TEST_fff_f (fma, 0x1.7ff8p+13, 0x1.000002p+0, 0x1.ffffp-24, 0x1.7ff802p+13);
- TEST_fff_f (fma, 0x1.fffp+0, 0x1.00001p+0, -0x1.fffp+0, 0x1.fffp-20);
- TEST_fff_f (fma, 0x1.9abcdep+127, 0x0.9abcdep-126, -0x1.f08948p+0, 0x1.bb421p-25);
- TEST_fff_f (fma, 0x1.9abcdep+100, 0x0.9abcdep-126, -0x1.f08948p-27, 0x1.bb421p-52);
- TEST_fff_f (fma, 0x1.fffffep+127, 0x1.001p+0, -0x1.fffffep+127, 0x1.fffffep+115);
- TEST_fff_f (fma, -0x1.fffffep+127, 0x1.fffffep+0, 0x1.fffffep+127, -0x1.fffffap+127);
- TEST_fff_f (fma, 0x1.fffffep+127, 2.0, -0x1.fffffep+127, 0x1.fffffep+127);
- TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103);
+ TEST_fff_f (fma, 0x1.7ff8p+13, 0x1.000002p+0, 0x1.ffffp-24, 0x1.7ff802p+13),
+ TEST_fff_f (fma, 0x1.fffp+0, 0x1.00001p+0, -0x1.fffp+0, 0x1.fffp-20),
+ TEST_fff_f (fma, 0x1.9abcdep+127, 0x0.9abcdep-126, -0x1.f08948p+0, 0x1.bb421p-25),
+ TEST_fff_f (fma, 0x1.9abcdep+100, 0x0.9abcdep-126, -0x1.f08948p-27, 0x1.bb421p-52),
+ TEST_fff_f (fma, 0x1.fffffep+127, 0x1.001p+0, -0x1.fffffep+127, 0x1.fffffep+115),
+ TEST_fff_f (fma, -0x1.fffffep+127, 0x1.fffffep+0, 0x1.fffffep+127, -0x1.fffffap+127),
+ TEST_fff_f (fma, 0x1.fffffep+127, 2.0, -0x1.fffffep+127, 0x1.fffffep+127),
+ TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103),
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
- TEST_fff_f (fma, 0x1.7fp+13, 0x1.0000000000001p+0, 0x1.ffep-48, 0x1.7f00000000001p+13);
- TEST_fff_f (fma, 0x1.fffp+0, 0x1.0000000000001p+0, -0x1.fffp+0, 0x1.fffp-52);
- TEST_fff_f (fma, 0x1.0000002p+0, 0x1.ffffffcp-1, 0x1p-300, 1.0);
- TEST_fff_f (fma, 0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300, 0x1.fffffffffffffp-1);
- TEST_fff_f (fma, 0x1.deadbeef2feedp+1023, 0x0.deadbeef2feedp-1022, -0x1.a05f8c01a4bfbp+1, 0x1.0989687bc9da4p-53);
- TEST_fff_f (fma, 0x1.deadbeef2feedp+900, 0x0.deadbeef2feedp-1022, -0x1.a05f8c01a4bfbp-122, 0x1.0989687bc9da4p-176);
- TEST_fff_f (fma, 0x1.fffffffffffffp+1023, 0x1.001p+0, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1011);
- TEST_fff_f (fma, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp+1023, -0x1.ffffffffffffdp+1023);
- TEST_fff_f (fma, 0x1.fffffffffffffp+1023, 2.0, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023);
- TEST_fff_f (fma, 0x1.6a09e667f3bccp-538, 0x1.6a09e667f3bccp-538, 0.0, 0.0, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.deadbeef2feedp-495, 0x1.deadbeef2feedp-495, -0x1.bf86a5786a574p-989, 0x0.0000042625a1fp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.deadbeef2feedp-503, 0x1.deadbeef2feedp-503, -0x1.bf86a5786a574p-1005, 0x0.0000000004262p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-537, 0x1p-538, 0x1p-1074, 0x0.0000000000002p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022, 0x0.0000010000001p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.4000004p-967, 0x1p-106, 0x0.000001p-1022, 0x0.0000010000003p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.4p-967, -0x1p-106, -0x0.000001p-1022, -0x0.0000010000002p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.19cab66d73e17p-959, 0x1.c7108a8c5ff51p-107, -0x0.80b0ad65d9b64p-1022, -0x0.80b0ad65d9d59p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.d2eaed6e8e9d3p-979, -0x1.4e066c62ac9ddp-63, -0x0.9245e6b003454p-1022, -0x0.9245c09c5fb5dp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022, -0x0.b22757123bbe9p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffffffffffffp-711, 0x1.fffffffffffffp-275, 0x1.fffffe00007ffp-983, 0x1.7ffffe00007ffp-983);
- TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970);
+ TEST_fff_f (fma, 0x1.7fp+13, 0x1.0000000000001p+0, 0x1.ffep-48, 0x1.7f00000000001p+13),
+ TEST_fff_f (fma, 0x1.fffp+0, 0x1.0000000000001p+0, -0x1.fffp+0, 0x1.fffp-52),
+ TEST_fff_f (fma, 0x1.0000002p+0, 0x1.ffffffcp-1, 0x1p-300, 1.0),
+ TEST_fff_f (fma, 0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300, 0x1.fffffffffffffp-1),
+ TEST_fff_f (fma, 0x1.deadbeef2feedp+1023, 0x0.deadbeef2feedp-1022, -0x1.a05f8c01a4bfbp+1, 0x1.0989687bc9da4p-53),
+ TEST_fff_f (fma, 0x1.deadbeef2feedp+900, 0x0.deadbeef2feedp-1022, -0x1.a05f8c01a4bfbp-122, 0x1.0989687bc9da4p-176),
+ TEST_fff_f (fma, 0x1.fffffffffffffp+1023, 0x1.001p+0, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1011),
+ TEST_fff_f (fma, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp+1023, -0x1.ffffffffffffdp+1023),
+ TEST_fff_f (fma, 0x1.fffffffffffffp+1023, 2.0, -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023),
+ TEST_fff_f (fma, 0x1.6a09e667f3bccp-538, 0x1.6a09e667f3bccp-538, 0.0, 0.0, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.deadbeef2feedp-495, 0x1.deadbeef2feedp-495, -0x1.bf86a5786a574p-989, 0x0.0000042625a1fp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.deadbeef2feedp-503, 0x1.deadbeef2feedp-503, -0x1.bf86a5786a574p-1005, 0x0.0000000004262p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-537, 0x1p-538, 0x1p-1074, 0x0.0000000000002p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022, 0x0.0000010000001p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.4000004p-967, 0x1p-106, 0x0.000001p-1022, 0x0.0000010000003p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.4p-967, -0x1p-106, -0x0.000001p-1022, -0x0.0000010000002p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.19cab66d73e17p-959, 0x1.c7108a8c5ff51p-107, -0x0.80b0ad65d9b64p-1022, -0x0.80b0ad65d9d59p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.d2eaed6e8e9d3p-979, -0x1.4e066c62ac9ddp-63, -0x0.9245e6b003454p-1022, -0x0.9245c09c5fb5dp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022, -0x0.b22757123bbe9p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffffffffffffp-711, 0x1.fffffffffffffp-275, 0x1.fffffe00007ffp-983, 0x1.7ffffe00007ffp-983),
+ TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
- TEST_fff_f (fma, -0x8.03fcp+3696L, 0xf.fffffffffffffffp-6140L, 0x8.3ffffffffffffffp-2450L, -0x8.01ecp-2440L);
- TEST_fff_f (fma, 0x9.fcp+2033L, -0x8.000e1f000ff800fp-3613L, -0xf.fffffffffffc0ffp-1579L, -0xd.fc119fb093ed092p-1577L);
- TEST_fff_f (fma, 0xc.7fc000003ffffffp-1194L, 0x8.1e0003fffffffffp+15327L, -0x8.fffep+14072L, 0xc.ae9f164020effffp+14136L);
- TEST_fff_f (fma, -0x8.0001fc000000003p+1798L, 0xcp-2230L, 0x8.f7e000000000007p-468L, -0xc.0002f9ffee10404p-429L);
- TEST_fff_f (fma, 0xc.0000000000007ffp+10130L, -0x8.000000000000001p+4430L, 0xc.07000000001ffffp+14513L, -0xb.fffffffffffd7e4p+14563L);
- TEST_fff_f (fma, 0xb.ffffp-4777L, 0x8.000000fffffffffp-11612L, -0x0.3800fff8p-16385L, 0x5.c7fe80c7ffeffffp-16385L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L);
+ TEST_fff_f (fma, -0x8.03fcp+3696L, 0xf.fffffffffffffffp-6140L, 0x8.3ffffffffffffffp-2450L, -0x8.01ecp-2440L),
+ TEST_fff_f (fma, 0x9.fcp+2033L, -0x8.000e1f000ff800fp-3613L, -0xf.fffffffffffc0ffp-1579L, -0xd.fc119fb093ed092p-1577L),
+ TEST_fff_f (fma, 0xc.7fc000003ffffffp-1194L, 0x8.1e0003fffffffffp+15327L, -0x8.fffep+14072L, 0xc.ae9f164020effffp+14136L),
+ TEST_fff_f (fma, -0x8.0001fc000000003p+1798L, 0xcp-2230L, 0x8.f7e000000000007p-468L, -0xc.0002f9ffee10404p-429L),
+ TEST_fff_f (fma, 0xc.0000000000007ffp+10130L, -0x8.000000000000001p+4430L, 0xc.07000000001ffffp+14513L, -0xb.fffffffffffd7e4p+14563L),
+ TEST_fff_f (fma, 0xb.ffffp-4777L, 0x8.000000fffffffffp-11612L, -0x0.3800fff8p-16385L, 0x5.c7fe80c7ffeffffp-16385L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
- TEST_fff_f (fma, 0x1.bb2de33e02ccbbfa6e245a7c1f71p-2584L, -0x1.6b500daf0580d987f1bc0cadfcddp-13777L, 0x1.613cd91d9fed34b33820e5ab9d8dp-16378L, -0x1.3a79fb50eb9ce887cffa0f09bd9fp-16360L);
- TEST_fff_f (fma, -0x1.f949b880cacb0f0c61540105321dp-5954L, -0x1.3876cec84b4140f3bd6198731b7ep-10525L, -0x0.a5dc1c6cfbc498c54fb0b504bf19p-16382L, -0x0.a5dc1c6cfbc498c54fb0b5038abbp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.0000fffffffffp-16221L, 0x1.0000001fffff8007fep-239L, 0x0.ff87ffffffffffffe000003fffffp-16382L, 0x0.ff87ffffffffffffdffc003bff7fp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.ac79c9376ef447f3827c9e9de008p-2228L, -0x1.5ba830022b6139e21fbe7270cad8p-6314L, 0x1.e8282b6a26bb6a9daf5c8e73e9f9p-8616L, 0x1.22f14a0253878a730cd1aee373adp-8541L);
- TEST_fff_f (fma, -0x1.c69749ec574caaa2ab8e97ddb9f3p+2652L, 0x1.f34235ff9d095449c29b4831b62dp+3311L, 0x1.fbe4302df23354dbd0c4d3cfe606p+5879L, -0x1.bb473bfdfb7a6e18886ce6e57eafp+5964L);
- TEST_fff_f (fma, -0x1.ca8835fc6ecfb5398625fc891be5p-1686L, 0x1.621e1972bbe2180e5be9dd7d8df5p-7671L, -0x1.7d2d21b73b52cf20dec2a83902a4p-9395L, -0x1.3d2322191c9c88bc68a62ab8042cp-9356L);
- TEST_fff_f (fma, -0x1.55cff679ec49c2541fab41fc843ep-11819L, 0x1.e60e9f464f9e8df0509647c7c971p+12325L, 0x1.eaa2a7649d765c2f564f7a5beca7p+454L, -0x1.447e29fa7e406a285f4e350fcf86p+507L);
- TEST_fff_f (fma, 0x1.f0e7b1454908576f2537d863cf9bp+11432L, 0x1.cdce52f09d4ca76e68706f34b5d5p-1417L, -0x1.2e986187c70f146235ea2066e486p+9979L, 0x1.c030dad3cc5643f3dd0f5619f661p+10016L);
- TEST_fff_f (fma, 0x1.f102f7da4a57a3a4aab620e29452p-3098L, -0x1.cc06a4ff40248f9e2dcc4b6afd84p-11727L, 0x1.d512a11126b5ac8ed8973b8580c8p-14849L, -0x1.be8f1cf737ab4d1c31c54f5ec23bp-14824L);
- TEST_fff_f (fma, -0x1.fc47ac7434b993cd8dcb2b431f25p-3816L, 0x1.fbc9750da8468852d84558e1db6dp-5773L, -0x1.00a98abf783f75c40fe5b7a37d86p-9607L, -0x1.f81917b166f45e763cfcc057e2adp-9588L);
- TEST_fff_f (fma, 0x1.00000000000007ffffffffffffffp-9045L, -0x1.ffffffffffff80000001ffffffffp+4773L, -0x1.f8p-4316L, -0x1.00000000000f88000000fffffdffp-4271L);
- TEST_fff_f (fma, 0x1.4e922764c90701d4a2f21d01893dp-8683L, -0x1.955a12e2d7c9447c27fa022fc865p+212L, -0x1.e9634462eaef96528b90b6944578p-8521L, -0x1.08e1783184a371943d3598e10865p-8470L);
- TEST_fff_f (fma, 0x1.801181509c03bdbef10d6165588cp-15131L, 0x1.ad86f8e57d3d40bfa8007780af63p-368L, -0x1.6e9df0dab1c9f1d7a6043c390741p-15507L, 0x1.417c9b2b15e2ad57dc9e0e920844p-15498L);
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L);
-#endif
-
- END (fma);
-}
-
+ TEST_fff_f (fma, 0x1.bb2de33e02ccbbfa6e245a7c1f71p-2584L, -0x1.6b500daf0580d987f1bc0cadfcddp-13777L, 0x1.613cd91d9fed34b33820e5ab9d8dp-16378L, -0x1.3a79fb50eb9ce887cffa0f09bd9fp-16360L),
+ TEST_fff_f (fma, -0x1.f949b880cacb0f0c61540105321dp-5954L, -0x1.3876cec84b4140f3bd6198731b7ep-10525L, -0x0.a5dc1c6cfbc498c54fb0b504bf19p-16382L, -0x0.a5dc1c6cfbc498c54fb0b5038abbp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.0000fffffffffp-16221L, 0x1.0000001fffff8007fep-239L, 0x0.ff87ffffffffffffe000003fffffp-16382L, 0x0.ff87ffffffffffffdffc003bff7fp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.ac79c9376ef447f3827c9e9de008p-2228L, -0x1.5ba830022b6139e21fbe7270cad8p-6314L, 0x1.e8282b6a26bb6a9daf5c8e73e9f9p-8616L, 0x1.22f14a0253878a730cd1aee373adp-8541L),
+ TEST_fff_f (fma, -0x1.c69749ec574caaa2ab8e97ddb9f3p+2652L, 0x1.f34235ff9d095449c29b4831b62dp+3311L, 0x1.fbe4302df23354dbd0c4d3cfe606p+5879L, -0x1.bb473bfdfb7a6e18886ce6e57eafp+5964L),
+ TEST_fff_f (fma, -0x1.ca8835fc6ecfb5398625fc891be5p-1686L, 0x1.621e1972bbe2180e5be9dd7d8df5p-7671L, -0x1.7d2d21b73b52cf20dec2a83902a4p-9395L, -0x1.3d2322191c9c88bc68a62ab8042cp-9356L),
+ TEST_fff_f (fma, -0x1.55cff679ec49c2541fab41fc843ep-11819L, 0x1.e60e9f464f9e8df0509647c7c971p+12325L, 0x1.eaa2a7649d765c2f564f7a5beca7p+454L, -0x1.447e29fa7e406a285f4e350fcf86p+507L),
+ TEST_fff_f (fma, 0x1.f0e7b1454908576f2537d863cf9bp+11432L, 0x1.cdce52f09d4ca76e68706f34b5d5p-1417L, -0x1.2e986187c70f146235ea2066e486p+9979L, 0x1.c030dad3cc5643f3dd0f5619f661p+10016L),
+ TEST_fff_f (fma, 0x1.f102f7da4a57a3a4aab620e29452p-3098L, -0x1.cc06a4ff40248f9e2dcc4b6afd84p-11727L, 0x1.d512a11126b5ac8ed8973b8580c8p-14849L, -0x1.be8f1cf737ab4d1c31c54f5ec23bp-14824L),
+ TEST_fff_f (fma, -0x1.fc47ac7434b993cd8dcb2b431f25p-3816L, 0x1.fbc9750da8468852d84558e1db6dp-5773L, -0x1.00a98abf783f75c40fe5b7a37d86p-9607L, -0x1.f81917b166f45e763cfcc057e2adp-9588L),
+ TEST_fff_f (fma, 0x1.00000000000007ffffffffffffffp-9045L, -0x1.ffffffffffff80000001ffffffffp+4773L, -0x1.f8p-4316L, -0x1.00000000000f88000000fffffdffp-4271L),
+ TEST_fff_f (fma, 0x1.4e922764c90701d4a2f21d01893dp-8683L, -0x1.955a12e2d7c9447c27fa022fc865p+212L, -0x1.e9634462eaef96528b90b6944578p-8521L, -0x1.08e1783184a371943d3598e10865p-8470L),
+ TEST_fff_f (fma, 0x1.801181509c03bdbef10d6165588cp-15131L, 0x1.ad86f8e57d3d40bfa8007780af63p-368L, -0x1.6e9df0dab1c9f1d7a6043c390741p-15507L, 0x1.417c9b2b15e2ad57dc9e0e920844p-15498L),
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L),
+#endif
+ };
static void
-fma_test_towardzero (void)
+fma_test (void)
{
- int save_round_mode;
- START (fma_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero);
-
- TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero);
- TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero);
-
- TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
+ START (fma);
+ RUN_TEST_LOOP_fff_f (fma, fma_test_data, );
+ END;
+}
+
+
+static const struct test_fff_f_data fma_towardzero_test_data[] =
+ {
+ TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero),
+
+ TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero),
+ TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero),
+
+ TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
- TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
+ TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, -min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION),
#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
- TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x0.ffffffp127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x0.ffffffp127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffcp-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffcp-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x0.ffffffp127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x0.ffffffp127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x0.ffffffp103);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x0.ffffffp103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103);
+ TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffcp-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffcp-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x0.ffffffp103),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x0.ffffffp103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103),
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
- TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x0.fffffffffffff8p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x0.fffffffffffff8p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970);
+ TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x0.fffffffffffff8p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x0.fffffffffffff8p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x0.ffffffffffffffffp16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x0.ffffffffffffffffp16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L);
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x0.ffffffffffffffffp16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x0.ffffffffffffffffp16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x0.ffffffffffffffffffffffffffff8p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x0.ffffffffffffffffffffffffffff8p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L);
-#endif
- }
-
- fesetround (save_round_mode);
-
- END (fma_towardzero);
-}
-
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x0.ffffffffffffffffffffffffffff8p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x0.ffffffffffffffffffffffffffff8p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L),
+#endif
+ };
static void
-fma_test_downward (void)
+fma_test_towardzero (void)
{
- int save_round_mode;
- START (fma_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, minus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, plus_zero, minus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, plus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, plus_zero, minus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, plus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, minus_zero, minus_zero);
-
- TEST_fff_f (fma, 1.0, 1.0, -1.0, minus_zero);
- TEST_fff_f (fma, 1.0, -1.0, 1.0, minus_zero);
- TEST_fff_f (fma, -1.0, 1.0, 1.0, minus_zero);
- TEST_fff_f (fma, -1.0, -1.0, -1.0, minus_zero);
-
- TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, plus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, minus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, plus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, minus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION);
+ START (fma_towardzero);
+ RUN_TEST_LOOP_fff_f (fma, fma_towardzero_test_data, FE_TOWARDZERO);
+ END;
+}
+
+
+static const struct test_fff_f_data fma_downward_test_data[] =
+ {
+ TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, minus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, plus_zero, minus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, plus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, plus_zero, minus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, plus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, minus_zero, minus_zero),
+
+ TEST_fff_f (fma, 1.0, 1.0, -1.0, minus_zero),
+ TEST_fff_f (fma, 1.0, -1.0, 1.0, minus_zero),
+ TEST_fff_f (fma, -1.0, 1.0, 1.0, minus_zero),
+ TEST_fff_f (fma, -1.0, -1.0, -1.0, minus_zero),
+
+ TEST_fff_f (fma, min_value, min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, plus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, minus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, plus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, minus_zero, -min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, plus_zero, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, minus_zero, plus_zero, UNDERFLOW_EXCEPTION),
#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
- TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION);
+ TEST_fff_f (fma, max_value, max_value, min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, max_value, -min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, -min_value, minus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, min_value, max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, -min_value, max_value, OVERFLOW_EXCEPTION),
#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
- TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00008p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x0.ffffffp127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1.000002p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1.000002p-126);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffcp-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-148, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x0.ffffffp127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1.000002p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x0.ffffffp103);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1.000002p103);
+ TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00008p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1.000002p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1.000002p-126),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffcp-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-148, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1.000002p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x0.ffffffp103),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1.000002p103),
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
- TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000004p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1.0000000000001p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1.0000000000001p-1022);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1073, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1.0000000000001p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x0.fffffffffffff8p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1.0000000000001p970);
+ TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000004p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1.0000000000001p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1.0000000000001p-1022),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1073, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1.0000000000001p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x0.fffffffffffff8p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1.0000000000001p970),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000008p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1.0000000000000002p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1.0000000000000002p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16444L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1.0000000000000002p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x0.ffffffffffffffffp16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1.0000000000000002p16319L);
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000008p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1.0000000000000002p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1.0000000000000002p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16444L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1.0000000000000002p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x0.ffffffffffffffffp16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1.0000000000000002p16319L),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1.0000000000000000000000000001p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1.0000000000000000000000000001p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16493L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1.0000000000000000000000000001p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x0.ffffffffffffffffffffffffffff8p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1.0000000000000000000000000001p16319L);
-#endif
- }
-
- fesetround (save_round_mode);
-
- END (fma_downward);
-}
-
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1.0000000000000000000000000001p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1.0000000000000000000000000001p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16493L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1.0000000000000000000000000001p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x0.ffffffffffffffffffffffffffff8p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1.0000000000000000000000000001p16319L),
+#endif
+ };
static void
-fma_test_upward (void)
+fma_test_downward (void)
{
- int save_round_mode;
- START (fma_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero);
- TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero);
- TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero);
-
- TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero);
- TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero);
- TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero);
-
- TEST_fff_f (fma, min_value, min_value, plus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, min_value, minus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, plus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -min_value, -min_value, minus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION);
+ START (fma_downward);
+ RUN_TEST_LOOP_fff_f (fma, fma_downward_test_data, FE_DOWNWARD);
+ END;
+}
+
+
+static const struct test_fff_f_data fma_upward_test_data[] =
+ {
+ TEST_fff_f (fma, plus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, plus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, 1.0, minus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, plus_zero, minus_zero, minus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, plus_zero, plus_zero),
+ TEST_fff_f (fma, -1.0, minus_zero, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, 1.0, minus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, plus_zero, -1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, 1.0, minus_zero, minus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, plus_zero, plus_zero),
+ TEST_fff_f (fma, minus_zero, -1.0, minus_zero, plus_zero),
+
+ TEST_fff_f (fma, 1.0, 1.0, -1.0, plus_zero),
+ TEST_fff_f (fma, 1.0, -1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, 1.0, 1.0, plus_zero),
+ TEST_fff_f (fma, -1.0, -1.0, -1.0, plus_zero),
+
+ TEST_fff_f (fma, min_value, min_value, plus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, min_value, minus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, min_value, -min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, plus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, min_value, minus_zero, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, plus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -min_value, -min_value, minus_zero, min_subnorm_value, UNDERFLOW_EXCEPTION),
#if !(defined TEST_LDOUBLE && LDBL_MANT_DIG == 106) /* Bug 13304. */
- TEST_fff_f (fma, max_value, max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, max_value, -max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, min_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fff_f (fma, -max_value, -max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_fff_f (fma, max_value, max_value, min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, max_value, -max_value, -min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, max_value, -min_value, -max_value, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, min_value, plus_infty, OVERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -max_value, -max_value, -min_value, plus_infty, OVERFLOW_EXCEPTION),
#endif
#if defined (TEST_FLOAT) && FLT_MANT_DIG == 24
- TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00008p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1.000002p127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x0.ffffffp127);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1.000002p-126);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffcp-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-148, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
- TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1.000002p127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x0.ffffffp127);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1.000002p103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x1p103);
- TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x0.ffffffp103);
- TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103);
+ TEST_fff_f (fma, 0x1.4p-126, 0x1.000004p-1, 0x1p-128, 0x1.c00008p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-126, 0x1.000004p-1, -0x1p-128, -0x1.c00004p-127, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffff8p-126, 0x1.000002p-1, 0x1p-149, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffff8p-126, 0x1.000002p-1, -0x1p-149, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-149, 0x1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1.1p-1, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1p-149, 0x1.1p-1, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p127, 0x1.000002p127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p127, -0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-126, 0x1.000002p-126),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-126, 0x1p-126, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-126, -0x1p-126),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x0.fffffep-126, 0x1p-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x0.fffffep-126, 0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x0.fffffep-126, -0x0.fffffcp-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x0.fffffep-126, -0x0.fffffep-126, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, 0x1p-149, 0x1p-148, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24),
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p127, 0x1.000002p127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p127, 0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p127, -0x0.ffffffp127),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p127, -0x1p127),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, 0x1p103, 0x1.000002p103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, 0x1p103, 0x1p103),
+ TEST_fff_f (fma, 0x1.000002p-126, 0x1.000002p-26, -0x1p103, -0x0.ffffffp103),
+ TEST_fff_f (fma, 0x1.000002p-126, -0x1.000002p-26, -0x1p103, -0x1p103),
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
- TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000004p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1.0000000000001p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1.0000000000001p-1022);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1073, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
- TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1.0000000000001p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x0.fffffffffffff8p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1.0000000000001p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x1p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x0.fffffffffffff8p970);
- TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970);
+ TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000004p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-1022, 0x1.0000000000002p-1, -0x1p-1024, -0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, 0x1p-1074, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.ffffffffffffcp-1022, 0x1.0000000000001p-1, -0x1p-1074, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-1074, 0x1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1.1p-1, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1p-1074, 0x1.1p-1, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p1023, 0x1.0000000000001p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p1023, -0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1022, 0x1.0000000000001p-1022),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1022, 0x1p-1022, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1022, -0x1p-1022),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x0.fffffffffffffp-1022, 0x1p-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.ffffffffffffep-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x0.fffffffffffffp-1022, -0x0.fffffffffffffp-1022, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, 0x1p-1074, 0x1p-1073, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106),
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p1023, 0x1.0000000000001p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p1023, 0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p1023, -0x0.fffffffffffff8p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p1023, -0x1p1023),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, 0x1p970, 0x1.0000000000001p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, 0x1p970, 0x1p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, 0x1.0000000000001p-55, -0x1p970, -0x0.fffffffffffff8p970),
+ TEST_fff_f (fma, 0x1.0000000000001p-1022, -0x1.0000000000001p-55, -0x1p970, -0x1p970),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000008p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1.0000000000000002p16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1.0000000000000002p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16444L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1.0000000000000002p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x0.ffffffffffffffffp16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1.0000000000000002p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x0.ffffffffffffffffp16319L);
- TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L);
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000008p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000004p-1L, -0x1p-16384L, -0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, 0x1p-16445L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffffffffffffff8p-16382L, 0x1.0000000000000002p-1L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1.1p-1L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1p-16445L, 0x1.1p-1L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p16383L, 0x1.0000000000000002p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p16383L, -0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16382L, 0x1.0000000000000002p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x0.fffffffffffffffep-16382L, 0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffcp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x0.fffffffffffffffep-16382L, -0x0.fffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, 0x1p-16445L, 0x1p-16444L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16383L, 0x1.0000000000000002p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16383L, -0x0.ffffffffffffffffp16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, 0x1p16319L, 0x1.0000000000000002p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, 0x1.0000000000000002p-66L, -0x1p16319L, -0x0.ffffffffffffffffp16319L),
+ TEST_fff_f (fma, 0x1.0000000000000002p-16382L, -0x1.0000000000000002p-66L, -0x1p16319L, -0x1p16319L),
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
- TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000004p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1.0000000000000000000000000001p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1.0000000000000000000000000001p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16493L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
- TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1.0000000000000000000000000001p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1.0000000000000000000000000001p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x0.ffffffffffffffffffffffffffff8p16319L);
- TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L);
-#endif
- }
-
- fesetround (save_round_mode);
-
- END (fma_upward);
-}
+ TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000004p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, -0x1p-16384L, -0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, 0x1p-16494L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1.fffffffffffffffffffffffffffcp-16382L, 0x1.0000000000000000000000000001p-1L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1.1p-1L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, -0x1p-16494L, 0x1.1p-1L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p16383L, 0x1.0000000000000000000000000001p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16382L, 0x1.0000000000000000000000000001p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION_BEFORE_ROUNDING),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16382L, -0x1p-16382L),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x1p-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x0.ffffffffffffffffffffffffffffp-16382L, 0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.fffffffffffffffffffffffffffep-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x0.ffffffffffffffffffffffffffffp-16382L, -0x0.ffffffffffffffffffffffffffffp-16382L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, 0x1p-16494L, 0x1p-16493L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L),
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1.0000000000000000000000000001p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16383L, 0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x0.ffffffffffffffffffffffffffff8p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16383L, -0x1p16383L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1.0000000000000000000000000001p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, 0x1p16319L, 0x1p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, 0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x0.ffffffffffffffffffffffffffff8p16319L),
+ TEST_fff_f (fma, 0x1.0000000000000000000000000001p-16382L, -0x1.0000000000000000000000000001p-66L, -0x1p16319L, -0x1p16319L),
+#endif
+ };
+static void
+fma_test_upward (void)
+{
+ START (fma_upward);
+ RUN_TEST_LOOP_fff_f (fma, fma_upward_test_data, FE_UPWARD);
+ END;
+}
+
+
+static const struct test_ff_f_data fmax_test_data[] =
+ {
+ TEST_ff_f (fmax, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, -9, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, minus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, minus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, minus_infty, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ };
static void
fmax_test (void)
{
START (fmax);
-
- TEST_ff_f (fmax, 0, 0, 0);
- TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero);
- TEST_ff_f (fmax, 9, 0, 9);
- TEST_ff_f (fmax, 0, 9, 9);
- TEST_ff_f (fmax, -9, 0, 0);
- TEST_ff_f (fmax, 0, -9, 0);
-
- TEST_ff_f (fmax, plus_infty, 9, plus_infty);
- TEST_ff_f (fmax, 0, plus_infty, plus_infty);
- TEST_ff_f (fmax, -9, plus_infty, plus_infty);
- TEST_ff_f (fmax, plus_infty, -9, plus_infty);
-
- TEST_ff_f (fmax, minus_infty, 9, 9);
- TEST_ff_f (fmax, minus_infty, -9, -9);
- TEST_ff_f (fmax, 9, minus_infty, 9);
- TEST_ff_f (fmax, -9, minus_infty, -9);
-
- TEST_ff_f (fmax, 0, qnan_value, 0);
- TEST_ff_f (fmax, 9, qnan_value, 9);
- TEST_ff_f (fmax, -9, qnan_value, -9);
- TEST_ff_f (fmax, qnan_value, 0, 0);
- TEST_ff_f (fmax, qnan_value, 9, 9);
- TEST_ff_f (fmax, qnan_value, -9, -9);
- TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty);
- TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty);
- TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty);
- TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty);
- TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value);
-
- END (fmax);
-}
-
+ RUN_TEST_LOOP_ff_f (fmax, fmax_test_data, );
+ END;
+}
+
+
+static const struct test_ff_f_data fmin_test_data[] =
+ {
+ TEST_ff_f (fmin, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, 0, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, -9, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, plus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, plus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, plus_infty, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ };
static void
fmin_test (void)
{
START (fmin);
-
- TEST_ff_f (fmin, 0, 0, 0);
- TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero);
- TEST_ff_f (fmin, 9, 0, 0);
- TEST_ff_f (fmin, 0, 9, 0);
- TEST_ff_f (fmin, -9, 0, -9);
- TEST_ff_f (fmin, 0, -9, -9);
-
- TEST_ff_f (fmin, plus_infty, 9, 9);
- TEST_ff_f (fmin, 9, plus_infty, 9);
- TEST_ff_f (fmin, plus_infty, -9, -9);
- TEST_ff_f (fmin, -9, plus_infty, -9);
- TEST_ff_f (fmin, minus_infty, 9, minus_infty);
- TEST_ff_f (fmin, minus_infty, -9, minus_infty);
- TEST_ff_f (fmin, 9, minus_infty, minus_infty);
- TEST_ff_f (fmin, -9, minus_infty, minus_infty);
-
- TEST_ff_f (fmin, 0, qnan_value, 0);
- TEST_ff_f (fmin, 9, qnan_value, 9);
- TEST_ff_f (fmin, -9, qnan_value, -9);
- TEST_ff_f (fmin, qnan_value, 0, 0);
- TEST_ff_f (fmin, qnan_value, 9, 9);
- TEST_ff_f (fmin, qnan_value, -9, -9);
- TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty);
- TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty);
- TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty);
- TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty);
- TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value);
-
- END (fmin);
+ RUN_TEST_LOOP_ff_f (fmin, fmin_test_data, );
+ END;
}
-static void
-fmod_test (void)
-{
- errno = 0;
- FUNC(fmod) (6.5, 2.3L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+static const struct test_ff_f_data fmod_test_data[] =
+ {
+ /* fmod (+0, y) == +0 for y != 0. */
+ TEST_ff_f (fmod, 0, 3, 0, NO_INEXACT_EXCEPTION),
- START (fmod);
+ /* fmod (-0, y) == -0 for y != 0. */
+ TEST_ff_f (fmod, minus_zero, 3, minus_zero, NO_INEXACT_EXCEPTION),
- /* fmod (+0, y) == +0 for y != 0. */
- TEST_ff_f (fmod, 0, 3, 0);
+ /* fmod (+inf, y) == qNaN plus invalid exception. */
+ TEST_ff_f (fmod, plus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* fmod (-inf, y) == qNaN plus invalid exception. */
+ TEST_ff_f (fmod, minus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* fmod (x, +0) == qNaN plus invalid exception. */
+ TEST_ff_f (fmod, 3, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* fmod (x, -0) == qNaN plus invalid exception. */
+ TEST_ff_f (fmod, 3, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
- /* fmod (-0, y) == -0 for y != 0. */
- TEST_ff_f (fmod, minus_zero, 3, minus_zero);
+ /* fmod (x, +inf) == x for x not infinite. */
+ TEST_ff_f (fmod, 3.0, plus_infty, 3.0, NO_INEXACT_EXCEPTION),
+ /* fmod (x, -inf) == x for x not infinite. */
+ TEST_ff_f (fmod, 3.0, minus_infty, 3.0, NO_INEXACT_EXCEPTION),
- /* fmod (+inf, y) == qNaN plus invalid exception. */
- errno = 0;
- TEST_ff_f (fmod, plus_infty, 3, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for fmod(Inf,3) unchanged", errno, EDOM, 0, 0, 0);
- /* fmod (-inf, y) == qNaN plus invalid exception. */
- errno = 0;
- TEST_ff_f (fmod, minus_infty, 3, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for fmod(-Inf,3) unchanged", errno, EDOM, 0, 0, 0);
- /* fmod (x, +0) == qNaN plus invalid exception. */
- errno = 0;
- TEST_ff_f (fmod, 3, 0, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for fmod(3,0) unchanged", errno, EDOM, 0, 0, 0);
- /* fmod (x, -0) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, 3, minus_zero, qnan_value, INVALID_EXCEPTION);
-
- /* fmod (x, +inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, plus_infty, 3.0);
- /* fmod (x, -inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, minus_infty, 3.0);
+ TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value);
+ TEST_ff_f (fmod, 6.5, 2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, 2.25L, -2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, 6.5, -2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, -2.25L, -2.0L, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fmod, 6.5, 2.25L, 2.0L);
- TEST_ff_f (fmod, -6.5, 2.25L, -2.0L);
- TEST_ff_f (fmod, 6.5, -2.25L, 2.0L);
- TEST_ff_f (fmod, -6.5, -2.25L, -2.0L);
-
- TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero);
+ TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero, NO_INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero);
+ TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero);
+ TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
+ };
- END (fmod);
+static void
+fmod_test (void)
+{
+ START (fmod);
+ RUN_TEST_LOOP_ff_f (fmod, fmod_test_data, );
+ END;
}
+static const struct test_f_i_data fpclassify_test_data[] =
+ {
+ TEST_f_i (fpclassify, qnan_value, FP_NAN, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, 1000, FP_NORMAL, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION),
+ };
+
static void
fpclassify_test (void)
{
START (fpclassify);
+ RUN_TEST_LOOP_f_i_tg (fpclassify, fpclassify_test_data, );
+ END;
+}
- TEST_f_i (fpclassify, qnan_value, FP_NAN);
- TEST_f_i (fpclassify, plus_infty, FP_INFINITE);
- TEST_f_i (fpclassify, minus_infty, FP_INFINITE);
- TEST_f_i (fpclassify, plus_zero, FP_ZERO);
- TEST_f_i (fpclassify, minus_zero, FP_ZERO);
- TEST_f_i (fpclassify, 1000, FP_NORMAL);
- TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL);
- END (fpclassify);
-}
+static const struct test_f_f1_data frexp_test_data[] =
+ {
+ TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE, NO_INEXACT_EXCEPTION),
+
+ TEST_fI_f1 (frexp, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, 12.8L, 0.8L, 4, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5, NO_INEXACT_EXCEPTION),
+ };
static void
frexp_test (void)
@@ -6512,4788 +9333,5166 @@ frexp_test (void)
int x;
START (frexp);
-
- TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE);
- TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE);
- TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE);
-
- TEST_fI_f1 (frexp, 0.0, 0.0, 0.0);
- TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0);
-
- TEST_fI_f1 (frexp, 12.8L, 0.8L, 4);
- TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5);
-
- END (frexp);
+ RUN_TEST_LOOP_fI_f1 (frexp, frexp_test_data, , x);
+ END;
}
-
-static void
-gamma_test (void)
-{
- errno = 0;
- FUNC(gamma) (1);
-
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (gamma);
-
- TEST_f_f (gamma, plus_infty, plus_infty);
- TEST_f_f (gamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (gamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (gamma, minus_infty, plus_infty);
- TEST_f_f (gamma, qnan_value, qnan_value);
-
- TEST_f_f1 (gamma, 1, 0, 1);
- TEST_f_f1 (gamma, 3, M_LN2l, 1);
-
- TEST_f_f1 (gamma, 0.5, M_LOG_SQRT_PIl, 1);
- TEST_f_f1 (gamma, -0.5, M_LOG_2_SQRT_PIl, -1);
-
- END (gamma);
-}
-
-static void
-hypot_test (void)
-{
- errno = 0;
- FUNC(hypot) (0.7L, 12.4L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (hypot);
-
- TEST_ff_f (hypot, plus_infty, 1, plus_infty, IGNORE_ZERO_INF_SIGN);
- TEST_ff_f (hypot, minus_infty, 1, plus_infty, IGNORE_ZERO_INF_SIGN);
+static const struct test_ff_f_data hypot_test_data[] =
+ {
+ TEST_ff_f (hypot, plus_infty, 1, plus_infty),
+ TEST_ff_f (hypot, minus_infty, 1, plus_infty),
#ifndef TEST_INLINE
- TEST_ff_f (hypot, plus_infty, qnan_value, plus_infty);
- TEST_ff_f (hypot, minus_infty, qnan_value, plus_infty);
- TEST_ff_f (hypot, qnan_value, plus_infty, plus_infty);
- TEST_ff_f (hypot, qnan_value, minus_infty, plus_infty);
+ TEST_ff_f (hypot, plus_infty, qnan_value, plus_infty),
+ TEST_ff_f (hypot, minus_infty, qnan_value, plus_infty),
+ TEST_ff_f (hypot, qnan_value, plus_infty, plus_infty),
+ TEST_ff_f (hypot, qnan_value, minus_infty, plus_infty),
#endif
- TEST_ff_f (hypot, qnan_value, qnan_value, qnan_value);
+ TEST_ff_f (hypot, qnan_value, qnan_value, qnan_value),
- /* hypot (x,y) == hypot (+-x, +-y) */
- TEST_ff_f (hypot, 0.7L, 12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -0.7L, 12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 0.7L, -12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -0.7L, -12.4L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 12.4L, 0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -12.4L, 0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, 12.4L, -0.7L, 12.419742348374220601176836866763271L);
- TEST_ff_f (hypot, -12.4L, -0.7L, 12.419742348374220601176836866763271L);
+ /* hypot (x,y) == hypot (+-x, +-y) */
+ TEST_ff_f (hypot, 0.7L, 12.4L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, -0.7L, 12.4L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, 0.7L, -12.4L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, -0.7L, -12.4L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, 12.4L, 0.7L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, -12.4L, 0.7L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, 12.4L, -0.7L, 12.419742348374220601176836866763271L),
+ TEST_ff_f (hypot, -12.4L, -0.7L, 12.419742348374220601176836866763271L),
- /* hypot (x,0) == fabs (x) */
- TEST_ff_f (hypot, 0.75L, 0, 0.75L);
- TEST_ff_f (hypot, -0.75L, 0, 0.75L);
- TEST_ff_f (hypot, -5.7e7, 0, 5.7e7L);
+ /* hypot (x,0) == fabs (x) */
+ TEST_ff_f (hypot, 0.75L, 0, 0.75L),
+ TEST_ff_f (hypot, -0.75L, 0, 0.75L),
+ TEST_ff_f (hypot, -5.7e7, 0, 5.7e7L),
- TEST_ff_f (hypot, 0.75L, 1.25L, 1.45773797371132511771853821938639577L);
+ TEST_ff_f (hypot, 0.75L, 1.25L, 1.45773797371132511771853821938639577L),
- TEST_ff_f (hypot, 1.0L, 0x1p-61L, 1.0L);
+ TEST_ff_f (hypot, 1.0L, 0x1p-61L, 1.0L),
+ TEST_ff_f (hypot, 0x1p+0L, 0x1.fp-129L, 0x1p+0L),
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
- TEST_ff_f (hypot, 0x1.23456789abcdef0123456789ab8p-500L, 0x1.23456789abcdef0123456789ab8p-500L, 4.9155782399407039128612180934736799735113e-151L);
+ TEST_ff_f (hypot, 0x1.23456789abcdef0123456789ab8p-500L, 0x1.23456789abcdef0123456789ab8p-500L, 4.9155782399407039128612180934736799735113e-151L),
#endif
#if !(defined TEST_FLOAT && defined TEST_INLINE)
- TEST_ff_f (hypot, 0x3p125L, 0x4p125L, 0x5p125L);
- TEST_ff_f (hypot, 0x1.234566p-126L, 0x1.234566p-126L, 1.891441686191081936598531534017449451173e-38L);
+ TEST_ff_f (hypot, 0x3p125L, 0x4p125L, 0x5p125L),
+ TEST_ff_f (hypot, 0x1.234566p-126L, 0x1.234566p-126L, 1.891441686191081936598531534017449451173e-38L),
#endif
#if !defined TEST_FLOAT && !(defined TEST_DOUBLE && defined TEST_INLINE)
- TEST_ff_f (hypot, 0x3p1021L, 0x4p1021L, 0x5p1021L);
+ TEST_ff_f (hypot, 0x3p1021L, 0x4p1021L, 0x5p1021L),
+ TEST_ff_f (hypot, 0x1p+0L, 0x0.3ep-1022L, 0x1p+0L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384 && !defined TEST_INLINE
- TEST_ff_f (hypot, 0x3p16381L, 0x4p16381L, 0x5p16381L);
+ TEST_ff_f (hypot, 0x3p16381L, 0x4p16381L, 0x5p16381L),
#endif
- END (hypot);
-}
+ TEST_ff_f (hypot, 0x1p-149L, 0x1p-149L, 1.9817352931807469938024533350782879785095e-45L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifndef TEST_FLOAT
+ TEST_ff_f (hypot, 0x1p-1074L, 0x1p-1074L, 6.9871433705131320800651344656990806305791e-324L, UNDERFLOW_EXCEPTION_DOUBLE),
+#endif
+
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381 && !defined TEST_INLINE
+ TEST_ff_f (hypot, 0x1p-16445L, 0x1p-16445L, 5.1550906155442528702558159159596215039925e-4951L, UNDERFLOW_EXCEPTION),
+# if LDBL_MANT_DIG >= 113
+ TEST_ff_f (hypot, 0x1p-16494L, 0x1p-16494L, 9.1572804726500807075521065242888978445857e-4966L, UNDERFLOW_EXCEPTION),
+# endif
+#endif
+ };
static void
-ilogb_test (void)
+hypot_test (void)
{
- START (ilogb);
+ START (hypot);
+ RUN_TEST_LOOP_ff_f (hypot, hypot_test_data, );
+ END;
+}
- TEST_f_i (ilogb, 1, 0);
- TEST_f_i (ilogb, M_El, 1);
- TEST_f_i (ilogb, 1024, 10);
- TEST_f_i (ilogb, -2000, 10);
- /* ilogb (0.0) == FP_ILOGB0 plus invalid exception */
- errno = 0;
- TEST_f_i (ilogb, 0.0, FP_ILOGB0, INVALID_EXCEPTION);
- check_int ("errno for ilogb(0.0) unchanged", errno, EDOM, 0, 0, 0);
- /* ilogb (qNaN) == FP_ILOGBNAN plus invalid exception */
- errno = 0;
- TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, INVALID_EXCEPTION);
- check_int ("errno for ilogb(qNaN) unchanged", errno, EDOM, 0, 0, 0);
- /* ilogb (inf) == INT_MAX plus invalid exception */
- errno = 0;
- TEST_f_i (ilogb, plus_infty, INT_MAX, INVALID_EXCEPTION);
- check_int ("errno for ilogb(Inf) unchanged", errno, EDOM, 0, 0, 0);
- /* ilogb (-inf) == INT_MAX plus invalid exception */
- errno = 0;
- TEST_f_i (ilogb, minus_infty, INT_MAX, INVALID_EXCEPTION);
- check_int ("errno for ilogb(-Inf) unchanged", errno, EDOM, 0, 0, 0);
+static const struct test_f_i_data ilogb_test_data[] =
+ {
+ TEST_f_i (ilogb, 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, M_El, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, 1024, 10, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, -2000, 10, NO_INEXACT_EXCEPTION),
+
+ /* ilogb (0.0) == FP_ILOGB0 plus invalid exception */
+ TEST_f_i (ilogb, 0.0, FP_ILOGB0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* ilogb (qNaN) == FP_ILOGBNAN plus invalid exception */
+ TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* ilogb (inf) == INT_MAX plus invalid exception */
+ TEST_f_i (ilogb, plus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ /* ilogb (-inf) == INT_MAX plus invalid exception */
+ TEST_f_i (ilogb, minus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ };
- END (ilogb);
+static void
+ilogb_test (void)
+{
+ START (ilogb);
+ RUN_TEST_LOOP_f_i (ilogb, ilogb_test_data, );
+ END;
}
+static const struct test_f_i_data isfinite_test_data[] =
+ {
+ TEST_f_b (isfinite, 0, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, min_subnorm_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
+
static void
isfinite_test (void)
{
START (isfinite);
-
- TEST_f_b (isfinite, 0, 1);
- TEST_f_b (isfinite, minus_zero, 1);
- TEST_f_b (isfinite, 10, 1);
- TEST_f_b (isfinite, min_subnorm_value, 1);
- TEST_f_b (isfinite, plus_infty, 0);
- TEST_f_b (isfinite, minus_infty, 0);
- TEST_f_b (isfinite, qnan_value, 0);
-
- END (isfinite);
+ RUN_TEST_LOOP_f_b_tg (isfinite, isfinite_test_data, );
+ END;
}
static void
+finite_test (void)
+{
+ START (finite);
+ /* finite uses the same test data as isfinite. */
+ RUN_TEST_LOOP_f_b (finite, isfinite_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data isgreater_test_data[] =
+ {
+ TEST_ff_i (isgreater, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
+
+static void
isgreater_test (void)
{
START (isgreater);
-
- TEST_ff_i (isgreater, minus_zero, minus_zero, 0);
- TEST_ff_i (isgreater, minus_zero, plus_zero, 0);
- TEST_ff_i (isgreater, minus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isgreater, minus_zero, qnan_value, 0);
- TEST_ff_i (isgreater, plus_zero, minus_zero, 0);
- TEST_ff_i (isgreater, plus_zero, plus_zero, 0);
- TEST_ff_i (isgreater, plus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isgreater, plus_zero, qnan_value, 0);
- TEST_ff_i (isgreater, (FLOAT) 1, minus_zero, 1);
- TEST_ff_i (isgreater, (FLOAT) 1, plus_zero, 1);
- TEST_ff_i (isgreater, (FLOAT) 1, (FLOAT) 1, 0);
- TEST_ff_i (isgreater, (FLOAT) 1, qnan_value, 0);
- TEST_ff_i (isgreater, qnan_value, minus_zero, 0);
- TEST_ff_i (isgreater, qnan_value, plus_zero, 0);
- TEST_ff_i (isgreater, qnan_value, (FLOAT) 1, 0);
- TEST_ff_i (isgreater, qnan_value, qnan_value, 0);
-
- END (isgreater);
-}
+ RUN_TEST_LOOP_ff_i_tg (isgreater, isgreater_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data isgreaterequal_test_data[] =
+ {
+ TEST_ff_i (isgreaterequal, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
static void
isgreaterequal_test (void)
{
START (isgreaterequal);
-
- TEST_ff_i (isgreaterequal, minus_zero, minus_zero, 1);
- TEST_ff_i (isgreaterequal, minus_zero, plus_zero, 1);
- TEST_ff_i (isgreaterequal, minus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isgreaterequal, minus_zero, qnan_value, 0);
- TEST_ff_i (isgreaterequal, plus_zero, minus_zero, 1);
- TEST_ff_i (isgreaterequal, plus_zero, plus_zero, 1);
- TEST_ff_i (isgreaterequal, plus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isgreaterequal, plus_zero, qnan_value, 0);
- TEST_ff_i (isgreaterequal, (FLOAT) 1, minus_zero, 1);
- TEST_ff_i (isgreaterequal, (FLOAT) 1, plus_zero, 1);
- TEST_ff_i (isgreaterequal, (FLOAT) 1, (FLOAT) 1, 1);
- TEST_ff_i (isgreaterequal, (FLOAT) 1, qnan_value, 0);
- TEST_ff_i (isgreaterequal, qnan_value, minus_zero, 0);
- TEST_ff_i (isgreaterequal, qnan_value, plus_zero, 0);
- TEST_ff_i (isgreaterequal, qnan_value, (FLOAT) 1, 0);
- TEST_ff_i (isgreaterequal, qnan_value, qnan_value, 0);
-
- END (isgreaterequal);
+ RUN_TEST_LOOP_ff_i_tg (isgreaterequal, isgreaterequal_test_data, );
+ END;
}
+static const struct test_f_i_data isinf_test_data[] =
+ {
+ TEST_f_b (isinf, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, plus_infty, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, minus_infty, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
+
static void
isinf_test (void)
{
START (isinf);
-
- TEST_f_b (isinf, 0, 0);
- TEST_f_b (isinf, minus_zero, 0);
- TEST_f_b (isinf, 10, 0);
- TEST_f_b (isinf, min_subnorm_value, 0);
- TEST_f_b (isinf, plus_infty, 1);
- TEST_f_b (isinf, minus_infty, 1);
- TEST_f_b (isinf, qnan_value, 0);
-
- END (isinf);
-}
+ RUN_TEST_LOOP_f_b_tg (isinf, isinf_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data isless_test_data[] =
+ {
+ TEST_ff_i (isless, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
static void
isless_test (void)
{
START (isless);
-
- TEST_ff_i (isless, minus_zero, minus_zero, 0);
- TEST_ff_i (isless, minus_zero, plus_zero, 0);
- TEST_ff_i (isless, minus_zero, (FLOAT) 1, 1);
- TEST_ff_i (isless, minus_zero, qnan_value, 0);
- TEST_ff_i (isless, plus_zero, minus_zero, 0);
- TEST_ff_i (isless, plus_zero, plus_zero, 0);
- TEST_ff_i (isless, plus_zero, (FLOAT) 1, 1);
- TEST_ff_i (isless, plus_zero, qnan_value, 0);
- TEST_ff_i (isless, (FLOAT) 1, minus_zero, 0);
- TEST_ff_i (isless, (FLOAT) 1, plus_zero, 0);
- TEST_ff_i (isless, (FLOAT) 1, (FLOAT) 1, 0);
- TEST_ff_i (isless, (FLOAT) 1, qnan_value, 0);
- TEST_ff_i (isless, qnan_value, minus_zero, 0);
- TEST_ff_i (isless, qnan_value, plus_zero, 0);
- TEST_ff_i (isless, qnan_value, (FLOAT) 1, 0);
- TEST_ff_i (isless, qnan_value, qnan_value, 0);
-
- END (isless);
-}
+ RUN_TEST_LOOP_ff_i_tg (isless, isless_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data islessequal_test_data[] =
+ {
+ TEST_ff_i (islessequal, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
static void
islessequal_test (void)
{
START (islessequal);
-
- TEST_ff_i (islessequal, minus_zero, minus_zero, 1);
- TEST_ff_i (islessequal, minus_zero, plus_zero, 1);
- TEST_ff_i (islessequal, minus_zero, (FLOAT) 1, 1);
- TEST_ff_i (islessequal, minus_zero, qnan_value, 0);
- TEST_ff_i (islessequal, plus_zero, minus_zero, 1);
- TEST_ff_i (islessequal, plus_zero, plus_zero, 1);
- TEST_ff_i (islessequal, plus_zero, (FLOAT) 1, 1);
- TEST_ff_i (islessequal, plus_zero, qnan_value, 0);
- TEST_ff_i (islessequal, (FLOAT) 1, minus_zero, 0);
- TEST_ff_i (islessequal, (FLOAT) 1, plus_zero, 0);
- TEST_ff_i (islessequal, (FLOAT) 1, (FLOAT) 1, 1);
- TEST_ff_i (islessequal, (FLOAT) 1, qnan_value, 0);
- TEST_ff_i (islessequal, qnan_value, minus_zero, 0);
- TEST_ff_i (islessequal, qnan_value, plus_zero, 0);
- TEST_ff_i (islessequal, qnan_value, (FLOAT) 1, 0);
- TEST_ff_i (islessequal, qnan_value, qnan_value, 0);
-
- END (islessequal);
-}
+ RUN_TEST_LOOP_ff_i_tg (islessequal, islessequal_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data islessgreater_test_data[] =
+ {
+ TEST_ff_i (islessgreater, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
static void
islessgreater_test (void)
{
START (islessgreater);
-
- TEST_ff_i (islessgreater, minus_zero, minus_zero, 0);
- TEST_ff_i (islessgreater, minus_zero, plus_zero, 0);
- TEST_ff_i (islessgreater, minus_zero, (FLOAT) 1, 1);
- TEST_ff_i (islessgreater, minus_zero, qnan_value, 0);
- TEST_ff_i (islessgreater, plus_zero, minus_zero, 0);
- TEST_ff_i (islessgreater, plus_zero, plus_zero, 0);
- TEST_ff_i (islessgreater, plus_zero, (FLOAT) 1, 1);
- TEST_ff_i (islessgreater, plus_zero, qnan_value, 0);
- TEST_ff_i (islessgreater, (FLOAT) 1, minus_zero, 1);
- TEST_ff_i (islessgreater, (FLOAT) 1, plus_zero, 1);
- TEST_ff_i (islessgreater, (FLOAT) 1, (FLOAT) 1, 0);
- TEST_ff_i (islessgreater, (FLOAT) 1, qnan_value, 0);
- TEST_ff_i (islessgreater, qnan_value, minus_zero, 0);
- TEST_ff_i (islessgreater, qnan_value, plus_zero, 0);
- TEST_ff_i (islessgreater, qnan_value, (FLOAT) 1, 0);
- TEST_ff_i (islessgreater, qnan_value, qnan_value, 0);
-
- END (islessgreater);
+ RUN_TEST_LOOP_ff_i_tg (islessgreater, islessgreater_test_data, );
+ END;
}
+static const struct test_f_i_data isnan_test_data[] =
+ {
+ TEST_f_b (isnan, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ };
+
static void
isnan_test (void)
{
START (isnan);
-
- TEST_f_b (isnan, 0, 0);
- TEST_f_b (isnan, minus_zero, 0);
- TEST_f_b (isnan, 10, 0);
- TEST_f_b (isnan, min_subnorm_value, 0);
- TEST_f_b (isnan, plus_infty, 0);
- TEST_f_b (isnan, minus_infty, 0);
- TEST_f_b (isnan, qnan_value, 1);
-
- END (isnan);
+ RUN_TEST_LOOP_f_b_tg (isnan, isnan_test_data, );
+ END;
}
+static const struct test_f_i_data isnormal_test_data[] =
+ {
+ TEST_f_b (isnormal, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
+
static void
isnormal_test (void)
{
START (isnormal);
-
- TEST_f_b (isnormal, 0, 0);
- TEST_f_b (isnormal, minus_zero, 0);
- TEST_f_b (isnormal, 10, 1);
- TEST_f_b (isnormal, min_subnorm_value, 0);
- TEST_f_b (isnormal, plus_infty, 0);
- TEST_f_b (isnormal, minus_infty, 0);
- TEST_f_b (isnormal, qnan_value, 0);
-
- END (isnormal);
-}
+ RUN_TEST_LOOP_f_b_tg (isnormal, isnormal_test_data, );
+ END;
+}
+
+static const struct test_f_i_data issignaling_test_data[] =
+ {
+ TEST_f_b (issignaling, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ };
+
+static void
+issignaling_test (void)
+{
+ START (issignaling);
+ RUN_TEST_LOOP_f_b_tg (issignaling, issignaling_test_data, );
+ END;
+}
+
+static const struct test_ff_i_data isunordered_test_data[] =
+ {
+ TEST_ff_i (isunordered, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ };
static void
isunordered_test (void)
{
START (isunordered);
-
- TEST_ff_i (isunordered, minus_zero, minus_zero, 0);
- TEST_ff_i (isunordered, minus_zero, plus_zero, 0);
- TEST_ff_i (isunordered, minus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isunordered, minus_zero, qnan_value, 1);
- TEST_ff_i (isunordered, plus_zero, minus_zero, 0);
- TEST_ff_i (isunordered, plus_zero, plus_zero, 0);
- TEST_ff_i (isunordered, plus_zero, (FLOAT) 1, 0);
- TEST_ff_i (isunordered, plus_zero, qnan_value, 1);
- TEST_ff_i (isunordered, (FLOAT) 1, minus_zero, 0);
- TEST_ff_i (isunordered, (FLOAT) 1, plus_zero, 0);
- TEST_ff_i (isunordered, (FLOAT) 1, (FLOAT) 1, 0);
- TEST_ff_i (isunordered, (FLOAT) 1, qnan_value, 1);
- TEST_ff_i (isunordered, qnan_value, minus_zero, 1);
- TEST_ff_i (isunordered, qnan_value, plus_zero, 1);
- TEST_ff_i (isunordered, qnan_value, (FLOAT) 1, 1);
- TEST_ff_i (isunordered, qnan_value, qnan_value, 1);
-
- END (isunordered);
-}
-
-static void
-j0_test (void)
-{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(j0) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (j0);
-
- /* j0 is the Bessel function of the first kind of order 0 */
- TEST_f_f (j0, qnan_value, qnan_value);
- TEST_f_f (j0, plus_infty, 0);
- TEST_f_f (j0, -1.0, 0.765197686557966551449717526102663221L);
- TEST_f_f (j0, 0.0, 1.0);
- TEST_f_f (j0, 0.125L, 0.996097563041985204620768999453174712L);
- TEST_f_f (j0, 0.75L, 0.864242275166648623555731103820923211L);
- TEST_f_f (j0, 1.0, 0.765197686557966551449717526102663221L);
- TEST_f_f (j0, 1.5, 0.511827671735918128749051744283411720L);
- TEST_f_f (j0, 2.0, 0.223890779141235668051827454649948626L);
- TEST_f_f (j0, 8.0, 0.171650807137553906090869407851972001L);
- TEST_f_f (j0, 10.0, -0.245935764451348335197760862485328754L);
- TEST_f_f (j0, 4.0, -3.9714980986384737228659076845169804197562E-1L);
- TEST_f_f (j0, -4.0, -3.9714980986384737228659076845169804197562E-1L);
-
- TEST_f_f (j0, 0x1.d7ce3ap+107L, 2.775523647291230802651040996274861694514e-17L);
+ RUN_TEST_LOOP_ff_i_tg (isunordered, isunordered_test_data, );
+ END;
+}
+
+static const struct test_f_f_data j0_test_data[] =
+ {
+ /* j0 is the Bessel function of the first kind of order 0 */
+ TEST_f_f (j0, qnan_value, qnan_value),
+ TEST_f_f (j0, plus_infty, 0),
+ TEST_f_f (j0, -1.0, 0.765197686557966551449717526102663221L),
+ TEST_f_f (j0, 0.0, 1.0),
+ TEST_f_f (j0, 0.125L, 0.996097563041985204620768999453174712L),
+ TEST_f_f (j0, 0.75L, 0.864242275166648623555731103820923211L),
+ TEST_f_f (j0, 1.0, 0.765197686557966551449717526102663221L),
+ TEST_f_f (j0, 1.5, 0.511827671735918128749051744283411720L),
+ TEST_f_f (j0, 2.0, 0.223890779141235668051827454649948626L),
+ TEST_f_f (j0, 8.0, 0.171650807137553906090869407851972001L),
+ TEST_f_f (j0, 10.0, -0.245935764451348335197760862485328754L),
+ TEST_f_f (j0, 4.0, -3.9714980986384737228659076845169804197562E-1L),
+ TEST_f_f (j0, -4.0, -3.9714980986384737228659076845169804197562E-1L),
+
+ TEST_f_f (j0, 0x1.d7ce3ap+107L, 2.775523647291230802651040996274861694514e-17L),
#ifndef TEST_FLOAT
- TEST_f_f (j0, -0x1.001000001p+593L, -3.927269966354206207832593635798954916263e-90L);
- TEST_f_f (j0, 0x1p1023L, -1.5665258060609012834424478437196679802783e-155L);
+ TEST_f_f (j0, -0x1.001000001p+593L, -3.927269966354206207832593635798954916263e-90L),
+ TEST_f_f (j0, 0x1p1023L, -1.5665258060609012834424478437196679802783e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (j0, 0x1p16382L, -1.2193782500509000574176799046642541129387e-2466L);
- TEST_f_f (j0, 0x1p16383L, 9.5859502826270374691362975419147645151233e-2467L);
+ TEST_f_f (j0, 0x1p16382L, -1.2193782500509000574176799046642541129387e-2466L),
+ TEST_f_f (j0, 0x1p16383L, 9.5859502826270374691362975419147645151233e-2467L),
#endif
-
- END (j0);
-}
-
+ };
static void
-j1_test (void)
+j0_test (void)
{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(j1) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* j1 is the Bessel function of the first kind of order 1 */
+ START (j0);
+ RUN_TEST_LOOP_f_f (j0, j0_test_data, );
+ END;
+}
- START (j1);
- TEST_f_f (j1, qnan_value, qnan_value);
- TEST_f_f (j1, plus_infty, 0);
+static const struct test_f_f_data j1_test_data[] =
+ {
+ /* j1 is the Bessel function of the first kind of order 1 */
+ TEST_f_f (j1, qnan_value, qnan_value),
+ TEST_f_f (j1, plus_infty, 0),
- TEST_f_f (j1, -1.0, -0.440050585744933515959682203718914913L);
- TEST_f_f (j1, 0.0, 0.0);
- TEST_f_f (j1, 0.125L, 0.0623780091344946810942311355879361177L);
- TEST_f_f (j1, 0.75L, 0.349243602174862192523281016426251335L);
- TEST_f_f (j1, 1.0, 0.440050585744933515959682203718914913L);
- TEST_f_f (j1, 1.5, 0.557936507910099641990121213156089400L);
- TEST_f_f (j1, 2.0, 0.576724807756873387202448242269137087L);
- TEST_f_f (j1, 8.0, 0.234636346853914624381276651590454612L);
- TEST_f_f (j1, 10.0, 0.0434727461688614366697487680258592883L);
+ TEST_f_f (j1, -1.0, -0.440050585744933515959682203718914913L),
+ TEST_f_f (j1, 0.0, 0.0),
+ TEST_f_f (j1, 0.125L, 0.0623780091344946810942311355879361177L),
+ TEST_f_f (j1, 0.75L, 0.349243602174862192523281016426251335L),
+ TEST_f_f (j1, 1.0, 0.440050585744933515959682203718914913L),
+ TEST_f_f (j1, 1.5, 0.557936507910099641990121213156089400L),
+ TEST_f_f (j1, 2.0, 0.576724807756873387202448242269137087L),
+ TEST_f_f (j1, 8.0, 0.234636346853914624381276651590454612L),
+ TEST_f_f (j1, 10.0, 0.0434727461688614366697487680258592883L),
- TEST_f_f (j1, 0x1.3ffp+74L, 1.818984347516051243459364437186082741567e-12L);
+ TEST_f_f (j1, 0x1.3ffp+74L, 1.818984347516051243459364437186082741567e-12L),
#ifndef TEST_FLOAT
- TEST_f_f (j1, 0x1.ff00000000002p+840L, 1.846591691699331493194965158699937660696e-127L);
- TEST_f_f (j1, 0x1p1023L, 8.2687542933709649327986678723012001545638e-155L);
+ TEST_f_f (j1, 0x1.ff00000000002p+840L, 1.846591691699331493194965158699937660696e-127L),
+ TEST_f_f (j1, 0x1p1023L, 8.2687542933709649327986678723012001545638e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (j1, 0x1p16382L, 8.0839224448726336195866026476176740513439e-2467L);
- TEST_f_f (j1, 0x1p16383L, -3.8895531955766020648617743624167352352217e-2467L);
+ TEST_f_f (j1, 0x1p16382L, 8.0839224448726336195866026476176740513439e-2467L),
+ TEST_f_f (j1, 0x1p16383L, -3.8895531955766020648617743624167352352217e-2467L),
#endif
+ };
- END (j1);
-}
+static void
+j1_test (void)
+{
+ START (j1);
+ RUN_TEST_LOOP_f_f (j1, j1_test_data, );
+ END;
+}
+
+static const struct test_if_f_data jn_test_data[] =
+ {
+ /* jn is the Bessel function of the first kind of order n. */
+ /* jn (0, x) == j0 (x) */
+ TEST_if_f (jn, 0, qnan_value, qnan_value),
+ TEST_if_f (jn, 0, plus_infty, 0),
+ TEST_if_f (jn, 0, -1.0, 0.765197686557966551449717526102663221L),
+ TEST_if_f (jn, 0, 0.0, 1.0),
+ TEST_if_f (jn, 0, 0.125L, 0.996097563041985204620768999453174712L),
+ TEST_if_f (jn, 0, 0.75L, 0.864242275166648623555731103820923211L),
+ TEST_if_f (jn, 0, 1.0, 0.765197686557966551449717526102663221L),
+ TEST_if_f (jn, 0, 1.5, 0.511827671735918128749051744283411720L),
+ TEST_if_f (jn, 0, 2.0, 0.223890779141235668051827454649948626L),
+ TEST_if_f (jn, 0, 8.0, 0.171650807137553906090869407851972001L),
+ TEST_if_f (jn, 0, 10.0, -0.245935764451348335197760862485328754L),
+ TEST_if_f (jn, 0, 4.0, -3.9714980986384737228659076845169804197562E-1L),
+ TEST_if_f (jn, 0, -4.0, -3.9714980986384737228659076845169804197562E-1L),
+
+ /* jn (1, x) == j1 (x) */
+ TEST_if_f (jn, 1, qnan_value, qnan_value),
+ TEST_if_f (jn, 1, plus_infty, 0),
+ TEST_if_f (jn, 1, -1.0, -0.440050585744933515959682203718914913L),
+ TEST_if_f (jn, 1, 0.0, 0.0),
+ TEST_if_f (jn, 1, 0.125L, 0.0623780091344946810942311355879361177L),
+ TEST_if_f (jn, 1, 0.75L, 0.349243602174862192523281016426251335L),
+ TEST_if_f (jn, 1, 1.0, 0.440050585744933515959682203718914913L),
+ TEST_if_f (jn, 1, 1.5, 0.557936507910099641990121213156089400L),
+ TEST_if_f (jn, 1, 2.0, 0.576724807756873387202448242269137087L),
+ TEST_if_f (jn, 1, 8.0, 0.234636346853914624381276651590454612L),
+ TEST_if_f (jn, 1, 10.0, 0.0434727461688614366697487680258592883L),
+
+ /* jn (3, x) */
+ TEST_if_f (jn, 3, qnan_value, qnan_value),
+ TEST_if_f (jn, 3, plus_infty, 0),
+
+ TEST_if_f (jn, 3, -1.0, -0.0195633539826684059189053216217515083L),
+ TEST_if_f (jn, 3, 0.0, 0.0),
+ TEST_if_f (jn, 3, 0.125L, 0.406503832554912875023029337653442868e-4L),
+ TEST_if_f (jn, 3, 0.75L, 0.848438342327410884392755236884386804e-2L),
+ TEST_if_f (jn, 3, 1.0, 0.0195633539826684059189053216217515083L),
+ TEST_if_f (jn, 3, 2.0, 0.128943249474402051098793332969239835L),
+ TEST_if_f (jn, 3, 10.0, 0.0583793793051868123429354784103409563L),
+
+ /* jn (10, x) */
+ TEST_if_f (jn, 10, qnan_value, qnan_value),
+ TEST_if_f (jn, 10, plus_infty, 0),
+
+ TEST_if_f (jn, 10, -1.0, 0.263061512368745320699785368779050294e-9L),
+ TEST_if_f (jn, 10, 0.0, 0.0),
+ TEST_if_f (jn, 10, 0.125L, 0.250543369809369890173993791865771547e-18L),
+ TEST_if_f (jn, 10, 0.75L, 0.149621713117596814698712483621682835e-10L),
+ TEST_if_f (jn, 10, 1.0, 0.263061512368745320699785368779050294e-9L),
+ TEST_if_f (jn, 10, 2.0, 0.251538628271673670963516093751820639e-6L),
+ TEST_if_f (jn, 10, 10.0, 0.207486106633358857697278723518753428L),
+
+ /* BZ #11589 .*/
+ TEST_if_f (jn, 2, 2.4048255576957729L, 0.43175480701968038399746111312430703L),
+ TEST_if_f (jn, 3, 2.4048255576957729L, 0.19899990535769083404042146764530813L),
+ TEST_if_f (jn, 4, 2.4048255576957729L, 0.647466661641779720084932282551219891E-1L),
+ TEST_if_f (jn, 5, 2.4048255576957729L, 0.163892432048058525099230549946147698E-1L),
+ TEST_if_f (jn, 6, 2.4048255576957729L, 0.34048184720278336646673682895929161E-2L),
+ TEST_if_f (jn, 7, 2.4048255576957729L, 0.60068836573295394221291569249883076E-3L),
+ TEST_if_f (jn, 8, 2.4048255576957729L, 0.92165786705344923232879022467054148E-4L),
+ TEST_if_f (jn, 9, 2.4048255576957729L, 0.12517270977961513005428966643852564E-4L),
+
+ /* Bug 14155: spurious exception may occur. */
+ TEST_if_f (jn, 2, 0x1.ffff62p+99L, -4.43860668048170034334926693188979974489e-16L, UNDERFLOW_EXCEPTION_OK),
+ };
static void
jn_test (void)
{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(jn) (1, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* jn is the Bessel function of the first kind of order n. */
START (jn);
-
- /* jn (0, x) == j0 (x) */
- TEST_ff_f (jn, 0, qnan_value, qnan_value);
- TEST_ff_f (jn, 0, plus_infty, 0);
- TEST_ff_f (jn, 0, -1.0, 0.765197686557966551449717526102663221L);
- TEST_ff_f (jn, 0, 0.0, 1.0);
- TEST_ff_f (jn, 0, 0.125L, 0.996097563041985204620768999453174712L);
- TEST_ff_f (jn, 0, 0.75L, 0.864242275166648623555731103820923211L);
- TEST_ff_f (jn, 0, 1.0, 0.765197686557966551449717526102663221L);
- TEST_ff_f (jn, 0, 1.5, 0.511827671735918128749051744283411720L);
- TEST_ff_f (jn, 0, 2.0, 0.223890779141235668051827454649948626L);
- TEST_ff_f (jn, 0, 8.0, 0.171650807137553906090869407851972001L);
- TEST_ff_f (jn, 0, 10.0, -0.245935764451348335197760862485328754L);
- TEST_ff_f (jn, 0, 4.0, -3.9714980986384737228659076845169804197562E-1L);
- TEST_ff_f (jn, 0, -4.0, -3.9714980986384737228659076845169804197562E-1L);
-
- /* jn (1, x) == j1 (x) */
- TEST_ff_f (jn, 1, qnan_value, qnan_value);
- TEST_ff_f (jn, 1, plus_infty, 0);
- TEST_ff_f (jn, 1, -1.0, -0.440050585744933515959682203718914913L);
- TEST_ff_f (jn, 1, 0.0, 0.0);
- TEST_ff_f (jn, 1, 0.125L, 0.0623780091344946810942311355879361177L);
- TEST_ff_f (jn, 1, 0.75L, 0.349243602174862192523281016426251335L);
- TEST_ff_f (jn, 1, 1.0, 0.440050585744933515959682203718914913L);
- TEST_ff_f (jn, 1, 1.5, 0.557936507910099641990121213156089400L);
- TEST_ff_f (jn, 1, 2.0, 0.576724807756873387202448242269137087L);
- TEST_ff_f (jn, 1, 8.0, 0.234636346853914624381276651590454612L);
- TEST_ff_f (jn, 1, 10.0, 0.0434727461688614366697487680258592883L);
-
- /* jn (3, x) */
- TEST_ff_f (jn, 3, qnan_value, qnan_value);
- TEST_ff_f (jn, 3, plus_infty, 0);
-
- TEST_ff_f (jn, 3, -1.0, -0.0195633539826684059189053216217515083L);
- TEST_ff_f (jn, 3, 0.0, 0.0);
- TEST_ff_f (jn, 3, 0.125L, 0.406503832554912875023029337653442868e-4L);
- TEST_ff_f (jn, 3, 0.75L, 0.848438342327410884392755236884386804e-2L);
- TEST_ff_f (jn, 3, 1.0, 0.0195633539826684059189053216217515083L);
- TEST_ff_f (jn, 3, 2.0, 0.128943249474402051098793332969239835L);
- TEST_ff_f (jn, 3, 10.0, 0.0583793793051868123429354784103409563L);
-
- /* jn (10, x) */
- TEST_ff_f (jn, 10, qnan_value, qnan_value);
- TEST_ff_f (jn, 10, plus_infty, 0);
-
- TEST_ff_f (jn, 10, -1.0, 0.263061512368745320699785368779050294e-9L);
- TEST_ff_f (jn, 10, 0.0, 0.0);
- TEST_ff_f (jn, 10, 0.125L, 0.250543369809369890173993791865771547e-18L);
- TEST_ff_f (jn, 10, 0.75L, 0.149621713117596814698712483621682835e-10L);
- TEST_ff_f (jn, 10, 1.0, 0.263061512368745320699785368779050294e-9L);
- TEST_ff_f (jn, 10, 2.0, 0.251538628271673670963516093751820639e-6L);
- TEST_ff_f (jn, 10, 10.0, 0.207486106633358857697278723518753428L);
-
- /* BZ #11589 .*/
- TEST_ff_f (jn, 2, 2.4048255576957729L, 0.43175480701968038399746111312430703L);
- TEST_ff_f (jn, 3, 2.4048255576957729L, 0.19899990535769083404042146764530813L);
- TEST_ff_f (jn, 4, 2.4048255576957729L, 0.647466661641779720084932282551219891E-1L);
- TEST_ff_f (jn, 5, 2.4048255576957729L, 0.163892432048058525099230549946147698E-1L);
- TEST_ff_f (jn, 6, 2.4048255576957729L, 0.34048184720278336646673682895929161E-2L);
- TEST_ff_f (jn, 7, 2.4048255576957729L, 0.60068836573295394221291569249883076E-3L);
- TEST_ff_f (jn, 8, 2.4048255576957729L, 0.92165786705344923232879022467054148E-4L);
- TEST_ff_f (jn, 9, 2.4048255576957729L, 0.12517270977961513005428966643852564E-4L);
-
- /* Bug 14155: spurious exception may occur. */
- TEST_ff_f (jn, 2, 0x1.ffff62p+99L, -4.43860668048170034334926693188979974489e-16L, UNDERFLOW_EXCEPTION_OK);
-
- END (jn);
+ RUN_TEST_LOOP_if_f (jn, jn_test_data, );
+ END;
}
+static const struct test_fi_f_data ldexp_test_data[] =
+ {
+ TEST_fi_f (ldexp, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_fi_f (ldexp, plus_infty, 1, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, minus_infty, 1, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, qnan_value, 1, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_fi_f (ldexp, 0.8L, 4, 12.8L, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, -0.854375L, 5, -27.34L, NO_INEXACT_EXCEPTION),
+
+ /* ldexp (x, 0) == x. */
+ TEST_fi_f (ldexp, 1.0L, 0L, 1.0L, NO_INEXACT_EXCEPTION),
+ };
+
static void
ldexp_test (void)
{
START (ldexp);
+ RUN_TEST_LOOP_fi_f (ldexp, ldexp_test_data, );
+ END;
+}
- TEST_ff_f (ldexp, 0, 0, 0);
- TEST_ff_f (ldexp, minus_zero, 0, minus_zero);
- TEST_ff_f (ldexp, plus_infty, 1, plus_infty);
- TEST_ff_f (ldexp, minus_infty, 1, minus_infty);
- TEST_ff_f (ldexp, qnan_value, 1, qnan_value);
+static const struct test_f_f1_data lgamma_test_data[] =
+ {
+ TEST_f_f1 (lgamma, plus_infty, plus_infty, 1),
+ TEST_f_f1 (lgamma, 0, plus_infty, 1, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f1 (lgamma, minus_zero, plus_infty, -1, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f1 (lgamma, qnan_value, qnan_value, IGNORE),
- TEST_ff_f (ldexp, 0.8L, 4, 12.8L);
- TEST_ff_f (ldexp, -0.854375L, 5, -27.34L);
+ /* lgamma (x) == +inf plus divide by zero exception for integer x <= 0. */
+ TEST_f_f1 (lgamma, -3, plus_infty, IGNORE, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f1 (lgamma, minus_infty, plus_infty, IGNORE),
+ TEST_f_f1 (lgamma, -max_value, plus_infty, IGNORE, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f1 (lgamma, max_value, plus_infty, 1, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- /* ldexp (x, 0) == x. */
- TEST_ff_f (ldexp, 1.0L, 0L, 1.0L);
+ TEST_f_f1 (lgamma, 1, 0, 1),
- END (ldexp);
-}
+ TEST_f_f1 (lgamma, 3, M_LN2l, 1),
+ TEST_f_f1 (lgamma, 0.5, M_LOG_SQRT_PIl, 1),
+ TEST_f_f1 (lgamma, -0.5, M_LOG_2_SQRT_PIl, -1),
+ TEST_f_f1 (lgamma, 0.7L, 0.260867246531666514385732417016759578L, 1),
+ TEST_f_f1 (lgamma, 1.2L, -0.853740900033158497197028392998854470e-1L, 1),
+ };
static void
lgamma_test (void)
{
- errno = 0;
- FUNC(lgamma) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (lgamma);
+ RUN_TEST_LOOP_f_f1 (lgamma, lgamma_test_data, , signgam);
+ END;
+}
- TEST_f_f (lgamma, plus_infty, plus_infty);
- TEST_f_f (lgamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("signgam for lgamma(0) == 1", signgam, 1, 0, 0, 0);
- TEST_f_f (lgamma, minus_zero, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("signgam for lgamma(-0) == -1", signgam, -1, 0, 0, 0);
- TEST_f_f (lgamma, qnan_value, qnan_value);
-
- /* lgamma (x) == +inf plus divide by zero exception for integer x <= 0. */
- errno = 0;
- TEST_f_f (lgamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for lgamma(-integer) == ERANGE", errno, ERANGE, 0, 0, 0);
- TEST_f_f (lgamma, minus_infty, plus_infty);
- TEST_f_f (lgamma, -max_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (lgamma, max_value, plus_infty, OVERFLOW_EXCEPTION);
+static void
+gamma_test (void)
+{
+ START (gamma);
+ /* gamma uses the same test data as lgamma. */
+ RUN_TEST_LOOP_f_f1 (gamma, lgamma_test_data, , signgam);
+ END;
+}
- TEST_f_f1 (lgamma, 1, 0, 1);
- TEST_f_f1 (lgamma, 3, M_LN2l, 1);
+static const struct test_f_l_data lrint_test_data[] =
+ {
+ /* XXX this test is incomplete. We need to have a way to specifiy
+ the rounding method and test the critical cases. So far, only
+ unproblematic numbers are tested. */
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
- TEST_f_f1 (lgamma, 0.5, M_LOG_SQRT_PIl, 1);
- TEST_f_f1 (lgamma, -0.5, M_LOG_2_SQRT_PIl, -1);
- TEST_f_f1 (lgamma, 0.7L, 0.260867246531666514385732417016759578L, 1);
- TEST_f_f1 (lgamma, 1.2L, -0.853740900033158497197028392998854470e-1L, 1);
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
- END (lgamma);
-}
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
+# endif
+#endif
+ };
static void
lrint_test (void)
{
- /* XXX this test is incomplete. We need to have a way to specifiy
- the rounding method and test the critical cases. So far, only
- unproblematic numbers are tested. */
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
START (lrint);
+ RUN_TEST_LOOP_f_l (lrint, lrint_test_data, );
+ END;
+}
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 0);
- TEST_f_l (lrint, -0.2L, 0);
- TEST_f_l (lrint, 1.4L, 1);
- TEST_f_l (lrint, -1.4L, -1);
+static const struct test_f_l_data lrint_tonearest_test_data[] =
+ {
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, -1, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 8388600.3L, 8388600);
- TEST_f_l (lrint, -8388600.3L, -8388600);
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1071930.0008, 1071930);
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
-
- END (lrint);
-}
-
+ };
static void
lrint_test_tonearest (void)
{
- int save_round_mode;
START (lrint_tonearest);
+ RUN_TEST_LOOP_f_l (lrint, lrint_tonearest_test_data, FE_TONEAREST);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 0);
- TEST_f_l (lrint, -0.2L, 0);
- TEST_f_l (lrint, 0.5L, 0);
- TEST_f_l (lrint, -0.5L, 0);
- TEST_f_l (lrint, 0.8L, 1);
- TEST_f_l (lrint, -0.8L, -1);
+static const struct test_f_l_data lrint_towardzero_test_data[] =
+ {
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, 0, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1.4L, 1);
- TEST_f_l (lrint, -1.4L, -1);
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 8388600.3L, 8388600);
- TEST_f_l (lrint, -8388600.3L, -8388600);
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1071930.0008, 1071930);
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (lrint_tonearest);
-}
-
+ };
static void
lrint_test_towardzero (void)
{
- int save_round_mode;
START (lrint_towardzero);
+ RUN_TEST_LOOP_f_l (lrint, lrint_towardzero_test_data, FE_TOWARDZERO);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 0);
- TEST_f_l (lrint, -0.2L, 0);
- TEST_f_l (lrint, 0.5L, 0);
- TEST_f_l (lrint, -0.5L, 0);
- TEST_f_l (lrint, 0.8L, 0);
- TEST_f_l (lrint, -0.8L, 0);
+static const struct test_f_l_data lrint_downward_test_data[] =
+ {
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, -1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, -1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, -1, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1.4L, 1);
- TEST_f_l (lrint, -1.4L, -1);
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -2, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 8388600.3L, 8388600);
- TEST_f_l (lrint, -8388600.3L, -8388600);
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388601, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1071930.0008, 1071930);
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (lrint_towardzero);
-}
-
+ };
static void
lrint_test_downward (void)
{
- int save_round_mode;
START (lrint_downward);
+ RUN_TEST_LOOP_f_l (lrint, lrint_downward_test_data, FE_DOWNWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 0);
- TEST_f_l (lrint, -0.2L, -1);
- TEST_f_l (lrint, 0.5L, 0);
- TEST_f_l (lrint, -0.5L, -1);
- TEST_f_l (lrint, 0.8L, 0);
- TEST_f_l (lrint, -0.8L, -1);
+static const struct test_f_l_data lrint_upward_test_data[] =
+ {
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, 0, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1.4L, 1);
- TEST_f_l (lrint, -1.4L, -2);
+ TEST_f_l (lrint, 1.4L, 2, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 8388600.3L, 8388600);
- TEST_f_l (lrint, -8388600.3L, -8388601);
+ TEST_f_l (lrint, 8388600.3L, 8388601, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1071930.0008, 1071930);
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824);
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
+ TEST_f_l (lrint, 1071930.0008, 1071931, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741825, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined (TEST_LDOUBLE)
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710657, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (lrint_downward);
-}
-
+ };
static void
lrint_test_upward (void)
{
- int save_round_mode;
START (lrint_upward);
+ RUN_TEST_LOOP_f_l (lrint, lrint_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_l (lrint, 0.0, 0);
- TEST_f_l (lrint, minus_zero, 0);
- TEST_f_l (lrint, 0.2L, 1);
- TEST_f_l (lrint, -0.2L, 0);
- TEST_f_l (lrint, 0.5L, 1);
- TEST_f_l (lrint, -0.5L, 0);
- TEST_f_l (lrint, 0.8L, 1);
- TEST_f_l (lrint, -0.8L, 0);
+static const struct test_f_L_data llrint_test_data[] =
+ {
+ /* XXX this test is incomplete. We need to have a way to specifiy
+ the rounding method and test the critical cases. So far, only
+ unproblematic numbers are tested. */
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 1.4L, 2);
- TEST_f_l (lrint, -1.4L, -1);
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
- TEST_f_l (lrint, 8388600.3L, 8388601);
- TEST_f_l (lrint, -8388600.3L, -8388600);
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1071930.0008, 1071931);
- TEST_f_l (lrint, 1073741824.01, 1073741825);
-# if LONG_MAX > 281474976710656 && defined (TEST_LDOUBLE)
- TEST_f_l (lrint, 281474976710656.025, 281474976710656);
-# endif
-#endif
- }
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
+
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
+ /* 0x800000 */
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000 */
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000 */
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
+ /* 0x40000000000 */
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000000000 */
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000000000000 */
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000080000000 */
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000000 */
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
+ /* 0x80000000000000 */
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
+ /* 0x100000000000000 */
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
+#ifdef TEST_LDOUBLE
+ /* The input can only be represented in long double. */
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL, INEXACT_EXCEPTION),
- fesetround (save_round_mode);
+# if LDBL_MANT_DIG > 100
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL, INEXACT_EXCEPTION),
- END (lrint_upward);
-}
+# if LDBL_MANT_DIG > 100
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL, INEXACT_EXCEPTION),
+# if LDBL_MANT_DIG > 100
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
+# endif
+#endif
+ };
static void
llrint_test (void)
{
- /* XXX this test is incomplete. We need to have a way to specifiy
- the rounding method and test the critical cases. So far, only
- unproblematic numbers are tested. */
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
START (llrint);
+ RUN_TEST_LOOP_f_L (llrint, llrint_test_data, );
+ END;
+}
+
+static const struct test_f_L_data llrint_tonearest_test_data[] =
+ {
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 0);
- TEST_f_L (llrint, -0.2L, 0);
-
- TEST_f_L (llrint, 1.4L, 1);
- TEST_f_L (llrint, -1.4L, -1);
-
- TEST_f_L (llrint, 8388600.3L, 8388600);
- TEST_f_L (llrint, -8388600.3L, -8388600);
-
- TEST_f_l (llrint, 1071930.0008, 1071930);
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
+
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
+ /* 0x800000 */
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000 */
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000 */
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
+ /* 0x40000000000 */
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000000000 */
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000000000000 */
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000080000000 */
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000000 */
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
+ /* 0x80000000000000 */
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
+ /* 0x100000000000000 */
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL);
+ /* The input can only be represented in long double. */
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL);
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL);
-#endif
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL);
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL);
-#endif
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL);
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L);
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL);
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL);
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
-
- END (llrint);
-}
+ };
static void
llrint_test_tonearest (void)
{
- int save_round_mode;
START (llrint_tonearest);
+ RUN_TEST_LOOP_f_L (llrint, llrint_tonearest_test_data, FE_TONEAREST);
+ END;
+}
- save_round_mode = fegetround ();
+static const struct test_f_L_data llrint_towardzero_test_data[] =
+ {
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 0);
- TEST_f_L (llrint, -0.2L, 0);
-
- TEST_f_L (llrint, 1.4L, 1);
- TEST_f_L (llrint, -1.4L, -1);
-
- TEST_f_L (llrint, 8388600.3L, 8388600);
- TEST_f_L (llrint, -8388600.3L, -8388600);
-
- TEST_f_l (llrint, 1071930.0008, 1071930);
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
+
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
+ /* 0x800000 */
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000 */
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000 */
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
+ /* 0x40000000000 */
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000000000 */
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000000000000 */
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000080000000 */
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000000 */
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
+ /* 0x80000000000000 */
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
+ /* 0x100000000000000 */
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL);
+ /* The input can only be represented in long double. */
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL);
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL);
-#endif
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL);
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL);
-#endif
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL);
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L);
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL);
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL);
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (llrint_tonearest);
-}
+ };
static void
llrint_test_towardzero (void)
{
- int save_round_mode;
START (llrint_towardzero);
+ RUN_TEST_LOOP_f_L (llrint, llrint_towardzero_test_data, FE_TOWARDZERO);
+ END;
+}
- save_round_mode = fegetround ();
+static const struct test_f_L_data llrint_downward_test_data[] =
+ {
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, -1, INEXACT_EXCEPTION),
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 0);
- TEST_f_L (llrint, -0.2L, 0);
-
- TEST_f_L (llrint, 1.4L, 1);
- TEST_f_L (llrint, -1.4L, -1);
-
- TEST_f_L (llrint, 8388600.3L, 8388600);
- TEST_f_L (llrint, -8388600.3L, -8388600);
-
- TEST_f_l (llrint, 1071930.0008, 1071930);
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
-#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL);
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -2, INEXACT_EXCEPTION),
-# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL);
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL);
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL);
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL);
-#endif
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL);
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388601, INEXACT_EXCEPTION),
-# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL);
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL);
-#endif
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL);
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
+
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
+ /* 0x800000 */
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000 */
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000 */
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
+ /* 0x40000000000 */
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000000000 */
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000000000000 */
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000080000000 */
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000000 */
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
+ /* 0x80000000000000 */
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
+ /* 0x100000000000000 */
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
+#ifdef TEST_LDOUBLE
+ /* The input can only be represented in long double. */
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370498LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740994LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL);
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL);
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L);
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL);
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (llrint_towardzero);
-}
+ };
static void
llrint_test_downward (void)
{
- int save_round_mode;
START (llrint_downward);
+ RUN_TEST_LOOP_f_L (llrint, llrint_downward_test_data, FE_DOWNWARD);
+ END;
+}
- save_round_mode = fegetround ();
+static const struct test_f_L_data llrint_upward_test_data[] =
+ {
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 0);
- TEST_f_L (llrint, -0.2L, -1);
-
- TEST_f_L (llrint, 1.4L, 1);
- TEST_f_L (llrint, -1.4L, -2);
-
- TEST_f_L (llrint, 8388600.3L, 8388600);
- TEST_f_L (llrint, -8388600.3L, -8388601);
-
- TEST_f_l (llrint, 1071930.0008, 1071930);
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
+ TEST_f_L (llrint, 1.4L, 2, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388601, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071931, INEXACT_EXCEPTION),
+#endif
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
+ /* 0x800000 */
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000 */
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000 */
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
+ /* 0x40000000000 */
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
+ /* 0x1000000000000 */
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000000000000 */
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
+ /* 0x10000080000000 */
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
+ /* 0x20000000000000 */
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
+ /* 0x80000000000000 */
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
+ /* 0x100000000000000 */
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL);
-
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370494LL);
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370496LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL);
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370498LL);
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL);
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740993LL);
-
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740991LL);
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740993LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740994LL);
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL);
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927935LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927937LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL);
+ /* The input can only be represented in long double. */
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370498LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740994LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775805LL);
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775807LL);
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L);
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775807LL);
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL);
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL);
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775807L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (llrint_downward);
-}
+ };
static void
llrint_test_upward (void)
{
- int save_round_mode;
START (llrint_upward);
+ RUN_TEST_LOOP_f_L (llrint, llrint_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_L (llrint, 0.0, 0);
- TEST_f_L (llrint, minus_zero, 0);
- TEST_f_L (llrint, 0.2L, 1);
- TEST_f_L (llrint, -0.2L, 0);
-
- TEST_f_L (llrint, 1.4L, 2);
- TEST_f_L (llrint, -1.4L, -1);
-
- TEST_f_L (llrint, 8388600.3L, 8388601);
- TEST_f_L (llrint, -8388600.3L, -8388600);
-#ifndef TEST_FLOAT
- TEST_f_l (llrint, 1071930.0008, 1071931);
-#endif
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL);
- /* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL);
-#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL);
-
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370497LL);
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370498LL);
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL);
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL);
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL);
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL);
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL);
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL);
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370494LL);
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370495LL);
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370496LL);
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL);
-
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740994LL);
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL);
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL);
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL);
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740993LL);
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL);
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740991LL);
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740992LL);
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740993LL);
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL);
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927935LL);
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927936LL);
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927937LL);
+static const struct test_f_f_data log_test_data[] =
+ {
+ TEST_f_f (log, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (log, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
-# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775805LL);
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL);
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775807L);
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775806LL);
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL);
-# endif
-#endif
- }
+ TEST_f_f (log, 1, 0),
- fesetround (save_round_mode);
-
- END (llrint_upward);
-}
+ TEST_f_f (log, -1, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log, plus_infty, plus_infty),
+ TEST_f_f (log, qnan_value, qnan_value),
+ TEST_f_f (log, M_El, 1),
+ TEST_f_f (log, M_1_DIV_El, -1),
+ TEST_f_f (log, 2, M_LN2l),
+ TEST_f_f (log, 10, M_LN10l),
+ TEST_f_f (log, 0.75L, -0.287682072451780927439219005993827432L),
+ };
static void
log_test (void)
{
- errno = 0;
- FUNC(log) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
START (log);
+ RUN_TEST_LOOP_f_f (log, log_test_data, );
+ END;
+}
- TEST_f_f (log, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log, 1, 0);
+static const struct test_f_f_data log10_test_data[] =
+ {
+ TEST_f_f (log10, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (log10, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
- TEST_f_f (log, -1, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log, plus_infty, plus_infty);
- TEST_f_f (log, qnan_value, qnan_value);
+ TEST_f_f (log10, 1, 0),
- TEST_f_f (log, M_El, 1);
- TEST_f_f (log, 1.0 / M_El, -1);
- TEST_f_f (log, 2, M_LN2l);
- TEST_f_f (log, 10, M_LN10l);
- TEST_f_f (log, 0.75L, -0.287682072451780927439219005993827432L);
+ /* log10 (x) == qNaN plus invalid exception if x < 0. */
+ TEST_f_f (log10, -1, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log10, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log10, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
- END (log);
-}
+ TEST_f_f (log10, plus_infty, plus_infty),
+ TEST_f_f (log10, qnan_value, qnan_value),
+ TEST_f_f (log10, 0.1L, -1),
+ TEST_f_f (log10, 10.0, 1),
+ TEST_f_f (log10, 100.0, 2),
+ TEST_f_f (log10, 10000.0, 4),
+ TEST_f_f (log10, M_El, M_LOG10El),
+ TEST_f_f (log10, 0.75L, -0.124938736608299953132449886193870744L),
+ };
static void
log10_test (void)
{
- errno = 0;
- FUNC(log10) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (log10);
+ RUN_TEST_LOOP_f_f (log10, log10_test_data, );
+ END;
+}
- TEST_f_f (log10, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log10, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (log10, 1, 0);
- /* log10 (x) == qNaN plus invalid exception if x < 0. */
- TEST_f_f (log10, -1, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log10, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log10, minus_infty, qnan_value, INVALID_EXCEPTION);
+static const struct test_f_f_data log1p_test_data[] =
+ {
+ TEST_f_f (log1p, 0, 0),
+ TEST_f_f (log1p, minus_zero, minus_zero),
- TEST_f_f (log10, plus_infty, plus_infty);
- TEST_f_f (log10, qnan_value, qnan_value);
+ TEST_f_f (log1p, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_f_f (log1p, -2, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (log1p, -max_value, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (log1p, minus_infty, qnan_value, INVALID_EXCEPTION),
- TEST_f_f (log10, 0.1L, -1);
- TEST_f_f (log10, 10.0, 1);
- TEST_f_f (log10, 100.0, 2);
- TEST_f_f (log10, 10000.0, 4);
- TEST_f_f (log10, M_El, M_LOG10El);
- TEST_f_f (log10, 0.75L, -0.124938736608299953132449886193870744L);
+ TEST_f_f (log1p, plus_infty, plus_infty),
+ TEST_f_f (log1p, qnan_value, qnan_value),
- END (log10);
-}
+ TEST_f_f (log1p, M_El - 1.0, 1),
+ TEST_f_f (log1p, -0.25L, -0.287682072451780927439219005993827432L),
+ TEST_f_f (log1p, -0.875, -2.07944154167983592825169636437452970L),
+ };
static void
log1p_test (void)
{
- errno = 0;
- FUNC(log1p) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (log1p);
+ RUN_TEST_LOOP_f_f (log1p, log1p_test_data, );
+ END;
+}
- TEST_f_f (log1p, 0, 0);
- TEST_f_f (log1p, minus_zero, minus_zero);
-
- TEST_f_f (log1p, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log1p, -2, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log1p, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log1p, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log1p, plus_infty, plus_infty);
- TEST_f_f (log1p, qnan_value, qnan_value);
+static const struct test_f_f_data log2_test_data[] =
+ {
+ TEST_f_f (log2, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (log2, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
- TEST_f_f (log1p, M_El - 1.0, 1);
+ TEST_f_f (log2, 1, 0),
- TEST_f_f (log1p, -0.25L, -0.287682072451780927439219005993827432L);
- TEST_f_f (log1p, -0.875, -2.07944154167983592825169636437452970L);
+ TEST_f_f (log2, -1, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log2, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (log2, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
- END (log1p);
-}
+ TEST_f_f (log2, plus_infty, plus_infty),
+ TEST_f_f (log2, qnan_value, qnan_value),
+ TEST_f_f (log2, M_El, M_LOG2El),
+ TEST_f_f (log2, 2.0, 1),
+ TEST_f_f (log2, 16.0, 4),
+ TEST_f_f (log2, 256.0, 8),
+ TEST_f_f (log2, 0.75L, -.415037499278843818546261056052183492L),
+ };
static void
log2_test (void)
{
- errno = 0;
- FUNC(log2) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (log2);
-
- TEST_f_f (log2, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (log2, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
-
- TEST_f_f (log2, 1, 0);
-
- TEST_f_f (log2, -1, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log2, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (log2, minus_infty, qnan_value, INVALID_EXCEPTION);
-
- TEST_f_f (log2, plus_infty, plus_infty);
- TEST_f_f (log2, qnan_value, qnan_value);
-
- TEST_f_f (log2, M_El, M_LOG2El);
- TEST_f_f (log2, 2.0, 1);
- TEST_f_f (log2, 16.0, 4);
- TEST_f_f (log2, 256.0, 8);
- TEST_f_f (log2, 0.75L, -.415037499278843818546261056052183492L);
-
- END (log2);
+ RUN_TEST_LOOP_f_f (log2, log2_test_data, );
+ END;
}
-static void
-logb_test (void)
-{
- START (logb);
-
- TEST_f_f (logb, plus_infty, plus_infty);
- TEST_f_f (logb, minus_infty, plus_infty);
+static const struct test_f_f_data logb_test_data[] =
+ {
+ TEST_f_f (logb, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
- TEST_f_f (logb, 0, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
+ TEST_f_f (logb, 0, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION),
- TEST_f_f (logb, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (logb, qnan_value, qnan_value);
+ TEST_f_f (logb, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION),
+ TEST_f_f (logb, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_f_f (logb, 1, 0);
- TEST_f_f (logb, M_El, 1);
- TEST_f_f (logb, 1024, 10);
- TEST_f_f (logb, -2000, 10);
+ TEST_f_f (logb, 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, M_El, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 1024, 10, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, -2000, 10, NO_INEXACT_EXCEPTION),
- TEST_f_f (logb, 0x0.1p-127, -131);
- TEST_f_f (logb, 0x0.01p-127, -135);
- TEST_f_f (logb, 0x0.011p-127, -135);
+ TEST_f_f (logb, 0x0.1p-127, -131, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.01p-127, -135, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.011p-127, -135, NO_INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_f_f (logb, 0x0.8p-1022, -1023);
- TEST_f_f (logb, 0x0.1p-1022, -1026);
- TEST_f_f (logb, 0x0.00111p-1022, -1034);
- TEST_f_f (logb, 0x0.00001p-1022, -1042);
- TEST_f_f (logb, 0x0.000011p-1022, -1042);
- TEST_f_f (logb, 0x0.0000000000001p-1022, -1074);
+ TEST_f_f (logb, 0x0.8p-1022, -1023, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.1p-1022, -1026, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.00111p-1022, -1034, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.00001p-1022, -1042, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.000011p-1022, -1042, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x0.0000000000001p-1022, -1074, NO_INEXACT_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP - LDBL_MANT_DIG <= -16400
- TEST_f_f (logb, 0x1p-16400L, -16400);
- TEST_f_f (logb, 0x.00000000001p-16382L, -16426);
+ TEST_f_f (logb, 0x1p-16400L, -16400, NO_INEXACT_EXCEPTION),
+ TEST_f_f (logb, 0x.00000000001p-16382L, -16426, NO_INEXACT_EXCEPTION),
#endif
-
- END (logb);
-}
+ };
static void
-logb_test_downward (void)
+logb_test (void)
{
- int save_round_mode;
- errno = 0;
-
- FUNC(logb) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (logb_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
-
- /* IEEE 754-2008 says (section 5.3.3) that "logB(1) is +0.". Libm
- should not return -0 from logb in any rounding mode. PowerPC32 has
- failed with this test for power4 logb (and logbl on all PowerPC
- platforms) in the past due to instruction selection. GCC PR 52775
- provides the availability of the fcfid insn in 32-bit mode which
- eliminates the use of fsub in this instance and prevents the negative
- signed 0.0. */
+ START (logb);
+ RUN_TEST_LOOP_f_f (logb, logb_test_data, );
+ END;
+}
- /* BZ #887 */
- TEST_f_f (logb, 1.000e+0, plus_zero);
- }
+static const struct test_f_f_data logb_downward_test_data[] =
+ {
+ /* IEEE 754-2008 says (section 5.3.3) that "logB(1) is +0.". Libm
+ should not return -0 from logb in any rounding mode. PowerPC32 has
+ failed with this test for power4 logb (and logbl on all PowerPC
+ platforms) in the past due to instruction selection. GCC PR 52775
+ provides the availability of the fcfid insn in 32-bit mode which
+ eliminates the use of fsub in this instance and prevents the negative
+ signed 0.0. */
- fesetround (save_round_mode);
-
- END (logb_downward);
-}
+ /* BZ #887 */
+ TEST_f_f (logb, 1.000e+0, plus_zero, NO_INEXACT_EXCEPTION),
+ };
static void
-lround_test (void)
+logb_test_downward (void)
{
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
- START (lround);
-
- TEST_f_l (lround, 0, 0);
- TEST_f_l (lround, minus_zero, 0);
- TEST_f_l (lround, 0.2L, 0.0);
- TEST_f_l (lround, -0.2L, 0);
- TEST_f_l (lround, 0.5, 1);
- TEST_f_l (lround, -0.5, -1);
- TEST_f_l (lround, 0.8L, 1);
- TEST_f_l (lround, -0.8L, -1);
- TEST_f_l (lround, 1.5, 2);
- TEST_f_l (lround, -1.5, -2);
- TEST_f_l (lround, 22514.5, 22515);
- TEST_f_l (lround, -22514.5, -22515);
- TEST_f_l (lround, 1071930.0008, 1071930);
-#ifndef TEST_FLOAT
- TEST_f_l (lround, 1073741824.01, 1073741824);
+ START (logb_downward);
+ RUN_TEST_LOOP_f_f (logb, logb_downward_test_data, FE_DOWNWARD);
+ END;
+}
+
+static const struct test_f_l_data lround_test_data[] =
+ {
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+ TEST_f_l (lround, 0, 0),
+ TEST_f_l (lround, minus_zero, 0),
+ TEST_f_l (lround, 0.2L, 0.0),
+ TEST_f_l (lround, -0.2L, 0),
+ TEST_f_l (lround, 0.5, 1),
+ TEST_f_l (lround, -0.5, -1),
+ TEST_f_l (lround, 0.8L, 1),
+ TEST_f_l (lround, -0.8L, -1),
+ TEST_f_l (lround, 1.5, 2),
+ TEST_f_l (lround, -1.5, -2),
+ TEST_f_l (lround, 22514.5, 22515),
+ TEST_f_l (lround, -22514.5, -22515),
+ TEST_f_l (lround, 1071930.0008, 1071930),
+#ifndef TEST_FLOAT
+ TEST_f_l (lround, 1073741824.01, 1073741824),
# if LONG_MAX > 281474976710656
- TEST_f_l (lround, 281474976710656.025, 281474976710656);
- TEST_f_l (lround, 18014398509481974, 18014398509481974);
+ TEST_f_l (lround, 281474976710656.025, 281474976710656),
+ TEST_f_l (lround, 18014398509481974, 18014398509481974),
# endif
- TEST_f_l (lround, 2097152.5, 2097153);
- TEST_f_l (lround, -2097152.5, -2097153);
- /* nextafter(0.5,-1) */
- TEST_f_l (lround, 0x1.fffffffffffffp-2, 0);
- /* nextafter(-0.5,1) */
- TEST_f_l (lround, -0x1.fffffffffffffp-2, 0);
+ TEST_f_l (lround, 2097152.5, 2097153),
+ TEST_f_l (lround, -2097152.5, -2097153),
+ /* nextafter(0.5,-1) */
+ TEST_f_l (lround, 0x1.fffffffffffffp-2, 0),
+ /* nextafter(-0.5,1) */
+ TEST_f_l (lround, -0x1.fffffffffffffp-2, 0),
#else
- /* nextafter(0.5,-1) */
- TEST_f_l (lround, 0x1.fffffp-2, 0);
- /* nextafter(-0.5,1) */
- TEST_f_l (lround, -0x1.fffffp-2, 0);
- TEST_f_l (lround, 0x1.fffffep+23, 16777215);
- TEST_f_l (lround, -0x1.fffffep+23, -16777215);
+ /* nextafter(0.5,-1) */
+ TEST_f_l (lround, 0x1.fffffp-2, 0),
+ /* nextafter(-0.5,1) */
+ TEST_f_l (lround, -0x1.fffffp-2, 0),
+ TEST_f_l (lround, 0x1.fffffep+23, 16777215),
+ TEST_f_l (lround, -0x1.fffffep+23, -16777215),
#endif
- END (lround);
-}
-
+ };
static void
-llround_test (void)
+lround_test (void)
{
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
- START (llround);
+ START (lround);
+ RUN_TEST_LOOP_f_l (lround, lround_test_data, );
+ END;
+}
+
+
+static const struct test_f_L_data llround_test_data[] =
+ {
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+ TEST_f_L (llround, 0, 0),
+ TEST_f_L (llround, minus_zero, 0),
+ TEST_f_L (llround, 0.2L, 0.0),
+ TEST_f_L (llround, -0.2L, 0),
+ TEST_f_L (llround, 0.5, 1),
+ TEST_f_L (llround, -0.5, -1),
+ TEST_f_L (llround, 0.8L, 1),
+ TEST_f_L (llround, -0.8L, -1),
+ TEST_f_L (llround, 1.5, 2),
+ TEST_f_L (llround, -1.5, -2),
+ TEST_f_L (llround, 22514.5, 22515),
+ TEST_f_L (llround, -22514.5, -22515),
+ TEST_f_L (llround, 1071930.0008, 1071930),
+#ifndef TEST_FLOAT
+ TEST_f_L (llround, 2097152.5, 2097153),
+ TEST_f_L (llround, -2097152.5, -2097153),
+ TEST_f_L (llround, 34359738368.5, 34359738369ll),
+ TEST_f_L (llround, -34359738368.5, -34359738369ll),
+ TEST_f_L (llround, -3.65309740835E17, -365309740835000000LL),
+#endif
+
+ /* Test boundary conditions. */
+ /* 0x1FFFFF */
+ TEST_f_L (llround, 2097151.0, 2097151LL),
+ /* 0x800000 */
+ TEST_f_L (llround, 8388608.0, 8388608LL),
+ /* 0x1000000 */
+ TEST_f_L (llround, 16777216.0, 16777216LL),
+ /* 0x20000000000 */
+ TEST_f_L (llround, 2199023255552.0, 2199023255552LL),
+ /* 0x40000000000 */
+ TEST_f_L (llround, 4398046511104.0, 4398046511104LL),
+ /* 0x1000000000000 */
+ TEST_f_L (llround, 281474976710656.0, 281474976710656LL),
+ /* 0x10000000000000 */
+ TEST_f_L (llround, 4503599627370496.0, 4503599627370496LL),
+ /* 0x10000080000000 */
+ TEST_f_L (llround, 4503601774854144.0, 4503601774854144LL),
+ /* 0x20000000000000 */
+ TEST_f_L (llround, 9007199254740992.0, 9007199254740992LL),
+ /* 0x80000000000000 */
+ TEST_f_L (llround, 36028797018963968.0, 36028797018963968LL),
+ /* 0x100000000000000 */
+ TEST_f_L (llround, 72057594037927936.0, 72057594037927936LL),
- TEST_f_L (llround, 0, 0);
- TEST_f_L (llround, minus_zero, 0);
- TEST_f_L (llround, 0.2L, 0.0);
- TEST_f_L (llround, -0.2L, 0);
- TEST_f_L (llround, 0.5, 1);
- TEST_f_L (llround, -0.5, -1);
- TEST_f_L (llround, 0.8L, 1);
- TEST_f_L (llround, -0.8L, -1);
- TEST_f_L (llround, 1.5, 2);
- TEST_f_L (llround, -1.5, -2);
- TEST_f_L (llround, 22514.5, 22515);
- TEST_f_L (llround, -22514.5, -22515);
- TEST_f_l (llround, 1071930.0008, 1071930);
-#ifndef TEST_FLOAT
- TEST_f_L (llround, 2097152.5, 2097153);
- TEST_f_L (llround, -2097152.5, -2097153);
- TEST_f_L (llround, 34359738368.5, 34359738369ll);
- TEST_f_L (llround, -34359738368.5, -34359738369ll);
- TEST_f_L (llround, -3.65309740835E17, -365309740835000000LL);
-#endif
-
- /* Test boundary conditions. */
- /* 0x1FFFFF */
- TEST_f_L (llround, 2097151.0, 2097151LL);
- /* 0x800000 */
- TEST_f_L (llround, 8388608.0, 8388608LL);
- /* 0x1000000 */
- TEST_f_L (llround, 16777216.0, 16777216LL);
- /* 0x20000000000 */
- TEST_f_L (llround, 2199023255552.0, 2199023255552LL);
- /* 0x40000000000 */
- TEST_f_L (llround, 4398046511104.0, 4398046511104LL);
- /* 0x1000000000000 */
- TEST_f_L (llround, 281474976710656.0, 281474976710656LL);
- /* 0x10000000000000 */
- TEST_f_L (llround, 4503599627370496.0, 4503599627370496LL);
- /* 0x10000080000000 */
- TEST_f_L (llround, 4503601774854144.0, 4503601774854144LL);
- /* 0x20000000000000 */
- TEST_f_L (llround, 9007199254740992.0, 9007199254740992LL);
- /* 0x80000000000000 */
- TEST_f_L (llround, 36028797018963968.0, 36028797018963968LL);
- /* 0x100000000000000 */
- TEST_f_L (llround, 72057594037927936.0, 72057594037927936LL);
-
-#ifndef TEST_FLOAT
- /* 0x100000000 */
- TEST_f_L (llround, 4294967295.5, 4294967296LL);
- /* 0x200000000 */
- TEST_f_L (llround, 8589934591.5, 8589934592LL);
-
- /* nextafter(0.5,-1) */
- TEST_f_L (llround, 0x1.fffffffffffffp-2, 0);
- /* nextafter(-0.5,1) */
- TEST_f_L (llround, -0x1.fffffffffffffp-2, 0);
- /* On PowerPC an exponent of '52' is the largest incrementally
- * representable sequence of whole-numbers in the 'double' range. We test
- * lround to make sure that a guard bit set during the lround operation
- * hasn't forced an erroneous shift giving us an incorrect result. The odd
- * numbers between +-(2^52+1 and 2^53-1) are affected since they have the
- * rightmost bit set. */
- /* +-(2^52+1) */
- TEST_f_L (llround, 0x1.0000000000001p+52,4503599627370497LL);
- TEST_f_L (llround, -0x1.0000000000001p+52,-4503599627370497LL);
- /* +-(2^53-1): Input is the last (positive and negative) incrementally
- * representable whole-number in the 'double' range that might round
- * erroneously. */
- TEST_f_L (llround, 0x1.fffffffffffffp+52, 9007199254740991LL);
- TEST_f_L (llround, -0x1.fffffffffffffp+52, -9007199254740991LL);
+#ifndef TEST_FLOAT
+ /* 0x100000000 */
+ TEST_f_L (llround, 4294967295.5, 4294967296LL),
+ /* 0x200000000 */
+ TEST_f_L (llround, 8589934591.5, 8589934592LL),
+
+ /* nextafter(0.5,-1) */
+ TEST_f_L (llround, 0x1.fffffffffffffp-2, 0),
+ /* nextafter(-0.5,1) */
+ TEST_f_L (llround, -0x1.fffffffffffffp-2, 0),
+ /* On PowerPC an exponent of '52' is the largest incrementally
+ * representable sequence of whole-numbers in the 'double' range. We test
+ * lround to make sure that a guard bit set during the lround operation
+ * hasn't forced an erroneous shift giving us an incorrect result. The odd
+ * numbers between +-(2^52+1 and 2^53-1) are affected since they have the
+ * rightmost bit set. */
+ /* +-(2^52+1) */
+ TEST_f_L (llround, 0x1.0000000000001p+52,4503599627370497LL),
+ TEST_f_L (llround, -0x1.0000000000001p+52,-4503599627370497LL),
+ /* +-(2^53-1): Input is the last (positive and negative) incrementally
+ * representable whole-number in the 'double' range that might round
+ * erroneously. */
+ TEST_f_L (llround, 0x1.fffffffffffffp+52, 9007199254740991LL),
+ TEST_f_L (llround, -0x1.fffffffffffffp+52, -9007199254740991LL),
#else
- /* nextafter(0.5,-1) */
- TEST_f_L (llround, 0x1.fffffep-2, 0);
- /* nextafter(-0.5,1) */
- TEST_f_L (llround, -0x1.fffffep-2, 0);
- /* As above, on PowerPC an exponent of '23' is the largest incrementally
- * representable sequence of whole-numbers in the 'float' range.
- * Likewise, numbers between +-(2^23+1 and 2^24-1) are affected. */
- TEST_f_L (llround, 0x1.000002p+23,8388609);
- TEST_f_L (llround, -0x1.000002p+23,-8388609);
- TEST_f_L (llround, 0x1.fffffep+23, 16777215);
- TEST_f_L (llround, -0x1.fffffep+23, -16777215);
+ /* nextafter(0.5,-1) */
+ TEST_f_L (llround, 0x1.fffffep-2, 0),
+ /* nextafter(-0.5,1) */
+ TEST_f_L (llround, -0x1.fffffep-2, 0),
+ /* As above, on PowerPC an exponent of '23' is the largest incrementally
+ * representable sequence of whole-numbers in the 'float' range.
+ * Likewise, numbers between +-(2^23+1 and 2^24-1) are affected. */
+ TEST_f_L (llround, 0x1.000002p+23,8388609),
+ TEST_f_L (llround, -0x1.000002p+23,-8388609),
+ TEST_f_L (llround, 0x1.fffffep+23, 16777215),
+ TEST_f_L (llround, -0x1.fffffep+23, -16777215),
#endif
#ifdef TEST_LDOUBLE
- /* The input can only be represented in long double. */
- TEST_f_L (llround, 4503599627370495.5L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370496.25L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370496.5L, 4503599627370497LL);
- TEST_f_L (llround, 4503599627370496.75L, 4503599627370497LL);
- TEST_f_L (llround, 4503599627370497.5L, 4503599627370498LL);
+ /* The input can only be represented in long double. */
+ TEST_f_L (llround, 4503599627370495.5L, 4503599627370496LL),
+ TEST_f_L (llround, 4503599627370496.25L, 4503599627370496LL),
+ TEST_f_L (llround, 4503599627370496.5L, 4503599627370497LL),
+ TEST_f_L (llround, 4503599627370496.75L, 4503599627370497LL),
+ TEST_f_L (llround, 4503599627370497.5L, 4503599627370498LL),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llround, 4503599627370495.4999999999999L, 4503599627370495LL);
- TEST_f_L (llround, 4503599627370496.4999999999999L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370497.4999999999999L, 4503599627370497LL);
- TEST_f_L (llround, 4503599627370494.5000000000001L, 4503599627370495LL);
- TEST_f_L (llround, 4503599627370495.5000000000001L, 4503599627370496LL);
- TEST_f_L (llround, 4503599627370496.5000000000001L, 4503599627370497LL);
-
- TEST_f_L (llround, -4503599627370495.4999999999999L, -4503599627370495LL);
- TEST_f_L (llround, -4503599627370496.4999999999999L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370497.4999999999999L, -4503599627370497LL);
- TEST_f_L (llround, -4503599627370494.5000000000001L, -4503599627370495LL);
- TEST_f_L (llround, -4503599627370495.5000000000001L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370496.5000000000001L, -4503599627370497LL);
+ TEST_f_L (llround, 4503599627370495.4999999999999L, 4503599627370495LL),
+ TEST_f_L (llround, 4503599627370496.4999999999999L, 4503599627370496LL),
+ TEST_f_L (llround, 4503599627370497.4999999999999L, 4503599627370497LL),
+ TEST_f_L (llround, 4503599627370494.5000000000001L, 4503599627370495LL),
+ TEST_f_L (llround, 4503599627370495.5000000000001L, 4503599627370496LL),
+ TEST_f_L (llround, 4503599627370496.5000000000001L, 4503599627370497LL),
+
+ TEST_f_L (llround, -4503599627370495.4999999999999L, -4503599627370495LL),
+ TEST_f_L (llround, -4503599627370496.4999999999999L, -4503599627370496LL),
+ TEST_f_L (llround, -4503599627370497.4999999999999L, -4503599627370497LL),
+ TEST_f_L (llround, -4503599627370494.5000000000001L, -4503599627370495LL),
+ TEST_f_L (llround, -4503599627370495.5000000000001L, -4503599627370496LL),
+ TEST_f_L (llround, -4503599627370496.5000000000001L, -4503599627370497LL),
# endif
- TEST_f_L (llround, -4503599627370495.5L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370496.25L, -4503599627370496LL);
- TEST_f_L (llround, -4503599627370496.5L, -4503599627370497LL);
- TEST_f_L (llround, -4503599627370496.75L, -4503599627370497LL);
- TEST_f_L (llround, -4503599627370497.5L, -4503599627370498LL);
+ TEST_f_L (llround, -4503599627370495.5L, -4503599627370496LL),
+ TEST_f_L (llround, -4503599627370496.25L, -4503599627370496LL),
+ TEST_f_L (llround, -4503599627370496.5L, -4503599627370497LL),
+ TEST_f_L (llround, -4503599627370496.75L, -4503599627370497LL),
+ TEST_f_L (llround, -4503599627370497.5L, -4503599627370498LL),
- TEST_f_L (llround, 9007199254740991.5L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740992.25L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740992.5L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740992.75L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740993.5L, 9007199254740994LL);
+ TEST_f_L (llround, 9007199254740991.5L, 9007199254740992LL),
+ TEST_f_L (llround, 9007199254740992.25L, 9007199254740992LL),
+ TEST_f_L (llround, 9007199254740992.5L, 9007199254740993LL),
+ TEST_f_L (llround, 9007199254740992.75L, 9007199254740993LL),
+ TEST_f_L (llround, 9007199254740993.5L, 9007199254740994LL),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llround, 9007199254740991.4999999999999L, 9007199254740991LL);
- TEST_f_L (llround, 9007199254740992.4999999999999L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740993.4999999999999L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740991.5000000000001L, 9007199254740992LL);
- TEST_f_L (llround, 9007199254740992.5000000000001L, 9007199254740993LL);
- TEST_f_L (llround, 9007199254740993.5000000000001L, 9007199254740994LL);
-
- TEST_f_L (llround, -9007199254740991.4999999999999L, -9007199254740991LL);
- TEST_f_L (llround, -9007199254740992.4999999999999L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740993.4999999999999L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740991.5000000000001L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740992.5000000000001L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740993.5000000000001L, -9007199254740994LL);
+ TEST_f_L (llround, 9007199254740991.4999999999999L, 9007199254740991LL),
+ TEST_f_L (llround, 9007199254740992.4999999999999L, 9007199254740992LL),
+ TEST_f_L (llround, 9007199254740993.4999999999999L, 9007199254740993LL),
+ TEST_f_L (llround, 9007199254740991.5000000000001L, 9007199254740992LL),
+ TEST_f_L (llround, 9007199254740992.5000000000001L, 9007199254740993LL),
+ TEST_f_L (llround, 9007199254740993.5000000000001L, 9007199254740994LL),
+
+ TEST_f_L (llround, -9007199254740991.4999999999999L, -9007199254740991LL),
+ TEST_f_L (llround, -9007199254740992.4999999999999L, -9007199254740992LL),
+ TEST_f_L (llround, -9007199254740993.4999999999999L, -9007199254740993LL),
+ TEST_f_L (llround, -9007199254740991.5000000000001L, -9007199254740992LL),
+ TEST_f_L (llround, -9007199254740992.5000000000001L, -9007199254740993LL),
+ TEST_f_L (llround, -9007199254740993.5000000000001L, -9007199254740994LL),
# endif
- TEST_f_L (llround, -9007199254740991.5L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740992.25L, -9007199254740992LL);
- TEST_f_L (llround, -9007199254740992.5L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740992.75L, -9007199254740993LL);
- TEST_f_L (llround, -9007199254740993.5L, -9007199254740994LL);
+ TEST_f_L (llround, -9007199254740991.5L, -9007199254740992LL),
+ TEST_f_L (llround, -9007199254740992.25L, -9007199254740992LL),
+ TEST_f_L (llround, -9007199254740992.5L, -9007199254740993LL),
+ TEST_f_L (llround, -9007199254740992.75L, -9007199254740993LL),
+ TEST_f_L (llround, -9007199254740993.5L, -9007199254740994LL),
- TEST_f_L (llround, 72057594037927935.5L, 72057594037927936LL);
- TEST_f_L (llround, 72057594037927936.25L, 72057594037927936LL);
- TEST_f_L (llround, 72057594037927936.5L, 72057594037927937LL);
- TEST_f_L (llround, 72057594037927936.75L, 72057594037927937LL);
- TEST_f_L (llround, 72057594037927937.5L, 72057594037927938LL);
+ TEST_f_L (llround, 72057594037927935.5L, 72057594037927936LL),
+ TEST_f_L (llround, 72057594037927936.25L, 72057594037927936LL),
+ TEST_f_L (llround, 72057594037927936.5L, 72057594037927937LL),
+ TEST_f_L (llround, 72057594037927936.75L, 72057594037927937LL),
+ TEST_f_L (llround, 72057594037927937.5L, 72057594037927938LL),
- TEST_f_L (llround, -72057594037927935.5L, -72057594037927936LL);
- TEST_f_L (llround, -72057594037927936.25L, -72057594037927936LL);
- TEST_f_L (llround, -72057594037927936.5L, -72057594037927937LL);
- TEST_f_L (llround, -72057594037927936.75L, -72057594037927937LL);
- TEST_f_L (llround, -72057594037927937.5L, -72057594037927938LL);
+ TEST_f_L (llround, -72057594037927935.5L, -72057594037927936LL),
+ TEST_f_L (llround, -72057594037927936.25L, -72057594037927936LL),
+ TEST_f_L (llround, -72057594037927936.5L, -72057594037927937LL),
+ TEST_f_L (llround, -72057594037927936.75L, -72057594037927937LL),
+ TEST_f_L (llround, -72057594037927937.5L, -72057594037927938LL),
- TEST_f_L (llround, 9223372036854775806.25L, 9223372036854775806LL);
- TEST_f_L (llround, -9223372036854775806.25L, -9223372036854775806LL);
- TEST_f_L (llround, 9223372036854775806.5L, 9223372036854775807LL);
- TEST_f_L (llround, -9223372036854775806.5L, -9223372036854775807LL);
- TEST_f_L (llround, 9223372036854775807.0L, 9223372036854775807LL);
- TEST_f_L (llround, -9223372036854775807.0L, -9223372036854775807LL);
+ TEST_f_L (llround, 9223372036854775806.25L, 9223372036854775806LL),
+ TEST_f_L (llround, -9223372036854775806.25L, -9223372036854775806LL),
+ TEST_f_L (llround, 9223372036854775806.5L, 9223372036854775807LL),
+ TEST_f_L (llround, -9223372036854775806.5L, -9223372036854775807LL),
+ TEST_f_L (llround, 9223372036854775807.0L, 9223372036854775807LL),
+ TEST_f_L (llround, -9223372036854775807.0L, -9223372036854775807LL),
#endif
+ };
- END (llround);
+static void
+llround_test (void)
+{
+ START (llround);
+ RUN_TEST_LOOP_f_L (llround, llround_test_data, );
+ END;
}
+static const struct test_fF_f1_data modf_test_data[] =
+ {
+ TEST_fF_f1 (modf, plus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 1.5, 0.5, 1, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 2.5, 0.5, 2, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, -2.5, -0.5, -2, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 20, 0, 20, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 21, 0, 21, NO_INEXACT_EXCEPTION),
+ TEST_fF_f1 (modf, 89.5, 0.5, 89, NO_INEXACT_EXCEPTION),
+ };
+
static void
modf_test (void)
{
FLOAT x;
START (modf);
-
- TEST_fF_f1 (modf, plus_infty, 0, plus_infty);
- TEST_fF_f1 (modf, minus_infty, minus_zero, minus_infty);
- TEST_fF_f1 (modf, qnan_value, qnan_value, qnan_value);
- TEST_fF_f1 (modf, 0, 0, 0);
- TEST_fF_f1 (modf, 1.5, 0.5, 1);
- TEST_fF_f1 (modf, 2.5, 0.5, 2);
- TEST_fF_f1 (modf, -2.5, -0.5, -2);
- TEST_fF_f1 (modf, 20, 0, 20);
- TEST_fF_f1 (modf, 21, 0, 21);
- TEST_fF_f1 (modf, 89.5, 0.5, 89);
-
- END (modf);
-}
-
+ RUN_TEST_LOOP_fF_f1 (modf, modf_test_data, , x);
+ END;
+}
+
+
+static const struct test_f_f_data nearbyint_test_data[] =
+ {
+ TEST_f_f (nearbyint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ /* Subnormal values */
+ TEST_f_f (nearbyint, -8.98847e+307, -8.98847e+307, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -4.45015e-308, minus_zero, NO_INEXACT_EXCEPTION),
+
+ /* Default rounding mode is round to nearest. */
+ TEST_f_f (nearbyint, 0.5, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 1.5, 2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -0.5, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -1.5, -2.0, NO_INEXACT_EXCEPTION),
+
+ TEST_f_f (nearbyint, 262144.75, 262145.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 262142.75, 262143.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 524286.75, 524287.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 524288.75, 524289.0, NO_INEXACT_EXCEPTION),
+
+ TEST_f_f (nearbyint, 1048576.75, 1048577.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 2097152.75, 2097153.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 2492472.75, 2492473.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 2886220.75, 2886221.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 3058792.75, 3058793.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -1048576.75, -1048577.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -2097152.75, -2097153.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -2492472.75, -2492473.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -2886220.75, -2886221.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -3058792.75, -3058793.0, NO_INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0, NO_INEXACT_EXCEPTION),
+#endif
+ };
static void
nearbyint_test (void)
{
START (nearbyint);
-
- TEST_f_f (nearbyint, 0.0, 0.0);
- TEST_f_f (nearbyint, minus_zero, minus_zero);
- TEST_f_f (nearbyint, plus_infty, plus_infty);
- TEST_f_f (nearbyint, minus_infty, minus_infty);
- TEST_f_f (nearbyint, qnan_value, qnan_value);
-
- /* Subnormal values */
- TEST_f_f (nearbyint, -8.98847e+307, -8.98847e+307);
- TEST_f_f (nearbyint, -4.45015e-308, minus_zero);
-
- /* Default rounding mode is round to nearest. */
- TEST_f_f (nearbyint, 0.5, 0.0);
- TEST_f_f (nearbyint, 1.5, 2.0);
- TEST_f_f (nearbyint, -0.5, minus_zero);
- TEST_f_f (nearbyint, -1.5, -2.0);
-
- TEST_f_f (nearbyint, 262144.75, 262145.0);
- TEST_f_f (nearbyint, 262142.75, 262143.0);
- TEST_f_f (nearbyint, 524286.75, 524287.0);
- TEST_f_f (nearbyint, 524288.75, 524289.0);
-
- TEST_f_f (nearbyint, 1048576.75, 1048577.0);
- TEST_f_f (nearbyint, 2097152.75, 2097153.0);
- TEST_f_f (nearbyint, 2492472.75, 2492473.0);
- TEST_f_f (nearbyint, 2886220.75, 2886221.0);
- TEST_f_f (nearbyint, 3058792.75, 3058793.0);
- TEST_f_f (nearbyint, -1048576.75, -1048577.0);
- TEST_f_f (nearbyint, -2097152.75, -2097153.0);
- TEST_f_f (nearbyint, -2492472.75, -2492473.0);
- TEST_f_f (nearbyint, -2886220.75, -2886221.0);
- TEST_f_f (nearbyint, -3058792.75, -3058793.0);
-#ifndef TEST_FLOAT
- TEST_f_f (nearbyint, 70368744177664.75, 70368744177665.0);
- TEST_f_f (nearbyint, 140737488355328.75, 140737488355329.0);
- TEST_f_f (nearbyint, 281474976710656.75, 281474976710657.0);
- TEST_f_f (nearbyint, 562949953421312.75, 562949953421313.0);
- TEST_f_f (nearbyint, 1125899906842624.75, 1125899906842625.0);
- TEST_f_f (nearbyint, -70368744177664.75, -70368744177665.0);
- TEST_f_f (nearbyint, -140737488355328.75, -140737488355329.0);
- TEST_f_f (nearbyint, -281474976710656.75, -281474976710657.0);
- TEST_f_f (nearbyint, -562949953421312.75, -562949953421313.0);
- TEST_f_f (nearbyint, -1125899906842624.75, -1125899906842625.0);
-#endif
-
- END (nearbyint);
+ RUN_TEST_LOOP_f_f (nearbyint, nearbyint_test_data, );
+ END;
}
-static void
-nextafter_test (void)
-{
+static const struct test_ff_f_data nextafter_test_data[] =
+ {
+ TEST_ff_f (nextafter, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, minus_zero, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
- START (nextafter);
-
- TEST_ff_f (nextafter, 0, 0, 0);
- TEST_ff_f (nextafter, minus_zero, 0, 0);
- TEST_ff_f (nextafter, 0, minus_zero, minus_zero);
- TEST_ff_f (nextafter, minus_zero, minus_zero, minus_zero);
+ TEST_ff_f (nextafter, 9, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, -9, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, plus_infty, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, minus_infty, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (nextafter, 9, 9, 9);
- TEST_ff_f (nextafter, -9, -9, -9);
- TEST_ff_f (nextafter, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (nextafter, minus_infty, minus_infty, minus_infty);
+ TEST_ff_f (nextafter, qnan_value, 1.1L, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, 1.1L, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nextafter, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (nextafter, qnan_value, 1.1L, qnan_value);
- TEST_ff_f (nextafter, 1.1L, qnan_value, qnan_value);
- TEST_ff_f (nextafter, qnan_value, qnan_value, qnan_value);
-
- FLOAT fltmax = CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,
- LDBL_MAX, DBL_MAX, FLT_MAX);
- TEST_ff_f (nextafter, fltmax, plus_infty, plus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (nextafter, -fltmax, minus_infty, minus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (nextafter, max_value, plus_infty, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_ff_f (nextafter, -max_value, minus_infty, minus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
#ifdef TEST_LDOUBLE
- // XXX Enable once gcc is fixed.
- //TEST_ff_f (nextafter, 0x0.00000040000000000000p-16385L, -0.1L, 0x0.0000003ffffffff00000p-16385L);
+ // XXX Enable once gcc is fixed.
+ //TEST_ff_f (nextafter, 0x0.00000040000000000000p-16385L, -0.1L, 0x0.0000003ffffffff00000p-16385L),
#endif
- /* XXX We need the hexadecimal FP number representation here for further
- tests. */
+ /* XXX We need the hexadecimal FP number representation here for further
+ tests. */
+ };
+
+static void
+nextafter_test (void)
+{
- END (nextafter);
+ START (nextafter);
+ RUN_TEST_LOOP_ff_f (nextafter, nextafter_test_data, );
+ END;
}
-static void
-nexttoward_test (void)
-{
- START (nexttoward);
- TEST_ff_f (nexttoward, 0, 0, 0);
- TEST_ff_f (nexttoward, minus_zero, 0, 0);
- TEST_ff_f (nexttoward, 0, minus_zero, minus_zero);
- TEST_ff_f (nexttoward, minus_zero, minus_zero, minus_zero);
+static const struct test_ff_f_data_nexttoward nexttoward_test_data[] =
+ {
+ TEST_ff_f (nexttoward, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, minus_zero, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_ff_f (nexttoward, 9, 9, 9);
- TEST_ff_f (nexttoward, -9, -9, -9);
- TEST_ff_f (nexttoward, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (nexttoward, minus_infty, minus_infty, minus_infty);
+ TEST_ff_f (nexttoward, 9, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -9, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, plus_infty, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, minus_infty, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (nexttoward, qnan_value, 1.1L, qnan_value);
- TEST_ff_f (nexttoward, 1.1L, qnan_value, qnan_value);
- TEST_ff_f (nexttoward, qnan_value, qnan_value, qnan_value);
+ TEST_ff_f (nexttoward, qnan_value, 1.1L, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.1L, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
#ifdef TEST_FLOAT
- TEST_ff_f (nexttoward, 1.0, 1.1L, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, LDBL_MAX, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, 0x1.0000000000001p0, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, 0.9L, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, 1.0, -LDBL_MAX, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, 1.0, 0x0.fffffffffffff8p0, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, -1.1L, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -LDBL_MAX, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -0x1.0000000000001p0, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -0.9L, -0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, LDBL_MAX, -0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, -0x0.fffffffffffff8p0, -0x0.ffffffp0);
- TEST_ff_f (nexttoward, -0x1.3p-145, -0xap-148L, -0x1.4p-145, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (nexttoward, 1.0, 1.1L, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, LDBL_MAX, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x1.0000000000001p0, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0.9L, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, -LDBL_MAX, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.fffffffffffff8p0, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -1.1L, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -LDBL_MAX, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.0000000000001p0, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0.9L, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, LDBL_MAX, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.fffffffffffff8p0, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -0x1.3p-145, -0xap-148L, -0x1.4p-145, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (nexttoward, 1.0, 0x1.000000000000002p0L, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffp0L, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, -0x1.000000000000002p0L, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffp0L, -0x0.ffffffp0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.000000000000002p0L, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffp0L, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.000000000000002p0L, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffp0L, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (nexttoward, 1.0, 0x1.000000000000000000000000008p0L, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffcp0L, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, -0x1.000000000000000000000000008p0L, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffcp0L, -0x0.ffffffp0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.000000000000000000000000008p0L, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffcp0L, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.000000000000000000000000008p0L, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffcp0L, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (nexttoward, 1.0, 0x1.0000000000000000000000000001p0L, 0x1.000002p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffp0);
- TEST_ff_f (nexttoward, -1.0, -0x1.0000000000000000000000000001p0L, -0x1.000002p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffp0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.0000000000000000000000000001p0L, 0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffp0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.0000000000000000000000000001p0L, -0x1.000002p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffp0, NO_INEXACT_EXCEPTION),
# endif
#endif
#ifdef TEST_DOUBLE
- TEST_ff_f (nexttoward, 1.0, 1.1L, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, LDBL_MAX, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, 0x1.0000000000001p0, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, 0.9L, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, 1.0, -LDBL_MAX, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -1.1L, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -LDBL_MAX, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -0x1.0000000000001p0, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -0.9L, -0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, LDBL_MAX, -0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -0x8.00346dc5d6388p-3L, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 0x1p-1074, 0x1p-1073L, 0x1p-1073, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (nexttoward, 1.0, 1.1L, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, LDBL_MAX, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x1.0000000000001p0, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0.9L, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, -LDBL_MAX, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -1.1L, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -LDBL_MAX, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.0000000000001p0, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0.9L, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, LDBL_MAX, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x8.00346dc5d6388p-3L, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 0x1p-1074, 0x1p-1073L, 0x1p-1073, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (nexttoward, 1.0, 0x1.000000000000002p0L, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -0x1.000000000000002p0L, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffff8p0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.000000000000002p0L, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.000000000000002p0L, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (nexttoward, 1.0, 0x1.000000000000000000000000008p0L, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffcp0L, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -0x1.000000000000000000000000008p0L, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffcp0L, -0x0.fffffffffffff8p0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.000000000000000000000000008p0L, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffcp0L, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.000000000000000000000000008p0L, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffcp0L, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (nexttoward, 1.0, 0x1.0000000000000000000000000001p0L, 0x1.0000000000001p0);
- TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.fffffffffffff8p0);
- TEST_ff_f (nexttoward, -1.0, -0x1.0000000000000000000000000001p0L, -0x1.0000000000001p0);
- TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.fffffffffffff8p0);
+ TEST_ff_f (nexttoward, 1.0, 0x1.0000000000000000000000000001p0L, 0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, 1.0, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x1.0000000000000000000000000001p0L, -0x1.0000000000001p0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (nexttoward, -1.0, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.fffffffffffff8p0, NO_INEXACT_EXCEPTION),
# endif
#endif
-
- END (nexttoward);
-}
-
+ };
static void
-pow_test (void)
+nexttoward_test (void)
{
+ START (nexttoward);
+ RUN_TEST_LOOP_ff_f (nexttoward, nexttoward_test_data, );
+ END;
+}
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (pow);
-
- TEST_ff_f (pow, 0, 0, 1);
- TEST_ff_f (pow, 0, minus_zero, 1);
- TEST_ff_f (pow, minus_zero, 0, 1);
- TEST_ff_f (pow, minus_zero, minus_zero, 1);
- TEST_ff_f (pow, 10, 0, 1);
- TEST_ff_f (pow, 10, minus_zero, 1);
- TEST_ff_f (pow, -10, 0, 1);
- TEST_ff_f (pow, -10, minus_zero, 1);
+static const struct test_ff_f_data pow_test_data[] =
+ {
+ TEST_ff_f (pow, 0, 0, 1),
+ TEST_ff_f (pow, 0, minus_zero, 1),
+ TEST_ff_f (pow, minus_zero, 0, 1),
+ TEST_ff_f (pow, minus_zero, minus_zero, 1),
- TEST_ff_f (pow, qnan_value, 0, 1);
- TEST_ff_f (pow, qnan_value, minus_zero, 1);
+ TEST_ff_f (pow, 10, 0, 1),
+ TEST_ff_f (pow, 10, minus_zero, 1),
+ TEST_ff_f (pow, -10, 0, 1),
+ TEST_ff_f (pow, -10, minus_zero, 1),
+ TEST_ff_f (pow, qnan_value, 0, 1),
+ TEST_ff_f (pow, qnan_value, minus_zero, 1),
#ifndef TEST_INLINE
- TEST_ff_f (pow, 1.1L, plus_infty, plus_infty);
- TEST_ff_f (pow, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (pow, -1.1L, plus_infty, plus_infty);
- TEST_ff_f (pow, minus_infty, plus_infty, plus_infty);
-
- TEST_ff_f (pow, 0.9L, plus_infty, 0);
- TEST_ff_f (pow, 1e-7L, plus_infty, 0);
- TEST_ff_f (pow, -0.9L, plus_infty, 0);
- TEST_ff_f (pow, -1e-7L, plus_infty, 0);
-
- TEST_ff_f (pow, 1.1L, minus_infty, 0);
- TEST_ff_f (pow, plus_infty, minus_infty, 0);
- TEST_ff_f (pow, -1.1L, minus_infty, 0);
- TEST_ff_f (pow, minus_infty, minus_infty, 0);
-
- TEST_ff_f (pow, 0.9L, minus_infty, plus_infty);
- TEST_ff_f (pow, 1e-7L, minus_infty, plus_infty);
- TEST_ff_f (pow, -0.9L, minus_infty, plus_infty);
- TEST_ff_f (pow, -1e-7L, minus_infty, plus_infty);
-
- TEST_ff_f (pow, plus_infty, 1e-7L, plus_infty);
- TEST_ff_f (pow, plus_infty, 1, plus_infty);
- TEST_ff_f (pow, plus_infty, 1e7L, plus_infty);
- TEST_ff_f (pow, plus_infty, min_subnorm_value, plus_infty);
-
- TEST_ff_f (pow, plus_infty, -1e-7L, 0);
- TEST_ff_f (pow, plus_infty, -1, 0);
- TEST_ff_f (pow, plus_infty, -1e7L, 0);
- TEST_ff_f (pow, plus_infty, -min_subnorm_value, 0);
-
- TEST_ff_f (pow, minus_infty, 1, minus_infty);
- TEST_ff_f (pow, minus_infty, 11, minus_infty);
- TEST_ff_f (pow, minus_infty, 1001, minus_infty);
-
- TEST_ff_f (pow, minus_infty, 2, plus_infty);
- TEST_ff_f (pow, minus_infty, 12, plus_infty);
- TEST_ff_f (pow, minus_infty, 1002, plus_infty);
- TEST_ff_f (pow, minus_infty, 0.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 1.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 11.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, 1001.1L, plus_infty);
- TEST_ff_f (pow, minus_infty, min_subnorm_value, plus_infty);
-
- TEST_ff_f (pow, minus_infty, -1, minus_zero);
- TEST_ff_f (pow, minus_infty, -11, minus_zero);
- TEST_ff_f (pow, minus_infty, -1001, minus_zero);
-
- TEST_ff_f (pow, minus_infty, -2, 0);
- TEST_ff_f (pow, minus_infty, -12, 0);
- TEST_ff_f (pow, minus_infty, -1002, 0);
- TEST_ff_f (pow, minus_infty, -0.1L, 0);
- TEST_ff_f (pow, minus_infty, -1.1L, 0);
- TEST_ff_f (pow, minus_infty, -11.1L, 0);
- TEST_ff_f (pow, minus_infty, -1001.1L, 0);
- TEST_ff_f (pow, minus_infty, -min_subnorm_value, 0);
-#endif
-
- TEST_ff_f (pow, qnan_value, qnan_value, qnan_value);
- TEST_ff_f (pow, 0, qnan_value, qnan_value);
- TEST_ff_f (pow, 1, qnan_value, 1);
- TEST_ff_f (pow, -1, qnan_value, qnan_value);
- TEST_ff_f (pow, qnan_value, 1, qnan_value);
- TEST_ff_f (pow, qnan_value, -1, qnan_value);
-
- /* pow (x, qNaN) == qNaN. */
- TEST_ff_f (pow, 3.0, qnan_value, qnan_value);
- TEST_ff_f (pow, minus_zero, qnan_value, qnan_value);
- TEST_ff_f (pow, plus_infty, qnan_value, qnan_value);
- TEST_ff_f (pow, -3.0, qnan_value, qnan_value);
- TEST_ff_f (pow, minus_infty, qnan_value, qnan_value);
-
- TEST_ff_f (pow, qnan_value, 3.0, qnan_value);
- TEST_ff_f (pow, qnan_value, -3.0, qnan_value);
- TEST_ff_f (pow, qnan_value, plus_infty, qnan_value);
- TEST_ff_f (pow, qnan_value, minus_infty, qnan_value);
- TEST_ff_f (pow, qnan_value, 2.5, qnan_value);
- TEST_ff_f (pow, qnan_value, -2.5, qnan_value);
- TEST_ff_f (pow, qnan_value, min_subnorm_value, qnan_value);
- TEST_ff_f (pow, qnan_value, -min_subnorm_value, qnan_value);
-
- TEST_ff_f (pow, 1, plus_infty, 1);
- TEST_ff_f (pow, -1, plus_infty, 1);
- TEST_ff_f (pow, 1, minus_infty, 1);
- TEST_ff_f (pow, -1, minus_infty, 1);
- TEST_ff_f (pow, 1, 1, 1);
- TEST_ff_f (pow, 1, -1, 1);
- TEST_ff_f (pow, 1, 1.25, 1);
- TEST_ff_f (pow, 1, -1.25, 1);
- TEST_ff_f (pow, 1, 0x1p62L, 1);
- TEST_ff_f (pow, 1, 0x1p63L, 1);
- TEST_ff_f (pow, 1, 0x1p64L, 1);
- TEST_ff_f (pow, 1, 0x1p72L, 1);
- TEST_ff_f (pow, 1, min_subnorm_value, 1);
- TEST_ff_f (pow, 1, -min_subnorm_value, 1);
-
- /* pow (x, +-0) == 1. */
- TEST_ff_f (pow, plus_infty, 0, 1);
- TEST_ff_f (pow, plus_infty, minus_zero, 1);
- TEST_ff_f (pow, minus_infty, 0, 1);
- TEST_ff_f (pow, minus_infty, minus_zero, 1);
- TEST_ff_f (pow, 32.75L, 0, 1);
- TEST_ff_f (pow, 32.75L, minus_zero, 1);
- TEST_ff_f (pow, -32.75L, 0, 1);
- TEST_ff_f (pow, -32.75L, minus_zero, 1);
- TEST_ff_f (pow, 0x1p72L, 0, 1);
- TEST_ff_f (pow, 0x1p72L, minus_zero, 1);
- TEST_ff_f (pow, 0x1p-72L, 0, 1);
- TEST_ff_f (pow, 0x1p-72L, minus_zero, 1);
-
- TEST_ff_f (pow, -0.1L, 1.1L, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -0.1L, -1.1L, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -10.1L, 1.1L, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -10.1L, -1.1L, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -1.01L, min_subnorm_value, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -1.01L, -min_subnorm_value, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -1.0L, min_subnorm_value, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -1.0L, -min_subnorm_value, qnan_value, INVALID_EXCEPTION);
-
- errno = 0;
- TEST_ff_f (pow, 0, -1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -11, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -0xffffff, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, 1.1L, plus_infty, plus_infty),
+ TEST_ff_f (pow, plus_infty, plus_infty, plus_infty),
+ TEST_ff_f (pow, -1.1L, plus_infty, plus_infty),
+ TEST_ff_f (pow, minus_infty, plus_infty, plus_infty),
+
+ TEST_ff_f (pow, 0.9L, plus_infty, 0),
+ TEST_ff_f (pow, 1e-7L, plus_infty, 0),
+ TEST_ff_f (pow, -0.9L, plus_infty, 0),
+ TEST_ff_f (pow, -1e-7L, plus_infty, 0),
+
+ TEST_ff_f (pow, 1.1L, minus_infty, 0),
+ TEST_ff_f (pow, plus_infty, minus_infty, 0),
+ TEST_ff_f (pow, -1.1L, minus_infty, 0),
+ TEST_ff_f (pow, minus_infty, minus_infty, 0),
+
+ TEST_ff_f (pow, 0.9L, minus_infty, plus_infty),
+ TEST_ff_f (pow, 1e-7L, minus_infty, plus_infty),
+ TEST_ff_f (pow, -0.9L, minus_infty, plus_infty),
+ TEST_ff_f (pow, -1e-7L, minus_infty, plus_infty),
+
+ TEST_ff_f (pow, plus_infty, 1e-7L, plus_infty),
+ TEST_ff_f (pow, plus_infty, 1, plus_infty),
+ TEST_ff_f (pow, plus_infty, 1e7L, plus_infty),
+ TEST_ff_f (pow, plus_infty, min_subnorm_value, plus_infty),
+
+ TEST_ff_f (pow, plus_infty, -1e-7L, 0),
+ TEST_ff_f (pow, plus_infty, -1, 0),
+ TEST_ff_f (pow, plus_infty, -1e7L, 0),
+ TEST_ff_f (pow, plus_infty, -min_subnorm_value, 0),
+
+ TEST_ff_f (pow, minus_infty, 1, minus_infty),
+ TEST_ff_f (pow, minus_infty, 11, minus_infty),
+ TEST_ff_f (pow, minus_infty, 1001, minus_infty),
+
+ TEST_ff_f (pow, minus_infty, 2, plus_infty),
+ TEST_ff_f (pow, minus_infty, 12, plus_infty),
+ TEST_ff_f (pow, minus_infty, 1002, plus_infty),
+ TEST_ff_f (pow, minus_infty, 0.1L, plus_infty),
+ TEST_ff_f (pow, minus_infty, 1.1L, plus_infty),
+ TEST_ff_f (pow, minus_infty, 11.1L, plus_infty),
+ TEST_ff_f (pow, minus_infty, 1001.1L, plus_infty),
+ TEST_ff_f (pow, minus_infty, min_subnorm_value, plus_infty),
+
+ TEST_ff_f (pow, minus_infty, -1, minus_zero),
+ TEST_ff_f (pow, minus_infty, -11, minus_zero),
+ TEST_ff_f (pow, minus_infty, -1001, minus_zero),
+
+ TEST_ff_f (pow, minus_infty, -2, 0),
+ TEST_ff_f (pow, minus_infty, -12, 0),
+ TEST_ff_f (pow, minus_infty, -1002, 0),
+ TEST_ff_f (pow, minus_infty, -0.1L, 0),
+ TEST_ff_f (pow, minus_infty, -1.1L, 0),
+ TEST_ff_f (pow, minus_infty, -11.1L, 0),
+ TEST_ff_f (pow, minus_infty, -1001.1L, 0),
+ TEST_ff_f (pow, minus_infty, -min_subnorm_value, 0),
+#endif
+
+ TEST_ff_f (pow, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (pow, 0, qnan_value, qnan_value),
+ TEST_ff_f (pow, 1, qnan_value, 1),
+ TEST_ff_f (pow, -1, qnan_value, qnan_value),
+ TEST_ff_f (pow, qnan_value, 1, qnan_value),
+ TEST_ff_f (pow, qnan_value, -1, qnan_value),
+
+ /* pow (x, qNaN) == qNaN. */
+ TEST_ff_f (pow, 3.0, qnan_value, qnan_value),
+ TEST_ff_f (pow, minus_zero, qnan_value, qnan_value),
+ TEST_ff_f (pow, plus_infty, qnan_value, qnan_value),
+ TEST_ff_f (pow, -3.0, qnan_value, qnan_value),
+ TEST_ff_f (pow, minus_infty, qnan_value, qnan_value),
+
+ TEST_ff_f (pow, qnan_value, 3.0, qnan_value),
+ TEST_ff_f (pow, qnan_value, -3.0, qnan_value),
+ TEST_ff_f (pow, qnan_value, plus_infty, qnan_value),
+ TEST_ff_f (pow, qnan_value, minus_infty, qnan_value),
+ TEST_ff_f (pow, qnan_value, 2.5, qnan_value),
+ TEST_ff_f (pow, qnan_value, -2.5, qnan_value),
+ TEST_ff_f (pow, qnan_value, min_subnorm_value, qnan_value),
+ TEST_ff_f (pow, qnan_value, -min_subnorm_value, qnan_value),
+
+ TEST_ff_f (pow, 1, plus_infty, 1),
+ TEST_ff_f (pow, -1, plus_infty, 1),
+ TEST_ff_f (pow, 1, minus_infty, 1),
+ TEST_ff_f (pow, -1, minus_infty, 1),
+ TEST_ff_f (pow, 1, 1, 1),
+ TEST_ff_f (pow, 1, -1, 1),
+ TEST_ff_f (pow, 1, 1.25, 1),
+ TEST_ff_f (pow, 1, -1.25, 1),
+ TEST_ff_f (pow, 1, 0x1p62L, 1),
+ TEST_ff_f (pow, 1, 0x1p63L, 1),
+ TEST_ff_f (pow, 1, 0x1p64L, 1),
+ TEST_ff_f (pow, 1, 0x1p72L, 1),
+ TEST_ff_f (pow, 1, min_subnorm_value, 1),
+ TEST_ff_f (pow, 1, -min_subnorm_value, 1),
+
+ /* pow (x, +-0) == 1. */
+ TEST_ff_f (pow, plus_infty, 0, 1),
+ TEST_ff_f (pow, plus_infty, minus_zero, 1),
+ TEST_ff_f (pow, minus_infty, 0, 1),
+ TEST_ff_f (pow, minus_infty, minus_zero, 1),
+ TEST_ff_f (pow, 32.75L, 0, 1),
+ TEST_ff_f (pow, 32.75L, minus_zero, 1),
+ TEST_ff_f (pow, -32.75L, 0, 1),
+ TEST_ff_f (pow, -32.75L, minus_zero, 1),
+ TEST_ff_f (pow, 0x1p72L, 0, 1),
+ TEST_ff_f (pow, 0x1p72L, minus_zero, 1),
+ TEST_ff_f (pow, 0x1p-72L, 0, 1),
+ TEST_ff_f (pow, 0x1p-72L, minus_zero, 1),
+
+ TEST_ff_f (pow, -0.1L, 1.1L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -0.1L, -1.1L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -10.1L, 1.1L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -10.1L, -1.1L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -1.01L, min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -1.01L, -min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -1.0L, min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -1.0L, -min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+
+ TEST_ff_f (pow, 0, -1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -11, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -0xffffff, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- errno = 0;
- TEST_ff_f (pow, 0, -0x1.fffffffffffffp+52L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, 0, -0x1.fffffffffffffp+52L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- errno = 0;
- TEST_ff_f (pow, 0, -0x1.fffffffffffffffep+63L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, 0, -0x1.fffffffffffffffep+63L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- errno = 0;
- TEST_ff_f (pow, 0, -0x1.ffffffffffffffffffffffffff8p+105L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, 0, -0x1.ffffffffffffffffffffffffff8p+105L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- errno = 0;
- TEST_ff_f (pow, 0, -0x1.ffffffffffffffffffffffffffffp+112L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, 0, -0x1.ffffffffffffffffffffffffffffp+112L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- TEST_ff_f (pow, minus_zero, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -11L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0xffffff, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1fffffe, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, minus_zero, -1, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -11L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0xffffff, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1fffffe, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffp+52L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffp+53L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffp+52L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffp+53L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffffep+63L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffffep+64L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffffep+63L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1.fffffffffffffffep+64L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-odd) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
+ TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- errno = 0;
- TEST_ff_f (pow, 0, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -0x1p127, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, 0, -max_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -0x1p127, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
- errno = 0;
- TEST_ff_f (pow, minus_zero, -max_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
-
- TEST_ff_f (pow, 0x1p72L, 0x1p72L, plus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, 10, -0x1p72L, 0, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, max_value, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, 10, -max_value, 0, UNDERFLOW_EXCEPTION);
-
- TEST_ff_f (pow, 0, 1, 0);
- TEST_ff_f (pow, 0, 11, 0);
-
- TEST_ff_f (pow, minus_zero, 1, minus_zero);
- TEST_ff_f (pow, minus_zero, 11, minus_zero);
-
- TEST_ff_f (pow, 0, 2, 0);
- TEST_ff_f (pow, 0, 11.1L, 0);
-
- TEST_ff_f (pow, minus_zero, 2, 0);
- TEST_ff_f (pow, minus_zero, 11.1L, 0);
- TEST_ff_f (pow, 0, plus_infty, 0);
- TEST_ff_f (pow, minus_zero, plus_infty, 0);
- TEST_ff_f (pow, 0, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK);
- TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK);
+ TEST_ff_f (pow, 0, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -0x1p127, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 0, -max_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -2, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -0x1p127, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, minus_zero, -max_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+
+ TEST_ff_f (pow, 0x1p72L, 0x1p72L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 10, -0x1p72L, 0, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, max_value, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, 10, -max_value, 0, UNDERFLOW_EXCEPTION),
+
+ TEST_ff_f (pow, 0, 1, 0),
+ TEST_ff_f (pow, 0, 11, 0),
+
+ TEST_ff_f (pow, minus_zero, 1, minus_zero),
+ TEST_ff_f (pow, minus_zero, 11, minus_zero),
+
+ TEST_ff_f (pow, 0, 2, 0),
+ TEST_ff_f (pow, 0, 11.1L, 0),
+
+ TEST_ff_f (pow, minus_zero, 2, 0),
+ TEST_ff_f (pow, minus_zero, 11.1L, 0),
+ TEST_ff_f (pow, 0, plus_infty, 0),
+ TEST_ff_f (pow, minus_zero, plus_infty, 0),
+ TEST_ff_f (pow, 0, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK),
+ TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK),
#ifndef TEST_INLINE
- /* pow (x, +inf) == +inf for |x| > 1. */
- TEST_ff_f (pow, 1.5, plus_infty, plus_infty);
+ /* pow (x, +inf) == +inf for |x| > 1. */
+ TEST_ff_f (pow, 1.5, plus_infty, plus_infty),
- /* pow (x, +inf) == +0 for |x| < 1. */
- TEST_ff_f (pow, 0.5, plus_infty, 0.0);
+ /* pow (x, +inf) == +0 for |x| < 1. */
+ TEST_ff_f (pow, 0.5, plus_infty, 0.0),
- /* pow (x, -inf) == +0 for |x| > 1. */
- TEST_ff_f (pow, 1.5, minus_infty, 0.0);
+ /* pow (x, -inf) == +0 for |x| > 1. */
+ TEST_ff_f (pow, 1.5, minus_infty, 0.0),
- /* pow (x, -inf) == +inf for |x| < 1. */
- TEST_ff_f (pow, 0.5, minus_infty, plus_infty);
+ /* pow (x, -inf) == +inf for |x| < 1. */
+ TEST_ff_f (pow, 0.5, minus_infty, plus_infty),
#endif
- /* pow (+inf, y) == +inf for y > 0. */
- TEST_ff_f (pow, plus_infty, 2, plus_infty);
- TEST_ff_f (pow, plus_infty, 0xffffff, plus_infty);
+ /* pow (+inf, y) == +inf for y > 0. */
+ TEST_ff_f (pow, plus_infty, 2, plus_infty),
+ TEST_ff_f (pow, plus_infty, 0xffffff, plus_infty),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, plus_infty, 0x1.fffffffffffffp+52L, plus_infty);
+ TEST_ff_f (pow, plus_infty, 0x1.fffffffffffffp+52L, plus_infty),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, plus_infty, 0x1.fffffffffffffffep+63L, plus_infty);
+ TEST_ff_f (pow, plus_infty, 0x1.fffffffffffffffep+63L, plus_infty),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, plus_infty, 0x1.ffffffffffffffffffffffffff8p+105L, plus_infty);
+ TEST_ff_f (pow, plus_infty, 0x1.ffffffffffffffffffffffffff8p+105L, plus_infty),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, plus_infty, 0x1.ffffffffffffffffffffffffffffp+112L, plus_infty);
+ TEST_ff_f (pow, plus_infty, 0x1.ffffffffffffffffffffffffffffp+112L, plus_infty),
# endif
#endif
- TEST_ff_f (pow, plus_infty, 0x1p24, plus_infty);
- TEST_ff_f (pow, plus_infty, 0x1p127, plus_infty);
- TEST_ff_f (pow, plus_infty, max_value, plus_infty);
+ TEST_ff_f (pow, plus_infty, 0x1p24, plus_infty),
+ TEST_ff_f (pow, plus_infty, 0x1p127, plus_infty),
+ TEST_ff_f (pow, plus_infty, max_value, plus_infty),
- /* pow (+inf, y) == +0 for y < 0. */
- TEST_ff_f (pow, plus_infty, -1, 0.0);
- TEST_ff_f (pow, plus_infty, -0xffffff, 0.0);
+ /* pow (+inf, y) == +0 for y < 0. */
+ TEST_ff_f (pow, plus_infty, -1, 0.0),
+ TEST_ff_f (pow, plus_infty, -0xffffff, 0.0),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, plus_infty, -0x1.fffffffffffffp+52L, 0.0);
+ TEST_ff_f (pow, plus_infty, -0x1.fffffffffffffp+52L, 0.0),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, plus_infty, -0x1.fffffffffffffffep+63L, 0.0);
+ TEST_ff_f (pow, plus_infty, -0x1.fffffffffffffffep+63L, 0.0),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, plus_infty, -0x1.ffffffffffffffffffffffffff8p+105L, 0.0);
+ TEST_ff_f (pow, plus_infty, -0x1.ffffffffffffffffffffffffff8p+105L, 0.0),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, plus_infty, -0x1.ffffffffffffffffffffffffffffp+112L, 0.0);
+ TEST_ff_f (pow, plus_infty, -0x1.ffffffffffffffffffffffffffffp+112L, 0.0),
# endif
#endif
- TEST_ff_f (pow, plus_infty, -0x1p24, 0.0);
- TEST_ff_f (pow, plus_infty, -0x1p127, 0.0);
- TEST_ff_f (pow, plus_infty, -max_value, 0.0);
+ TEST_ff_f (pow, plus_infty, -0x1p24, 0.0),
+ TEST_ff_f (pow, plus_infty, -0x1p127, 0.0),
+ TEST_ff_f (pow, plus_infty, -max_value, 0.0),
- /* pow (-inf, y) == -inf for y an odd integer > 0. */
- TEST_ff_f (pow, minus_infty, 27, minus_infty);
- TEST_ff_f (pow, minus_infty, 0xffffff, minus_infty);
- TEST_ff_f (pow, minus_infty, 0x1fffffe, plus_infty);
+ /* pow (-inf, y) == -inf for y an odd integer > 0. */
+ TEST_ff_f (pow, minus_infty, 27, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0xffffff, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1fffffe, plus_infty),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffp+52L, minus_infty);
- TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffp+53L, plus_infty);
+ TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffp+52L, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffp+53L, plus_infty),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffffep+63L, minus_infty);
- TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffffep+64L, plus_infty);
+ TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffffep+63L, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1.fffffffffffffffep+64L, plus_infty),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty);
- TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty);
+ TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty);
- TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty);
+ TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty),
# endif
#endif
- /* pow (-inf, y) == +inf for y > 0 and not an odd integer. */
- TEST_ff_f (pow, minus_infty, 28, plus_infty);
- TEST_ff_f (pow, minus_infty, 0x1p24, plus_infty);
- TEST_ff_f (pow, minus_infty, 0x1p127, plus_infty);
- TEST_ff_f (pow, minus_infty, max_value, plus_infty);
+ /* pow (-inf, y) == +inf for y > 0 and not an odd integer. */
+ TEST_ff_f (pow, minus_infty, 28, plus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1p24, plus_infty),
+ TEST_ff_f (pow, minus_infty, 0x1p127, plus_infty),
+ TEST_ff_f (pow, minus_infty, max_value, plus_infty),
- /* pow (-inf, y) == -0 for y an odd integer < 0. */
- TEST_ff_f (pow, minus_infty, -3, minus_zero);
- TEST_ff_f (pow, minus_infty, -0xffffff, minus_zero);
- TEST_ff_f (pow, minus_infty, -0x1fffffe, plus_zero);
+ /* pow (-inf, y) == -0 for y an odd integer < 0. */
+ TEST_ff_f (pow, minus_infty, -3, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0xffffff, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0x1fffffe, plus_zero),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffp+52L, minus_zero);
- TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffp+53L, plus_zero);
+ TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffp+52L, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffp+53L, plus_zero),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffffep+63L, minus_zero);
- TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffffep+64L, plus_zero);
+ TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffffep+63L, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0x1.fffffffffffffffep+64L, plus_zero),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero);
- TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero);
+ TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero);
- TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero);
+ TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero),
+ TEST_ff_f (pow, minus_infty, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero),
# endif
#endif
- /* pow (-inf, y) == +0 for y < 0 and not an odd integer. */
- TEST_ff_f (pow, minus_infty, -2.0, 0.0);
- TEST_ff_f (pow, minus_infty, -0x1p24, 0.0);
- TEST_ff_f (pow, minus_infty, -0x1p127, 0.0);
- TEST_ff_f (pow, minus_infty, -max_value, 0.0);
+ /* pow (-inf, y) == +0 for y < 0 and not an odd integer. */
+ TEST_ff_f (pow, minus_infty, -2.0, 0.0),
+ TEST_ff_f (pow, minus_infty, -0x1p24, 0.0),
+ TEST_ff_f (pow, minus_infty, -0x1p127, 0.0),
+ TEST_ff_f (pow, minus_infty, -max_value, 0.0),
- /* pow (+0, y) == +0 for y an odd integer > 0. */
- TEST_ff_f (pow, 0.0, 27, 0.0);
- TEST_ff_f (pow, 0.0, 0xffffff, 0.0);
+ /* pow (+0, y) == +0 for y an odd integer > 0. */
+ TEST_ff_f (pow, 0.0, 27, 0.0),
+ TEST_ff_f (pow, 0.0, 0xffffff, 0.0),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, 0.0, 0x1.fffffffffffffp+52L, 0.0);
+ TEST_ff_f (pow, 0.0, 0x1.fffffffffffffp+52L, 0.0),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, 0.0, 0x1.fffffffffffffffep+63L, 0.0);
+ TEST_ff_f (pow, 0.0, 0x1.fffffffffffffffep+63L, 0.0),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, 0.0, 0x1.ffffffffffffffffffffffffff8p+105L, 0.0);
+ TEST_ff_f (pow, 0.0, 0x1.ffffffffffffffffffffffffff8p+105L, 0.0),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, 0.0, 0x1.ffffffffffffffffffffffffffffp+112L, 0.0);
+ TEST_ff_f (pow, 0.0, 0x1.ffffffffffffffffffffffffffffp+112L, 0.0),
# endif
#endif
- /* pow (-0, y) == -0 for y an odd integer > 0. */
- TEST_ff_f (pow, minus_zero, 27, minus_zero);
- TEST_ff_f (pow, minus_zero, 0xffffff, minus_zero);
- TEST_ff_f (pow, minus_zero, 0x1fffffe, plus_zero);
+ /* pow (-0, y) == -0 for y an odd integer > 0. */
+ TEST_ff_f (pow, minus_zero, 27, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0xffffff, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0x1fffffe, plus_zero),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffp+52L, minus_zero);
- TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffp+53L, plus_zero);
+ TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffp+52L, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffp+53L, plus_zero),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffffep+63L, minus_zero);
- TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffffep+64L, plus_zero);
+ TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffffep+63L, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0x1.fffffffffffffffep+64L, plus_zero),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero);
- TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero);
+ TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero);
- TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero);
+ TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero),
+ TEST_ff_f (pow, minus_zero, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero),
# endif
#endif
- /* pow (+0, y) == +0 for y > 0 and not an odd integer. */
- TEST_ff_f (pow, 0.0, 4, 0.0);
- TEST_ff_f (pow, 0.0, 0x1p24, 0.0);
- TEST_ff_f (pow, 0.0, 0x1p127, 0.0);
- TEST_ff_f (pow, 0.0, max_value, 0.0);
- TEST_ff_f (pow, 0.0, min_subnorm_value, 0.0);
+ /* pow (+0, y) == +0 for y > 0 and not an odd integer. */
+ TEST_ff_f (pow, 0.0, 4, 0.0),
+ TEST_ff_f (pow, 0.0, 0x1p24, 0.0),
+ TEST_ff_f (pow, 0.0, 0x1p127, 0.0),
+ TEST_ff_f (pow, 0.0, max_value, 0.0),
+ TEST_ff_f (pow, 0.0, min_subnorm_value, 0.0),
- /* pow (-0, y) == +0 for y > 0 and not an odd integer. */
- TEST_ff_f (pow, minus_zero, 4, 0.0);
- TEST_ff_f (pow, minus_zero, 0x1p24, 0.0);
- TEST_ff_f (pow, minus_zero, 0x1p127, 0.0);
- TEST_ff_f (pow, minus_zero, max_value, 0.0);
- TEST_ff_f (pow, minus_zero, min_subnorm_value, 0.0);
+ /* pow (-0, y) == +0 for y > 0 and not an odd integer. */
+ TEST_ff_f (pow, minus_zero, 4, 0.0),
+ TEST_ff_f (pow, minus_zero, 0x1p24, 0.0),
+ TEST_ff_f (pow, minus_zero, 0x1p127, 0.0),
+ TEST_ff_f (pow, minus_zero, max_value, 0.0),
+ TEST_ff_f (pow, minus_zero, min_subnorm_value, 0.0),
- TEST_ff_f (pow, 16, 0.25L, 2);
- TEST_ff_f (pow, 0x1p64L, 0.125L, 256);
- TEST_ff_f (pow, 2, 4, 16);
- TEST_ff_f (pow, 256, 8, 0x1p64L);
+ TEST_ff_f (pow, 16, 0.25L, 2),
+ TEST_ff_f (pow, 0x1p64L, 0.125L, 256),
+ TEST_ff_f (pow, 2, 4, 16),
+ TEST_ff_f (pow, 256, 8, 0x1p64L),
- TEST_ff_f (pow, 0.75L, 1.25L, 0.697953644326574699205914060237425566L);
+ TEST_ff_f (pow, 0.75L, 1.25L, 0.697953644326574699205914060237425566L),
#if defined TEST_DOUBLE || defined TEST_LDOUBLE
- TEST_ff_f (pow, -7.49321e+133, -9.80818e+16, 0, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -7.49321e+133, -9.80818e+16, 0, UNDERFLOW_EXCEPTION),
#endif
- TEST_ff_f (pow, -1.0, -0xffffff, -1.0);
- TEST_ff_f (pow, -1.0, -0x1fffffe, 1.0);
+ TEST_ff_f (pow, -1.0, -0xffffff, -1.0),
+ TEST_ff_f (pow, -1.0, -0x1fffffe, 1.0),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -1.0, -0x1.fffffffffffffp+52L, -1.0);
- TEST_ff_f (pow, -1.0, -0x1.fffffffffffffp+53L, 1.0);
+ TEST_ff_f (pow, -1.0, -0x1.fffffffffffffp+52L, -1.0),
+ TEST_ff_f (pow, -1.0, -0x1.fffffffffffffp+53L, 1.0),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -1.0, -0x1.fffffffffffffffep+63L, -1.0);
- TEST_ff_f (pow, -1.0, -0x1.fffffffffffffffep+64L, 1.0);
+ TEST_ff_f (pow, -1.0, -0x1.fffffffffffffffep+63L, -1.0),
+ TEST_ff_f (pow, -1.0, -0x1.fffffffffffffffep+64L, 1.0),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffff8p+105L, -1.0);
- TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffff8p+106L, 1.0);
+ TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffff8p+105L, -1.0),
+ TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffff8p+106L, 1.0),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffffffp+112L, -1.0);
- TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffffffp+113L, 1.0);
+ TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffffffp+112L, -1.0),
+ TEST_ff_f (pow, -1.0, -0x1.ffffffffffffffffffffffffffffp+113L, 1.0),
# endif
#endif
- TEST_ff_f (pow, -1.0, -max_value, 1.0);
+ TEST_ff_f (pow, -1.0, -max_value, 1.0),
- TEST_ff_f (pow, -1.0, 0xffffff, -1.0);
- TEST_ff_f (pow, -1.0, 0x1fffffe, 1.0);
+ TEST_ff_f (pow, -1.0, 0xffffff, -1.0),
+ TEST_ff_f (pow, -1.0, 0x1fffffe, 1.0),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -1.0, 0x1.fffffffffffffp+52L, -1.0);
- TEST_ff_f (pow, -1.0, 0x1.fffffffffffffp+53L, 1.0);
+ TEST_ff_f (pow, -1.0, 0x1.fffffffffffffp+52L, -1.0),
+ TEST_ff_f (pow, -1.0, 0x1.fffffffffffffp+53L, 1.0),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -1.0, 0x1.fffffffffffffffep+63L, -1.0);
- TEST_ff_f (pow, -1.0, 0x1.fffffffffffffffep+64L, 1.0);
+ TEST_ff_f (pow, -1.0, 0x1.fffffffffffffffep+63L, -1.0),
+ TEST_ff_f (pow, -1.0, 0x1.fffffffffffffffep+64L, 1.0),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffff8p+105L, -1.0);
- TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffff8p+106L, 1.0);
+ TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffff8p+105L, -1.0),
+ TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffff8p+106L, 1.0),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffffffp+112L, -1.0);
- TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffffffp+113L, 1.0);
+ TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffffffp+112L, -1.0),
+ TEST_ff_f (pow, -1.0, 0x1.ffffffffffffffffffffffffffffp+113L, 1.0),
# endif
#endif
- TEST_ff_f (pow, -1.0, max_value, 1.0);
+ TEST_ff_f (pow, -1.0, max_value, 1.0),
- TEST_ff_f (pow, -2.0, 126, 0x1p126);
- TEST_ff_f (pow, -2.0, 127, -0x1p127);
- /* Allow inexact results for float to be considered to underflow. */
- TEST_ff_f (pow, -2.0, -126, 0x1p-126, UNDERFLOW_EXCEPTION_OK_FLOAT);
- TEST_ff_f (pow, -2.0, -127, -0x1p-127, UNDERFLOW_EXCEPTION_OK_FLOAT);
+ TEST_ff_f (pow, -2.0, 126, 0x1p126),
+ TEST_ff_f (pow, -2.0, 127, -0x1p127),
+ /* Allow inexact results for float to be considered to underflow. */
+ TEST_ff_f (pow, -2.0, -126, 0x1p-126, UNDERFLOW_EXCEPTION_OK_FLOAT),
+ TEST_ff_f (pow, -2.0, -127, -0x1p-127, UNDERFLOW_EXCEPTION_OK_FLOAT),
- TEST_ff_f (pow, -2.0, -0xffffff, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, -0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -0xffffff, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -2.0, -0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -2.0, -0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, -0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -2.0, -0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -2.0, -0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, -0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -2.0, -0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -2.0, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_ff_f (pow, -2.0, -max_value, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, -max_value, plus_zero, UNDERFLOW_EXCEPTION),
- TEST_ff_f (pow, -2.0, 0xffffff, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, 0x1fffffe, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, 0xffffff, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -2.0, 0x1fffffe, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -2.0, 0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, 0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, 0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -2.0, 0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -2.0, 0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, 0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, 0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -2.0, 0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -2.0, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- TEST_ff_f (pow, -2.0, max_value, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -2.0, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- TEST_ff_f (pow, -max_value, 0.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -max_value, 1.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -max_value, 1000.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -max_value, -2, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -3, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 2, plus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 3, minus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -max_value, 1.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -max_value, 1000.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -max_value, -2, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -3, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, 2, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 3, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- TEST_ff_f (pow, -max_value, -0xffffff, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -0xffffff, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -max_value, -0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -max_value, -0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -max_value, -0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_ff_f (pow, -max_value, -max_value, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, -max_value, plus_zero, UNDERFLOW_EXCEPTION),
- TEST_ff_f (pow, -max_value, 0xffffff, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 0x1fffffe, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0xffffff, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 0x1fffffe, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -max_value, 0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -max_value, 0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -max_value, 0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- TEST_ff_f (pow, -max_value, max_value, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -max_value, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- TEST_ff_f (pow, -0.5, 126, 0x1p-126);
- TEST_ff_f (pow, -0.5, 127, -0x1p-127);
- TEST_ff_f (pow, -0.5, -126, 0x1p126);
- TEST_ff_f (pow, -0.5, -127, -0x1p127);
+ TEST_ff_f (pow, -0.5, 126, 0x1p-126),
+ TEST_ff_f (pow, -0.5, 127, -0x1p-127),
+ TEST_ff_f (pow, -0.5, -126, 0x1p126),
+ TEST_ff_f (pow, -0.5, -127, -0x1p127),
- TEST_ff_f (pow, -0.5, -0xffffff, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, -0x1fffffe, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -0xffffff, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -0.5, -0x1fffffe, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -0.5, -0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, -0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -0.5, -0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -0.5, -0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, -0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -0.5, -0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -0.5, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- TEST_ff_f (pow, -0.5, -max_value, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, -max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- TEST_ff_f (pow, -0.5, 0xffffff, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, 0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, 0xffffff, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -0.5, 0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -0.5, 0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, 0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, 0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -0.5, 0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -0.5, 0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, 0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, 0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -0.5, 0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -0.5, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_ff_f (pow, -0.5, max_value, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -0.5, max_value, plus_zero, UNDERFLOW_EXCEPTION),
- TEST_ff_f (pow, -min_value, 0.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -min_value, 1.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -min_value, 1000.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (pow, -min_value, -2, plus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -3, minus_infty, OVERFLOW_EXCEPTION);
- /* Allow inexact results to be considered to underflow. */
- TEST_ff_f (pow, -min_value, 1, -min_value, UNDERFLOW_EXCEPTION_OK);
- TEST_ff_f (pow, -min_value, 2, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 3, minus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -min_value, 1.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -min_value, 1000.5, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (pow, -min_value, -2, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -3, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ /* Allow inexact results to be considered to underflow. */
+ TEST_ff_f (pow, -min_value, 1, -min_value, UNDERFLOW_EXCEPTION_OK),
+ TEST_ff_f (pow, -min_value, 2, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 3, minus_zero, UNDERFLOW_EXCEPTION),
- TEST_ff_f (pow, -min_value, -0xffffff, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -0x1fffffe, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -0xffffff, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -0x1fffffe, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -min_value, -0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -0x1.fffffffffffffp+52L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -0x1.fffffffffffffp+53L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -min_value, -0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -0x1.fffffffffffffffep+63L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -0x1.fffffffffffffffep+64L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffff8p+105L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffff8p+106L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffffffp+112L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_ff_f (pow, -min_value, -0x1.ffffffffffffffffffffffffffffp+113L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
# endif
#endif
- TEST_ff_f (pow, -min_value, -max_value, plus_infty, OVERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, -max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
- TEST_ff_f (pow, -min_value, 0xffffff, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0xffffff, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 0x1fffffe, plus_zero, UNDERFLOW_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (pow, -min_value, 0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0x1.fffffffffffffp+52L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 0x1.fffffffffffffp+53L, plus_zero, UNDERFLOW_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
# if LDBL_MANT_DIG >= 64
- TEST_ff_f (pow, -min_value, 0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0x1.fffffffffffffffep+63L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 0x1.fffffffffffffffep+64L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 106
- TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffff8p+105L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffff8p+106L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
# if LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION);
- TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffffffp+112L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_ff_f (pow, -min_value, 0x1.ffffffffffffffffffffffffffffp+113L, plus_zero, UNDERFLOW_EXCEPTION),
# endif
#endif
- TEST_ff_f (pow, -min_value, max_value, plus_zero, UNDERFLOW_EXCEPTION);
-
- TEST_ff_f (pow, 0x0.ffffffp0, 10, 0.999999403953712118183885036774764444747L);
- TEST_ff_f (pow, 0x0.ffffffp0, 100, 0.999994039553108359406305079606228341585L);
- TEST_ff_f (pow, 0x0.ffffffp0, 1000, 0.9999403971297699052276650144650733772182L);
- TEST_ff_f (pow, 0x0.ffffffp0, 0x1p24, 0.3678794302077803437135155590023422899744L);
- TEST_ff_f (pow, 0x0.ffffffp0, 0x1p30, 1.603807831524924233828134753069728224044e-28L);
- TEST_ff_f (pow, 0x0.ffffffp0, 0x1.234566p30, 2.374884712135295099971443365381007297732e-32L);
- TEST_ff_f (pow, 0x0.ffffffp0, -10, 1.000000596046643153205170848674671339688L);
- TEST_ff_f (pow, 0x0.ffffffp0, -100, 1.000005960482418779499387594989252621451L);
- TEST_ff_f (pow, 0x0.ffffffp0, -1000, 1.000059606422943986382898964231519867906L);
- TEST_ff_f (pow, 0x0.ffffffp0, -0x1p24, 2.7182819094701610539628664526874952929416L);
- TEST_ff_f (pow, 0x0.ffffffp0, -0x1p30, 6.2351609734265057988914412331288163636075e+27L);
- TEST_ff_f (pow, 0x0.ffffffp0, -0x1.234566p30, 4.2107307141696353498921307077142537353515e+31L);
- TEST_ff_f (pow, 0x1.000002p0, 0x1p24, 7.3890552180866447284268641248075832310141L);
- TEST_ff_f (pow, 0x1.000002p0, 0x1.234566p29, 4.2107033006507495188536371520637025716256e+31L);
- TEST_ff_f (pow, 0x1.000002p0, -0x1.234566p29, 2.3749001736727769098946062325205705312166e-32L);
+ TEST_ff_f (pow, -min_value, max_value, plus_zero, UNDERFLOW_EXCEPTION),
+
+ TEST_ff_f (pow, 0x0.ffffffp0, 10, 0.999999403953712118183885036774764444747L),
+ TEST_ff_f (pow, 0x0.ffffffp0, 100, 0.999994039553108359406305079606228341585L),
+ TEST_ff_f (pow, 0x0.ffffffp0, 1000, 0.9999403971297699052276650144650733772182L),
+ TEST_ff_f (pow, 0x0.ffffffp0, 0x1p24, 0.3678794302077803437135155590023422899744L),
+ TEST_ff_f (pow, 0x0.ffffffp0, 0x1p30, 1.603807831524924233828134753069728224044e-28L),
+ TEST_ff_f (pow, 0x0.ffffffp0, 0x1.234566p30, 2.374884712135295099971443365381007297732e-32L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -10, 1.000000596046643153205170848674671339688L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -100, 1.000005960482418779499387594989252621451L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -1000, 1.000059606422943986382898964231519867906L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -0x1p24, 2.7182819094701610539628664526874952929416L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -0x1p30, 6.2351609734265057988914412331288163636075e+27L),
+ TEST_ff_f (pow, 0x0.ffffffp0, -0x1.234566p30, 4.2107307141696353498921307077142537353515e+31L),
+ TEST_ff_f (pow, 0x1.000002p0, 0x1p24, 7.3890552180866447284268641248075832310141L),
+ TEST_ff_f (pow, 0x1.000002p0, 0x1.234566p29, 4.2107033006507495188536371520637025716256e+31L),
+ TEST_ff_f (pow, 0x1.000002p0, -0x1.234566p29, 2.3749001736727769098946062325205705312166e-32L),
#if !defined TEST_FLOAT
- TEST_ff_f (pow, 0x0.fffffffffffff8p0L, 0x1.23456789abcdfp62L, 1.0118762747827252817436395051178295138220e-253L);
- TEST_ff_f (pow, 0x0.fffffffffffff8p0L, -0x1.23456789abcdfp62L, 9.8826311568054561811190162420900667121992e+252L);
- TEST_ff_f (pow, 0x1.0000000000001p0L, 0x1.23456789abcdfp61L, 9.8826311568044974397135026217687399395481e+252L);
- TEST_ff_f (pow, 0x1.0000000000001p0L, -0x1.23456789abcdfp61L, 1.0118762747828234466621210689458255908670e-253L);
+ TEST_ff_f (pow, 0x0.fffffffffffff8p0L, 0x1.23456789abcdfp62L, 1.0118762747827252817436395051178295138220e-253L),
+ TEST_ff_f (pow, 0x0.fffffffffffff8p0L, -0x1.23456789abcdfp62L, 9.8826311568054561811190162420900667121992e+252L),
+ TEST_ff_f (pow, 0x1.0000000000001p0L, 0x1.23456789abcdfp61L, 9.8826311568044974397135026217687399395481e+252L),
+ TEST_ff_f (pow, 0x1.0000000000001p0L, -0x1.23456789abcdfp61L, 1.0118762747828234466621210689458255908670e-253L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 64 && LDBL_MAX_EXP >= 16384
- TEST_ff_f (pow, 0x0.ffffffffffffffffp0L, 0x1.23456789abcdef0ep77L, 1.2079212226420368189981778807634890018840e-4048L);
- TEST_ff_f (pow, 0x0.ffffffffffffffffp0L, -0x1.23456789abcdef0ep77L, 8.2786855736563746280496724205839522148001e+4047L);
- TEST_ff_f (pow, 0x1.0000000000000002p0L, 0x1.23456789abcdef0ep76L, 8.2786855736563683535324500168799315131570e+4047L);
- TEST_ff_f (pow, 0x1.0000000000000002p0L, -0x1.23456789abcdef0ep76L, 1.2079212226420377344964713407722652880280e-4048L);
+ TEST_ff_f (pow, 0x0.ffffffffffffffffp0L, 0x1.23456789abcdef0ep77L, 1.2079212226420368189981778807634890018840e-4048L),
+ TEST_ff_f (pow, 0x0.ffffffffffffffffp0L, -0x1.23456789abcdef0ep77L, 8.2786855736563746280496724205839522148001e+4047L),
+ TEST_ff_f (pow, 0x1.0000000000000002p0L, 0x1.23456789abcdef0ep76L, 8.2786855736563683535324500168799315131570e+4047L),
+ TEST_ff_f (pow, 0x1.0000000000000002p0L, -0x1.23456789abcdef0ep76L, 1.2079212226420377344964713407722652880280e-4048L),
#endif
#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 113
- TEST_ff_f (pow, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.23456789abcdef0123456789abcdp126L, 1.2079212226420440237790185999151440179953e-4048L);
- TEST_ff_f (pow, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.23456789abcdef0123456789abcdp126L, 8.2786855736563252489063231915535105363602e+4047L);
- TEST_ff_f (pow, 0x1.0000000000000000000000000001p0L, 0x1.23456789abcdef0123456789abcdp125L, 8.2786855736563252489063231915423647547782e+4047L);
- TEST_ff_f (pow, 0x1.0000000000000000000000000001p0L, -0x1.23456789abcdef0123456789abcdp125L, 1.2079212226420440237790185999167702696503e-4048L);
+ TEST_ff_f (pow, 0x0.ffffffffffffffffffffffffffff8p0L, 0x1.23456789abcdef0123456789abcdp126L, 1.2079212226420440237790185999151440179953e-4048L),
+ TEST_ff_f (pow, 0x0.ffffffffffffffffffffffffffff8p0L, -0x1.23456789abcdef0123456789abcdp126L, 8.2786855736563252489063231915535105363602e+4047L),
+ TEST_ff_f (pow, 0x1.0000000000000000000000000001p0L, 0x1.23456789abcdef0123456789abcdp125L, 8.2786855736563252489063231915423647547782e+4047L),
+ TEST_ff_f (pow, 0x1.0000000000000000000000000001p0L, -0x1.23456789abcdef0123456789abcdp125L, 1.2079212226420440237790185999167702696503e-4048L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_ff_f (pow, 1e4932L, 0.75L, 1e3699L);
- TEST_ff_f (pow, 1e4928L, 0.75L, 1e3696L);
- TEST_ff_f (pow, 1e4924L, 0.75L, 1e3693L);
- TEST_ff_f (pow, 1e4920L, 0.75L, 1e3690L);
- TEST_ff_f (pow, 10.0L, 4932.0L, 1e4932L);
- TEST_ff_f (pow, 10.0L, 4931.0L, 1e4931L);
- TEST_ff_f (pow, 10.0L, 4930.0L, 1e4930L);
- TEST_ff_f (pow, 10.0L, 4929.0L, 1e4929L);
- TEST_ff_f (pow, 10.0L, -4931.0L, 1e-4931L);
- TEST_ff_f (pow, 10.0L, -4930.0L, 1e-4930L);
- TEST_ff_f (pow, 10.0L, -4929.0L, 1e-4929L);
- TEST_ff_f (pow, 1e27L, 182.0L, 1e4914L);
- TEST_ff_f (pow, 1e27L, -182.0L, 1e-4914L);
-#endif
-
- TEST_ff_f (pow, min_subnorm_value, min_subnorm_value, 1.0L);
- TEST_ff_f (pow, min_subnorm_value, -min_subnorm_value, 1.0L);
- TEST_ff_f (pow, max_value, min_subnorm_value, 1.0L);
- TEST_ff_f (pow, max_value, -min_subnorm_value, 1.0L);
- TEST_ff_f (pow, 0.99L, min_subnorm_value, 1.0L);
- TEST_ff_f (pow, 0.99L, -min_subnorm_value, 1.0L);
- TEST_ff_f (pow, 1.01L, min_subnorm_value, 1.0L);
- TEST_ff_f (pow, 1.01L, -min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, 1e4932L, 0.75L, 1e3699L),
+ TEST_ff_f (pow, 1e4928L, 0.75L, 1e3696L),
+ TEST_ff_f (pow, 1e4924L, 0.75L, 1e3693L),
+ TEST_ff_f (pow, 1e4920L, 0.75L, 1e3690L),
+ TEST_ff_f (pow, 10.0L, 4932.0L, 1e4932L),
+ TEST_ff_f (pow, 10.0L, 4931.0L, 1e4931L),
+ TEST_ff_f (pow, 10.0L, 4930.0L, 1e4930L),
+ TEST_ff_f (pow, 10.0L, 4929.0L, 1e4929L),
+ TEST_ff_f (pow, 10.0L, -4931.0L, 1e-4931L),
+ TEST_ff_f (pow, 10.0L, -4930.0L, 1e-4930L),
+ TEST_ff_f (pow, 10.0L, -4929.0L, 1e-4929L),
+ TEST_ff_f (pow, 1e27L, 182.0L, 1e4914L),
+ TEST_ff_f (pow, 1e27L, -182.0L, 1e-4914L),
+#endif
+
+ TEST_ff_f (pow, min_subnorm_value, min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, min_subnorm_value, -min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, max_value, min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, max_value, -min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, 0.99L, min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, 0.99L, -min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, 1.01L, min_subnorm_value, 1.0L),
+ TEST_ff_f (pow, 1.01L, -min_subnorm_value, 1.0L),
+
+ TEST_ff_f (pow, 2.0L, -100000.0L, plus_zero, UNDERFLOW_EXCEPTION),
+ };
- TEST_ff_f (pow, 2.0L, -100000.0L, plus_zero, UNDERFLOW_EXCEPTION);
+static void
+pow_test (void)
+{
- END (pow);
+ START (pow);
+ RUN_TEST_LOOP_ff_f (pow, pow_test_data, );
+ END;
}
+static const struct test_ff_f_data pow_tonearest_test_data[] =
+ {
+ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L),
+ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L),
+ };
+
static void
pow_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (pow_tonearest);
+ RUN_TEST_LOOP_ff_f (pow, pow_tonearest_test_data, FE_TONEAREST);
+ END;
+}
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
- TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
- }
- fesetround (save_round_mode);
+static const struct test_ff_f_data pow_towardzero_test_data[] =
+ {
+ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L),
+ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L),
+ };
- END (pow_tonearest);
+static void
+pow_test_towardzero (void)
+{
+ START (pow_towardzero);
+ RUN_TEST_LOOP_ff_f (pow, pow_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_ff_f_data pow_downward_test_data[] =
+ {
+ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L),
+ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L),
+ };
+
static void
-pow_test_towardzero (void)
+pow_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- START (pow_towardzero);
+ START (pow_downward);
+ RUN_TEST_LOOP_ff_f (pow, pow_downward_test_data, FE_DOWNWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
- TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
- }
+static const struct test_ff_f_data pow_upward_test_data[] =
+ {
+ TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L),
+ TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L),
+ };
- fesetround (save_round_mode);
+static void
+pow_test_upward (void)
+{
+ START (pow_upward);
+ RUN_TEST_LOOP_ff_f (pow, pow_upward_test_data, FE_UPWARD);
+ END;
+}
+
+
+static const struct test_ff_f_data remainder_test_data[] =
+ {
+ TEST_ff_f (remainder, 1, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, 1, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+
+ TEST_ff_f (remainder, 7.0, plus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 7.0, minus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+
+ TEST_ff_f (remainder, 1.625, 1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, 1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 1.625, -1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, -1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 5.0, 2.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 3.0, 2.0, -1.0, NO_INEXACT_EXCEPTION),
+ };
- END (pow_towardzero);
+static void
+remainder_test (void)
+{
+ START (remainder);
+ RUN_TEST_LOOP_ff_f (remainder, remainder_test_data, );
+ END;
}
-
static void
-pow_test_downward (void)
+drem_test (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (drem);
+ /* drem uses the same test data as remainder. */
+ RUN_TEST_LOOP_ff_f (drem, remainder_test_data, );
+ END;
+}
- START (pow_downward);
- save_round_mode = fegetround ();
+static const struct test_ff_f_data remainder_tonearest_test_data[] =
+ {
+ TEST_ff_f (remainder, 1, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, 1, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
- TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
- }
+ TEST_ff_f (remainder, 7.0, plus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 7.0, minus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- fesetround (save_round_mode);
+ TEST_ff_f (remainder, 1.625, 1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, 1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 1.625, -1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, -1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 5.0, 2.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 3.0, 2.0, -1.0, NO_INEXACT_EXCEPTION),
+ };
- END (pow_downward);
+static void
+remainder_test_tonearest (void)
+{
+ START (remainder_tonearest);
+ RUN_TEST_LOOP_ff_f (remainder, remainder_tonearest_test_data, FE_TONEAREST);
+ END;
}
-
static void
-pow_test_upward (void)
+drem_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(pow) (0, 0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (drem_tonearest);
+ /* drem uses the same test data as remainder. */
+ RUN_TEST_LOOP_ff_f (drem, remainder_tonearest_test_data, FE_TONEAREST);
+ END;
+}
- START (pow_upward);
- save_round_mode = fegetround ();
+static const struct test_ff_f_data remainder_towardzero_test_data[] =
+ {
+ TEST_ff_f (remainder, 1, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, 1, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- if (!fesetround (FE_UPWARD))
- {
- TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
- TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
- }
+ TEST_ff_f (remainder, 7.0, plus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 7.0, minus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- fesetround (save_round_mode);
+ TEST_ff_f (remainder, 1.625, 1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, 1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 1.625, -1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, -1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 5.0, 2.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 3.0, 2.0, -1.0, NO_INEXACT_EXCEPTION),
+ };
- END (pow_upward);
+static void
+remainder_test_towardzero (void)
+{
+ START (remainder_towardzero);
+ RUN_TEST_LOOP_ff_f (remainder, remainder_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
-
static void
-remainder_test (void)
+drem_test_towardzero (void)
{
- errno = 0;
- FUNC(remainder) (1.625, 1.0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (drem_towardzero);
+ /* drem uses the same test data as remainder. */
+ RUN_TEST_LOOP_ff_f (drem, remainder_towardzero_test_data, FE_TOWARDZERO);
+ END;
+}
- START (remainder);
- errno = 0;
- TEST_ff_f (remainder, 1, 0, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for remainder(1, 0) = EDOM ", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, 1, minus_zero, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for remainder(1, -0) = EDOM ", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, plus_infty, 1, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for remainder(INF, 1) = EDOM ", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, minus_infty, 1, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for remainder(-INF, 1) = EDOM ", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value);
- check_int ("errno for remainder(qNAN, qNAN) unchanged", errno, 0, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, 0, qnan_value, qnan_value);
- check_int ("errno for remainder(0, qNAN) unchanged", errno, 0, 0, 0, 0);
- errno = 0;
- TEST_ff_f (remainder, qnan_value, 0, qnan_value);
- check_int ("errno for remainder(qNaN, 0) unchanged", errno, 0, 0, 0, 0);
+static const struct test_ff_f_data remainder_downward_test_data[] =
+ {
+ TEST_ff_f (remainder, 1, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, 1, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_f (remainder, 1.625, 1.0, -0.375);
- TEST_ff_f (remainder, -1.625, 1.0, 0.375);
- TEST_ff_f (remainder, 1.625, -1.0, -0.375);
- TEST_ff_f (remainder, -1.625, -1.0, 0.375);
- TEST_ff_f (remainder, 5.0, 2.0, 1.0);
- TEST_ff_f (remainder, 3.0, 2.0, -1.0);
+ TEST_ff_f (remainder, 7.0, plus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 7.0, minus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- END (remainder);
-}
+ TEST_ff_f (remainder, 1.625, 1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, 1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 1.625, -1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, -1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 5.0, 2.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 3.0, 2.0, -1.0, NO_INEXACT_EXCEPTION),
+ };
static void
-remquo_test (void)
+remainder_test_downward (void)
{
- /* x is needed. */
- int x;
+ START (remainder_downward);
+ RUN_TEST_LOOP_ff_f (remainder, remainder_downward_test_data, FE_DOWNWARD);
+ END;
+}
- errno = 0;
- FUNC(remquo) (1.625, 1.0, &x);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+static void
+drem_test_downward (void)
+{
+ START (drem_downward);
+ /* drem uses the same test data as remainder. */
+ RUN_TEST_LOOP_ff_f (drem, remainder_downward_test_data, FE_DOWNWARD);
+ END;
+}
- START (remquo);
- TEST_ffI_f1 (remquo, 1, 0, qnan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, 1, minus_zero, qnan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, plus_infty, 1, qnan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, minus_infty, 1, qnan_value, IGNORE, INVALID_EXCEPTION);
- TEST_ffI_f1 (remquo, qnan_value, qnan_value, qnan_value, IGNORE);
+static const struct test_ff_f_data remainder_upward_test_data[] =
+ {
+ TEST_ff_f (remainder, 1, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, 1, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, plus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, minus_infty, 2, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (remainder, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ffI_f1 (remquo, 1.625, 1.0, -0.375, 2);
- TEST_ffI_f1 (remquo, -1.625, 1.0, 0.375, -2);
- TEST_ffI_f1 (remquo, 1.625, -1.0, -0.375, -2);
- TEST_ffI_f1 (remquo, -1.625, -1.0, 0.375, 2);
+ TEST_ff_f (remainder, 7.0, plus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (remainder, 7.0, minus_infty, 7.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ffI_f1 (remquo, 5, 2, 1, 2);
- TEST_ffI_f1 (remquo, 3, 2, -1, 2);
+ TEST_ff_f (remainder, 1.625, 1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, 1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 1.625, -1.0, -0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, -1.625, -1.0, 0.375, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 5.0, 2.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (remainder, 3.0, 2.0, -1.0, NO_INEXACT_EXCEPTION),
+ };
- END (remquo);
+static void
+remainder_test_upward (void)
+{
+ START (remainder_upward);
+ RUN_TEST_LOOP_ff_f (remainder, remainder_upward_test_data, FE_UPWARD);
+ END;
}
static void
-rint_test (void)
+drem_test_upward (void)
{
- /* TODO: missing qNaN tests. */
+ START (drem_upward);
+ /* drem uses the same test data as remainder. */
+ RUN_TEST_LOOP_ff_f (drem, remainder_upward_test_data, FE_UPWARD);
+ END;
+}
- START (rint);
+static const struct test_ffI_f1_data remquo_test_data[] =
+ {
+ TEST_ffI_f1 (remquo, 1, 0, qnan_value, IGNORE, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
+ TEST_ffI_f1 (remquo, 1, minus_zero, qnan_value, IGNORE, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
+ TEST_ffI_f1 (remquo, plus_infty, 1, qnan_value, IGNORE, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
+ TEST_ffI_f1 (remquo, minus_infty, 1, qnan_value, IGNORE, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
+ TEST_ffI_f1 (remquo, qnan_value, qnan_value, qnan_value, IGNORE, NO_INEXACT_EXCEPTION),
+
+ TEST_ffI_f1 (remquo, 1.625, 1.0, -0.375, 2, NO_INEXACT_EXCEPTION),
+ TEST_ffI_f1 (remquo, -1.625, 1.0, 0.375, -2, NO_INEXACT_EXCEPTION),
+ TEST_ffI_f1 (remquo, 1.625, -1.0, -0.375, -2, NO_INEXACT_EXCEPTION),
+ TEST_ffI_f1 (remquo, -1.625, -1.0, 0.375, 2, NO_INEXACT_EXCEPTION),
+
+ TEST_ffI_f1 (remquo, 5, 2, 1, 2, NO_INEXACT_EXCEPTION),
+ TEST_ffI_f1 (remquo, 3, 2, -1, 2, NO_INEXACT_EXCEPTION),
+ };
+
+static void
+remquo_test (void)
+{
+ /* x is needed. */
+ int x;
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, plus_infty, plus_infty);
- TEST_f_f (rint, minus_infty, minus_infty);
-
- /* Default rounding mode is round to even. */
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 2.5, 2.0);
- TEST_f_f (rint, 3.5, 4.0);
- TEST_f_f (rint, 4.5, 4.0);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.5, -2.0);
- TEST_f_f (rint, -3.5, -4.0);
- TEST_f_f (rint, -4.5, -4.0);
- TEST_f_f (rint, 0.1, 0.0);
- TEST_f_f (rint, 0.25, 0.0);
- TEST_f_f (rint, 0.625, 1.0);
- TEST_f_f (rint, -0.1, -0.0);
- TEST_f_f (rint, -0.25, -0.0);
- TEST_f_f (rint, -0.625, -1.0);
- TEST_f_f (rint, 262144.75, 262145.0);
- TEST_f_f (rint, 262142.75, 262143.0);
- TEST_f_f (rint, 524286.75, 524287.0);
- TEST_f_f (rint, 524288.75, 524289.0);
- TEST_f_f (rint, 1048576.75, 1048577.0);
- TEST_f_f (rint, 2097152.75, 2097153.0);
- TEST_f_f (rint, -1048576.75, -1048577.0);
- TEST_f_f (rint, -2097152.75, -2097153.0);
-#ifndef TEST_FLOAT
- TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
- TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
- TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
- TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
- TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
- TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
- TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
- TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
- TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
- TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+ START (remquo);
+ RUN_TEST_LOOP_ffI_f1 (remquo, remquo_test_data, , x);
+ END;
+}
+
+static const struct test_f_f_data rint_test_data[] =
+ {
+ /* TODO: missing qNaN tests. */
+
+ TEST_f_f (rint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+
+ /* Default rounding mode is round to even. */
+ TEST_f_f (rint, 0.5, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.5, 2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2.5, 2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 3.5, 4.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4.5, 4.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.5, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.5, -2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2.5, -2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -3.5, -4.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4.5, -4.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.1, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.25, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.625, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.1, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.25, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.625, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 262144.75, 262145.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 262142.75, 262143.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 524286.75, 524287.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 524288.75, 524289.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1048576.75, 1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2097152.75, 2097153.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1048576.75, -1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2097152.75, -2097153.0, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0, INEXACT_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
-
- TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L);
-
- TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.5L, 9007199254740994.0L);
-
- TEST_f_f (rint, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.5L, -9007199254740994.0L);
-
- TEST_f_f (rint, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (rint, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (rint, 72057594037927937.5L, 72057594037927938.0L);
-
- TEST_f_f (rint, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (rint, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (rint, -72057594037927937.5L, -72057594037927938.0L);
+ TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.75L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5L, 9007199254740994.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.5L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.25L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.75L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5L, -9007199254740994.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 72057594037927935.5L, 72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 72057594037927936.25L, 72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 72057594037927936.5L, 72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 72057594037927936.75L, 72057594037927937.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 72057594037927937.5L, 72057594037927938.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -72057594037927935.5L, -72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -72057594037927936.25L, -72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -72057594037927936.5L, -72057594037927936.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -72057594037927936.75L, -72057594037927937.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -72057594037927937.5L, -72057594037927938.0L, INEXACT_EXCEPTION),
- TEST_f_f (rint, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (rint, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L);
- TEST_f_f (rint, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L, INEXACT_EXCEPTION),
+# endif
#endif
-
- END (rint);
-}
+ };
static void
-rint_test_tonearest (void)
+rint_test (void)
{
- int save_round_mode;
- START (rint_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.0, -2.0);
- TEST_f_f (rint, 0.1, 0.0);
- TEST_f_f (rint, 0.25, 0.0);
- TEST_f_f (rint, 0.625, 1.0);
- TEST_f_f (rint, -0.1, -0.0);
- TEST_f_f (rint, -0.25, -0.0);
- TEST_f_f (rint, -0.625, -1.0);
- TEST_f_f (rint, 1048576.75, 1048577.0);
- TEST_f_f (rint, 2097152.75, 2097153.0);
- TEST_f_f (rint, -1048576.75, -1048577.0);
- TEST_f_f (rint, -2097152.75, -2097153.0);
-#ifndef TEST_FLOAT
- TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
- TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
- TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
- TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
- TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
- TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
- TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
- TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
- TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
- TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+ START (rint);
+ RUN_TEST_LOOP_f_f (rint, rint_test_data, );
+ END;
+}
+
+static const struct test_f_f_data rint_tonearest_test_data[] =
+ {
+ TEST_f_f (rint, 2.0, 2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.5, 2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.5, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.5, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.0, -1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.5, -2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.1, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.25, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.625, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.1, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.25, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.625, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1048576.75, 1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2097152.75, 2097153.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1048576.75, -1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2097152.75, -2097153.0, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0, INEXACT_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
-
- TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L);
-
- TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (rint_tonearest);
-}
+ };
static void
-rint_test_towardzero (void)
+rint_test_tonearest (void)
{
- int save_round_mode;
- START (rint_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 1.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -1.0);
- TEST_f_f (rint, -2.0, -2.0);
- TEST_f_f (rint, 0.1, 0.0);
- TEST_f_f (rint, 0.25, 0.0);
- TEST_f_f (rint, 0.625, 0.0);
- TEST_f_f (rint, -0.1, -0.0);
- TEST_f_f (rint, -0.25, -0.0);
- TEST_f_f (rint, -0.625, -0.0);
- TEST_f_f (rint, 1048576.75, 1048576.0);
- TEST_f_f (rint, 2097152.75, 2097152.0);
- TEST_f_f (rint, -1048576.75, -1048576.0);
- TEST_f_f (rint, -2097152.75, -2097152.0);
-#ifndef TEST_FLOAT
- TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
- TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
- TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
- TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
- TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
- TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
- TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
- TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
- TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
- TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+ START (rint_tonearest);
+ RUN_TEST_LOOP_f_f (rint, rint_tonearest_test_data, FE_TONEAREST);
+ END;
+}
+
+static const struct test_f_f_data rint_towardzero_test_data[] =
+ {
+ TEST_f_f (rint, 2.0, 2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.5, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.5, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.5, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.0, -1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.5, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.1, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.25, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.625, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.1, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.25, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.625, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1048576.75, 1048576.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2097152.75, 2097152.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1048576.75, -1048576.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2097152.75, -2097152.0, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177664.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 140737488355328.75, 140737488355328.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 281474976710656.75, 281474976710656.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 562949953421312.75, 562949953421312.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -70368744177664.75, -70368744177664.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -140737488355328.75, -140737488355328.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -281474976710656.75, -281474976710656.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -562949953421312.75, -562949953421312.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0, INEXACT_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
- TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
- TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
-
- TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L);
-
- TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (rint_towardzero);
-}
+ };
static void
-rint_test_downward (void)
+rint_test_towardzero (void)
{
- int save_round_mode;
- START (rint_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 1.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 0.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -1.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -2.0);
- TEST_f_f (rint, -2.0, -2.0);
- TEST_f_f (rint, 0.1, 0.0);
- TEST_f_f (rint, 0.25, 0.0);
- TEST_f_f (rint, 0.625, 0.0);
- TEST_f_f (rint, -0.1, -1.0);
- TEST_f_f (rint, -0.25, -1.0);
- TEST_f_f (rint, -0.625, -1.0);
- TEST_f_f (rint, 1048576.75, 1048576.0);
- TEST_f_f (rint, 2097152.75, 2097152.0);
- TEST_f_f (rint, -1048576.75, -1048577.0);
- TEST_f_f (rint, -2097152.75, -2097153.0);
-#ifndef TEST_FLOAT
- TEST_f_f (rint, 70368744177664.75, 70368744177664.0);
- TEST_f_f (rint, 140737488355328.75, 140737488355328.0);
- TEST_f_f (rint, 281474976710656.75, 281474976710656.0);
- TEST_f_f (rint, 562949953421312.75, 562949953421312.0);
- TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0);
- TEST_f_f (rint, -70368744177664.75, -70368744177665.0);
- TEST_f_f (rint, -140737488355328.75, -140737488355329.0);
- TEST_f_f (rint, -281474976710656.75, -281474976710657.0);
- TEST_f_f (rint, -562949953421312.75, -562949953421313.0);
- TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0);
+ START (rint_towardzero);
+ RUN_TEST_LOOP_f_f (rint, rint_towardzero_test_data, FE_TOWARDZERO);
+ END;
+}
+
+static const struct test_f_f_data rint_downward_test_data[] =
+ {
+ TEST_f_f (rint, 2.0, 2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.5, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.5, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.5, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.0, -1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.5, -2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.1, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.25, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.625, 0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.1, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.25, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.625, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1048576.75, 1048576.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2097152.75, 2097152.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1048576.75, -1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2097152.75, -2097153.0, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177664.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 140737488355328.75, 140737488355328.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 281474976710656.75, 281474976710656.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 562949953421312.75, 562949953421312.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842624.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -70368744177664.75, -70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -140737488355328.75, -140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -281474976710656.75, -281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -562949953421312.75, -562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842625.0, INEXACT_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
- TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
-
- TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L);
- TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L);
-
- TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740994.0L);
- TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740994.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (rint_downward);
-}
+ };
static void
-rint_test_upward (void)
+rint_test_downward (void)
{
- int save_round_mode;
- START (rint_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (rint, 2.0, 2.0);
- TEST_f_f (rint, 1.5, 2.0);
- TEST_f_f (rint, 1.0, 1.0);
- TEST_f_f (rint, 0.5, 1.0);
- TEST_f_f (rint, 0.0, 0.0);
- TEST_f_f (rint, minus_zero, minus_zero);
- TEST_f_f (rint, -0.5, -0.0);
- TEST_f_f (rint, -1.0, -1.0);
- TEST_f_f (rint, -1.5, -1.0);
- TEST_f_f (rint, -2.0, -2.0);
- TEST_f_f (rint, 0.1, 1.0);
- TEST_f_f (rint, 0.25, 1.0);
- TEST_f_f (rint, 0.625, 1.0);
- TEST_f_f (rint, -0.1, -0.0);
- TEST_f_f (rint, -0.25, -0.0);
- TEST_f_f (rint, -0.625, -0.0);
- TEST_f_f (rint, 1048576.75, 1048577.0);
- TEST_f_f (rint, 2097152.75, 2097153.0);
- TEST_f_f (rint, -1048576.75, -1048576.0);
- TEST_f_f (rint, -2097152.75, -2097152.0);
-#ifndef TEST_FLOAT
- TEST_f_f (rint, 70368744177664.75, 70368744177665.0);
- TEST_f_f (rint, 140737488355328.75, 140737488355329.0);
- TEST_f_f (rint, 281474976710656.75, 281474976710657.0);
- TEST_f_f (rint, 562949953421312.75, 562949953421313.0);
- TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0);
- TEST_f_f (rint, -70368744177664.75, -70368744177664.0);
- TEST_f_f (rint, -140737488355328.75, -140737488355328.0);
- TEST_f_f (rint, -281474976710656.75, -281474976710656.0);
- TEST_f_f (rint, -562949953421312.75, -562949953421312.0);
- TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0);
+ START (rint_downward);
+ RUN_TEST_LOOP_f_f (rint, rint_downward_test_data, FE_DOWNWARD);
+ END;
+}
+
+static const struct test_f_f_data rint_upward_test_data[] =
+ {
+ TEST_f_f (rint, 2.0, 2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.5, 2.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.5, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.5, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.0, -1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1.5, -1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.1, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.25, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 0.625, 1.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.1, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.25, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -0.625, -0.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1048576.75, 1048577.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 2097152.75, 2097153.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1048576.75, -1048576.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -2097152.75, -2097152.0, INEXACT_EXCEPTION),
+#ifndef TEST_FLOAT
+ TEST_f_f (rint, 70368744177664.75, 70368744177665.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 140737488355328.75, 140737488355329.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 281474976710656.75, 281474976710657.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 562949953421312.75, 562949953421313.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 1125899906842624.75, 1125899906842625.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -70368744177664.75, -70368744177664.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -140737488355328.75, -140737488355328.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -281474976710656.75, -281474976710656.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -562949953421312.75, -562949953421312.0, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -1125899906842624.75, -1125899906842624.0, INEXACT_EXCEPTION),
#endif
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.25L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
- TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
- TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L, INEXACT_EXCEPTION),
# endif
- TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
- TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
- TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
-
- TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740994.0L);
- TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L);
- TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L);
- TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L);
-
- TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
- TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
- TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740994.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L, INEXACT_EXCEPTION),
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L, INEXACT_EXCEPTION),
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L, INEXACT_EXCEPTION),
# endif
#endif
- }
-
- fesetround (save_round_mode);
-
- END (rint_upward);
-}
+ };
static void
-round_test (void)
+rint_test_upward (void)
{
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
- START (round);
-
- TEST_f_f (round, 0, 0);
- TEST_f_f (round, minus_zero, minus_zero);
- TEST_f_f (round, 0.2L, 0.0);
- TEST_f_f (round, -0.2L, minus_zero);
- TEST_f_f (round, 0.5, 1.0);
- TEST_f_f (round, -0.5, -1.0);
- TEST_f_f (round, 0.8L, 1.0);
- TEST_f_f (round, -0.8L, -1.0);
- TEST_f_f (round, 1.5, 2.0);
- TEST_f_f (round, -1.5, -2.0);
- TEST_f_f (round, 0.1, 0.0);
- TEST_f_f (round, 0.25, 0.0);
- TEST_f_f (round, 0.625, 1.0);
- TEST_f_f (round, -0.1, -0.0);
- TEST_f_f (round, -0.25, -0.0);
- TEST_f_f (round, -0.625, -1.0);
- TEST_f_f (round, 2097152.5, 2097153);
- TEST_f_f (round, -2097152.5, -2097153);
+ START (rint_upward);
+ RUN_TEST_LOOP_f_f (rint, rint_upward_test_data, FE_UPWARD);
+ END;
+}
+
+static const struct test_f_f_data round_test_data[] =
+ {
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+
+ TEST_f_f (round, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (round, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ /* Bug 15479: spurious "inexact" exception may occur. */
+ TEST_f_f (round, 0.2L, 0.0),
+ TEST_f_f (round, -0.2L, minus_zero),
+ TEST_f_f (round, 0.5, 1.0),
+ TEST_f_f (round, -0.5, -1.0),
+ TEST_f_f (round, 0.8L, 1.0),
+ TEST_f_f (round, -0.8L, -1.0),
+ TEST_f_f (round, 1.5, 2.0),
+ TEST_f_f (round, -1.5, -2.0),
+ TEST_f_f (round, 0.1, 0.0),
+ TEST_f_f (round, 0.25, 0.0),
+ TEST_f_f (round, 0.625, 1.0),
+ TEST_f_f (round, -0.1, -0.0),
+ TEST_f_f (round, -0.25, -0.0),
+ TEST_f_f (round, -0.625, -1.0),
+ TEST_f_f (round, 2097152.5, 2097153),
+ TEST_f_f (round, -2097152.5, -2097153),
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (round, 4503599627370495.5L, 4503599627370496.0L);
- TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L);
- TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (round, 4503599627370495.5L, 4503599627370496.0L),
+ TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L),
+ TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L),
+ TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L),
+ TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L);
- TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L);
- TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L),
+ TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L),
+ TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L),
# endif
- TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L);
- TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L);
- TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L);
- TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L),
+ TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L),
+ TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L),
+ TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L),
+ TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L);
- TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L);
- TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L);
+ TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L),
+ TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L),
+ TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L),
# endif
- TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740992.5L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740992.75L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740993.5L, 9007199254740994.0L);
+ TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L),
+ TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L),
+ TEST_f_f (round, 9007199254740992.5L, 9007199254740993.0L),
+ TEST_f_f (round, 9007199254740992.75L, 9007199254740993.0L),
+ TEST_f_f (round, 9007199254740993.5L, 9007199254740994.0L),
- TEST_f_f (round, -9007199254740991.5L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740992.5L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L);
+ TEST_f_f (round, -9007199254740991.5L, -9007199254740992.0L),
+ TEST_f_f (round, -9007199254740992.25L, -9007199254740992.0L),
+ TEST_f_f (round, -9007199254740992.5L, -9007199254740993.0L),
+ TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L),
+ TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740991.5000000000001L, 9007199254740992.0L);
- TEST_f_f (round, 9007199254740992.5000000000001L, 9007199254740993.0L);
- TEST_f_f (round, 9007199254740993.5000000000001L, 9007199254740994.0L);
-
- TEST_f_f (round, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (round, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L);
- TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L);
- TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L);
+ TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L),
+ TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L),
+ TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L),
+ TEST_f_f (round, 9007199254740991.5000000000001L, 9007199254740992.0L),
+ TEST_f_f (round, 9007199254740992.5000000000001L, 9007199254740993.0L),
+ TEST_f_f (round, 9007199254740993.5000000000001L, 9007199254740994.0L),
+
+ TEST_f_f (round, -9007199254740991.0000000000001L, -9007199254740991.0L),
+ TEST_f_f (round, -9007199254740992.0000000000001L, -9007199254740992.0L),
+ TEST_f_f (round, -9007199254740993.0000000000001L, -9007199254740993.0L),
+ TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L),
+ TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L),
+ TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L),
# endif
- TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L);
- TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L);
- TEST_f_f (round, 72057594037927936.75L, 72057594037927937.0L);
- TEST_f_f (round, 72057594037927937.5L, 72057594037927938.0L);
+ TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L),
+ TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L),
+ TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L),
+ TEST_f_f (round, 72057594037927936.75L, 72057594037927937.0L),
+ TEST_f_f (round, 72057594037927937.5L, 72057594037927938.0L),
- TEST_f_f (round, -72057594037927935.5L, -72057594037927936.0L);
- TEST_f_f (round, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (round, -72057594037927936.5L, -72057594037927937.0L);
- TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L);
- TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L);
+ TEST_f_f (round, -72057594037927935.5L, -72057594037927936.0L),
+ TEST_f_f (round, -72057594037927936.25L, -72057594037927936.0L),
+ TEST_f_f (round, -72057594037927936.5L, -72057594037927937.0L),
+ TEST_f_f (round, -72057594037927936.75L, -72057594037927937.0L),
+ TEST_f_f (round, -72057594037927937.5L, -72057594037927938.0L),
- TEST_f_f (round, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (round, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L);
- TEST_f_f (round, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L);
- TEST_f_f (round, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L);
- TEST_f_f (round, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L);
+ TEST_f_f (round, 10141204801825835211973625643007.5L, 10141204801825835211973625643008.0L),
+ TEST_f_f (round, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L),
+ TEST_f_f (round, 10141204801825835211973625643008.5L, 10141204801825835211973625643009.0L),
+ TEST_f_f (round, 10141204801825835211973625643008.75L, 10141204801825835211973625643009.0L),
+ TEST_f_f (round, 10141204801825835211973625643009.5L, 10141204801825835211973625643010.0L),
#endif
-
- END (round);
-}
-
+ };
static void
-scalb_test (void)
+round_test (void)
{
+ START (round);
+ RUN_TEST_LOOP_f_f (round, round_test_data, );
+ END;
+}
- START (scalb);
-
- TEST_ff_f (scalb, 2.0, 0.5, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, 3.0, -2.5, qnan_value, INVALID_EXCEPTION);
-
- TEST_ff_f (scalb, 0, qnan_value, qnan_value);
- TEST_ff_f (scalb, 1, qnan_value, qnan_value);
- TEST_ff_f (scalb, 1, 0, 1);
- TEST_ff_f (scalb, -1, 0, -1);
+static const struct test_ff_f_data scalb_test_data[] =
+ {
+ TEST_ff_f (scalb, 2.0, 0.5, qnan_value, INVALID_EXCEPTION),
+ TEST_ff_f (scalb, 3.0, -2.5, qnan_value, INVALID_EXCEPTION),
- TEST_ff_f (scalb, 0, plus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, minus_zero, plus_infty, qnan_value, INVALID_EXCEPTION);
+ TEST_ff_f (scalb, 0, qnan_value, qnan_value),
+ TEST_ff_f (scalb, 1, qnan_value, qnan_value),
- TEST_ff_f (scalb, 0, 2, 0);
- TEST_ff_f (scalb, minus_zero, -4, minus_zero);
- TEST_ff_f (scalb, 0, 0, 0);
- TEST_ff_f (scalb, minus_zero, 0, minus_zero);
- TEST_ff_f (scalb, 0, -1, 0);
- TEST_ff_f (scalb, minus_zero, -10, minus_zero);
- TEST_ff_f (scalb, 0, minus_infty, 0);
- TEST_ff_f (scalb, minus_zero, minus_infty, minus_zero);
+ TEST_ff_f (scalb, 1, 0, 1),
+ TEST_ff_f (scalb, -1, 0, -1),
- TEST_ff_f (scalb, plus_infty, -1, plus_infty);
- TEST_ff_f (scalb, minus_infty, -10, minus_infty);
- TEST_ff_f (scalb, plus_infty, 0, plus_infty);
- TEST_ff_f (scalb, minus_infty, 0, minus_infty);
- TEST_ff_f (scalb, plus_infty, 2, plus_infty);
- TEST_ff_f (scalb, minus_infty, 100, minus_infty);
+ TEST_ff_f (scalb, 0, plus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_ff_f (scalb, minus_zero, plus_infty, qnan_value, INVALID_EXCEPTION),
- TEST_ff_f (scalb, 0.1L, minus_infty, 0.0);
- TEST_ff_f (scalb, -0.1L, minus_infty, minus_zero);
+ TEST_ff_f (scalb, 0, 2, 0),
+ TEST_ff_f (scalb, minus_zero, -4, minus_zero),
+ TEST_ff_f (scalb, 0, 0, 0),
+ TEST_ff_f (scalb, minus_zero, 0, minus_zero),
+ TEST_ff_f (scalb, 0, -1, 0),
+ TEST_ff_f (scalb, minus_zero, -10, minus_zero),
+ TEST_ff_f (scalb, 0, minus_infty, 0),
+ TEST_ff_f (scalb, minus_zero, minus_infty, minus_zero),
- TEST_ff_f (scalb, 1, plus_infty, plus_infty);
- TEST_ff_f (scalb, -1, plus_infty, minus_infty);
- TEST_ff_f (scalb, plus_infty, plus_infty, plus_infty);
- TEST_ff_f (scalb, minus_infty, plus_infty, minus_infty);
+ TEST_ff_f (scalb, plus_infty, -1, plus_infty),
+ TEST_ff_f (scalb, minus_infty, -10, minus_infty),
+ TEST_ff_f (scalb, plus_infty, 0, plus_infty),
+ TEST_ff_f (scalb, minus_infty, 0, minus_infty),
+ TEST_ff_f (scalb, plus_infty, 2, plus_infty),
+ TEST_ff_f (scalb, minus_infty, 100, minus_infty),
- TEST_ff_f (scalb, plus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_ff_f (scalb, minus_infty, minus_infty, qnan_value, INVALID_EXCEPTION);
+ TEST_ff_f (scalb, 0.1L, minus_infty, 0.0),
+ TEST_ff_f (scalb, -0.1L, minus_infty, minus_zero),
- TEST_ff_f (scalb, qnan_value, 1, qnan_value);
- TEST_ff_f (scalb, 1, qnan_value, qnan_value);
- TEST_ff_f (scalb, qnan_value, 0, qnan_value);
- TEST_ff_f (scalb, 0, qnan_value, qnan_value);
- TEST_ff_f (scalb, qnan_value, plus_infty, qnan_value);
- TEST_ff_f (scalb, plus_infty, qnan_value, qnan_value);
- TEST_ff_f (scalb, qnan_value, qnan_value, qnan_value);
+ TEST_ff_f (scalb, 1, plus_infty, plus_infty),
+ TEST_ff_f (scalb, -1, plus_infty, minus_infty),
+ TEST_ff_f (scalb, plus_infty, plus_infty, plus_infty),
+ TEST_ff_f (scalb, minus_infty, plus_infty, minus_infty),
- TEST_ff_f (scalb, 0.8L, 4, 12.8L);
- TEST_ff_f (scalb, -0.854375L, 5, -27.34L);
+ TEST_ff_f (scalb, plus_infty, minus_infty, qnan_value, INVALID_EXCEPTION),
+ TEST_ff_f (scalb, minus_infty, minus_infty, qnan_value, INVALID_EXCEPTION),
- END (scalb);
-}
+ TEST_ff_f (scalb, qnan_value, 1, qnan_value),
+ TEST_ff_f (scalb, 1, qnan_value, qnan_value),
+ TEST_ff_f (scalb, qnan_value, 0, qnan_value),
+ TEST_ff_f (scalb, 0, qnan_value, qnan_value),
+ TEST_ff_f (scalb, qnan_value, plus_infty, qnan_value),
+ TEST_ff_f (scalb, plus_infty, qnan_value, qnan_value),
+ TEST_ff_f (scalb, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (scalb, 0.8L, 4, 12.8L),
+ TEST_ff_f (scalb, -0.854375L, 5, -27.34L),
+ };
static void
-scalbn_test (void)
+scalb_test (void)
{
- START (scalbn);
-
- TEST_fi_f (scalbn, 0, 0, 0);
- TEST_fi_f (scalbn, minus_zero, 0, minus_zero);
+ START (scalb);
+ RUN_TEST_LOOP_ff_f (scalb, scalb_test_data, );
+ END;
+}
- TEST_fi_f (scalbn, plus_infty, 1, plus_infty);
- TEST_fi_f (scalbn, minus_infty, 1, minus_infty);
- TEST_fi_f (scalbn, qnan_value, 1, qnan_value);
- TEST_fi_f (scalbn, 0.8L, 4, 12.8L);
- TEST_fi_f (scalbn, -0.854375L, 5, -27.34L);
+static const struct test_fi_f_data scalbn_test_data[] =
+ {
+ TEST_fi_f (scalbn, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (scalbn, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_fi_f (scalbn, 1, 0L, 1);
+ TEST_fi_f (scalbn, plus_infty, 1, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (scalbn, minus_infty, 1, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (scalbn, qnan_value, 1, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_fi_f (scalbn, 1, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, 1, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, max_value, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, max_value, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, min_value, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, min_value, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, min_value / 4, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbn, min_value / 4, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_fi_f (scalbn, 0.8L, 4, 12.8L, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (scalbn, -0.854375L, 5, -27.34L, NO_INEXACT_EXCEPTION),
- END (scalbn);
-}
+ TEST_fi_f (scalbn, 1, 0L, 1, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (scalbn, 1, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, 1, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, max_value, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, max_value, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, min_value, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, min_value, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, min_value / 4, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fi_f (scalbn, min_value / 4, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ };
static void
-scalbln_test (void)
+scalbn_test (void)
{
- START (scalbln);
+ START (scalbn);
+ RUN_TEST_LOOP_fi_f (scalbn, scalbn_test_data, );
+ END;
+}
- TEST_fl_f (scalbln, 0, 0, 0);
- TEST_fl_f (scalbln, minus_zero, 0, minus_zero);
- TEST_fl_f (scalbln, plus_infty, 1, plus_infty);
- TEST_fl_f (scalbln, minus_infty, 1, minus_infty);
- TEST_fl_f (scalbln, qnan_value, 1, qnan_value);
+static const struct test_fl_f_data scalbln_test_data[] =
+ {
+ TEST_fl_f (scalbln, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_fl_f (scalbln, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION),
- TEST_fl_f (scalbln, 0.8L, 4, 12.8L);
- TEST_fl_f (scalbln, -0.854375L, 5, -27.34L);
+ TEST_fl_f (scalbln, plus_infty, 1, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fl_f (scalbln, minus_infty, 1, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fl_f (scalbln, qnan_value, 1, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_fl_f (scalbln, 1, 0L, 1);
+ TEST_fl_f (scalbln, 0.8L, 4, 12.8L, NO_INEXACT_EXCEPTION),
+ TEST_fl_f (scalbln, -0.854375L, 5, -27.34L, NO_INEXACT_EXCEPTION),
- TEST_fi_f (scalbln, 1, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, 1, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, INT_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, INT_MIN, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_fl_f (scalbln, 1, 0L, 1, NO_INEXACT_EXCEPTION),
- TEST_fi_f (scalbln, 1, LONG_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, 1, LONG_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, LONG_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, LONG_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, LONG_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, LONG_MIN, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, LONG_MAX, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, LONG_MIN, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_fl_f (scalbln, 1, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, 1, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, INT_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, INT_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+
+ TEST_fl_f (scalbln, 1, LONG_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, 1, LONG_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, LONG_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, LONG_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, LONG_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, LONG_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, LONG_MAX, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, LONG_MIN, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
#if LONG_MAX >= 0x100000000
- TEST_fi_f (scalbln, 1, 0x88000000L, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, 1, -0x88000000L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, 0x88000000L, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, max_value, -0x88000000L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, 0x88000000L, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value, -0x88000000L, plus_zero, UNDERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, 0x88000000L, plus_infty, OVERFLOW_EXCEPTION);
- TEST_fi_f (scalbln, min_value / 4, -0x88000000L, plus_zero, UNDERFLOW_EXCEPTION);
+ TEST_fl_f (scalbln, 1, 0x88000000L, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, 1, -0x88000000L, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, 0x88000000L, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, max_value, -0x88000000L, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, 0x88000000L, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value, -0x88000000L, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, 0x88000000L, plus_infty, INEXACT_EXCEPTION|OVERFLOW_EXCEPTION),
+ TEST_fl_f (scalbln, min_value / 4, -0x88000000L, plus_zero, INEXACT_EXCEPTION|UNDERFLOW_EXCEPTION),
#endif
-
- END (scalbn);
-}
-
+ };
static void
-signbit_test (void)
+scalbln_test (void)
{
- /* TODO: missing qNaN tests. */
- START (signbit);
+ START (scalbln);
+ RUN_TEST_LOOP_fl_f (scalbln, scalbln_test_data, );
+ END;
+}
- TEST_f_b (signbit, 0, 0);
- TEST_f_b (signbit, minus_zero, 1);
- TEST_f_b (signbit, plus_infty, 0);
- TEST_f_b (signbit, minus_infty, 1);
- /* signbit (x) != 0 for x < 0. */
- TEST_f_b (signbit, -1, 1);
- /* signbit (x) == 0 for x >= 0. */
- TEST_f_b (signbit, 1, 0);
-
- END (signbit);
-}
+static const struct test_f_i_data signbit_test_data[] =
+ {
+ /* TODO: missing qNaN tests. */
+ TEST_f_b (signbit, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (signbit, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (signbit, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (signbit, minus_infty, 1, NO_INEXACT_EXCEPTION),
+ /* signbit (x) != 0 for x < 0. */
+ TEST_f_b (signbit, -1, 1, NO_INEXACT_EXCEPTION),
+ /* signbit (x) == 0 for x >= 0. */
+ TEST_f_b (signbit, 1, 0, NO_INEXACT_EXCEPTION),
+ };
static void
-sin_test (void)
+signbit_test (void)
{
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ START (signbit);
+ RUN_TEST_LOOP_f_b_tg (signbit, signbit_test_data, );
+ END;
+}
- START (sin);
- TEST_f_f (sin, 0, 0);
- TEST_f_f (sin, minus_zero, minus_zero);
- errno = 0;
- TEST_f_f (sin, plus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for sin(+inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (sin, minus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for sin(-inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (sin, qnan_value, qnan_value);
- check_int ("errno for sin(qNaN) unchanged", errno, 0, 0, 0, 0);
+static const struct test_f_f_data sin_test_data[] =
+ {
+ TEST_f_f (sin, 0, 0),
+ TEST_f_f (sin, minus_zero, minus_zero),
+ TEST_f_f (sin, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (sin, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (sin, qnan_value, qnan_value, ERRNO_UNCHANGED),
- TEST_f_f (sin, M_PI_6l, 0.5);
- TEST_f_f (sin, -M_PI_6l, -0.5);
- TEST_f_f (sin, M_PI_2l, 1);
- TEST_f_f (sin, -M_PI_2l, -1);
- TEST_f_f (sin, 0.75L, 0.681638760023334166733241952779893935L);
+ TEST_f_f (sin, M_PI_6l, 0.5),
+ TEST_f_f (sin, -M_PI_6l, -0.5),
+ TEST_f_f (sin, M_PI_2l, 1),
+ TEST_f_f (sin, -M_PI_2l, -1),
+ TEST_f_f (sin, 0.75L, 0.681638760023334166733241952779893935L),
- TEST_f_f (sin, 0x1p65, -0.047183876212354673805106149805700013943218L);
- TEST_f_f (sin, -0x1p65, 0.047183876212354673805106149805700013943218L);
+ TEST_f_f (sin, 0x1p65, -0.047183876212354673805106149805700013943218L),
+ TEST_f_f (sin, -0x1p65, 0.047183876212354673805106149805700013943218L),
- TEST_f_f (sin, 0x1.7f4134p+103, -6.6703229329788657073304190650534846045235e-08L);
+ TEST_f_f (sin, 0x1.7f4134p+103, -6.6703229329788657073304190650534846045235e-08L),
#ifdef TEST_DOUBLE
- TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868);
- TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1);
+ TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868),
+ TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1),
#endif
#ifndef TEST_FLOAT
- TEST_f_f (sin, 1e22, -0.8522008497671888017727058937530293682618L);
- TEST_f_f (sin, 0x1p1023, 0.5631277798508840134529434079444683477104L);
+ TEST_f_f (sin, 1e22, -0.8522008497671888017727058937530293682618L),
+ TEST_f_f (sin, 0x1p1023, 0.5631277798508840134529434079444683477104L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (sin, 0x1p16383L, 0.3893629985894208126948115852610595405563L);
+ TEST_f_f (sin, 0x1p16383L, 0.3893629985894208126948115852610595405563L),
#endif
- TEST_f_f (sin, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L);
- TEST_f_f (sin, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L);
- TEST_f_f (sin, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L);
- TEST_f_f (sin, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L);
- TEST_f_f (sin, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L);
- TEST_f_f (sin, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L);
-
- END (sin);
+ TEST_f_f (sin, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L),
+ TEST_f_f (sin, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L),
+ TEST_f_f (sin, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L),
+ TEST_f_f (sin, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L),
+ TEST_f_f (sin, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L),
+ TEST_f_f (sin, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L),
+ };
+static void
+sin_test (void)
+{
+ START (sin);
+ RUN_TEST_LOOP_f_f (sin, sin_test_data, );
+ END;
}
+static const struct test_f_f_data sin_tonearest_test_data[] =
+ {
+ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L),
+ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L),
+ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L),
+ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L),
+ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L),
+ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L),
+ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L),
+ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L),
+ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L),
+ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L),
+ };
+
static void
sin_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sin_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
- TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
- TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
- TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
- TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
- TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
- TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
- TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
- TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
- TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
- }
-
- fesetround (save_round_mode);
-
- END (sin_tonearest);
+ RUN_TEST_LOOP_f_f (sin, sin_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data sin_towardzero_test_data[] =
+ {
+ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L),
+ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L),
+ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L),
+ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L),
+ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L),
+ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L),
+ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L),
+ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L),
+ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L),
+ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L),
+ };
+
static void
sin_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sin_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
- TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
- TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
- TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
- TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
- TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
- TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
- TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
- TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
- TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
- }
-
- fesetround (save_round_mode);
-
- END (sin_towardzero);
+ RUN_TEST_LOOP_f_f (sin, sin_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data sin_downward_test_data[] =
+ {
+ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L),
+ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L),
+ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L),
+ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L),
+ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L),
+ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L),
+ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L),
+ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L),
+ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L),
+ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L),
+ };
+
static void
sin_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sin_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
- TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
- TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
- TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
- TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
- TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
- TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
- TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
- TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
- TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
- }
-
- fesetround (save_round_mode);
-
- END (sin_downward);
+ RUN_TEST_LOOP_f_f (sin, sin_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data sin_upward_test_data[] =
+ {
+ TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L),
+ TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L),
+ TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L),
+ TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L),
+ TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L),
+ TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L),
+ TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L),
+ TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L),
+ TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L),
+ TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L),
+ };
+
static void
sin_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sin) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sin_upward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
- TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
- TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
- TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
- TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
- TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
- TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
- TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
- TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
- TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
- }
-
- fesetround (save_round_mode);
-
- END (sin_upward);
+ RUN_TEST_LOOP_f_f (sin, sin_upward_test_data, FE_UPWARD);
+ END;
}
-static void
-sincos_test (void)
-{
- FLOAT sin_res, cos_res;
-
- errno = 0;
- FUNC(sincos) (0, &sin_res, &cos_res);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+static const struct test_fFF_11_data sincos_test_data[] =
+ {
+ TEST_fFF_11 (sincos, 0, 0, 1),
- START (sincos);
+ TEST_fFF_11 (sincos, minus_zero, minus_zero, 1),
+ TEST_fFF_11 (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_fFF_11 (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_fFF_11 (sincos, qnan_value, qnan_value, qnan_value),
- /* sincos is treated differently because it returns void. */
- TEST_extra (sincos, 0, 0, 1);
-
- TEST_extra (sincos, minus_zero, minus_zero, 1);
- TEST_extra (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_extra (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION);
- TEST_extra (sincos, qnan_value, qnan_value, qnan_value);
+ /* The value of M_PI_2l is never exactly PI/2, and therefore the
+ answer is never exactly zero. The answer is equal to the error
+ in rounding PI/2 for the type used. Thus the answer is unique
+ to each type. */
+#ifdef TEST_FLOAT
+ /* 32-bit float. */
+ TEST_fFF_11 (sincos, M_PI_2l, 1, -0x1.777a5cp-25L),
+#endif
+#if defined TEST_DOUBLE || (defined TEST_LDOUBLE && LDBL_MANT_DIG == 53)
+ /* 64-bit double or 64-bit long double. */
+ TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.1a62633145c07p-54L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 64
+ /* 96-bit long double. */
+ TEST_fFF_11 (sincos, M_PI_2l, 1, -0xe.ce675d1fc8f8cbbp-69L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 106
+ /* 128-bit IBM long double. */
+ TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.c1cd129024e088a67cc74020bcp-107L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG == 113
+ /* 128-bit long double. */
+ TEST_fFF_11 (sincos, M_PI_2l, 1, 0x1.cd129024e088a67cc74020bbea64p-115L),
+#endif
- TEST_extra (sincos, M_PI_2l, 1, 0);
- TEST_extra (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L);
- TEST_extra (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5);
- TEST_extra (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L);
+ TEST_fFF_11 (sincos, M_PI_6l, 0.5, 0.86602540378443864676372317075293616L),
+ TEST_fFF_11 (sincos, M_PI_6l*2.0, 0.86602540378443864676372317075293616L, 0.5),
+ TEST_fFF_11 (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L),
- TEST_extra (sincos, 0x1p65, -0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L);
- TEST_extra (sincos, -0x1p65, 0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L);
+ TEST_fFF_11 (sincos, 0x1p65, -0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L),
+ TEST_fFF_11 (sincos, -0x1p65, 0.047183876212354673805106149805700013943218L, 0.99888622066058013610642172179340364209972L),
#ifdef TEST_DOUBLE
- TEST_extra (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473);
+ TEST_fFF_11 (sincos, 0.80190127184058835, 0.71867942238767868, 0.69534156199418473),
#endif
#ifndef TEST_FLOAT
- TEST_extra (sincos, 1e22, -0.8522008497671888017727058937530293682618L, 0.5232147853951389454975944733847094921409L);
- TEST_extra (sincos, 0x1p1023, 0.5631277798508840134529434079444683477104L, -0.826369834614147994500785680811743734805L);
+ TEST_fFF_11 (sincos, 1e22, -0.8522008497671888017727058937530293682618L, 0.5232147853951389454975944733847094921409L),
+ TEST_fFF_11 (sincos, 0x1p1023, 0.5631277798508840134529434079444683477104L, -0.826369834614147994500785680811743734805L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_extra (sincos, 0x1p16383L, 0.3893629985894208126948115852610595405563L, 0.9210843909921906206874509522505756251609L);
+ TEST_fFF_11 (sincos, 0x1p16383L, 0.3893629985894208126948115852610595405563L, 0.9210843909921906206874509522505756251609L),
#endif
- TEST_extra (sincos, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L, -9.25879022854837867303861764107414946730833e-01L);
- TEST_extra (sincos, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L, 7.81914638714960072263910298466369236613162e-01L);
- TEST_extra (sincos, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L, 9.98819362551949040703862043664101081064641e-01L);
- TEST_extra (sincos, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L, 8.53021039830304158051791467692161107353094e-01L);
- TEST_extra (sincos, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L, 8.68095904660550604334592502063501320395739e-01L);
- TEST_extra (sincos, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L, -1.65568979490578758865468278195361551113358e-01L);
-
- END (sincos);
-}
+ TEST_fFF_11 (sincos, 0x1p+120, 3.77820109360752022655548470056922991960587e-01L, -9.25879022854837867303861764107414946730833e-01L),
+ TEST_fFF_11 (sincos, 0x1p+127, 6.23385512955870240370428801097126489001833e-01L, 7.81914638714960072263910298466369236613162e-01L),
+ TEST_fFF_11 (sincos, 0x1.fffff8p+127, 4.85786063130487339701113680434728152037092e-02L, 9.98819362551949040703862043664101081064641e-01L),
+ TEST_fFF_11 (sincos, 0x1.fffffep+127, -5.21876523333658540551505357019806722935726e-01L, 8.53021039830304158051791467692161107353094e-01L),
+ TEST_fFF_11 (sincos, 0x1p+50, 4.96396515208940840876821859865411368093356e-01L, 8.68095904660550604334592502063501320395739e-01L),
+ TEST_fFF_11 (sincos, 0x1p+28, -9.86198211836975655703110310527108292055548e-01L, -1.65568979490578758865468278195361551113358e-01L),
+ };
static void
-sinh_test (void)
+sincos_test (void)
{
- errno = 0;
- FUNC(sinh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
+ FLOAT sin_res, cos_res;
- START (sinh);
- TEST_f_f (sinh, 0, 0);
- TEST_f_f (sinh, minus_zero, minus_zero);
+ START (sincos);
+ RUN_TEST_LOOP_fFF_11 (sincos, sincos_test_data, , sin_res, cos_res);
+ END;
+}
+
+static const struct test_f_f_data sinh_test_data[] =
+ {
+ TEST_f_f (sinh, 0, 0),
+ TEST_f_f (sinh, minus_zero, minus_zero),
#ifndef TEST_INLINE
- TEST_f_f (sinh, plus_infty, plus_infty);
- TEST_f_f (sinh, minus_infty, minus_infty);
+ TEST_f_f (sinh, plus_infty, plus_infty),
+ TEST_f_f (sinh, minus_infty, minus_infty),
#endif
- TEST_f_f (sinh, qnan_value, qnan_value);
+ TEST_f_f (sinh, qnan_value, qnan_value),
- TEST_f_f (sinh, 0.75L, 0.822316731935829980703661634446913849L);
- TEST_f_f (sinh, 0x8p-32L, 1.86264514923095703232705808926175479e-9L);
+ TEST_f_f (sinh, 0.75L, 0.822316731935829980703661634446913849L),
+ TEST_f_f (sinh, 0x8p-32L, 1.86264514923095703232705808926175479e-9L),
+ };
- END (sinh);
+static void
+sinh_test (void)
+{
+ START (sinh);
+ RUN_TEST_LOOP_f_f (sinh, sinh_test_data, );
+ END;
}
+static const struct test_f_f_data sinh_tonearest_test_data[] =
+ {
+ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L),
+ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L),
+ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L),
+ };
+
static void
sinh_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sinh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sinh_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
- TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
- TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
- }
-
- fesetround (save_round_mode);
-
- END (sinh_tonearest);
+ RUN_TEST_LOOP_f_f (sinh, sinh_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data sinh_towardzero_test_data[] =
+ {
+ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L),
+ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L),
+ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L),
+ };
+
static void
sinh_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sinh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sinh_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
- TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
- TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
- }
-
- fesetround (save_round_mode);
-
- END (sinh_towardzero);
+ RUN_TEST_LOOP_f_f (sinh, sinh_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data sinh_downward_test_data[] =
+ {
+ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L),
+ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L),
+ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L),
+ };
+
static void
sinh_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sinh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sinh_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
- TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
- TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
- }
-
- fesetround (save_round_mode);
-
- END (sinh_downward);
+ RUN_TEST_LOOP_f_f (sinh, sinh_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data sinh_upward_test_data[] =
+ {
+ TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L),
+ TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L),
+ TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L),
+ };
+
static void
sinh_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(sinh) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sinh_upward);
+ RUN_TEST_LOOP_f_f (sinh, sinh_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
- TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
- TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
- }
+static const struct test_f_f_data sqrt_test_data[] =
+ {
+ TEST_f_f (sqrt, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
- fesetround (save_round_mode);
+ TEST_f_f (sqrt, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
- END (sinh_upward);
-}
+ /* sqrt (x) == qNaN plus invalid exception for x < 0. */
+ TEST_f_f (sqrt, -1, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (sqrt, -max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (sqrt, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (sqrt, 2209, 47, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 4, 2, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 2, M_SQRT2l, INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 0.25, 0.5, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 6642.25, 81.5, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 15190.5625L, 123.25L, NO_INEXACT_EXCEPTION),
+ TEST_f_f (sqrt, 0.75L, 0.866025403784438646763723170752936183L, INEXACT_EXCEPTION),
+ };
static void
sqrt_test (void)
{
- errno = 0;
- FUNC(sqrt) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (sqrt);
+ RUN_TEST_LOOP_f_f (sqrt, sqrt_test_data, );
+ END;
+}
+
+
+static const struct test_f_f_data tan_test_data[] =
+ {
+ TEST_f_f (tan, 0, 0),
+ TEST_f_f (tan, minus_zero, minus_zero),
+ TEST_f_f (tan, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (tan, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (tan, qnan_value, qnan_value, ERRNO_UNCHANGED),
+
+ TEST_f_f (tan, M_PI_4l, 1),
+ TEST_f_f (tan, 0.75L, 0.931596459944072461165202756573936428L),
+
+ TEST_f_f (tan, 0x1p65, -0.0472364872359047946798414219288370688827L),
+ TEST_f_f (tan, -0x1p65, 0.0472364872359047946798414219288370688827L),
+
+ TEST_f_f (tan, 0xc.9p-4, 0.9995162902115457818029468900654150261381L),
+ TEST_f_f (tan, 0xc.908p-4, 0.9997603425502441410973077452249560802034L),
+ TEST_f_f (tan, 0xc.90cp-4, 0.9998823910588060302788513970802357770031L),
+ TEST_f_f (tan, 0xc.90ep-4, 0.9999434208994808753305784795924711152508L),
+ TEST_f_f (tan, 0xc.90fp-4, 0.9999739372166156702433266059635165160515L),
+ TEST_f_f (tan, 0xc.90f8p-4, 0.9999891957244072765118898375645469865764L),
+ TEST_f_f (tan, 0xc.90fcp-4, 0.9999968250656122402859679132395522927393L),
+ TEST_f_f (tan, 0xc.90fdp-4, 0.9999987324100083358016192309006353329444L),
+ TEST_f_f (tan, 0xc.90fd8p-4, 0.9999996860835706212861509874451585282616L),
+ TEST_f_f (tan, 0xc.90fdap-4, 0.9999999245021033010474530133665235922808L),
+ TEST_f_f (tan, 0xc.ap-4, 1.0073556597407272165371804539701396631519L),
+ TEST_f_f (tan, 0xc.98p-4, 1.0034282930863044654045449407466962736255L),
+ TEST_f_f (tan, 0xc.94p-4, 1.0014703786820082237342656561856877993328L),
+ TEST_f_f (tan, 0xc.92p-4, 1.0004928571392300571266638743539017593717L),
+ TEST_f_f (tan, 0xc.91p-4, 1.0000044544650244953647966900221905361131L),
+ TEST_f_f (tan, 0xc.90fep-4, 1.0000006397580424009014454926842136804016L),
+ TEST_f_f (tan, 0xc.90fdcp-4, 1.0000001629206928242190327320047489394217L),
+ TEST_f_f (tan, 0xc.90fdbp-4, 1.0000000437113909572052640953950483705005L),
+
+ TEST_f_f (tan, -0xc.9p-4, -0.9995162902115457818029468900654150261381L),
+ TEST_f_f (tan, -0xc.908p-4, -0.9997603425502441410973077452249560802034L),
+ TEST_f_f (tan, -0xc.90cp-4, -0.9998823910588060302788513970802357770031L),
+ TEST_f_f (tan, -0xc.90ep-4, -0.9999434208994808753305784795924711152508L),
+ TEST_f_f (tan, -0xc.90fp-4, -0.9999739372166156702433266059635165160515L),
+ TEST_f_f (tan, -0xc.90f8p-4, -0.9999891957244072765118898375645469865764L),
+ TEST_f_f (tan, -0xc.90fcp-4, -0.9999968250656122402859679132395522927393L),
+ TEST_f_f (tan, -0xc.90fdp-4, -0.9999987324100083358016192309006353329444L),
+ TEST_f_f (tan, -0xc.90fd8p-4, -0.9999996860835706212861509874451585282616L),
+ TEST_f_f (tan, -0xc.90fdap-4, -0.9999999245021033010474530133665235922808L),
+ TEST_f_f (tan, -0xc.ap-4, -1.0073556597407272165371804539701396631519L),
+ TEST_f_f (tan, -0xc.98p-4, -1.0034282930863044654045449407466962736255L),
+ TEST_f_f (tan, -0xc.94p-4, -1.0014703786820082237342656561856877993328L),
+ TEST_f_f (tan, -0xc.92p-4, -1.0004928571392300571266638743539017593717L),
+ TEST_f_f (tan, -0xc.91p-4, -1.0000044544650244953647966900221905361131L),
+ TEST_f_f (tan, -0xc.90fep-4, -1.0000006397580424009014454926842136804016L),
+ TEST_f_f (tan, -0xc.90fdcp-4, -1.0000001629206928242190327320047489394217L),
+ TEST_f_f (tan, -0xc.90fdbp-4, -1.0000000437113909572052640953950483705005L),
- TEST_f_f (sqrt, 0, 0);
- TEST_f_f (sqrt, qnan_value, qnan_value);
- TEST_f_f (sqrt, plus_infty, plus_infty);
-
- TEST_f_f (sqrt, minus_zero, minus_zero);
-
- /* sqrt (x) == qNaN plus invalid exception for x < 0. */
- TEST_f_f (sqrt, -1, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (sqrt, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (sqrt, minus_infty, qnan_value, INVALID_EXCEPTION);
-
- TEST_f_f (sqrt, 2209, 47);
- TEST_f_f (sqrt, 4, 2);
- TEST_f_f (sqrt, 2, M_SQRT2l);
- TEST_f_f (sqrt, 0.25, 0.5);
- TEST_f_f (sqrt, 6642.25, 81.5);
- TEST_f_f (sqrt, 15190.5625L, 123.25L);
- TEST_f_f (sqrt, 0.75L, 0.866025403784438646763723170752936183L);
-
- END (sqrt);
-}
+#ifndef TEST_FLOAT
+ TEST_f_f (tan, 1e22, -1.628778225606898878549375936939548513545L),
+ TEST_f_f (tan, 0x1p1023, -0.6814476476066215012854144040167365190368L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_f_f (tan, 0x1p16383L, 0.422722393732022337800504160054440141575L),
+#endif
+ };
static void
tan_test (void)
{
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tan);
-
- TEST_f_f (tan, 0, 0);
- TEST_f_f (tan, minus_zero, minus_zero);
- errno = 0;
- TEST_f_f (tan, plus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for tan(Inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (tan, minus_infty, qnan_value, INVALID_EXCEPTION);
- check_int ("errno for tan(-Inf) == EDOM", errno, EDOM, 0, 0, 0);
- errno = 0;
- TEST_f_f (tan, qnan_value, qnan_value);
- check_int ("errno for tan(qNaN) == 0", errno, 0, 0, 0, 0);
-
- TEST_f_f (tan, M_PI_4l, 1);
- TEST_f_f (tan, 0.75L, 0.931596459944072461165202756573936428L);
-
- TEST_f_f (tan, 0x1p65, -0.0472364872359047946798414219288370688827L);
- TEST_f_f (tan, -0x1p65, 0.0472364872359047946798414219288370688827L);
-
- TEST_f_f (tan, 0xc.9p-4, 0.9995162902115457818029468900654150261381L);
- TEST_f_f (tan, 0xc.908p-4, 0.9997603425502441410973077452249560802034L);
- TEST_f_f (tan, 0xc.90cp-4, 0.9998823910588060302788513970802357770031L);
- TEST_f_f (tan, 0xc.90ep-4, 0.9999434208994808753305784795924711152508L);
- TEST_f_f (tan, 0xc.90fp-4, 0.9999739372166156702433266059635165160515L);
- TEST_f_f (tan, 0xc.90f8p-4, 0.9999891957244072765118898375645469865764L);
- TEST_f_f (tan, 0xc.90fcp-4, 0.9999968250656122402859679132395522927393L);
- TEST_f_f (tan, 0xc.90fdp-4, 0.9999987324100083358016192309006353329444L);
- TEST_f_f (tan, 0xc.90fd8p-4, 0.9999996860835706212861509874451585282616L);
- TEST_f_f (tan, 0xc.90fdap-4, 0.9999999245021033010474530133665235922808L);
- TEST_f_f (tan, 0xc.ap-4, 1.0073556597407272165371804539701396631519L);
- TEST_f_f (tan, 0xc.98p-4, 1.0034282930863044654045449407466962736255L);
- TEST_f_f (tan, 0xc.94p-4, 1.0014703786820082237342656561856877993328L);
- TEST_f_f (tan, 0xc.92p-4, 1.0004928571392300571266638743539017593717L);
- TEST_f_f (tan, 0xc.91p-4, 1.0000044544650244953647966900221905361131L);
- TEST_f_f (tan, 0xc.90fep-4, 1.0000006397580424009014454926842136804016L);
- TEST_f_f (tan, 0xc.90fdcp-4, 1.0000001629206928242190327320047489394217L);
- TEST_f_f (tan, 0xc.90fdbp-4, 1.0000000437113909572052640953950483705005L);
-
- TEST_f_f (tan, -0xc.9p-4, -0.9995162902115457818029468900654150261381L);
- TEST_f_f (tan, -0xc.908p-4, -0.9997603425502441410973077452249560802034L);
- TEST_f_f (tan, -0xc.90cp-4, -0.9998823910588060302788513970802357770031L);
- TEST_f_f (tan, -0xc.90ep-4, -0.9999434208994808753305784795924711152508L);
- TEST_f_f (tan, -0xc.90fp-4, -0.9999739372166156702433266059635165160515L);
- TEST_f_f (tan, -0xc.90f8p-4, -0.9999891957244072765118898375645469865764L);
- TEST_f_f (tan, -0xc.90fcp-4, -0.9999968250656122402859679132395522927393L);
- TEST_f_f (tan, -0xc.90fdp-4, -0.9999987324100083358016192309006353329444L);
- TEST_f_f (tan, -0xc.90fd8p-4, -0.9999996860835706212861509874451585282616L);
- TEST_f_f (tan, -0xc.90fdap-4, -0.9999999245021033010474530133665235922808L);
- TEST_f_f (tan, -0xc.ap-4, -1.0073556597407272165371804539701396631519L);
- TEST_f_f (tan, -0xc.98p-4, -1.0034282930863044654045449407466962736255L);
- TEST_f_f (tan, -0xc.94p-4, -1.0014703786820082237342656561856877993328L);
- TEST_f_f (tan, -0xc.92p-4, -1.0004928571392300571266638743539017593717L);
- TEST_f_f (tan, -0xc.91p-4, -1.0000044544650244953647966900221905361131L);
- TEST_f_f (tan, -0xc.90fep-4, -1.0000006397580424009014454926842136804016L);
- TEST_f_f (tan, -0xc.90fdcp-4, -1.0000001629206928242190327320047489394217L);
- TEST_f_f (tan, -0xc.90fdbp-4, -1.0000000437113909572052640953950483705005L);
-
-#ifndef TEST_FLOAT
- TEST_f_f (tan, 1e22, -1.628778225606898878549375936939548513545L);
- TEST_f_f (tan, 0x1p1023, -0.6814476476066215012854144040167365190368L);
-#endif
-
-#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (tan, 0x1p16383L, 0.422722393732022337800504160054440141575L);
-#endif
-
- END (tan);
+ RUN_TEST_LOOP_f_f (tan, tan_test_data, );
+ END;
}
+static const struct test_f_f_data tan_tonearest_test_data[] =
+ {
+ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L),
+ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L),
+ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L),
+ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L),
+ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L),
+ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L),
+ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L),
+ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L),
+ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L),
+ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L),
+ };
+
static void
tan_test_tonearest (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tan_tonearest);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TONEAREST))
- {
- TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
- TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
- TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
- TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
- TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
- TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
- TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
- TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
- TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
- TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
- }
-
- fesetround (save_round_mode);
-
- END (tan_tonearest);
+ RUN_TEST_LOOP_f_f (tan, tan_tonearest_test_data, FE_TONEAREST);
+ END;
}
+static const struct test_f_f_data tan_towardzero_test_data[] =
+ {
+ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L),
+ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L),
+ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L),
+ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L),
+ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L),
+ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L),
+ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L),
+ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L),
+ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L),
+ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L),
+ };
+
static void
tan_test_towardzero (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tan_towardzero);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_TOWARDZERO))
- {
- TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
- TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
- TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
- TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
- TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
- TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
- TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
- TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
- TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
- TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
- }
-
- fesetround (save_round_mode);
-
- END (tan_towardzero);
+ RUN_TEST_LOOP_f_f (tan, tan_towardzero_test_data, FE_TOWARDZERO);
+ END;
}
+static const struct test_f_f_data tan_downward_test_data[] =
+ {
+ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L),
+ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L),
+ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L),
+ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L),
+ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L),
+ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L),
+ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L),
+ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L),
+ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L),
+ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L),
+ };
+
static void
tan_test_downward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tan_downward);
-
- save_round_mode = fegetround ();
-
- if (!fesetround (FE_DOWNWARD))
- {
- TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
- TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
- TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
- TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
- TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
- TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
- TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
- TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
- TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
- TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
- }
-
- fesetround (save_round_mode);
-
- END (tan_downward);
+ RUN_TEST_LOOP_f_f (tan, tan_downward_test_data, FE_DOWNWARD);
+ END;
}
+static const struct test_f_f_data tan_upward_test_data[] =
+ {
+ TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L),
+ TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L),
+ TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L),
+ TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L),
+ TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L),
+ TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L),
+ TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L),
+ TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L),
+ TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L),
+ TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L),
+ };
+
static void
tan_test_upward (void)
{
- int save_round_mode;
- errno = 0;
- FUNC(tan) (0);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tan_upward);
+ RUN_TEST_LOOP_f_f (tan, tan_upward_test_data, FE_UPWARD);
+ END;
+}
- save_round_mode = fegetround ();
- if (!fesetround (FE_UPWARD))
- {
- TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
- TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
- TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
- TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
- TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
- TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
- TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
- TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
- TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
- TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
- }
+static const struct test_f_f_data tanh_test_data[] =
+ {
+ TEST_f_f (tanh, 0, 0),
+ TEST_f_f (tanh, minus_zero, minus_zero),
- fesetround (save_round_mode);
+#ifndef TEST_INLINE
+ TEST_f_f (tanh, plus_infty, 1),
+ TEST_f_f (tanh, minus_infty, -1),
+#endif
+ TEST_f_f (tanh, qnan_value, qnan_value),
- END (tan_upward);
-}
+ TEST_f_f (tanh, 0.75L, 0.635148952387287319214434357312496495L),
+ TEST_f_f (tanh, -0.75L, -0.635148952387287319214434357312496495L),
+
+ TEST_f_f (tanh, 1.0L, 0.7615941559557648881194582826047935904L),
+ TEST_f_f (tanh, -1.0L, -0.7615941559557648881194582826047935904L),
+ /* 2^-57 */
+ TEST_f_f (tanh, 0x1p-57L, 6.938893903907228377647697925567626953125e-18L),
+ };
static void
tanh_test (void)
{
- errno = 0;
- FUNC(tanh) (0.7L);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tanh);
-
- TEST_f_f (tanh, 0, 0);
- TEST_f_f (tanh, minus_zero, minus_zero);
-
-#ifndef TEST_INLINE
- TEST_f_f (tanh, plus_infty, 1);
- TEST_f_f (tanh, minus_infty, -1);
+ RUN_TEST_LOOP_f_f (tanh, tanh_test_data, );
+ END;
+}
+
+static const struct test_f_f_data tgamma_test_data[] =
+ {
+ TEST_f_f (tgamma, plus_infty, plus_infty),
+ TEST_f_f (tgamma, max_value, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
+ /* tgamma (x) == qNaN plus invalid exception for integer x <= 0. */
+ TEST_f_f (tgamma, -2, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (tgamma, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (tgamma, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (tgamma, qnan_value, qnan_value),
+
+ TEST_f_f (tgamma, 0.5, M_SQRT_PIl),
+ TEST_f_f (tgamma, -0.5, -M_2_SQRT_PIl),
+
+ TEST_f_f (tgamma, 1, 1),
+ TEST_f_f (tgamma, 2, 1),
+ TEST_f_f (tgamma, 3, 2),
+ TEST_f_f (tgamma, 4, 6),
+ TEST_f_f (tgamma, 5, 24),
+ TEST_f_f (tgamma, 6, 120),
+ TEST_f_f (tgamma, 7, 720),
+ TEST_f_f (tgamma, 8, 5040),
+ TEST_f_f (tgamma, 9, 40320),
+ TEST_f_f (tgamma, 10, 362880),
+
+ TEST_f_f (tgamma, 0.7L, 1.29805533264755778568117117915281162L),
+ TEST_f_f (tgamma, 1.2L, 0.918168742399760610640951655185830401L),
+
+ TEST_f_f (tgamma, 1.5L, 8.8622692545275801364908374167057259139877e-01L),
+ TEST_f_f (tgamma, 2.5L, 1.3293403881791370204736256125058588870982e+00L),
+ TEST_f_f (tgamma, 3.5L, 3.3233509704478425511840640312646472177454e+00L),
+ TEST_f_f (tgamma, 4.5L, 1.1631728396567448929144224109426265262109e+01L),
+ TEST_f_f (tgamma, 5.5L, 5.2342777784553520181149008492418193679490e+01L),
+ TEST_f_f (tgamma, 6.5L, 2.8788527781504436099631954670830006523720e+02L),
+ TEST_f_f (tgamma, 7.5L, 1.8712543057977883464760770536039504240418e+03L),
+ TEST_f_f (tgamma, 8.5L, 1.4034407293483412598570577902029628180313e+04L),
+ TEST_f_f (tgamma, 9.5L, 1.1929246199460900708784991216725183953266e+05L),
+ TEST_f_f (tgamma, -1.5L, 2.3632718012073547030642233111215269103967e+00L),
+ TEST_f_f (tgamma, -2.5L, -9.4530872048294188122568932444861076415869e-01L),
+ TEST_f_f (tgamma, -3.5L, 2.7008820585226910892162552127103164690248e-01L),
+ TEST_f_f (tgamma, -4.5L, -6.0019601300504246427027893615784810422774e-02L),
+ TEST_f_f (tgamma, -5.5L, 1.0912654781909862986732344293779056440504e-02L),
+ TEST_f_f (tgamma, -6.5L, -1.6788699664476712287280529682737009908468e-03L),
+ TEST_f_f (tgamma, -7.5L, 2.2384932885968949716374039576982679877958e-04L),
+ TEST_f_f (tgamma, -8.5L, -2.6335215159963470254557693619979623385833e-05L),
+ TEST_f_f (tgamma, -9.5L, 2.7721279115751021320587045915768024616666e-06L),
+ TEST_f_f (tgamma, 0x1p-24L, 1.6777215422784394050795179874582764575261e+07L),
+ TEST_f_f (tgamma, -0x1p-24L, -1.6777216577215723853867349114260580375249e+07L),
+ TEST_f_f (tgamma, 0x1p-53L, 9.0071992547409914227843350984672492007618e+15L),
+ TEST_f_f (tgamma, -0x1p-53L, -9.0071992547409925772156649015329704137860e+15L),
+ TEST_f_f (tgamma, 0x1p-64L, 1.8446744073709551615422784335098467139447e+19L),
+ TEST_f_f (tgamma, -0x1p-64L, -1.8446744073709551616577215664901532860660e+19L),
+ TEST_f_f (tgamma, 0x1p-106L, 8.1129638414606681695789005144063422784335e+31L),
+ TEST_f_f (tgamma, -0x1p-106L, -8.1129638414606681695789005144064577215665e+31L),
+ TEST_f_f (tgamma, 0x1p-113L, 1.0384593717069655257060992658440191422784e+34L),
+ TEST_f_f (tgamma, -0x1p-113L, -1.0384593717069655257060992658440192577216e+34L),
+ TEST_f_f (tgamma, 0x1p-127L, 1.7014118346046923173168730371588410572742e+38L),
+ TEST_f_f (tgamma, -0x1p-127L, -1.7014118346046923173168730371588410572858e+38L),
+#ifdef TEST_FLOAT
+ TEST_f_f (tgamma, 0x1p-128L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-128L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, 0x1p-149L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-149L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+#else
+ TEST_f_f (tgamma, 0x1p-128L, 3.4028236692093846346337460743176821145542e+38L),
+ TEST_f_f (tgamma, -0x1p-128L, -3.4028236692093846346337460743176821145658e+38L),
+ TEST_f_f (tgamma, 0x1p-149L, 7.1362384635297994052914298472474756819137e+44L),
+ TEST_f_f (tgamma, -0x1p-149L, -7.1362384635297994052914298472474756819137e+44L),
#endif
- TEST_f_f (tanh, qnan_value, qnan_value);
-
- TEST_f_f (tanh, 0.75L, 0.635148952387287319214434357312496495L);
- TEST_f_f (tanh, -0.75L, -0.635148952387287319214434357312496495L);
-
- TEST_f_f (tanh, 1.0L, 0.7615941559557648881194582826047935904L);
- TEST_f_f (tanh, -1.0L, -0.7615941559557648881194582826047935904L);
-
- /* 2^-57 */
- TEST_f_f (tanh, 0x1p-57L, 6.938893903907228377647697925567626953125e-18L);
-
- END (tanh);
-}
+#ifndef TEST_FLOAT
+ TEST_f_f (tgamma, 0x1p-1023L, 8.9884656743115795386465259539451236680899e+307L),
+ TEST_f_f (tgamma, -0x1p-1023L, -8.9884656743115795386465259539451236680899e+307L),
+# if !defined TEST_LDOUBLE || LDBL_MAX_EXP <= 1024
+ TEST_f_f (tgamma, 0x1p-1024L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-1024L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, 0x1p-1074L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-1074L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# else
+ TEST_f_f (tgamma, 0x1p-1024L, 1.7976931348623159077293051907890247336180e+308L),
+ TEST_f_f (tgamma, -0x1p-1024L, -1.7976931348623159077293051907890247336180e+308L),
+ TEST_f_f (tgamma, 0x1p-1074L, 2.0240225330731061835249534671891730704956e+323L),
+ TEST_f_f (tgamma, -0x1p-1074L, -2.0240225330731061835249534671891730704956e+323L),
+# endif
+#endif
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_f_f (tgamma, 0x1p-16383L, 5.9486574767861588254287966331400356538172e+4931L),
+ TEST_f_f (tgamma, -0x1p-16383L, -5.9486574767861588254287966331400356538172e+4931L),
+ TEST_f_f (tgamma, 0x1p-16384L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-16384L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, 0x1p-16445L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-16445L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# if LDBL_MANT_DIG >= 113
+ TEST_f_f (tgamma, 0x1p-16494L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ TEST_f_f (tgamma, -0x1p-16494L, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# endif
+#endif
+ TEST_f_f (tgamma, 0x8.00001p0L, 5.0400096882277802019946778420223050233915e+03L),
+ TEST_f_f (tgamma, 0x7.fffff8p0L, 5.0399951558933225045148935487583089307135e+03L),
+ TEST_f_f (tgamma, 0x7.000008p0L, 7.2000064296977505705636258629805621178587e+02L),
+ TEST_f_f (tgamma, 0x6.fffff8p0L, 7.1999935703082425988147448928288557689866e+02L),
+ TEST_f_f (tgamma, 0x6.000008p0L, 1.2000009762487825358530770343720418162783e+02L),
+ TEST_f_f (tgamma, 0x5.fffff8p0L, 1.1999990237520611552119807476573441975106e+02L),
+ TEST_f_f (tgamma, 0x5.000008p0L, 2.4000017236155647574166073485628713443799e+01L),
+ TEST_f_f (tgamma, 0x4.fffff8p0L, 2.3999982763857938712639837029547357501709e+01L),
+ TEST_f_f (tgamma, 0x4.000008p0L, 6.0000035937827461765660468073471093546129e+00L),
+ TEST_f_f (tgamma, 0x3.fffffcp0L, 5.9999982031095793171233994481968816873643e+00L),
+ TEST_f_f (tgamma, 0x3.000004p0L, 2.0000004400179308360529417942462250547999e+00L),
+ TEST_f_f (tgamma, 0x2.fffffcp0L, 1.9999995599822108706107786027549565954046e+00L),
+ TEST_f_f (tgamma, 0x2.000004p0L, 1.0000001007996638509889062631687945799175e+00L),
+ TEST_f_f (tgamma, 0x1.fffffep0L, 9.9999994960018563231526611134590489120697e-01L),
+ TEST_f_f (tgamma, 0x1.000002p0L, 9.9999993119054472483596471908942669644327e-01L),
+ TEST_f_f (tgamma, 0x0.ffffffp0L, 1.0000000344047381790797322460568297132998e+00L),
+ TEST_f_f (tgamma, -0x0.ffffffp0L, -1.6777216422784419250710305882992376932423e+07L),
+ TEST_f_f (tgamma, -0x1.000002p0L, 8.3886075772158332060084424806449513922858e+06L),
+ TEST_f_f (tgamma, -0x1.fffffep0L, 4.1943044613922792026014320172298377770578e+06L),
+ TEST_f_f (tgamma, -0x2.000004p0L, -2.0971515386080557574407223895988378776747e+06L),
+ TEST_f_f (tgamma, -0x2.fffffcp0L, -6.9905087601970247876992248591045142913324e+05L),
+ TEST_f_f (tgamma, -0x3.000004p0L, 6.9905045731381300146131914617735687322025e+05L),
+ TEST_f_f (tgamma, -0x3.fffffcp0L, 1.7476272942159602684441970627092458855771e+05L),
+ TEST_f_f (tgamma, -0x4.000008p0L, -8.7381270578483499672965708923121931082305e+04L),
+ TEST_f_f (tgamma, -0x4.fffff8p0L, -1.7476280884325863043793087474680780379554e+04L),
+ TEST_f_f (tgamma, -0x5.000008p0L, 1.7476252449031389167286893378510439443844e+04L),
+ TEST_f_f (tgamma, -0x5.fffff8p0L, 2.9127137122026653716311560165769071985443e+03L),
+ TEST_f_f (tgamma, -0x6.000008p0L, -2.9127085100239567622341538102130981196910e+03L),
+ TEST_f_f (tgamma, -0x6.fffff8p0L, -4.1610198723079349791939054365613377035519e+02L),
+ TEST_f_f (tgamma, -0x7.000008p0L, 4.1610118737306415004517215226199741948733e+02L),
+ TEST_f_f (tgamma, -0x7.fffff8p0L, 5.2012751504050764429534086402871289946986e+01L),
+ TEST_f_f (tgamma, -0x8.00001p0L, -2.6006296115134418896533598545925084576702e+01L),
+ TEST_f_f (tgamma, -0x9.fffffp0L, 2.8896008370721717567612135720915723136310e-01L),
+ TEST_f_f (tgamma, -0xa.00001p0L, -2.8895878754728051776830454190076999107021e-01L),
+ TEST_f_f (tgamma, -0x13.ffffep0L, 2.1550026214525536756224040483579183652119e-13L),
+ TEST_f_f (tgamma, -0x14.00002p0L, -2.1549777908265594916405421768142757507179e-13L),
+ TEST_f_f (tgamma, -0x1d.ffffep0L, 1.9765721589464867957912772592816027583176e-27L),
+ TEST_f_f (tgamma, -0x1e.00002p0L, -1.9765463890341964384070157599286498212650e-27L),
+ TEST_f_f (tgamma, -0x27.ffffcp0L, 3.2129279441390812141195076945616975790225e-43L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_f_f (tgamma, -0x28.00004p0L, -3.2128372159115252365699015758097981155793e-43L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_f_f (tgamma, -0x28.ffffcp0L, -7.8364103489619817539676737414096652170685e-45L, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_f_f (tgamma, -0x29.00004p0L, 7.8361876024016854597745353972619195760515e-45L, UNDERFLOW_EXCEPTION_FLOAT),
+#ifdef TEST_FLOAT
+ TEST_f_f (tgamma, -0x29.ffffcp0L, plus_zero, UNDERFLOW_EXCEPTION_FLOAT),
+ TEST_f_f (tgamma, -0x2a.00004p0L, minus_zero, UNDERFLOW_EXCEPTION_FLOAT),
+#else
+ TEST_f_f (tgamma, -0x29.ffffcp0L, 1.8658121573125798145204120066590953505132e-46L),
+ TEST_f_f (tgamma, -0x2a.00004p0L, -1.8657587834931410688246126853566488626385e-46L),
+#endif
+#ifndef TEST_FLOAT
+ TEST_f_f (tgamma, 0x8.0000000000008p0L, 5.0400000000000180457125667322294144477136e+03L),
+ TEST_f_f (tgamma, 0x7.ffffffffffffcp0L, 5.0399999999999909771437166339103165198442e+03L),
+ TEST_f_f (tgamma, 0x7.0000000000004p0L, 7.2000000000000119762397445457359071259652e+02L),
+ TEST_f_f (tgamma, 0x6.ffffffffffffcp0L, 7.1999999999999880237602554542848858572672e+02L),
+ TEST_f_f (tgamma, 0x6.0000000000004p0L, 1.2000000000000018184042734842640022086408e+02L),
+ TEST_f_f (tgamma, 0x5.ffffffffffffcp0L, 1.1999999999999981815957265157389249327533e+02L),
+ TEST_f_f (tgamma, 0x5.0000000000004p0L, 2.4000000000000032104829055124673225982803e+01L),
+ TEST_f_f (tgamma, 0x4.ffffffffffffcp0L, 2.3999999999999967895170944875373910918544e+01L),
+ TEST_f_f (tgamma, 0x4.0000000000004p0L, 6.0000000000000066939396342309789716341613e+00L),
+ TEST_f_f (tgamma, 0x3.ffffffffffffep0L, 5.9999999999999966530301828845138185025345e+00L),
+ TEST_f_f (tgamma, 0x3.0000000000002p0L, 2.0000000000000008195971324717875960213536e+00L),
+ TEST_f_f (tgamma, 0x2.ffffffffffffep0L, 1.9999999999999991804028675282128956223990e+00L),
+ TEST_f_f (tgamma, 0x2.0000000000002p0L, 1.0000000000000001877539613108624482361963e+00L),
+ TEST_f_f (tgamma, 0x1.fffffffffffffp0L, 9.9999999999999990612301934456883679778984e-01L),
+ TEST_f_f (tgamma, 0x1.0000000000001p0L, 9.9999999999999987183237573039992418700531e-01L),
+ TEST_f_f (tgamma, 0x0.fffffffffffff8p0L, 1.0000000000000000640838121348000744796665e+00L),
+ TEST_f_f (tgamma, -0x0.fffffffffffff8p0L, -9.0071992547409924227843350984672961392521e+15L),
+ TEST_f_f (tgamma, -0x1.0000000000001p0L, 4.5035996273704955772156649015331740980405e+15L),
+ TEST_f_f (tgamma, -0x1.fffffffffffffp0L, 2.2517998136852484613921675492337776673289e+15L),
+ TEST_f_f (tgamma, -0x2.0000000000002p0L, -1.1258999068426235386078324507668462444260e+15L),
+ TEST_f_f (tgamma, -0x2.ffffffffffffep0L, -3.7529996894754154268627807196691509198813e+14L),
+ TEST_f_f (tgamma, -0x3.0000000000002p0L, 3.7529996894754112398038859470009084971438e+14L),
+ TEST_f_f (tgamma, -0x3.ffffffffffffep0L, 9.3824992236885396088236184658402406857503e+13L),
+ TEST_f_f (tgamma, -0x4.0000000000004p0L, -4.6912496118442603911763815341745722862351e+13L),
+ TEST_f_f (tgamma, -0x4.ffffffffffffcp0L, -9.3824992236885475509805702650262155809819e+12L),
+ TEST_f_f (tgamma, -0x5.0000000000004p0L, 9.3824992236885191156860964016850034672946e+12L),
+ TEST_f_f (tgamma, -0x5.ffffffffffffcp0L, 1.5637498706147581566449098589862357835505e+12L),
+ TEST_f_f (tgamma, -0x6.0000000000004p0L, -1.5637498706147529544662012521330708016396e+12L),
+ TEST_f_f (tgamma, -0x6.ffffffffffffcp0L, -2.2339283865925119357965832452642909859289e+11L),
+ TEST_f_f (tgamma, -0x7.0000000000004p0L, 2.2339283865925039372192897706214475877342e+11L),
+ TEST_f_f (tgamma, -0x7.ffffffffffffcp0L, 2.7924104832406402297655703264222230055898e+10L),
+ TEST_f_f (tgamma, -0x8.0000000000008p0L, -1.3962052416203121511868106259843527348026e+10L),
+ TEST_f_f (tgamma, -0x9.ffffffffffff8p0L, 1.5513391573559147700413058496716749249803e+08L),
+ TEST_f_f (tgamma, -0xa.0000000000008p0L, -1.5513391573559018084419393002828541166901e+08L),
+ TEST_f_f (tgamma, -0x13.ffffffffffffp0L, 1.1569515572952029402736625857313236848570e-04L),
+ TEST_f_f (tgamma, -0x14.000000000001p0L, -1.1569515572951781096476686854873801225397e-04L),
+ TEST_f_f (tgamma, -0x1d.ffffffffffffp0L, 1.0611571800204311628217068863959963842891e-18L),
+ TEST_f_f (tgamma, -0x1e.000000000001p0L, -1.0611571800204053929094168642022073530425e-18L),
+ TEST_f_f (tgamma, -0x27.fffffffffffep0L, 1.7249032006742266376460389310340465554361e-34L),
+ TEST_f_f (tgamma, -0x28.000000000002p0L, -1.7249032006741359094184881234822934593822e-34L),
+ TEST_f_f (tgamma, -0x28.fffffffffffep0L, -4.2070809772542120404320040128839297118648e-36L),
+ TEST_f_f (tgamma, -0x29.000000000002p0L, 4.2070809772539892938717205103652583609422e-36L),
+ TEST_f_f (tgamma, -0x29.fffffffffffep0L, 1.0016859469652887505173040814397197718981e-37L),
+ TEST_f_f (tgamma, -0x2a.000000000002p0L, -1.0016859469652353766978684241048308120274e-37L),
+ TEST_f_f (tgamma, -0x31.fffffffffffep0L, 4.6273774273632946947805289899230181990085e-51L),
+ TEST_f_f (tgamma, -0x32.000000000002p0L, -4.6273774273630367887073532197576655720178e-51L),
+ TEST_f_f (tgamma, -0x63.fffffffffffcp0L, 7.5400833348840965463348754984345825364294e-145L),
+ TEST_f_f (tgamma, -0x64.000000000004p0L, -7.5400833348831085791638490135462230991587e-145L),
+ TEST_f_f (tgamma, -0x95.fffffffffff8p0L, 6.1582369322723207086020016423767264008839e-250L),
+ TEST_f_f (tgamma, -0x96.000000000008p0L, -6.1582369322705655439003240743176243138734e-250L),
+ TEST_f_f (tgamma, -0xb4.fffffffffff8p0L, -9.6760879059917574597728750098636253931457e-319L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb5.000000000008p0L, 9.6760879059888966544677044221698800670218e-319L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb5.fffffffffff8p0L, 5.3165318164789884455066481673086605454904e-321L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb6.000000000008p0L, -5.3165318164774149139661976747137185876909e-321L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb6.fffffffffff8p0L, -2.9052086428846935908287469917922960610289e-323L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb7.000000000008p0L, 2.9052086428838328351126988236541632950925e-323L, UNDERFLOW_EXCEPTION_DOUBLE),
+# if !defined TEST_LDOUBLE || LDBL_MAX_EXP <= 1024
+ TEST_f_f (tgamma, -0xb7.fffffffffff8p0L, plus_zero, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb8.000000000008p0L, minus_zero, UNDERFLOW_EXCEPTION_DOUBLE),
+# else
+ TEST_f_f (tgamma, -0xb7.fffffffffff8p0L, 1.5789177406982032823826953250736039527543e-325L),
+ TEST_f_f (tgamma, -0xb8.000000000008p0L, -1.5789177406977349925854817486109369828857e-325L),
+# endif
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_f_f (tgamma, 0x8.00000000000000000000000004p0L, 5.0400000000000000000000000000020034765587e+03L),
+ TEST_f_f (tgamma, 0x7.fffffffffffffffffffffffffep0L, 5.0399999999999999999999999999989982617206e+03L),
+ TEST_f_f (tgamma, 0x7.00000000000000000000000002p0L, 7.2000000000000000000000000000013296297113e+02L),
+ TEST_f_f (tgamma, 0x6.fffffffffffffffffffffffffep0L, 7.1999999999999999999999999999986703702887e+02L),
+ TEST_f_f (tgamma, 0x6.00000000000000000000000002p0L, 1.2000000000000000000000000000002018834292e+02L),
+ TEST_f_f (tgamma, 0x5.fffffffffffffffffffffffffep0L, 1.1999999999999999999999999999997981165708e+02L),
+ TEST_f_f (tgamma, 0x5.00000000000000000000000002p0L, 2.4000000000000000000000000000003564352042e+01L),
+ TEST_f_f (tgamma, 0x4.fffffffffffffffffffffffffep0L, 2.3999999999999999999999999999996435647958e+01L),
+ TEST_f_f (tgamma, 0x4.00000000000000000000000002p0L, 6.0000000000000000000000000000007431765907e+00L),
+ TEST_f_f (tgamma, 0x3.ffffffffffffffffffffffffffp0L, 5.9999999999999999999999999999996284117046e+00L),
+ TEST_f_f (tgamma, 0x3.00000000000000000000000001p0L, 2.0000000000000000000000000000000909935607e+00L),
+ TEST_f_f (tgamma, 0x2.ffffffffffffffffffffffffffp0L, 1.9999999999999999999999999999999090064393e+00L),
+ TEST_f_f (tgamma, 0x2.00000000000000000000000001p0L, 1.0000000000000000000000000000000208448771e+00L),
+ TEST_f_f (tgamma, 0x1.ffffffffffffffffffffffffff8p0L, 9.9999999999999999999999999999998957756146e-01L),
+ TEST_f_f (tgamma, 0x1.000000000000000000000000008p0L, 9.9999999999999999999999999999998577053525e-01L),
+ TEST_f_f (tgamma, 0x0.ffffffffffffffffffffffffffcp0L, 1.0000000000000000000000000000000071147324e+00L),
+ TEST_f_f (tgamma, -0x0.ffffffffffffffffffffffffffcp0L, -8.1129638414606681695789005144064422784335e+31L),
+ TEST_f_f (tgamma, -0x1.000000000000000000000000008p0L, 4.0564819207303340847894502572031577215665e+31L),
+ TEST_f_f (tgamma, -0x1.ffffffffffffffffffffffffff8p0L, 2.0282409603651670423947251286016461392168e+31L),
+ TEST_f_f (tgamma, -0x2.00000000000000000000000001p0L, -1.0141204801825835211973625643007538607832e+31L),
+ TEST_f_f (tgamma, -0x2.ffffffffffffffffffffffffffp0L, -3.3804016006086117373245418810028760196114e+30L),
+ TEST_f_f (tgamma, -0x3.00000000000000000000000001p0L, 3.3804016006086117373245418810024573137219e+30L),
+ TEST_f_f (tgamma, -0x3.ffffffffffffffffffffffffffp0L, 8.4510040015215293433113547025072942156952e+29L),
+ TEST_f_f (tgamma, -0x4.00000000000000000000000002p0L, -4.2255020007607646716556773512527057843048e+29L),
+ TEST_f_f (tgamma, -0x4.fffffffffffffffffffffffffep0L, -8.4510040015215293433113547025080884313904e+28L),
+ TEST_f_f (tgamma, -0x5.00000000000000000000000002p0L, 8.4510040015215293433113547025052449019430e+28L),
+ TEST_f_f (tgamma, -0x5.fffffffffffffffffffffffffep0L, 1.4085006669202548905518924504180378867132e+28L),
+ TEST_f_f (tgamma, -0x6.00000000000000000000000002p0L, -1.4085006669202548905518924504175176688423e+28L),
+ TEST_f_f (tgamma, -0x6.fffffffffffffffffffffffffep0L, -2.0121438098860784150741320720257967542615e+27L),
+ TEST_f_f (tgamma, -0x7.00000000000000000000000002p0L, 2.0121438098860784150741320720249968965322e+27L),
+ TEST_f_f (tgamma, -0x7.fffffffffffffffffffffffffep0L, 2.5151797623575980188426650900322769448110e+26L),
+ TEST_f_f (tgamma, -0x8.00000000000000000000000004p0L, -1.2575898811787990094213325450153421028080e+26L),
+ TEST_f_f (tgamma, -0x9.fffffffffffffffffffffffffcp0L, 1.3973220901986655660237028277960625420495e+24L),
+ TEST_f_f (tgamma, -0xa.00000000000000000000000004p0L, -1.3973220901986655660237028277947663821128e+24L),
+ TEST_f_f (tgamma, -0x13.fffffffffffffffffffffffff8p0L, 1.0420893204640670202556853709074896123293e+12L),
+ TEST_f_f (tgamma, -0x14.00000000000000000000000008p0L, -1.0420893204640670202556853709050065497299e+12L),
+ TEST_f_f (tgamma, -0x1d.fffffffffffffffffffffffff8p0L, 9.5580541610429641982963434151488827190079e-03L),
+ TEST_f_f (tgamma, -0x1e.00000000000000000000000008p0L, -9.5580541610429641982963434151231128067179e-03L),
+ TEST_f_f (tgamma, -0x27.fffffffffffffffffffffffffp0L, 1.5536546823612837336494536911280147806523e-18L),
+ TEST_f_f (tgamma, -0x28.0000000000000000000000001p0L, -1.5536546823612837336494536911189419578973e-18L),
+ TEST_f_f (tgamma, -0x28.fffffffffffffffffffffffffp0L, -3.7894016642958139845108626612879138384405e-20L),
+ TEST_f_f (tgamma, -0x29.0000000000000000000000001p0L, 3.7894016642958139845108626612656391824122e-20L),
+ TEST_f_f (tgamma, -0x29.fffffffffffffffffffffffffp0L, 9.0223849149900332964544349078285357440663e-22L),
+ TEST_f_f (tgamma, -0x2a.0000000000000000000000001p0L, -9.0223849149900332964544349077751619246306e-22L),
+ TEST_f_f (tgamma, -0x31.fffffffffffffffffffffffffp0L, 4.1679710515150795310771069868348482819424e-35L),
+ TEST_f_f (tgamma, -0x32.0000000000000000000000001p0L, -4.1679710515150795310771069868090576746248e-35L),
+ TEST_f_f (tgamma, -0x63.ffffffffffffffffffffffffep0L, 6.7915032994648558610510614163560656864280e-129L),
+ TEST_f_f (tgamma, -0x64.0000000000000000000000002p0L, -6.7915032994648558610510614162572689693253e-129L),
+ TEST_f_f (tgamma, -0x95.ffffffffffffffffffffffffcp0L, 5.5468467106873795353190582463444660395353e-234L),
+ TEST_f_f (tgamma, -0x96.0000000000000000000000004p0L, -5.5468467106873795353190582461689495693675e-234L),
+ TEST_f_f (tgamma, -0xb4.ffffffffffffffffffffffffcp0L, -8.7154451775644399729745472278589884205029e-303L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb5.0000000000000000000000004p0L, 8.7154451775644399729745472275729078899858e-303L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb5.ffffffffffffffffffffffffcp0L, 4.7887061415189230620739270482742524864974e-305L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb6.0000000000000000000000004p0L, -4.7887061415189230620739270481168993324524e-305L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb6.ffffffffffffffffffffffffcp0L, -2.6167793123054224382917634143575601407067e-307L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb7.0000000000000000000000004p0L, 2.6167793123054224382917634142714845691019e-307L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+ TEST_f_f (tgamma, -0xb7.ffffffffffffffffffffffffcp0L, 1.4221626697312078468976975078030462044826e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xb8.0000000000000000000000004p0L, -1.4221626697312078468976975077562172247612e-309L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbb.ffffffffffffffffffffffffcp0L, 1.1756150745511026776007338998283058108448e-318L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbc.0000000000000000000000004p0L, -1.1756150745511026776007338997894360215107e-318L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbc.ffffffffffffffffffffffffcp0L, -6.2201855796354639026493857133773832713743e-321L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbd.0000000000000000000000004p0L, 6.2201855796354639026493857131715153125175e-321L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbd.ffffffffffffffffffffffffcp0L, 3.2737818840186652119207293228302560914295e-323L, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbe.0000000000000000000000004p0L, -3.2737818840186652119207293227217957948294e-323L, UNDERFLOW_EXCEPTION_DOUBLE),
+# if LDBL_MAX_EXP <= 1024
+ TEST_f_f (tgamma, -0xbe.ffffffffffffffffffffffffcp0L, minus_zero, UNDERFLOW_EXCEPTION_DOUBLE),
+ TEST_f_f (tgamma, -0xbf.0000000000000000000000004p0L, plus_zero, UNDERFLOW_EXCEPTION_DOUBLE),
+# else
+ TEST_f_f (tgamma, -0xbe.ffffffffffffffffffffffffcp0L, -1.7140219288055838805867692789687487834686e-325L),
+ TEST_f_f (tgamma, -0xbf.0000000000000000000000004p0L, 1.7140219288055838805867692789119066543632e-325L),
+# endif
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_f_f (tgamma, 0x8.000000000000001p0L, 5.0400000000000000088113830892247051102283e+03L),
+ TEST_f_f (tgamma, 0x7.fffffffffffffff8p0L, 5.0399999999999999955943084553876474508520e+03L),
+ TEST_f_f (tgamma, 0x7.0000000000000008p0L, 7.2000000000000000058477733127664675369681e+02L),
+ TEST_f_f (tgamma, 0x6.fffffffffffffff8p0L, 7.1999999999999999941522266872335324679893e+02L),
+ TEST_f_f (tgamma, 0x6.0000000000000008p0L, 1.2000000000000000008878927116622375680433e+02L),
+ TEST_f_f (tgamma, 0x5.fffffffffffffff8p0L, 1.1999999999999999991121072883377624326546e+02L),
+ TEST_f_f (tgamma, 0x5.0000000000000008p0L, 2.4000000000000000015676186062072582846211e+01L),
+ TEST_f_f (tgamma, 0x4.fffffffffffffff8p0L, 2.3999999999999999984323813937927417165027e+01L),
+ TEST_f_f (tgamma, 0x4.0000000000000008p0L, 6.0000000000000000032685252120268430507939e+00L),
+ TEST_f_f (tgamma, 0x3.fffffffffffffffcp0L, 5.9999999999999999983657373939865784753909e+00L),
+ TEST_f_f (tgamma, 0x3.0000000000000004p0L, 2.0000000000000000004001939123397399171482e+00L),
+ TEST_f_f (tgamma, 0x2.fffffffffffffffcp0L, 1.9999999999999999995998060876602600829690e+00L),
+ TEST_f_f (tgamma, 0x2.0000000000000004p0L, 1.0000000000000000000916767389213195151634e+00L),
+ TEST_f_f (tgamma, 0x1.fffffffffffffffep0L, 9.9999999999999999995416163053934024243282e-01L),
+ TEST_f_f (tgamma, 0x1.0000000000000002p0L, 9.9999999999999999993741815221210931418291e-01L),
+ TEST_f_f (tgamma, 0x0.ffffffffffffffffp0L, 1.0000000000000000000312909238939453429173e+00L),
+ TEST_f_f (tgamma, -0x0.ffffffffffffffffp0L, -1.8446744073709551616422784335098467139470e+19L),
+ TEST_f_f (tgamma, -0x1.0000000000000002p0L, 9.2233720368547758075772156649015328607596e+18L),
+ TEST_f_f (tgamma, -0x1.fffffffffffffffep0L, 4.6116860184273879044613921675492335697983e+18L),
+ TEST_f_f (tgamma, -0x2.0000000000000004p0L, -2.3058430092136939515386078324507664305064e+18L),
+ TEST_f_f (tgamma, -0x2.fffffffffffffffcp0L, -7.6861433640456465087601961140530007887063e+17L),
+ TEST_f_f (tgamma, -0x3.0000000000000004p0L, 7.6861433640456465045731372192803325462836e+17L),
+ TEST_f_f (tgamma, -0x3.fffffffffffffffcp0L, 1.9215358410114116272942156951799168638773e+17L),
+ TEST_f_f (tgamma, -0x4.0000000000000008p0L, -9.6076792050570581270578430482008313684602e+16L),
+ TEST_f_f (tgamma, -0x4.fffffffffffffff8p0L, -1.9215358410114116280884313903598337283601e+16L),
+ TEST_f_f (tgamma, -0x5.0000000000000008p0L, 1.9215358410114116252449019429734996071487e+16L),
+ TEST_f_f (tgamma, -0x5.fffffffffffffff8p0L, 3.2025597350190193803788671320812043622696e+15L),
+ TEST_f_f (tgamma, -0x6.0000000000000008p0L, -3.2025597350190193751766884234743511972877e+15L),
+ TEST_f_f (tgamma, -0x6.fffffffffffffff8p0L, -4.5750853357414562579675426149912896787735e+14L),
+ TEST_f_f (tgamma, -0x7.0000000000000008p0L, 4.5750853357414562499689653215166468353753e+14L),
+ TEST_f_f (tgamma, -0x7.fffffffffffffff8p0L, 5.7188566696768203227694481100089533685959e+13L),
+ TEST_f_f (tgamma, -0x8.000000000000001p0L, -2.8594283348384101534210280804672371201060e+13L),
+ TEST_f_f (tgamma, -0x9.fffffffffffffffp0L, 3.1771425942649001828476427167843945971988e+11L),
+ TEST_f_f (tgamma, -0xa.000000000000001p0L, -3.1771425942649001698860433502350057763905e+11L),
+ TEST_f_f (tgamma, -0x13.ffffffffffffffep0L, 2.3694367893405502075347562184931828448654e-01L),
+ TEST_f_f (tgamma, -0x14.000000000000002p0L, -2.3694367893405501827041302245929389013031e-01L),
+ TEST_f_f (tgamma, -0x1d.ffffffffffffffep0L, 2.1732499046818166459536268654187775086902e-15L),
+ TEST_f_f (tgamma, -0x1e.000000000000002p0L, -2.1732499046818166201837145753965837196590e-15L),
+ TEST_f_f (tgamma, -0x27.ffffffffffffffcp0L, 3.5326017549807232935581894777156474496719e-31L),
+ TEST_f_f (tgamma, -0x28.000000000000004p0L, -3.5326017549807232028299619269080956965758e-31L),
+ TEST_f_f (tgamma, -0x28.ffffffffffffffcp0L, -8.6161018414163982777002940498289948893044e-33L),
+ TEST_f_f (tgamma, -0x29.000000000000004p0L, 8.6161018414163980549537337663264762179535e-33L),
+ TEST_f_f (tgamma, -0x29.ffffffffffffffcp0L, 2.0514528193848567329552463626090806737389e-34L),
+ TEST_f_f (tgamma, -0x2a.000000000000004p0L, -2.0514528193848566795814269269517457847791e-34L),
+ TEST_f_f (tgamma, -0x31.ffffffffffffffcp0L, 9.4768689712397635680446279661359728835046e-48L),
+ TEST_f_f (tgamma, -0x32.000000000000004p0L, -9.4768689712397633101385547903658075308777e-48L),
+ TEST_f_f (tgamma, -0x63.ffffffffffffff8p0L, 1.5442090669841618542494279375256856430049e-141L),
+ TEST_f_f (tgamma, -0x64.000000000000008p0L, -1.5442090669841617554527108348771968070612e-141L),
+ TEST_f_f (tgamma, -0x95.ffffffffffffffp0L, 1.2612069237291916400144732227892704713839e-246L),
+ TEST_f_f (tgamma, -0x96.00000000000001p0L, -1.2612069237291914644980030550324645611752e-246L),
+ TEST_f_f (tgamma, -0xb4.ffffffffffffffp0L, -1.9816628031468191243385005680879281767694e-315L),
+ TEST_f_f (tgamma, -0xb5.00000000000001p0L, 1.9816628031468188382579700510291588022368e-315L),
+ TEST_f_f (tgamma, -0xb5.ffffffffffffffp0L, 1.0888257160147357826865964233809723297472e-317L),
+ TEST_f_f (tgamma, -0xb6.00000000000001p0L, -1.0888257160147356253334423783317128355514e-317L),
+ TEST_f_f (tgamma, -0xb6.ffffffffffffffp0L, -5.9498673006269714905418984659220067091260e-320L),
+ TEST_f_f (tgamma, -0xb7.00000000000001p0L, 5.9498673006269706297861824177538685763601e-320L),
+ TEST_f_f (tgamma, -0xb7.ffffffffffffffp0L, 3.2336235329494410277123118903958061569834e-322L),
+ TEST_f_f (tgamma, -0xb8.00000000000001p0L, -3.2336235329494405594225146768193434900135e-322L),
+ TEST_f_f (tgamma, -0xbb.ffffffffffffffp0L, 2.6730392040715350119087465463119939092815e-331L),
+ TEST_f_f (tgamma, -0xbc.00000000000001p0L, -2.6730392040715346232108532050343031951651e-331L),
+ TEST_f_f (tgamma, -0xbc.ffffffffffffffp0L, -1.4143064571807063556111222197839950086445e-333L),
+ TEST_f_f (tgamma, -0xbd.00000000000001p0L, 1.4143064571807061497431633629389135273431e-333L),
+ TEST_f_f (tgamma, -0xbd.ffffffffffffffp0L, 7.4437181956879281879706555863416819210399e-336L),
+ TEST_f_f (tgamma, -0xbe.00000000000001p0L, -7.4437181956879271033676895858841525581153e-336L),
+ TEST_f_f (tgamma, -0xbe.ffffffffffffffp0L, -3.8972346574282346536709453101948570578636e-338L),
+ TEST_f_f (tgamma, -0xbf.00000000000001p0L, 3.8972346574282340852496542564155275274974e-338L),
+ TEST_f_f (tgamma, -0xf9.ffffffffffffffp0L, 2.2289142548411573883553287678043297937797e-476L),
+ TEST_f_f (tgamma, -0xfa.00000000000001p0L, -2.2289142548411570466476165308364665814265e-476L),
+ TEST_f_f (tgamma, -0x1f3.fffffffffffffep0L, 2.9528489142763141594943668922610562530068e-1118L),
+ TEST_f_f (tgamma, -0x1f4.00000000000002p0L, -2.9528489142763131406565394149878256133744e-1118L),
+ TEST_f_f (tgamma, -0x2ed.fffffffffffffcp0L, 6.9801511765871818502006905472380418430269e-1817L),
+ TEST_f_f (tgamma, -0x2ee.00000000000004p0L, -6.9801511765871767194421856376592926002995e-1817L),
+ TEST_f_f (tgamma, -0x3e7.fffffffffffffcp0L, 4.4768809295877296071892611539415773519036e-2552L),
+ TEST_f_f (tgamma, -0x3e8.00000000000004p0L, -4.4768809295877261735541135972060089530309e-2552L),
+ TEST_f_f (tgamma, -0x4e1.fffffffffffff8p0L, 5.4651488569236507565341414077911790252381e-3315L),
+ TEST_f_f (tgamma, -0x4e2.00000000000008p0L, -5.4651488569236421026544487194247355967789e-3315L),
+ TEST_f_f (tgamma, -0x5db.fffffffffffff8p0L, 1.8718211510339187689122114747834510481993e-4099L),
+ TEST_f_f (tgamma, -0x5dc.00000000000008p0L, -1.8718211510339157291960718369454861898499e-4099L),
+ TEST_f_f (tgamma, -0x6d5.fffffffffffff8p0L, 4.2925786447266492555651378780094011518063e-4902L),
+ TEST_f_f (tgamma, -0x6d6.00000000000008p0L, -4.2925786447266421378134368786479937285900e-4902L),
+ TEST_f_f (tgamma, -0x6e2.fffffffffffff8p0L, -2.8229173528168668283609231628661510187536e-4944L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e3.00000000000008p0L, 2.8229173528168621428945467532322397890424e-4944L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e3.fffffffffffff8p0L, 1.6002932839097884515524894602387278842659e-4947L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e4.00000000000008p0L, -1.6002932839097857951909742110188634438017e-4947L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e4.fffffffffffff8p0L, -9.0668174725767051085164382743343408095146e-4951L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e5.00000000000008p0L, 9.0668174725766900571689083050287838090189e-4951L, UNDERFLOW_EXCEPTION),
+# if LDBL_MANT_DIG <= 64
+ TEST_f_f (tgamma, -0x6e5.fffffffffffff8p0L, plus_zero, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e6.00000000000008p0L, minus_zero, UNDERFLOW_EXCEPTION),
+# else
+ TEST_f_f (tgamma, -0x6e5.fffffffffffff8p0L, 5.1340982290921319983501912122292601780326e-4954L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e6.00000000000008p0L, -5.1340982290921234748578193083614111497314e-4954L, UNDERFLOW_EXCEPTION),
+# endif
+# if LDBL_MANT_DIG >= 113
+ TEST_f_f (tgamma, 0x8.0000000000000000000000000008p0L, 5.0400000000000000000000000000000156521606e+03L),
+ TEST_f_f (tgamma, 0x7.fffffffffffffffffffffffffffcp0L, 5.0399999999999999999999999999999921739197e+03L),
+ TEST_f_f (tgamma, 0x7.0000000000000000000000000004p0L, 7.2000000000000000000000000000000103877321e+02L),
+ TEST_f_f (tgamma, 0x6.fffffffffffffffffffffffffffcp0L, 7.1999999999999999999999999999999896122679e+02L),
+ TEST_f_f (tgamma, 0x6.0000000000000000000000000004p0L, 1.2000000000000000000000000000000015772143e+02L),
+ TEST_f_f (tgamma, 0x5.fffffffffffffffffffffffffffcp0L, 1.1999999999999999999999999999999984227857e+02L),
+ TEST_f_f (tgamma, 0x5.0000000000000000000000000004p0L, 2.4000000000000000000000000000000027846500e+01L),
+ TEST_f_f (tgamma, 0x4.fffffffffffffffffffffffffffcp0L, 2.3999999999999999999999999999999972153500e+01L),
+ TEST_f_f (tgamma, 0x4.0000000000000000000000000004p0L, 6.0000000000000000000000000000000058060671e+00L),
+ TEST_f_f (tgamma, 0x3.fffffffffffffffffffffffffffep0L, 5.9999999999999999999999999999999970969664e+00L),
+ TEST_f_f (tgamma, 0x3.0000000000000000000000000002p0L, 2.0000000000000000000000000000000007108872e+00L),
+ TEST_f_f (tgamma, 0x2.fffffffffffffffffffffffffffep0L, 1.9999999999999999999999999999999992891128e+00L),
+ TEST_f_f (tgamma, 0x2.0000000000000000000000000002p0L, 1.0000000000000000000000000000000001628506e+00L),
+ TEST_f_f (tgamma, 0x1.ffffffffffffffffffffffffffffp0L, 9.9999999999999999999999999999999991857470e-01L),
+ TEST_f_f (tgamma, 0x1.0000000000000000000000000001p0L, 9.9999999999999999999999999999999988883231e-01L),
+ TEST_f_f (tgamma, 0x0.ffffffffffffffffffffffffffff8p0L, 1.0000000000000000000000000000000000555838e+00L),
+ TEST_f_f (tgamma, -0x0.ffffffffffffffffffffffffffff8p0L, -1.0384593717069655257060992658440192422784e+34L),
+ TEST_f_f (tgamma, -0x1.0000000000000000000000000001p0L, 5.1922968585348276285304963292200955772157e+33L),
+ TEST_f_f (tgamma, -0x1.ffffffffffffffffffffffffffffp0L, 2.5961484292674138142652481646100484613922e+33L),
+ TEST_f_f (tgamma, -0x2.0000000000000000000000000002p0L, -1.2980742146337069071326240823050235386078e+33L),
+ TEST_f_f (tgamma, -0x2.fffffffffffffffffffffffffffep0L, -4.3269140487790230237754136076834154268628e+32L),
+ TEST_f_f (tgamma, -0x3.0000000000000000000000000002p0L, 4.3269140487790230237754136076834112398039e+32L),
+ TEST_f_f (tgamma, -0x3.fffffffffffffffffffffffffffep0L, 1.0817285121947557559438534019208539608824e+32L),
+ TEST_f_f (tgamma, -0x4.0000000000000000000000000004p0L, -5.4086425609737787797192670096042603911764e+31L),
+ TEST_f_f (tgamma, -0x4.fffffffffffffffffffffffffffcp0L, -1.0817285121947557559438534019208547550981e+31L),
+ TEST_f_f (tgamma, -0x5.0000000000000000000000000004p0L, 1.0817285121947557559438534019208519115686e+31L),
+ TEST_f_f (tgamma, -0x5.fffffffffffffffffffffffffffcp0L, 1.8028808536579262599064223365347581566449e+30L),
+ TEST_f_f (tgamma, -0x6.0000000000000000000000000004p0L, -1.8028808536579262599064223365347529544662e+30L),
+ TEST_f_f (tgamma, -0x6.fffffffffffffffffffffffffffcp0L, -2.5755440766541803712948890521925119357966e+29L),
+ TEST_f_f (tgamma, -0x7.0000000000000000000000000004p0L, 2.5755440766541803712948890521925039372193e+29L),
+ TEST_f_f (tgamma, -0x7.fffffffffffffffffffffffffffcp0L, 3.2194300958177254641186113152406402297656e+28L),
+ TEST_f_f (tgamma, -0x8.0000000000000000000000000008p0L, -1.6097150479088627320593056576203121511868e+28L),
+ TEST_f_f (tgamma, -0x9.fffffffffffffffffffffffffff8p0L, 1.7885722754542919245103396195781369922635e+26L),
+ TEST_f_f (tgamma, -0xa.0000000000000000000000000008p0L, -1.7885722754542919245103396195781240306642e+26L),
+ TEST_f_f (tgamma, -0x13.fffffffffffffffffffffffffffp0L, 1.3338743301940057859272772747600099590309e+14L),
+ TEST_f_f (tgamma, -0x14.000000000000000000000000001p0L, -1.3338743301940057859272772747599851284049e+14L),
+ TEST_f_f (tgamma, -0x1d.fffffffffffffffffffffffffffp0L, 1.2234309326134994173819319571374205986026e+00L),
+ TEST_f_f (tgamma, -0x1e.000000000000000000000000001p0L, -1.2234309326134994173819319571373948286903e+00L),
+ TEST_f_f (tgamma, -0x27.ffffffffffffffffffffffffffep0L, 1.9886779934224431790713007246380976767855e-16L),
+ TEST_f_f (tgamma, -0x28.000000000000000000000000002p0L, -1.9886779934224431790713007246380069485580e-16L),
+ TEST_f_f (tgamma, -0x28.ffffffffffffffffffffffffffep0L, -4.8504341302986419001739042064343853066259e-18L),
+ TEST_f_f (tgamma, -0x29.000000000000000000000000002p0L, 4.8504341302986419001739042064341625600656e-18L),
+ TEST_f_f (tgamma, -0x29.ffffffffffffffffffffffffffep0L, 1.1548652691187242619461676681986633377063e-19L),
+ TEST_f_f (tgamma, -0x2a.000000000000000000000000002p0L, -1.1548652691187242619461676681986099638869e-19L),
+ TEST_f_f (tgamma, -0x31.ffffffffffffffffffffffffffep0L, 5.3350029459393017997786969431322287652396e-33L),
+ TEST_f_f (tgamma, -0x32.000000000000000000000000002p0L, -5.3350029459393017997786969431319708591664e-33L),
+ TEST_f_f (tgamma, -0x63.ffffffffffffffffffffffffffcp0L, 8.6931242233150155021453586128730281632676e-127L),
+ TEST_f_f (tgamma, -0x64.000000000000000000000000004p0L, -8.6931242233150155021453586128720401960966e-127L),
+ TEST_f_f (tgamma, -0x95.ffffffffffffffffffffffffff8p0L, 7.0999637896798458052083945552094635720486e-232L),
+ TEST_f_f (tgamma, -0x96.000000000000000000000000008p0L, -7.0999637896798458052083945552077084073470e-232L),
+ TEST_f_f (tgamma, -0xb4.ffffffffffffffffffffffffff8p0L, -1.1155769827282483165407420451477844041365e-300L),
+ TEST_f_f (tgamma, -0xb5.000000000000000000000000008p0L, 1.1155769827282483165407420451474983236060e-300L),
+ TEST_f_f (tgamma, -0xb5.ffffffffffffffffffffffffff8p0L, 6.1295438611442215194546266216911239298981e-303L),
+ TEST_f_f (tgamma, -0xb6.000000000000000000000000008p0L, -6.1295438611442215194546266216895503983577e-303L),
+ TEST_f_f (tgamma, -0xb6.ffffffffffffffffffffffffff8p0L, -3.3494775197509407210134571703230189921356e-305L),
+ TEST_f_f (tgamma, -0xb7.000000000000000000000000008p0L, 3.3494775197509407210134571703221582364195e-305L),
+ TEST_f_f (tgamma, -0xb7.ffffffffffffffffffffffffff8p0L, 1.8203682172559460440290528099581627396147e-307L),
+ TEST_f_f (tgamma, -0xb8.000000000000000000000000008p0L, -1.8203682172559460440290528099576944498174e-307L),
+ TEST_f_f (tgamma, -0xbb.ffffffffffffffffffffffffff8p0L, 1.5047872954254114273289393917555491216542e-316L),
+ TEST_f_f (tgamma, -0xbc.000000000000000000000000008p0L, -1.5047872954254114273289393917551604237609e-316L),
+ TEST_f_f (tgamma, -0xbc.ffffffffffffffffffffffffff8p0L, -7.9618375419333937953912137129923244334851e-319L),
+ TEST_f_f (tgamma, -0xbd.000000000000000000000000008p0L, 7.9618375419333937953912137129902657538965e-319L),
+ TEST_f_f (tgamma, -0xbd.ffffffffffffffffffffffffff8p0L, 4.1904408115438914712585335331538555086887e-321L),
+ TEST_f_f (tgamma, -0xbe.000000000000000000000000008p0L, -4.1904408115438914712585335331527709057227e-321L),
+ TEST_f_f (tgamma, -0xbe.ffffffffffffffffffffffffff8p0L, -2.1939480688711473671510646770439036908579e-323L),
+ TEST_f_f (tgamma, -0xbf.000000000000000000000000008p0L, 2.1939480688711473671510646770433352695669e-323L),
+ TEST_f_f (tgamma, -0xf9.ffffffffffffffffffffffffff8p0L, 1.2547671759429278005937024349858508569625e-461L),
+ TEST_f_f (tgamma, -0xfa.000000000000000000000000008p0L, -1.2547671759429278005937024349855091492502e-461L),
+ TEST_f_f (tgamma, -0x1f3.ffffffffffffffffffffffffffp0L, 1.6623061587520224800948170558276526986560e-1103L),
+ TEST_f_f (tgamma, -0x1f4.00000000000000000000000001p0L, -1.6623061587520224800948170558266338608285e-1103L),
+ TEST_f_f (tgamma, -0x2ed.fffffffffffffffffffffffffep0L, 3.9294757797334687313030998663853566763041e-1802L),
+ TEST_f_f (tgamma, -0x2ee.00000000000000000000000002p0L, -3.9294757797334687313030998663802259177992e-1802L),
+ TEST_f_f (tgamma, -0x3e7.fffffffffffffffffffffffffep0L, 2.5202599107841713834679953735597552855978e-2537L),
+ TEST_f_f (tgamma, -0x3e8.00000000000000000000000002p0L, -2.5202599107841713834679953735563216504503e-2537L),
+ TEST_f_f (tgamma, -0x4e1.fffffffffffffffffffffffffcp0L, 3.0766052944457032773369415396747635242705e-3300L),
+ TEST_f_f (tgamma, -0x4e2.00000000000000000000000004p0L, -3.0766052944457032773369415396661096445778e-3300L),
+ TEST_f_f (tgamma, -0x5db.fffffffffffffffffffffffffcp0L, 1.0537416297875703295453200836588944487917e-4084L),
+ TEST_f_f (tgamma, -0x5dc.00000000000000000000000004p0L, -1.0537416297875703295453200836558547326520e-4084L),
+ TEST_f_f (tgamma, -0x6d5.fffffffffffffffffffffffffcp0L, 2.4165069481061837867659591369998698607387e-4887L),
+ TEST_f_f (tgamma, -0x6d6.00000000000000000000000004p0L, -2.4165069481061837867659591369927521090377e-4887L),
+ TEST_f_f (tgamma, -0x6e2.fffffffffffffffffffffffffcp0L, -1.5891611922804672355414813803008070609431e-4929L),
+ TEST_f_f (tgamma, -0x6e3.00000000000000000000000004p0L, 1.5891611922804672355414813802961215945667e-4929L),
+ TEST_f_f (tgamma, -0x6e3.fffffffffffffffffffffffffcp0L, 9.0088502963745308137272187091882496519917e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e4.00000000000000000000000004p0L, -9.0088502963745308137272187091616860368392e-4933L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e4.fffffffffffffffffffffffffcp0L, -5.1041644738665896961627301468488672286746e-4936L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e5.00000000000000000000000004p0L, 5.1041644738665896961627301468338158811446e-4936L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e5.fffffffffffffffffffffffffcp0L, 2.8902403589278537350864836618623260468143e-4939L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6e6.00000000000000000000000004p0L, -2.8902403589278537350864836618538025544424e-4939L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6eb.fffffffffffffffffffffffffcp0L, 9.4152481960798287090819640211017219042636e-4959L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ec.00000000000000000000000004p0L, -9.4152481960798287090819640210739431797168e-4959L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ec.fffffffffffffffffffffffffcp0L, -5.3103486723518492437010513373388172315540e-4962L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ed.00000000000000000000000004p0L, 5.3103486723518492437010513373231484108489e-4962L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ed.fffffffffffffffffffffffffcp0L, 2.9934321715624854812294539669328172615019e-4965L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ee.00000000000000000000000004p0L, -2.9934321715624854812294539669239841152754e-4965L, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ee.fffffffffffffffffffffffffcp0L, minus_zero, UNDERFLOW_EXCEPTION),
+ TEST_f_f (tgamma, -0x6ef.00000000000000000000000004p0L, plus_zero, UNDERFLOW_EXCEPTION),
+# endif
+#endif
+ TEST_f_f (tgamma, -0x1.0a32a2p+5L, 1.8125267978155035272941154746083439329912e-37L),
+#ifndef TEST_FLOAT
+ TEST_f_f (tgamma, -0x1.5800000080001p+7L, -3.1439271448823567326093363350637118195240e-304L, UNDERFLOW_EXCEPTION_LDOUBLE_IBM),
+#endif
+ TEST_f_f (tgamma, 18.5L, 1.4986120533153361177371791123515513270334e+15L),
+ TEST_f_f (tgamma, 19.5L, 2.7724322986333718178137813578503699550119e+16L),
+ TEST_f_f (tgamma, 23.5L, 5.3613035875444147334274983856108155717836e+21L),
+ TEST_f_f (tgamma, 29.5L, 1.6348125198274266444378807806868221866931e+30L),
+ TEST_f_f (tgamma, 30.5L, 4.8226969334909086010917483030261254507447e+31L),
+ TEST_f_f (tgamma, 31.5L, 1.4709225647147271233329832324229682624771e+33L),
+ TEST_f_f (tgamma, 32.5L, 4.6334060788513904384988971821323500268029e+34L),
+ TEST_f_f (tgamma, 33.5L, 1.5058569756267018925121415841930137587110e+36L),
+ TEST_f_f (tgamma, 34.5L, 5.0446208683494513399156743070465960916817e+37L),
+ TEST_f_f (tgamma, 0x2.30a43cp+4L, 3.4027979115654976101247558405326779640190e+38L),
+#ifdef TEST_FLOAT
+ TEST_f_f (tgamma, 0x2.30a44p+4L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+#else
+ TEST_f_f (tgamma, 0x2.30a44p+4L, 3.4028438913396451054667218138127983367181e+38L),
+#endif
+#ifndef TEST_FLOAT
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb238p+4L, 1.7976931348622298700886249281842651388250e+308L),
+# if !defined TEST_LDOUBLE || LDBL_MAX_EXP <= 1024
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb24p+4L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# else
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb24p+4L, 1.7976931348624926129589466917917870782484e+308L),
+# endif
+#endif
+#if defined TEST_LDOUBLE && LDBL_MANT_DIG >= 106
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb23a9ddbf0d3804f4p+4L, 1.7976931348623158079372897140307719334857e+308L),
+# if LDBL_MAX_EXP <= 1024
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# else
+ TEST_f_f (tgamma, 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4L, 1.7976931348623158079372897140599422519044e+308L),
+# endif
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_f_f (tgamma, 0x6.db8c603359a97108p+8L, 1.1897314953572317517071551278058233700012e+4932L),
+ TEST_f_f (tgamma, 0x6.db8c603359a9711p+8L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# if LDBL_MANT_DIG >= 113
+ TEST_f_f (tgamma, 0x6.db8c603359a971081bc4a2e9dfdp+8L, 1.1897314953572317650857593266265995494998e+4932L),
+ TEST_f_f (tgamma, 0x6.db8c603359a971081bc4a2e9dfd4p+8L, plus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+# endif
+#endif
+ };
static void
tgamma_test (void)
{
- errno = 0;
- FUNC(tgamma) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
START (tgamma);
-
- TEST_f_f (tgamma, plus_infty, plus_infty);
- TEST_f_f (tgamma, max_value, plus_infty, OVERFLOW_EXCEPTION);
- TEST_f_f (tgamma, 0, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- TEST_f_f (tgamma, minus_zero, minus_infty, DIVIDE_BY_ZERO_EXCEPTION);
- /* tgamma (x) == qNaN plus invalid exception for integer x <= 0. */
- TEST_f_f (tgamma, -2, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (tgamma, -max_value, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (tgamma, minus_infty, qnan_value, INVALID_EXCEPTION);
- TEST_f_f (tgamma, qnan_value, qnan_value);
-
- TEST_f_f (tgamma, 0.5, M_SQRT_PIl);
- TEST_f_f (tgamma, -0.5, -M_2_SQRT_PIl);
-
- TEST_f_f (tgamma, 1, 1);
- TEST_f_f (tgamma, 4, 6);
-
- TEST_f_f (tgamma, 0.7L, 1.29805533264755778568117117915281162L);
- TEST_f_f (tgamma, 1.2L, 0.918168742399760610640951655185830401L);
-
- END (tgamma);
+ RUN_TEST_LOOP_f_f (tgamma, tgamma_test_data, );
+ END;
}
-static void
-trunc_test (void)
-{
- START (trunc);
+static const struct test_f_f_data trunc_test_data[] =
+ {
+ TEST_f_f (trunc, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (trunc, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (trunc, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_f_f (trunc, plus_infty, plus_infty);
- TEST_f_f (trunc, minus_infty, minus_infty);
- TEST_f_f (trunc, qnan_value, qnan_value);
+ TEST_f_f (trunc, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (trunc, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ /* Bug 15479: spurious "inexact" exception may occur. */
+ TEST_f_f (trunc, 0.1, 0),
+ TEST_f_f (trunc, 0.25, 0),
+ TEST_f_f (trunc, 0.625, 0),
+ TEST_f_f (trunc, -0.1, minus_zero),
+ TEST_f_f (trunc, -0.25, minus_zero),
+ TEST_f_f (trunc, -0.625, minus_zero),
+ TEST_f_f (trunc, 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_f (trunc, -1, -1, NO_INEXACT_EXCEPTION),
+ TEST_f_f (trunc, 1.625, 1),
+ TEST_f_f (trunc, -1.625, -1),
- TEST_f_f (trunc, 0, 0);
- TEST_f_f (trunc, minus_zero, minus_zero);
- TEST_f_f (trunc, 0.1, 0);
- TEST_f_f (trunc, 0.25, 0);
- TEST_f_f (trunc, 0.625, 0);
- TEST_f_f (trunc, -0.1, minus_zero);
- TEST_f_f (trunc, -0.25, minus_zero);
- TEST_f_f (trunc, -0.625, minus_zero);
- TEST_f_f (trunc, 1, 1);
- TEST_f_f (trunc, -1, -1);
- TEST_f_f (trunc, 1.625, 1);
- TEST_f_f (trunc, -1.625, -1);
+ TEST_f_f (trunc, 1048580.625L, 1048580L),
+ TEST_f_f (trunc, -1048580.625L, -1048580L),
- TEST_f_f (trunc, 1048580.625L, 1048580L);
- TEST_f_f (trunc, -1048580.625L, -1048580L);
+ TEST_f_f (trunc, 8388610.125L, 8388610.0L),
+ TEST_f_f (trunc, -8388610.125L, -8388610.0L),
- TEST_f_f (trunc, 8388610.125L, 8388610.0L);
- TEST_f_f (trunc, -8388610.125L, -8388610.0L);
-
- TEST_f_f (trunc, 4294967296.625L, 4294967296.0L);
- TEST_f_f (trunc, -4294967296.625L, -4294967296.0L);
+ TEST_f_f (trunc, 4294967296.625L, 4294967296.0L),
+ TEST_f_f (trunc, -4294967296.625L, -4294967296.0L),
#ifdef TEST_LDOUBLE
- /* The result can only be represented in long double. */
- TEST_f_f (trunc, 4503599627370495.5L, 4503599627370495.0L);
- TEST_f_f (trunc, 4503599627370496.25L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370496.5L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L);
- TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L);
+ /* The result can only be represented in long double. */
+ TEST_f_f (trunc, 4503599627370495.5L, 4503599627370495.0L),
+ TEST_f_f (trunc, 4503599627370496.25L, 4503599627370496.0L),
+ TEST_f_f (trunc, 4503599627370496.5L, 4503599627370496.0L),
+ TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L),
+ TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L);
- TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L);
- TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L),
+ TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L),
+ TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L),
# endif
- TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L);
- TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370496.5L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L);
- TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L);
+ TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L),
+ TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L),
+ TEST_f_f (trunc, -4503599627370496.5L, -4503599627370496.0L),
+ TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L),
+ TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L);
- TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L);
- TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L),
+ TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L),
+ TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L),
# endif
- TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L);
- TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740992.5L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L);
+ TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L),
+ TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L),
+ TEST_f_f (trunc, 9007199254740992.5L, 9007199254740992.0L),
+ TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L),
+ TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L);
- TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L);
- TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L);
- TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L);
- TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L);
+ TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L),
+ TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L),
+ TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L),
+ TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L),
+ TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L),
+ TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L),
# endif
- TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L);
- TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740992.5L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L);
+ TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L),
+ TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L),
+ TEST_f_f (trunc, -9007199254740992.5L, -9007199254740992.0L),
+ TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L),
+ TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L),
# if LDBL_MANT_DIG > 100
- TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L);
- TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L);
- TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L);
- TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L);
- TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L),
+ TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L),
+ TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L),
+ TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L),
+ TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L),
+ TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L),
# endif
- TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L);
- TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927936.5L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927936.75L, 72057594037927936.0L);
- TEST_f_f (trunc, 72057594037927937.5L, 72057594037927937.0L);
+ TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L),
+ TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L),
+ TEST_f_f (trunc, 72057594037927936.5L, 72057594037927936.0L),
+ TEST_f_f (trunc, 72057594037927936.75L, 72057594037927936.0L),
+ TEST_f_f (trunc, 72057594037927937.5L, 72057594037927937.0L),
- TEST_f_f (trunc, -72057594037927935.5L, -72057594037927935.0L);
- TEST_f_f (trunc, -72057594037927936.25L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927936.5L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927936.75L, -72057594037927936.0L);
- TEST_f_f (trunc, -72057594037927937.5L, -72057594037927937.0L);
+ TEST_f_f (trunc, -72057594037927935.5L, -72057594037927935.0L),
+ TEST_f_f (trunc, -72057594037927936.25L, -72057594037927936.0L),
+ TEST_f_f (trunc, -72057594037927936.5L, -72057594037927936.0L),
+ TEST_f_f (trunc, -72057594037927936.75L, -72057594037927936.0L),
+ TEST_f_f (trunc, -72057594037927937.5L, -72057594037927937.0L),
- TEST_f_f (trunc, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L);
- TEST_f_f (trunc, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L);
+ TEST_f_f (trunc, 10141204801825835211973625643007.5L, 10141204801825835211973625643007.0L),
+ TEST_f_f (trunc, 10141204801825835211973625643008.25L, 10141204801825835211973625643008.0L),
+ TEST_f_f (trunc, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L),
+ TEST_f_f (trunc, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L),
+ TEST_f_f (trunc, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L),
#endif
-
- END (trunc);
-}
+ };
static void
-y0_test (void)
+trunc_test (void)
{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(y0) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* y0 is the Bessel function of the second kind of order 0 */
- START (y0);
+ START (trunc);
+ RUN_TEST_LOOP_f_f (trunc, trunc_test_data, );
+ END;
+}
- TEST_f_f (y0, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y0, -max_value, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y0, 0.0, minus_infty);
- TEST_f_f (y0, qnan_value, qnan_value);
- TEST_f_f (y0, plus_infty, 0);
+static const struct test_f_f_data y0_test_data[] =
+ {
+ /* y0 is the Bessel function of the second kind of order 0 */
+ TEST_f_f (y0, -1.0, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (y0, -max_value, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (y0, 0.0, minus_infty),
+ TEST_f_f (y0, qnan_value, qnan_value),
+ TEST_f_f (y0, plus_infty, 0),
- TEST_f_f (y0, 0.125L, -1.38968062514384052915582277745018693L);
- TEST_f_f (y0, 0.75L, -0.137172769385772397522814379396581855L);
- TEST_f_f (y0, 1.0, 0.0882569642156769579829267660235151628L);
- TEST_f_f (y0, 1.5, 0.382448923797758843955068554978089862L);
- TEST_f_f (y0, 2.0, 0.510375672649745119596606592727157873L);
- TEST_f_f (y0, 8.0, 0.223521489387566220527323400498620359L);
- TEST_f_f (y0, 10.0, 0.0556711672835993914244598774101900481L);
+ TEST_f_f (y0, 0.125L, -1.38968062514384052915582277745018693L),
+ TEST_f_f (y0, 0.75L, -0.137172769385772397522814379396581855L),
+ TEST_f_f (y0, 1.0, 0.0882569642156769579829267660235151628L),
+ TEST_f_f (y0, 1.5, 0.382448923797758843955068554978089862L),
+ TEST_f_f (y0, 2.0, 0.510375672649745119596606592727157873L),
+ TEST_f_f (y0, 8.0, 0.223521489387566220527323400498620359L),
+ TEST_f_f (y0, 10.0, 0.0556711672835993914244598774101900481L),
- TEST_f_f (y0, 0x1.3ffp+74L, 1.818984347516051243459467456433028748678e-12L);
+ TEST_f_f (y0, 0x1.3ffp+74L, 1.818984347516051243459467456433028748678e-12L),
#ifndef TEST_FLOAT
- TEST_f_f (y0, 0x1.ff00000000002p+840L, 1.846591691699331493194965158699937660696e-127L);
- TEST_f_f (y0, 0x1p1023L, 8.2687542933709649327986678723012001545638e-155L);
+ TEST_f_f (y0, 0x1.ff00000000002p+840L, 1.846591691699331493194965158699937660696e-127L),
+ TEST_f_f (y0, 0x1p1023L, 8.2687542933709649327986678723012001545638e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (y0, 0x1p16382L, 8.0839224448726336195866026476176740513439e-2467L);
- TEST_f_f (y0, 0x1p16383L, -3.8895531955766020648617743624167352352217e-2467L);
+ TEST_f_f (y0, 0x1p16382L, 8.0839224448726336195866026476176740513439e-2467L),
+ TEST_f_f (y0, 0x1p16383L, -3.8895531955766020648617743624167352352217e-2467L),
#endif
- TEST_f_f (y0, 0x1p-10L, -4.4865150767109739412411806297168793661098L);
- TEST_f_f (y0, 0x1p-20L, -8.8992283012125827603076426611387876938160L);
- TEST_f_f (y0, 0x1p-30L, -1.3311940304267782826037118027401817264906e+1L);
- TEST_f_f (y0, 0x1p-40L, -1.7724652307320814696990854700366226762563e+1L);
- TEST_f_f (y0, 0x1p-50L, -2.2137364310373846564919987139743760738155e+1L);
- TEST_f_f (y0, 0x1p-60L, -2.6550076313426878432849115782108205929120e+1L);
- TEST_f_f (y0, 0x1p-70L, -3.0962788316479910300778244424468159753887e+1L);
- TEST_f_f (y0, 0x1p-80L, -3.5375500319532942168707373066828113573541e+1L);
- TEST_f_f (y0, 0x1p-90L, -3.9788212322585974036636501709188067393195e+1L);
- TEST_f_f (y0, 0x1p-100L, -4.420092432563900590456563035154802121284e+1L);
- TEST_f_f (y0, 0x1p-110L, -4.861363632869203777249475899390797503250e+1L);
-
- END (y0);
-}
-
+ TEST_f_f (y0, 0x1p-10L, -4.4865150767109739412411806297168793661098L),
+ TEST_f_f (y0, 0x1p-20L, -8.8992283012125827603076426611387876938160L),
+ TEST_f_f (y0, 0x1p-30L, -1.3311940304267782826037118027401817264906e+1L),
+ TEST_f_f (y0, 0x1p-40L, -1.7724652307320814696990854700366226762563e+1L),
+ TEST_f_f (y0, 0x1p-50L, -2.2137364310373846564919987139743760738155e+1L),
+ TEST_f_f (y0, 0x1p-60L, -2.6550076313426878432849115782108205929120e+1L),
+ TEST_f_f (y0, 0x1p-70L, -3.0962788316479910300778244424468159753887e+1L),
+ TEST_f_f (y0, 0x1p-80L, -3.5375500319532942168707373066828113573541e+1L),
+ TEST_f_f (y0, 0x1p-90L, -3.9788212322585974036636501709188067393195e+1L),
+ TEST_f_f (y0, 0x1p-100L, -4.420092432563900590456563035154802121284e+1L),
+ TEST_f_f (y0, 0x1p-110L, -4.861363632869203777249475899390797503250e+1L),
+ };
static void
-y1_test (void)
+y0_test (void)
{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(y1) (1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* y1 is the Bessel function of the second kind of order 1 */
- START (y1);
+ START (y0);
+ RUN_TEST_LOOP_f_f (y0, y0_test_data, );
+ END;
+}
+
- TEST_f_f (y1, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y1, -max_value, minus_infty, INVALID_EXCEPTION);
- TEST_f_f (y1, 0.0, minus_infty);
- TEST_f_f (y1, plus_infty, 0);
- TEST_f_f (y1, qnan_value, qnan_value);
+static const struct test_f_f_data y1_test_data[] =
+ {
+ /* y1 is the Bessel function of the second kind of order 1 */
+ TEST_f_f (y1, -1.0, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (y1, -max_value, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (y1, 0.0, minus_infty),
+ TEST_f_f (y1, plus_infty, 0),
+ TEST_f_f (y1, qnan_value, qnan_value),
- TEST_f_f (y1, 0.125L, -5.19993611253477499595928744876579921L);
- TEST_f_f (y1, 0.75L, -1.03759455076928541973767132140642198L);
- TEST_f_f (y1, 1.0, -0.781212821300288716547150000047964821L);
- TEST_f_f (y1, 1.5, -0.412308626973911295952829820633445323L);
- TEST_f_f (y1, 2.0, -0.107032431540937546888370772277476637L);
- TEST_f_f (y1, 8.0, -0.158060461731247494255555266187483550L);
- TEST_f_f (y1, 10.0, 0.249015424206953883923283474663222803L);
+ TEST_f_f (y1, 0.125L, -5.19993611253477499595928744876579921L),
+ TEST_f_f (y1, 0.75L, -1.03759455076928541973767132140642198L),
+ TEST_f_f (y1, 1.0, -0.781212821300288716547150000047964821L),
+ TEST_f_f (y1, 1.5, -0.412308626973911295952829820633445323L),
+ TEST_f_f (y1, 2.0, -0.107032431540937546888370772277476637L),
+ TEST_f_f (y1, 8.0, -0.158060461731247494255555266187483550L),
+ TEST_f_f (y1, 10.0, 0.249015424206953883923283474663222803L),
- TEST_f_f (y1, 0x1.27e204p+99L, -8.881610148467797208469612080785210013461e-16L);
+ TEST_f_f (y1, 0x1.27e204p+99L, -8.881610148467797208469612080785210013461e-16L),
#ifndef TEST_FLOAT
- TEST_f_f (y1, 0x1.001000001p+593L, 3.927269966354206207832593635798954916263e-90L);
- TEST_f_f (y1, 0x1p1023L, 1.5665258060609012834424478437196679802783e-155L);
+ TEST_f_f (y1, 0x1.001000001p+593L, 3.927269966354206207832593635798954916263e-90L),
+ TEST_f_f (y1, 0x1p1023L, 1.5665258060609012834424478437196679802783e-155L),
#endif
#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
- TEST_f_f (y1, 0x1p16382L, 1.2193782500509000574176799046642541129387e-2466L);
- TEST_f_f (y1, 0x1p16383L, -9.5859502826270374691362975419147645151233e-2467L);
+ TEST_f_f (y1, 0x1p16382L, 1.2193782500509000574176799046642541129387e-2466L),
+ TEST_f_f (y1, 0x1p16383L, -9.5859502826270374691362975419147645151233e-2467L),
#endif
- TEST_f_f (y1, 0x1p-10L, -6.5190099301063115047395187618929589514382e+02L);
- TEST_f_f (y1, 0x1p-20L, -6.6754421443450423911167962313100637952285e+05L);
- TEST_f_f (y1, 0x1p-30L, -6.8356527557643159612937462812258975438856e+08L);
- TEST_f_f (y1, 0x1p-40L, -6.9997084219026594793707805777425993547887e+11L);
- TEST_f_f (y1, 0x1p-50L, -7.1677014240283233068755952926181262431559e+14L);
- TEST_f_f (y1, 0x1p-60L, -7.3397262582050030662406095795388448059822e+17L);
- TEST_f_f (y1, 0x1p-70L, -7.5158796884019231398303842094477769620063e+20L);
- TEST_f_f (y1, 0x1p-80L, -7.6962608009235692951863134304745236090943e+23L);
- TEST_f_f (y1, 0x1p-90L, -7.8809710601457349582707849528059121757126e+26L);
- TEST_f_f (y1, 0x1p-100L, -8.0701143655892325972692837916732540679297e+29L);
- TEST_f_f (y1, 0x1p-110L, -8.2637971103633741796037466026734121655600e+32L);
-
- END (y1);
-}
+ TEST_f_f (y1, 0x1p-10L, -6.5190099301063115047395187618929589514382e+02L),
+ TEST_f_f (y1, 0x1p-20L, -6.6754421443450423911167962313100637952285e+05L),
+ TEST_f_f (y1, 0x1p-30L, -6.8356527557643159612937462812258975438856e+08L),
+ TEST_f_f (y1, 0x1p-40L, -6.9997084219026594793707805777425993547887e+11L),
+ TEST_f_f (y1, 0x1p-50L, -7.1677014240283233068755952926181262431559e+14L),
+ TEST_f_f (y1, 0x1p-60L, -7.3397262582050030662406095795388448059822e+17L),
+ TEST_f_f (y1, 0x1p-70L, -7.5158796884019231398303842094477769620063e+20L),
+ TEST_f_f (y1, 0x1p-80L, -7.6962608009235692951863134304745236090943e+23L),
+ TEST_f_f (y1, 0x1p-90L, -7.8809710601457349582707849528059121757126e+26L),
+ TEST_f_f (y1, 0x1p-100L, -8.0701143655892325972692837916732540679297e+29L),
+ TEST_f_f (y1, 0x1p-110L, -8.2637971103633741796037466026734121655600e+32L),
+ };
+static void
+y1_test (void)
+{
+ START (y1);
+ RUN_TEST_LOOP_f_f (y1, y1_test_data, );
+ END;
+}
+
+
+static const struct test_if_f_data yn_test_data[] =
+ {
+ /* yn is the Bessel function of the second kind of order n */
+ /* yn (0, x) == y0 (x) */
+ TEST_if_f (yn, 0, -1.0, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_if_f (yn, 0, -max_value, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_if_f (yn, 0, 0.0, minus_infty),
+ TEST_if_f (yn, 0, qnan_value, qnan_value),
+ TEST_if_f (yn, 0, plus_infty, 0),
+
+ TEST_if_f (yn, 0, 0.125L, -1.38968062514384052915582277745018693L),
+ TEST_if_f (yn, 0, 0.75L, -0.137172769385772397522814379396581855L),
+ TEST_if_f (yn, 0, 1.0, 0.0882569642156769579829267660235151628L),
+ TEST_if_f (yn, 0, 1.5, 0.382448923797758843955068554978089862L),
+ TEST_if_f (yn, 0, 2.0, 0.510375672649745119596606592727157873L),
+ TEST_if_f (yn, 0, 8.0, 0.223521489387566220527323400498620359L),
+ TEST_if_f (yn, 0, 10.0, 0.0556711672835993914244598774101900481L),
+
+ /* yn (1, x) == y1 (x) */
+ TEST_if_f (yn, 1, -1.0, minus_infty, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_if_f (yn, 1, 0.0, minus_infty),
+ TEST_if_f (yn, 1, plus_infty, 0),
+ TEST_if_f (yn, 1, qnan_value, qnan_value),
+
+ TEST_if_f (yn, 1, 0.125L, -5.19993611253477499595928744876579921L),
+ TEST_if_f (yn, 1, 0.75L, -1.03759455076928541973767132140642198L),
+ TEST_if_f (yn, 1, 1.0, -0.781212821300288716547150000047964821L),
+ TEST_if_f (yn, 1, 1.5, -0.412308626973911295952829820633445323L),
+ TEST_if_f (yn, 1, 2.0, -0.107032431540937546888370772277476637L),
+ TEST_if_f (yn, 1, 8.0, -0.158060461731247494255555266187483550L),
+ TEST_if_f (yn, 1, 10.0, 0.249015424206953883923283474663222803L),
+
+ /* yn (3, x) */
+ TEST_if_f (yn, 3, plus_infty, 0),
+ TEST_if_f (yn, 3, qnan_value, qnan_value),
+
+ TEST_if_f (yn, 3, 0.125L, -2612.69757350066712600220955744091741L),
+ TEST_if_f (yn, 3, 0.75L, -12.9877176234475433186319774484809207L),
+ TEST_if_f (yn, 3, 1.0, -5.82151760596472884776175706442981440L),
+ TEST_if_f (yn, 3, 2.0, -1.12778377684042778608158395773179238L),
+ TEST_if_f (yn, 3, 10.0, -0.251362657183837329779204747654240998L),
+
+ /* yn (10, x) */
+ TEST_if_f (yn, 10, plus_infty, 0),
+ TEST_if_f (yn, 10, qnan_value, qnan_value),
+
+ TEST_if_f (yn, 10, 0.125L, -127057845771019398.252538486899753195L),
+ TEST_if_f (yn, 10, 0.75L, -2133501638.90573424452445412893839236L),
+ TEST_if_f (yn, 10, 1.0, -121618014.278689189288130426667971145L),
+ TEST_if_f (yn, 10, 2.0, -129184.542208039282635913145923304214L),
+ TEST_if_f (yn, 10, 10.0, -0.359814152183402722051986577343560609L),
+
+ /* Check whether yn returns correct value for LDBL_MIN, DBL_MIN,
+ and FLT_MIN. See Bug 14173. */
+ TEST_if_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+ };
static void
yn_test (void)
{
- FLOAT s, c;
- errno = 0;
- FUNC (sincos) (0, &s, &c);
- if (errno == ENOSYS)
- /* Required function not implemented. */
- return;
- FUNC(yn) (1, 1);
- if (errno == ENOSYS)
- /* Function not implemented. */
- return;
-
- /* yn is the Bessel function of the second kind of order n */
START (yn);
-
- /* yn (0, x) == y0 (x) */
- TEST_ff_f (yn, 0, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_ff_f (yn, 0, -max_value, minus_infty, INVALID_EXCEPTION);
- TEST_ff_f (yn, 0, 0.0, minus_infty);
- TEST_ff_f (yn, 0, qnan_value, qnan_value);
- TEST_ff_f (yn, 0, plus_infty, 0);
-
- TEST_ff_f (yn, 0, 0.125L, -1.38968062514384052915582277745018693L);
- TEST_ff_f (yn, 0, 0.75L, -0.137172769385772397522814379396581855L);
- TEST_ff_f (yn, 0, 1.0, 0.0882569642156769579829267660235151628L);
- TEST_ff_f (yn, 0, 1.5, 0.382448923797758843955068554978089862L);
- TEST_ff_f (yn, 0, 2.0, 0.510375672649745119596606592727157873L);
- TEST_ff_f (yn, 0, 8.0, 0.223521489387566220527323400498620359L);
- TEST_ff_f (yn, 0, 10.0, 0.0556711672835993914244598774101900481L);
-
- /* yn (1, x) == y1 (x) */
- TEST_ff_f (yn, 1, -1.0, minus_infty, INVALID_EXCEPTION);
- TEST_ff_f (yn, 1, 0.0, minus_infty);
- TEST_ff_f (yn, 1, plus_infty, 0);
- TEST_ff_f (yn, 1, qnan_value, qnan_value);
-
- TEST_ff_f (yn, 1, 0.125L, -5.19993611253477499595928744876579921L);
- TEST_ff_f (yn, 1, 0.75L, -1.03759455076928541973767132140642198L);
- TEST_ff_f (yn, 1, 1.0, -0.781212821300288716547150000047964821L);
- TEST_ff_f (yn, 1, 1.5, -0.412308626973911295952829820633445323L);
- TEST_ff_f (yn, 1, 2.0, -0.107032431540937546888370772277476637L);
- TEST_ff_f (yn, 1, 8.0, -0.158060461731247494255555266187483550L);
- TEST_ff_f (yn, 1, 10.0, 0.249015424206953883923283474663222803L);
-
- /* yn (3, x) */
- TEST_ff_f (yn, 3, plus_infty, 0);
- TEST_ff_f (yn, 3, qnan_value, qnan_value);
-
- TEST_ff_f (yn, 3, 0.125L, -2612.69757350066712600220955744091741L);
- TEST_ff_f (yn, 3, 0.75L, -12.9877176234475433186319774484809207L);
- TEST_ff_f (yn, 3, 1.0, -5.82151760596472884776175706442981440L);
- TEST_ff_f (yn, 3, 2.0, -1.12778377684042778608158395773179238L);
- TEST_ff_f (yn, 3, 10.0, -0.251362657183837329779204747654240998L);
-
- /* yn (10, x) */
- TEST_ff_f (yn, 10, plus_infty, 0);
- TEST_ff_f (yn, 10, qnan_value, qnan_value);
-
- TEST_ff_f (yn, 10, 0.125L, -127057845771019398.252538486899753195L);
- TEST_ff_f (yn, 10, 0.75L, -2133501638.90573424452445412893839236L);
- TEST_ff_f (yn, 10, 1.0, -121618014.278689189288130426667971145L);
- TEST_ff_f (yn, 10, 2.0, -129184.542208039282635913145923304214L);
- TEST_ff_f (yn, 10, 10.0, -0.359814152183402722051986577343560609L);
-
- /* Check whether yn returns correct value for LDBL_MIN, DBL_MIN,
- and FLT_MIN. See Bug 14173. */
- TEST_ff_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION);
-
- errno = 0;
- TEST_ff_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION);
- check_int ("errno for yn(10,-min) == ERANGE", errno, ERANGE, 0, 0, 0);
-
- END (yn);
+ RUN_TEST_LOOP_if_f (yn, yn_test_data, );
+ END;
}
+static const struct test_f_f_data significand_test_data[] =
+ {
+ /* significand returns the mantissa of the exponential representation. */
+ /* TODO: missing +/-Inf as well as qNaN tests. */
+ TEST_f_f (significand, 4.0, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (significand, 6.0, 1.5, NO_INEXACT_EXCEPTION),
+ TEST_f_f (significand, 8.0, 1.0, NO_INEXACT_EXCEPTION),
+ };
+
static void
significand_test (void)
{
- /* significand returns the mantissa of the exponential representation. */
-
- /* TODO: missing +/-Inf as well as qNaN tests. */
-
START (significand);
-
- TEST_f_f (significand, 4.0, 1.0);
- TEST_f_f (significand, 6.0, 1.5);
- TEST_f_f (significand, 8.0, 1.0);
-
- END (significand);
+ RUN_TEST_LOOP_f_f (significand, significand_test_data, );
+ END;
}
@@ -11302,35 +14501,9 @@ initialize (void)
{
fpstack_test ("start *init*");
- plus_zero = 0.0;
- qnan_value = FUNC (__builtin_nan) ("");
- minus_zero = FUNC (copysign) (0.0, -1.0);
- plus_infty = CHOOSE (HUGE_VALL, HUGE_VAL, HUGE_VALF,
- HUGE_VALL, HUGE_VAL, HUGE_VALF);
- minus_infty = CHOOSE (-HUGE_VALL, -HUGE_VAL, -HUGE_VALF,
- -HUGE_VALL, -HUGE_VAL, -HUGE_VALF);
- max_value = CHOOSE (LDBL_MAX, DBL_MAX, FLT_MAX,
- LDBL_MAX, DBL_MAX, FLT_MAX);
- min_value = CHOOSE (LDBL_MIN, DBL_MIN, FLT_MIN,
- LDBL_MIN, DBL_MIN, FLT_MIN);
- min_subnorm_value = CHOOSE (__LDBL_DENORM_MIN__,
- __DBL_DENORM_MIN__,
- __FLT_DENORM_MIN__,
- __LDBL_DENORM_MIN__,
- __DBL_DENORM_MIN__,
- __FLT_DENORM_MIN__);
-
- (void) &plus_zero;
- (void) &qnan_value;
- (void) &minus_zero;
- (void) &plus_infty;
- (void) &minus_infty;
- (void) &max_value;
- (void) &min_value;
- (void) &min_subnorm_value;
-
/* Clear all exceptions. From now on we must not get random exceptions. */
feclearexcept (FE_ALL_EXCEPT);
+ errno = 0;
/* Test to make sure we start correctly. */
fpstack_test ("end *init*");
@@ -11347,6 +14520,8 @@ static const struct argp_option options[] =
"Don't output results of functions invocations"},
{ "ignore-max-ulp", 'i', "yes/no", 0,
"Ignore given maximal errors"},
+ { "output-dir", 'o', "DIR", 0,
+ "Directory where generated files will be placed"},
{ NULL, 0, NULL, 0, NULL }
};
@@ -11378,6 +14553,13 @@ parse_opt (int key, char *arg, struct argp_state *state)
else if (strcmp (arg, "no") == 0)
ignore_max_ulp = 0;
break;
+ case 'o':
+ output_dir = (char *) malloc (strlen (arg) + 1);
+ if (output_dir != NULL)
+ strcpy (output_dir, arg);
+ else
+ return errno;
+ break;
case 'p':
output_points = 0;
break;
@@ -11396,42 +14578,68 @@ parse_opt (int key, char *arg, struct argp_state *state)
return 0;
}
-#if 0
-/* function to check our ulp calculation. */
+/* Verify that our ulp () implementation is behaving as expected
+ or abort. */
void
check_ulp (void)
{
- int i;
-
- FLOAT u, diff, ulp;
- /* This gives one ulp. */
- u = FUNC(nextafter) (10, 20);
- check_equal (10.0, u, 1, &diff, &ulp);
- printf ("One ulp: % .4" PRINTF_NEXPR "\n", ulp);
-
- /* This gives one more ulp. */
- u = FUNC(nextafter) (u, 20);
- check_equal (10.0, u, 2, &diff, &ulp);
- printf ("two ulp: % .4" PRINTF_NEXPR "\n", ulp);
-
- /* And now calculate 100 ulp. */
- for (i = 2; i < 100; i++)
- u = FUNC(nextafter) (u, 20);
- check_equal (10.0, u, 100, &diff, &ulp);
- printf ("100 ulp: % .4" PRINTF_NEXPR "\n", ulp);
+ FLOAT ulps, value;
+ int i;
+ /* Check ulp of zero is a subnormal value... */
+ ulps = ulp (0x0.0p0);
+ if (fpclassify (ulps) != FP_SUBNORMAL)
+ {
+ fprintf (stderr, "ulp (0x0.0p0) is not FP_SUBNORMAL!\n");
+ exit (EXIT_FAILURE);
+ }
+ /* Check that the ulp of one is a normal value... */
+ ulps = ulp (1.0L);
+ if (fpclassify (ulps) != FP_NORMAL)
+ {
+ fprintf (stderr, "ulp (1.0L) is not FP_NORMAL\n");
+ exit (EXIT_FAILURE);
+ }
+ /* Compute the nearest representable number from 10 towards 20.
+ The result is 10 + 1ulp. We use this to check the ulp function. */
+ value = FUNC(nextafter) (10, 20);
+ ulps = ULPDIFF (value, 10);
+ if (ulps > 1.0L)
+ {
+ fprintf (stderr, "The value of ulp (10+1ulp,10) is greater than 1 ulp.\n");
+ exit (EXIT_FAILURE);
+ }
+ /* This gives one more ulp. */
+ value = FUNC(nextafter) (value, 20);
+ ulps = ULPDIFF (value, 10);
+ if (ulps > 2.0L)
+ {
+ fprintf (stderr, "The value of ulp (10+2ulp,10) is greater than 2 ulp.\n");
+ exit (EXIT_FAILURE);
+ }
+ /* And now calculate 100 ulp. */
+ for (i = 2; i < 100; i++)
+ value = FUNC(nextafter) (value, 20);
+ ulps = ULPDIFF (value, 10);
+ if (ulps > 100.0L)
+ {
+ fprintf (stderr, "The value of ulp (10+100ulp,10) is greater than 100 ulp.\n");
+ exit (EXIT_FAILURE);
+ }
}
-#endif
int
main (int argc, char **argv)
{
int remaining;
+ char *ulps_file_path;
+ size_t dir_len = 0;
verbose = 1;
output_ulps = 0;
output_max_error = 1;
output_points = 1;
+ output_dir = NULL;
/* XXX set to 0 for releases. */
ignore_max_ulp = 0;
@@ -11447,7 +14655,16 @@ main (int argc, char **argv)
if (output_ulps)
{
- ulps_file = fopen ("ULPs", "a");
+ if (output_dir != NULL)
+ dir_len = strlen (output_dir);
+ ulps_file_path = (char *) malloc (dir_len + strlen (ulps_file_name) + 1);
+ if (ulps_file_path == NULL)
+ {
+ perror ("can't allocate path for `ULPs' file: ");
+ exit (1);
+ }
+ sprintf (ulps_file_path, "%s%s", output_dir == NULL ? "" : output_dir, ulps_file_name);
+ ulps_file = fopen (ulps_file_path, "a");
if (ulps_file == NULL)
{
perror ("can't open file `ULPs' for writing: ");
@@ -11459,9 +14676,7 @@ main (int argc, char **argv)
initialize ();
printf (TEST_MSG);
-#if 0
check_ulp ();
-#endif
/* Keep the tests a wee bit ordered (according to ISO C99). */
/* Classification macros: */
@@ -11471,6 +14686,7 @@ main (int argc, char **argv)
isinf_test ();
isnan_test ();
isnormal_test ();
+ issignaling_test ();
signbit_test ();
/* Trigonometric functions: */
@@ -11537,6 +14753,7 @@ main (int argc, char **argv)
logb_test ();
logb_test_downward ();
modf_test ();
+ pow10_test ();
ilogb_test ();
scalb_test ();
scalbn_test ();
@@ -11586,8 +14803,17 @@ main (int argc, char **argv)
trunc_test ();
/* Remainder functions: */
+ drem_test ();
+ drem_test_tonearest ();
+ drem_test_towardzero ();
+ drem_test_downward ();
+ drem_test_upward ();
fmod_test ();
remainder_test ();
+ remainder_test_tonearest ();
+ remainder_test_towardzero ();
+ remainder_test_downward ();
+ remainder_test_upward ();
remquo_test ();
/* Manipulation functions: */
@@ -11659,12 +14885,9 @@ main (int argc, char **argv)
fclose (ulps_file);
printf ("\nTest suite completed:\n");
- printf (" %d test cases plus %d tests for exception flags executed.\n",
- noTests, noExcTests);
- if (noXFails)
- printf (" %d expected failures occurred.\n", noXFails);
- if (noXPasses)
- printf (" %d unexpected passes occurred.\n", noXPasses);
+ printf (" %d test cases plus %d tests for exception flags and\n"
+ " %d tests for errno executed.\n",
+ noTests, noExcTests, noErrnoTests);
if (noErrors)
{
printf (" %d errors occurred.\n", noErrors);
diff --git a/math/math.h b/math/math.h
index 2f25c237d4..e3adf096ad 100644
--- a/math/math.h
+++ b/math/math.h
@@ -282,6 +282,20 @@ enum
#endif /* Use ISO C99. */
+#ifdef __USE_GNU
+/* Return nonzero value if X is a signaling NaN. */
+# ifdef __NO_LONG_DOUBLE_MATH
+# define issignaling(x) \
+ (sizeof (x) == sizeof (float) ? __issignalingf (x) : __issignaling (x))
+# else
+# define issignaling(x) \
+ (sizeof (x) == sizeof (float) \
+ ? __issignalingf (x) \
+ : sizeof (x) == sizeof (double) \
+ ? __issignaling (x) : __issignalingl (x))
+# endif
+#endif /* Use GNU. */
+
#ifdef __USE_MISC
/* Support for various different standard error handling behaviors. */
typedef enum
diff --git a/math/s_cacosh.c b/math/s_cacosh.c
index 9c31cb80ac..1e502fa913 100644
--- a/math/s_cacosh.c
+++ b/math/s_cacosh.c
@@ -64,31 +64,25 @@ __cacosh (__complex__ double x)
__real__ res = 0.0;
__imag__ res = __copysign (M_PI_2, __imag__ x);
}
- /* The factor 16 is just a guess. */
- else if (16.0 * fabs (__imag__ x) < fabs (__real__ x))
- {
- /* Kahan's formula which avoid cancellation through subtraction in
- some cases. */
- res = 2.0 * __clog (__csqrt ((x + 1.0) / 2.0) + __csqrt ((x - 1.0) / 2.0));
- if (signbit (__real__ res))
- __real__ res = 0.0;
- }
else
{
__complex__ double y;
- __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0;
- __imag__ y = 2.0 * __real__ x * __imag__ x;
-
- y = __csqrt (y);
+ __real__ y = -__imag__ x;
+ __imag__ y = __real__ x;
- if (signbit (__real__ x))
- y = -y;
+ y = __kernel_casinh (y, 1);
- __real__ y += __real__ x;
- __imag__ y += __imag__ x;
-
- res = __clog (y);
+ if (signbit (__imag__ x))
+ {
+ __real__ res = __real__ y;
+ __imag__ res = -__imag__ y;
+ }
+ else
+ {
+ __real__ res = -__real__ y;
+ __imag__ res = __imag__ y;
+ }
}
return res;
diff --git a/math/s_cacoshf.c b/math/s_cacoshf.c
index 74cb2760d6..1e692f139e 100644
--- a/math/s_cacoshf.c
+++ b/math/s_cacoshf.c
@@ -64,32 +64,25 @@ __cacoshf (__complex__ float x)
__real__ res = 0.0;
__imag__ res = __copysignf (M_PI_2, __imag__ x);
}
- /* The factor 16 is just a guess. */
- else if (16.0 * fabsf (__imag__ x) < fabsf (__real__ x))
- {
- /* Kahan's formula which avoid cancellation through subtraction in
- some cases. */
- res = 2.0 * __clogf (__csqrtf ((x + 1.0) / 2.0)
- + __csqrtf ((x - 1.0) / 2.0));
- if (signbit (__real__ res))
- __real__ res = 0.0f;
- }
else
{
__complex__ float y;
- __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0;
- __imag__ y = 2.0 * __real__ x * __imag__ x;
-
- y = __csqrtf (y);
+ __real__ y = -__imag__ x;
+ __imag__ y = __real__ x;
- if (signbit (__real__ x))
- y = -y;
+ y = __kernel_casinhf (y, 1);
- __real__ y += __real__ x;
- __imag__ y += __imag__ x;
-
- res = __clogf (y);
+ if (signbit (__imag__ x))
+ {
+ __real__ res = __real__ y;
+ __imag__ res = -__imag__ y;
+ }
+ else
+ {
+ __real__ res = -__real__ y;
+ __imag__ res = __imag__ y;
+ }
}
return res;
diff --git a/math/s_cacoshl.c b/math/s_cacoshl.c
index 7fd0b8206c..c110fabe3b 100644
--- a/math/s_cacoshl.c
+++ b/math/s_cacoshl.c
@@ -64,32 +64,25 @@ __cacoshl (__complex__ long double x)
__real__ res = 0.0;
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
}
- /* The factor 16 is just a guess. */
- else if (16.0L * fabsl (__imag__ x) < fabsl (__real__ x))
- {
- /* Kahan's formula which avoid cancellation through subtraction in
- some cases. */
- res = 2.0L * __clogl (__csqrtl ((x + 1.0L) / 2.0L)
- + __csqrtl ((x - 1.0L) / 2.0L));
- if (signbit (__real__ res))
- __real__ res = 0.0L;
- }
else
{
__complex__ long double y;
- __real__ y = (__real__ x - __imag__ x) * (__real__ x + __imag__ x) - 1.0;
- __imag__ y = 2.0 * __real__ x * __imag__ x;
-
- y = __csqrtl (y);
+ __real__ y = -__imag__ x;
+ __imag__ y = __real__ x;
- if (signbit (__real__ x))
- y = -y;
+ y = __kernel_casinhl (y, 1);
- __real__ y += __real__ x;
- __imag__ y += __imag__ x;
-
- res = __clogl (y);
+ if (signbit (__imag__ x))
+ {
+ __real__ res = __real__ y;
+ __imag__ res = -__imag__ y;
+ }
+ else
+ {
+ __real__ res = -__real__ y;
+ __imag__ res = __imag__ y;
+ }
}
return res;
diff --git a/math/s_catan.c b/math/s_catan.c
index 46c18bf2af..4da0a0dcac 100644
--- a/math/s_catan.c
+++ b/math/s_catan.c
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
-
+#include <float.h>
__complex__ double
__catan (__complex__ double x)
@@ -61,21 +61,82 @@ __catan (__complex__ double x)
}
else
{
- double r2, num, den;
+ if (fabs (__real__ x) >= 16.0 / DBL_EPSILON
+ || fabs (__imag__ x) >= 16.0 / DBL_EPSILON)
+ {
+ __real__ res = __copysign (M_PI_2, __real__ x);
+ if (fabs (__real__ x) <= 1.0)
+ __imag__ res = 1.0 / __imag__ x;
+ else if (fabs (__imag__ x) <= 1.0)
+ __imag__ res = __imag__ x / __real__ x / __real__ x;
+ else
+ {
+ double h = __ieee754_hypot (__real__ x / 2.0, __imag__ x / 2.0);
+ __imag__ res = __imag__ x / h / h / 4.0;
+ }
+ }
+ else
+ {
+ double den, absx, absy;
- r2 = __real__ x * __real__ x;
+ absx = fabs (__real__ x);
+ absy = fabs (__imag__ x);
+ if (absx < absy)
+ {
+ double t = absx;
+ absx = absy;
+ absy = t;
+ }
- den = 1 - r2 - __imag__ x * __imag__ x;
+ if (absy < DBL_EPSILON / 2.0)
+ den = (1.0 - absx) * (1.0 + absx);
+ else if (absx >= 1.0)
+ den = (1.0 - absx) * (1.0 + absx) - absy * absy;
+ else if (absx >= 0.75 || absy >= 0.5)
+ den = -__x2y2m1 (absx, absy);
+ else
+ den = (1.0 - absx) * (1.0 + absx) - absy * absy;
- __real__ res = 0.5 * __ieee754_atan2 (2.0 * __real__ x, den);
+ __real__ res = 0.5 * __ieee754_atan2 (2.0 * __real__ x, den);
- num = __imag__ x + 1.0;
- num = r2 + num * num;
+ if (fabs (__imag__ x) == 1.0
+ && fabs (__real__ x) < DBL_EPSILON * DBL_EPSILON)
+ __imag__ res = (__copysign (0.5, __imag__ x)
+ * (M_LN2 - __ieee754_log (fabs (__real__ x))));
+ else
+ {
+ double r2 = 0.0, num, f;
- den = __imag__ x - 1.0;
- den = r2 + den * den;
+ if (fabs (__real__ x) >= DBL_EPSILON * DBL_EPSILON)
+ r2 = __real__ x * __real__ x;
- __imag__ res = 0.25 * __ieee754_log (num / den);
+ num = __imag__ x + 1.0;
+ num = r2 + num * num;
+
+ den = __imag__ x - 1.0;
+ den = r2 + den * den;
+
+ f = num / den;
+ if (f < 0.5)
+ __imag__ res = 0.25 * __ieee754_log (f);
+ else
+ {
+ num = 4.0 * __imag__ x;
+ __imag__ res = 0.25 * __log1p (num / den);
+ }
+ }
+ }
+
+ if (fabs (__real__ res) < DBL_MIN)
+ {
+ volatile double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ res) < DBL_MIN)
+ {
+ volatile double force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_catanf.c b/math/s_catanf.c
index 5a432471cd..0713565c86 100644
--- a/math/s_catanf.c
+++ b/math/s_catanf.c
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
-
+#include <float.h>
__complex__ float
__catanf (__complex__ float x)
@@ -61,21 +61,84 @@ __catanf (__complex__ float x)
}
else
{
- float r2, num, den;
+ if (fabsf (__real__ x) >= 16.0f / FLT_EPSILON
+ || fabsf (__imag__ x) >= 16.0f / FLT_EPSILON)
+ {
+ __real__ res = __copysignf ((float) M_PI_2, __real__ x);
+ if (fabsf (__real__ x) <= 1.0f)
+ __imag__ res = 1.0f / __imag__ x;
+ else if (fabsf (__imag__ x) <= 1.0f)
+ __imag__ res = __imag__ x / __real__ x / __real__ x;
+ else
+ {
+ float h = __ieee754_hypotf (__real__ x / 2.0f,
+ __imag__ x / 2.0f);
+ __imag__ res = __imag__ x / h / h / 4.0f;
+ }
+ }
+ else
+ {
+ float den, absx, absy;
+
+ absx = fabsf (__real__ x);
+ absy = fabsf (__imag__ x);
+ if (absx < absy)
+ {
+ float t = absx;
+ absx = absy;
+ absy = t;
+ }
+
+ if (absy < FLT_EPSILON / 2.0f)
+ den = (1.0f - absx) * (1.0f + absx);
+ else if (absx >= 1.0f)
+ den = (1.0f - absx) * (1.0f + absx) - absy * absy;
+ else if (absx >= 0.75f || absy >= 0.5f)
+ den = -__x2y2m1f (absx, absy);
+ else
+ den = (1.0f - absx) * (1.0f + absx) - absy * absy;
+
+ __real__ res = 0.5f * __ieee754_atan2f (2.0f * __real__ x, den);
- r2 = __real__ x * __real__ x;
+ if (fabsf (__imag__ x) == 1.0f
+ && fabsf (__real__ x) < FLT_EPSILON * FLT_EPSILON)
+ __imag__ res = (__copysignf (0.5f, __imag__ x)
+ * ((float) M_LN2
+ - __ieee754_logf (fabsf (__real__ x))));
+ else
+ {
+ float r2 = 0.0f, num, f;
- den = 1 - r2 - __imag__ x * __imag__ x;
+ if (fabsf (__real__ x) >= FLT_EPSILON * FLT_EPSILON)
+ r2 = __real__ x * __real__ x;
- __real__ res = 0.5 * __ieee754_atan2f (2.0 * __real__ x, den);
+ num = __imag__ x + 1.0f;
+ num = r2 + num * num;
- num = __imag__ x + 1.0;
- num = r2 + num * num;
+ den = __imag__ x - 1.0f;
+ den = r2 + den * den;
- den = __imag__ x - 1.0;
- den = r2 + den * den;
+ f = num / den;
+ if (f < 0.5f)
+ __imag__ res = 0.25f * __ieee754_logf (f);
+ else
+ {
+ num = 4.0f * __imag__ x;
+ __imag__ res = 0.25f * __log1pf (num / den);
+ }
+ }
+ }
- __imag__ res = 0.25 * __ieee754_logf (num / den);
+ if (fabsf (__real__ res) < FLT_MIN)
+ {
+ volatile float force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ res) < FLT_MIN)
+ {
+ volatile float force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_catanh.c b/math/s_catanh.c
index 5371f44b67..54be9f9e41 100644
--- a/math/s_catanh.c
+++ b/math/s_catanh.c
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
-
+#include <float.h>
__complex__ double
__catanh (__complex__ double x)
@@ -56,19 +56,81 @@ __catanh (__complex__ double x)
}
else
{
- double i2 = __imag__ x * __imag__ x;
+ if (fabs (__real__ x) >= 16.0 / DBL_EPSILON
+ || fabs (__imag__ x) >= 16.0 / DBL_EPSILON)
+ {
+ __imag__ res = __copysign (M_PI_2, __imag__ x);
+ if (fabs (__imag__ x) <= 1.0)
+ __real__ res = 1.0 / __real__ x;
+ else if (fabs (__real__ x) <= 1.0)
+ __real__ res = __real__ x / __imag__ x / __imag__ x;
+ else
+ {
+ double h = __ieee754_hypot (__real__ x / 2.0, __imag__ x / 2.0);
+ __real__ res = __real__ x / h / h / 4.0;
+ }
+ }
+ else
+ {
+ if (fabs (__real__ x) == 1.0
+ && fabs (__imag__ x) < DBL_EPSILON * DBL_EPSILON)
+ __real__ res = (__copysign (0.5, __real__ x)
+ * (M_LN2 - __ieee754_log (fabs (__imag__ x))));
+ else
+ {
+ double i2 = 0.0;
+ if (fabs (__imag__ x) >= DBL_EPSILON * DBL_EPSILON)
+ i2 = __imag__ x * __imag__ x;
+
+ double num = 1.0 + __real__ x;
+ num = i2 + num * num;
- double num = 1.0 + __real__ x;
- num = i2 + num * num;
+ double den = 1.0 - __real__ x;
+ den = i2 + den * den;
- double den = 1.0 - __real__ x;
- den = i2 + den * den;
+ double f = num / den;
+ if (f < 0.5)
+ __real__ res = 0.25 * __ieee754_log (f);
+ else
+ {
+ num = 4.0 * __real__ x;
+ __real__ res = 0.25 * __log1p (num / den);
+ }
+ }
- __real__ res = 0.25 * (__ieee754_log (num) - __ieee754_log (den));
+ double absx, absy, den;
- den = 1 - __real__ x * __real__ x - i2;
+ absx = fabs (__real__ x);
+ absy = fabs (__imag__ x);
+ if (absx < absy)
+ {
+ double t = absx;
+ absx = absy;
+ absy = t;
+ }
- __imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den);
+ if (absy < DBL_EPSILON / 2.0)
+ den = (1.0 - absx) * (1.0 + absx);
+ else if (absx >= 1.0)
+ den = (1.0 - absx) * (1.0 + absx) - absy * absy;
+ else if (absx >= 0.75 || absy >= 0.5)
+ den = -__x2y2m1 (absx, absy);
+ else
+ den = (1.0 - absx) * (1.0 + absx) - absy * absy;
+
+ __imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den);
+ }
+
+ if (fabs (__real__ res) < DBL_MIN)
+ {
+ volatile double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ res) < DBL_MIN)
+ {
+ volatile double force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_catanhf.c b/math/s_catanhf.c
index 8385af41b0..0a08b95b58 100644
--- a/math/s_catanhf.c
+++ b/math/s_catanhf.c
@@ -20,7 +20,7 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
-
+#include <float.h>
__complex__ float
__catanhf (__complex__ float x)
@@ -56,19 +56,83 @@ __catanhf (__complex__ float x)
}
else
{
- float i2 = __imag__ x * __imag__ x;
+ if (fabsf (__real__ x) >= 16.0f / FLT_EPSILON
+ || fabsf (__imag__ x) >= 16.0f / FLT_EPSILON)
+ {
+ __imag__ res = __copysignf ((float) M_PI_2, __imag__ x);
+ if (fabsf (__imag__ x) <= 1.0f)
+ __real__ res = 1.0f / __real__ x;
+ else if (fabsf (__real__ x) <= 1.0f)
+ __real__ res = __real__ x / __imag__ x / __imag__ x;
+ else
+ {
+ float h = __ieee754_hypotf (__real__ x / 2.0f,
+ __imag__ x / 2.0f);
+ __real__ res = __real__ x / h / h / 4.0f;
+ }
+ }
+ else
+ {
+ if (fabsf (__real__ x) == 1.0f
+ && fabsf (__imag__ x) < FLT_EPSILON * FLT_EPSILON)
+ __real__ res = (__copysignf (0.5f, __real__ x)
+ * ((float) M_LN2
+ - __ieee754_logf (fabsf (__imag__ x))));
+ else
+ {
+ float i2 = 0.0f;
+ if (fabsf (__imag__ x) >= FLT_EPSILON * FLT_EPSILON)
+ i2 = __imag__ x * __imag__ x;
+
+ float num = 1.0f + __real__ x;
+ num = i2 + num * num;
- float num = 1.0 + __real__ x;
- num = i2 + num * num;
+ float den = 1.0f - __real__ x;
+ den = i2 + den * den;
- float den = 1.0 - __real__ x;
- den = i2 + den * den;
+ float f = num / den;
+ if (f < 0.5f)
+ __real__ res = 0.25f * __ieee754_logf (f);
+ else
+ {
+ num = 4.0f * __real__ x;
+ __real__ res = 0.25f * __log1pf (num / den);
+ }
+ }
- __real__ res = 0.25 * (__ieee754_logf (num) - __ieee754_logf (den));
+ float absx, absy, den;
- den = 1 - __real__ x * __real__ x - i2;
+ absx = fabsf (__real__ x);
+ absy = fabsf (__imag__ x);
+ if (absx < absy)
+ {
+ float t = absx;
+ absx = absy;
+ absy = t;
+ }
- __imag__ res = 0.5 * __ieee754_atan2f (2.0 * __imag__ x, den);
+ if (absy < FLT_EPSILON / 2.0f)
+ den = (1.0f - absx) * (1.0f + absx);
+ else if (absx >= 1.0f)
+ den = (1.0f - absx) * (1.0f + absx) - absy * absy;
+ else if (absx >= 0.75f || absy >= 0.5f)
+ den = -__x2y2m1f (absx, absy);
+ else
+ den = (1.0f - absx) * (1.0f + absx) - absy * absy;
+
+ __imag__ res = 0.5f * __ieee754_atan2f (2.0f * __imag__ x, den);
+ }
+
+ if (fabsf (__real__ res) < FLT_MIN)
+ {
+ volatile float force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ res) < FLT_MIN)
+ {
+ volatile float force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_catanhl.c b/math/s_catanhl.c
index 6844f03dea..8c4b8940c0 100644
--- a/math/s_catanhl.c
+++ b/math/s_catanhl.c
@@ -20,7 +20,14 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* To avoid spurious overflows, use this definition to treat IBM long
+ double as approximating an IEEE-style format. */
+#if LDBL_MANT_DIG == 106
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 0x1p-106L
+#endif
__complex__ long double
__catanhl (__complex__ long double x)
@@ -56,19 +63,82 @@ __catanhl (__complex__ long double x)
}
else
{
- long double i2 = __imag__ x * __imag__ x;
+ if (fabsl (__real__ x) >= 16.0L / LDBL_EPSILON
+ || fabsl (__imag__ x) >= 16.0L / LDBL_EPSILON)
+ {
+ __imag__ res = __copysignl (M_PI_2l, __imag__ x);
+ if (fabsl (__imag__ x) <= 1.0L)
+ __real__ res = 1.0L / __real__ x;
+ else if (fabsl (__real__ x) <= 1.0L)
+ __real__ res = __real__ x / __imag__ x / __imag__ x;
+ else
+ {
+ long double h = __ieee754_hypotl (__real__ x / 2.0L,
+ __imag__ x / 2.0L);
+ __real__ res = __real__ x / h / h / 4.0L;
+ }
+ }
+ else
+ {
+ if (fabsl (__real__ x) == 1.0L
+ && fabsl (__imag__ x) < LDBL_EPSILON * LDBL_EPSILON)
+ __real__ res = (__copysignl (0.5L, __real__ x)
+ * (M_LN2l - __ieee754_logl (fabsl (__imag__ x))));
+ else
+ {
+ long double i2 = 0.0;
+ if (fabsl (__imag__ x) >= LDBL_EPSILON * LDBL_EPSILON)
+ i2 = __imag__ x * __imag__ x;
+
+ long double num = 1.0L + __real__ x;
+ num = i2 + num * num;
- long double num = 1.0 + __real__ x;
- num = i2 + num * num;
+ long double den = 1.0L - __real__ x;
+ den = i2 + den * den;
- long double den = 1.0 - __real__ x;
- den = i2 + den * den;
+ long double f = num / den;
+ if (f < 0.5L)
+ __real__ res = 0.25L * __ieee754_logl (f);
+ else
+ {
+ num = 4.0L * __real__ x;
+ __real__ res = 0.25L * __log1pl (num / den);
+ }
+ }
- __real__ res = 0.25 * (__ieee754_logl (num) - __ieee754_logl (den));
+ long double absx, absy, den;
- den = 1 - __real__ x * __real__ x - i2;
+ absx = fabsl (__real__ x);
+ absy = fabsl (__imag__ x);
+ if (absx < absy)
+ {
+ long double t = absx;
+ absx = absy;
+ absy = t;
+ }
- __imag__ res = 0.5 * __ieee754_atan2l (2.0 * __imag__ x, den);
+ if (absy < LDBL_EPSILON / 2.0L)
+ den = (1.0L - absx) * (1.0L + absx);
+ else if (absx >= 1.0L)
+ den = (1.0L - absx) * (1.0L + absx) - absy * absy;
+ else if (absx >= 0.75L || absy >= 0.5L)
+ den = -__x2y2m1l (absx, absy);
+ else
+ den = (1.0L - absx) * (1.0L + absx) - absy * absy;
+
+ __imag__ res = 0.5L * __ieee754_atan2l (2.0L * __imag__ x, den);
+ }
+
+ if (fabsl (__real__ res) < LDBL_MIN)
+ {
+ volatile long double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ res) < LDBL_MIN)
+ {
+ volatile long double force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_catanl.c b/math/s_catanl.c
index 57d2e59550..9bb5e012e6 100644
--- a/math/s_catanl.c
+++ b/math/s_catanl.c
@@ -20,7 +20,14 @@
#include <complex.h>
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* To avoid spurious overflows, use this definition to treat IBM long
+ double as approximating an IEEE-style format. */
+#if LDBL_MANT_DIG == 106
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 0x1p-106L
+#endif
__complex__ long double
__catanl (__complex__ long double x)
@@ -61,21 +68,83 @@ __catanl (__complex__ long double x)
}
else
{
- long double r2, num, den;
+ if (fabsl (__real__ x) >= 16.0L / LDBL_EPSILON
+ || fabsl (__imag__ x) >= 16.0L / LDBL_EPSILON)
+ {
+ __real__ res = __copysignl (M_PI_2l, __real__ x);
+ if (fabsl (__real__ x) <= 1.0L)
+ __imag__ res = 1.0L / __imag__ x;
+ else if (fabsl (__imag__ x) <= 1.0L)
+ __imag__ res = __imag__ x / __real__ x / __real__ x;
+ else
+ {
+ long double h = __ieee754_hypotl (__real__ x / 2.0L,
+ __imag__ x / 2.0L);
+ __imag__ res = __imag__ x / h / h / 4.0L;
+ }
+ }
+ else
+ {
+ long double den, absx, absy;
+
+ absx = fabsl (__real__ x);
+ absy = fabsl (__imag__ x);
+ if (absx < absy)
+ {
+ long double t = absx;
+ absx = absy;
+ absy = t;
+ }
+
+ if (absy < LDBL_EPSILON / 2.0L)
+ den = (1.0L - absx) * (1.0L + absx);
+ else if (absx >= 1.0L)
+ den = (1.0L - absx) * (1.0L + absx) - absy * absy;
+ else if (absx >= 0.75L || absy >= 0.5L)
+ den = -__x2y2m1l (absx, absy);
+ else
+ den = (1.0L - absx) * (1.0L + absx) - absy * absy;
+
+ __real__ res = 0.5L * __ieee754_atan2l (2.0L * __real__ x, den);
- r2 = __real__ x * __real__ x;
+ if (fabsl (__imag__ x) == 1.0L
+ && fabsl (__real__ x) < LDBL_EPSILON * LDBL_EPSILON)
+ __imag__ res = (__copysignl (0.5L, __imag__ x)
+ * (M_LN2l - __ieee754_logl (fabsl (__real__ x))));
+ else
+ {
+ long double r2 = 0.0L, num, f;
- den = 1 - r2 - __imag__ x * __imag__ x;
+ if (fabsl (__real__ x) >= LDBL_EPSILON * LDBL_EPSILON)
+ r2 = __real__ x * __real__ x;
- __real__ res = 0.5 * __ieee754_atan2l (2.0 * __real__ x, den);
+ num = __imag__ x + 1.0L;
+ num = r2 + num * num;
- num = __imag__ x + 1.0;
- num = r2 + num * num;
+ den = __imag__ x - 1.0L;
+ den = r2 + den * den;
- den = __imag__ x - 1.0;
- den = r2 + den * den;
+ f = num / den;
+ if (f < 0.5L)
+ __imag__ res = 0.25L * __ieee754_logl (f);
+ else
+ {
+ num = 4.0L * __imag__ x;
+ __imag__ res = 0.25L * __log1pl (num / den);
+ }
+ }
+ }
- __imag__ res = 0.25 * __ieee754_logl (num / den);
+ if (fabsl (__real__ res) < LDBL_MIN)
+ {
+ volatile long double force_underflow = __real__ res * __real__ res;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ res) < LDBL_MIN)
+ {
+ volatile long double force_underflow = __imag__ res * __imag__ res;
+ (void) force_underflow;
+ }
}
return res;
diff --git a/math/s_ccosh.c b/math/s_ccosh.c
index 2c05b63de4..05b146ecbf 100644
--- a/math/s_ccosh.c
+++ b/math/s_ccosh.c
@@ -82,6 +82,19 @@ __ccosh (__complex__ double x)
__real__ retval = __ieee754_cosh (__real__ x) * cosix;
__imag__ retval = __ieee754_sinh (__real__ x) * sinix;
}
+
+ if (fabs (__real__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_ccoshf.c b/math/s_ccoshf.c
index de7e7d302a..62bf83c05b 100644
--- a/math/s_ccoshf.c
+++ b/math/s_ccoshf.c
@@ -82,6 +82,19 @@ __ccoshf (__complex__ float x)
__real__ retval = __ieee754_coshf (__real__ x) * cosix;
__imag__ retval = __ieee754_sinhf (__real__ x) * sinix;
}
+
+ if (fabsf (__real__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_ccoshl.c b/math/s_ccoshl.c
index 4bbd31148f..18d3df0430 100644
--- a/math/s_ccoshl.c
+++ b/math/s_ccoshl.c
@@ -82,6 +82,19 @@ __ccoshl (__complex__ long double x)
__real__ retval = __ieee754_coshl (__real__ x) * cosix;
__imag__ retval = __ieee754_sinhl (__real__ x) * sinix;
}
+
+ if (fabsl (__real__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_cexp.c b/math/s_cexp.c
index 36157ff61b..655e4e8dee 100644
--- a/math/s_cexp.c
+++ b/math/s_cexp.c
@@ -74,6 +74,18 @@ __cexp (__complex__ double x)
__real__ retval = exp_val * cosix;
__imag__ retval = exp_val * sinix;
}
+ if (fabs (__real__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_cexpf.c b/math/s_cexpf.c
index 364be8ac31..fa942d34f7 100644
--- a/math/s_cexpf.c
+++ b/math/s_cexpf.c
@@ -74,6 +74,18 @@ __cexpf (__complex__ float x)
__real__ retval = exp_val * cosix;
__imag__ retval = exp_val * sinix;
}
+ if (fabsf (__real__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_cexpl.c b/math/s_cexpl.c
index 1bfce78aeb..d827bc3de4 100644
--- a/math/s_cexpl.c
+++ b/math/s_cexpl.c
@@ -74,6 +74,18 @@ __cexpl (__complex__ long double x)
__real__ retval = exp_val * cosix;
__imag__ retval = exp_val * sinix;
}
+ if (fabsl (__real__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csin.c b/math/s_csin.c
index cc1c9cd7ab..6d28e4c1b9 100644
--- a/math/s_csin.c
+++ b/math/s_csin.c
@@ -88,6 +88,19 @@ __csin (__complex__ double x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabs (__real__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csinf.c b/math/s_csinf.c
index 92b858ae6a..a3dcf9d3aa 100644
--- a/math/s_csinf.c
+++ b/math/s_csinf.c
@@ -88,6 +88,19 @@ __csinf (__complex__ float x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabsf (__real__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csinh.c b/math/s_csinh.c
index be3c6bbb87..5a98f67851 100644
--- a/math/s_csinh.c
+++ b/math/s_csinh.c
@@ -88,6 +88,19 @@ __csinh (__complex__ double x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabs (__real__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabs (__imag__ retval) < DBL_MIN)
+ {
+ volatile double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csinhf.c b/math/s_csinhf.c
index 6c58c1d0d2..3658805fcb 100644
--- a/math/s_csinhf.c
+++ b/math/s_csinhf.c
@@ -88,6 +88,19 @@ __csinhf (__complex__ float x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabsf (__real__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsf (__imag__ retval) < FLT_MIN)
+ {
+ volatile float force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csinhl.c b/math/s_csinhl.c
index 8acf6dec52..54a13fdda2 100644
--- a/math/s_csinhl.c
+++ b/math/s_csinhl.c
@@ -88,6 +88,19 @@ __csinhl (__complex__ long double x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabsl (__real__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/s_csinl.c b/math/s_csinl.c
index 6b3c1ea2f1..4d6ce3db35 100644
--- a/math/s_csinl.c
+++ b/math/s_csinl.c
@@ -88,6 +88,19 @@ __csinl (__complex__ long double x)
if (negate)
__real__ retval = -__real__ retval;
+
+ if (fabsl (__real__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __real__ retval * __real__ retval;
+ (void) force_underflow;
+ }
+ if (fabsl (__imag__ retval) < LDBL_MIN)
+ {
+ volatile long double force_underflow
+ = __imag__ retval * __imag__ retval;
+ (void) force_underflow;
+ }
}
else
{
diff --git a/math/test-snan.c b/math/test-snan.c
index f185cbb45c..82f1dbe209 100644
--- a/math/test-snan.c
+++ b/math/test-snan.c
@@ -1,4 +1,4 @@
-/* Test signaling NaNs in isnan, isinf, and similar functions.
+/* Test signaling NaNs in issignaling, isnan, isinf, and similar functions.
Copyright (C) 2008-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2005.
@@ -119,6 +119,48 @@ NAME (void) \
feenableexcept (FE_ALL_EXCEPT); \
if (sigsetjmp(sigfpe_buf, 0)) \
{ \
+ printf (#FLOAT " issignaling (qNaN) raised SIGFPE\n"); \
+ errors++; \
+ } else { \
+ check (#FLOAT " issignaling (qNaN)", !issignaling (qNaN_var)); \
+ } \
+ \
+ feclearexcept(FE_ALL_EXCEPT); \
+ feenableexcept (FE_ALL_EXCEPT); \
+ if (sigsetjmp(sigfpe_buf, 0)) \
+ { \
+ printf (#FLOAT " issignaling (-qNaN) raised SIGFPE\n"); \
+ errors++; \
+ } else { \
+ check (#FLOAT " issignaling (-qNaN)", !issignaling (-qNaN_var)); \
+ } \
+ \
+ feclearexcept(FE_ALL_EXCEPT); \
+ feenableexcept (FE_ALL_EXCEPT); \
+ if (sigsetjmp(sigfpe_buf, 0)) \
+ { \
+ printf (#FLOAT " issignaling (sNaN) raised SIGFPE\n"); \
+ errors++; \
+ } else { \
+ check (#FLOAT " issignaling (sNaN)", \
+ SNAN_TESTS (FLOAT) ? issignaling (sNaN_var) : 1); \
+ } \
+ \
+ feclearexcept(FE_ALL_EXCEPT); \
+ feenableexcept (FE_ALL_EXCEPT); \
+ if (sigsetjmp(sigfpe_buf, 0)) \
+ { \
+ printf (#FLOAT " issignaling (-sNaN) raised SIGFPE\n"); \
+ errors++; \
+ } else { \
+ check (#FLOAT " issignaling (-sNaN)", \
+ SNAN_TESTS (FLOAT) ? issignaling (minus_sNaN_var) : 1); \
+ } \
+ \
+ feclearexcept(FE_ALL_EXCEPT); \
+ feenableexcept (FE_ALL_EXCEPT); \
+ if (sigsetjmp(sigfpe_buf, 0)) \
+ { \
printf (#FLOAT " isnan (qNaN) raised SIGFPE\n"); \
errors++; \
} else { \
diff --git a/math/tst-CMPLX.c b/math/tst-CMPLX.c
index 5e9a501a55..fa0747b991 100644
--- a/math/tst-CMPLX.c
+++ b/math/tst-CMPLX.c
@@ -45,9 +45,7 @@ CMPLX (" #r ", " #i ") does not produce complex " #t ": %zu\n", s); \
C (CMPLXF, float);
C (CMPLX, double);
-# ifndef NO_LONG_DOUBLE
C (CMPLXL, long double);
-# endif
#endif
return result;
diff --git a/math/tst-CMPLX2.c b/math/tst-CMPLX2.c
index 4b62f8857e..195ea7a848 100644
--- a/math/tst-CMPLX2.c
+++ b/math/tst-CMPLX2.c
@@ -120,14 +120,12 @@ check_double (void)
double, comparec, CMPLX);
}
-# ifndef NO_LONG_DOUBLE
static void
check_long_double (void)
{
ALL_CHECKS (0.0l, -0.0l, __builtin_nanl (""), __builtin_infl (),
long double, comparecl, CMPLXL);
}
-# endif
#endif
static int
@@ -136,9 +134,7 @@ do_test (void)
#ifdef CMPLX
check_float ();
check_double ();
-# ifndef NO_LONG_DOUBLE
check_long_double ();
-# endif
#endif
return result;
diff --git a/math/w_tgamma.c b/math/w_tgamma.c
index 976b5fb95c..6b6c7c5241 100644
--- a/math/w_tgamma.c
+++ b/math/w_tgamma.c
@@ -24,7 +24,8 @@ __tgamma(double x)
int local_signgam;
double y = __ieee754_gamma_r(x,&local_signgam);
- if(__builtin_expect(!__finite(y), 0)&&__finite(x)
+ if(__builtin_expect(!__finite(y), 0)
+ && (__finite (x) || __isinf (x) < 0)
&& _LIB_VERSION != _IEEE_) {
if (x == 0.0)
return __kernel_standard(x,x,50); /* tgamma pole */
diff --git a/math/w_tgammaf.c b/math/w_tgammaf.c
index 48141354e2..8bb553e47b 100644
--- a/math/w_tgammaf.c
+++ b/math/w_tgammaf.c
@@ -22,7 +22,8 @@ __tgammaf(float x)
int local_signgam;
float y = __ieee754_gammaf_r(x,&local_signgam);
- if(__builtin_expect(!__finitef(y), 0) && __finitef(x)
+ if(__builtin_expect(!__finitef(y), 0)
+ && (__finitef (x) || __isinff (x) < 0)
&& _LIB_VERSION != _IEEE_) {
if (x == (float)0.0)
/* tgammaf pole */
diff --git a/math/w_tgammal.c b/math/w_tgammal.c
index 86adab29ea..72b247db2a 100644
--- a/math/w_tgammal.c
+++ b/math/w_tgammal.c
@@ -27,7 +27,8 @@ __tgammal(long double x)
int local_signgam;
long double y = __ieee754_gammal_r(x,&local_signgam);
- if(__builtin_expect(!__finitel(y), 0) && __finitel(x)
+ if(__builtin_expect(!__finitel(y), 0)
+ && (__finitel (x) || __isinfl (x) < 0)
&& _LIB_VERSION != _IEEE_) {
if(x==0.0)
return __kernel_standard_l(x,x,250); /* tgamma pole */
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index f5f18e914c..4aded9bbbd 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -318,10 +318,12 @@
# define __attribute_artificial__ /* Ignore */
#endif
-/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
- inline semantics, unless -fgnu89-inline is used. */
-#if (!defined __cplusplus || __GNUC_PREREQ (4,3)) && defined __GNUC__
-# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+#ifdef __GNUC__
+/* One of these will be defined if the __gnu_inline__ attribute is
+ available. In C++, __GNUC_GNU_INLINE__ will be defined even though
+ __inline does not use the GNU inlining rules. If neither macro is
+ defined, this version of GCC only supports GNU inline semantics. */
+# if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
@@ -329,10 +331,6 @@
# define __extern_inline extern __inline
# define __extern_always_inline extern __always_inline
# endif
-#elif defined __GNUC__ /* C++ and GCC <4.3. */
-# define __extern_inline extern __inline
-# define __extern_always_inline \
- extern __always_inline
#else /* Not GCC. */
# define __extern_inline /* Ignore */
# define __extern_always_inline /* Ignore */
diff --git a/misc/sys/param.h b/misc/sys/param.h
index 5e6353d1e8..d257ec7576 100644
--- a/misc/sys/param.h
+++ b/misc/sys/param.h
@@ -71,7 +71,9 @@
/* Unit of `st_blocks'. */
-#define DEV_BSIZE 512
+#ifndef DEV_BSIZE
+# define DEV_BSIZE 512
+#endif
/* Bit map related macros. */
diff --git a/nis/nis_defaults.c b/nis/nis_defaults.c
index f035e41ea2..ff84faea4a 100644
--- a/nis/nis_defaults.c
+++ b/nis/nis_defaults.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/types.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_hash.c b/nis/nis_hash.c
index e26b6b0628..d8a6d06fdd 100644
--- a/nis/nis_hash.c
+++ b/nis/nis_hash.c
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include <rpcsvc/nis.h>
/* This is from libc/db/hash/hash_func.c, hash3 is static there */
diff --git a/nis/nis_print.c b/nis/nis_print.c
index 1e9ab9e5f0..d24dcdec27 100644
--- a/nis/nis_print.c
+++ b/nis/nis_print.c
@@ -19,6 +19,7 @@
#include <time.h>
#include <string.h>
#include <libintl.h>
+#include <stdint.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_xdr.c b/nis/nis_xdr.c
index efebef36fd..10c913c5cc 100644
--- a/nis/nis_xdr.c
+++ b/nis/nis_xdr.c
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include <rpcsvc/nis.h>
#include <rpcsvc/nis_callback.h> /* for "official" Solaris xdr functions */
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 707744a657..6e5ca4cfa0 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,61 @@
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * pthread_create.c: Add missing #include <stdint.h> due to uint64_t or
+ uint32_t usage.
+ * sysdeps/pthread/createthread.c: Likewise.
+
+2013-05-14 Andreas Jaeger <aj@suse.de>
+
+ [BZ #10686]
+ * sysdeps/x86_64/tls.h (struct tcbhead_t): Add __private_ss field.
+ * sysdeps/i386/tls.h (struct tcbhead_t): Likewise.
+
+2013-05-09 Andi Kleen <ak@linux.intel.com>
+
+ * tst-mutex8.c (do_test): Check for ENABLE_PI.
+
+2013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * pthreadP.h (check_sched_policy_attr): New inline function.
+ (check_sched_priority_attr): Likewise.
+ (check_stacksize_attr): Likewise.
+ (__kernel_cpumask_size, __determine_cpumask_size): Declare
+ extern.
+ (check_cpuset_attr): New inline function.
+ * pthread_attr_setschedparam (__pthread_attr_setschedparam):
+ Use check_sched_priority_attr.
+ * pthread_attr_setschedpolicy.c
+ (__pthread_attr_setschedpolicy): Use check_sched_policy_attr.
+ * pthread_attr_setstack.c (__pthread_attr_setstack): Use
+ check_stacksize_attr.
+ * pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
+ (__pthread_attr_setaffinity_new): Use check_cpuset_attr.
+
+2013-04-11 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+ (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
+ directly use absolute timeout.
+
+2013-04-07 Carlos O'Donell <carlos@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sem_post.c: Include atomic.h.
+
+2013-04-04 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #15337]
+ * sysdeps/unix/sysv/linux/x86_64/cancellation.S
+ [IS_IN_libpthread]
+ [SHARED && defined DO_VERSIONING && !defined NO_HIDDEN]: Mark
+ __pthread_unwind hidden.
+
+2013-03-28 Roland McGrath <roland@hack.frob.com>
+
+ * pthread_create.c (start_thread) [!SHARED]:
+ Call __call_tls_dtors only if it's not NULL.
+
2013-03-19 Siddhesh Poyarekar <siddhesh@redhat.com>
* allocatestack.c (allocate_stack): Use __default_pthread_attr
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 954b54a50a..fd52b07482 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -31,7 +31,7 @@
#include <pthread-functions.h>
#include <atomic.h>
#include <kernel-features.h>
-
+#include <errno.h>
/* Atomic operations on TLS memory. */
#ifndef THREAD_ATOMIC_CMPXCHG_VAL
@@ -589,4 +589,66 @@ extern void __wait_lookup_done (void) attribute_hidden;
# define USE_REQUEUE_PI(mut) 0
#endif
+/* Returns 0 if POL is a valid scheduling policy. */
+static inline int
+check_sched_policy_attr (int pol)
+{
+ if (pol == SCHED_OTHER || pol == SCHED_FIFO || pol == SCHED_RR)
+ return 0;
+
+ return EINVAL;
+}
+
+/* Returns 0 if PR is within the accepted range of priority values for
+ the scheduling policy POL or EINVAL otherwise. */
+static inline int
+check_sched_priority_attr (int pr, int pol)
+{
+ int min = __sched_get_priority_min (pol);
+ int max = __sched_get_priority_max (pol);
+
+ if (min >= 0 && max >= 0 && pr >= min && pr <= max)
+ return 0;
+
+ return EINVAL;
+}
+
+/* Returns 0 if ST is a valid stack size for a thread stack and EINVAL
+ otherwise. */
+static inline int
+check_stacksize_attr (size_t st)
+{
+ if (st >= PTHREAD_STACK_MIN)
+ return 0;
+
+ return EINVAL;
+}
+
+/* Defined in pthread_setaffinity.c. */
+extern size_t __kernel_cpumask_size attribute_hidden;
+extern int __determine_cpumask_size (pid_t tid);
+
+/* Returns 0 if CS and SZ are valid values for the cpuset and cpuset size
+ respectively. Otherwise it returns an error number. */
+static inline int
+check_cpuset_attr (const cpu_set_t *cs, const size_t sz)
+{
+ if (__kernel_cpumask_size == 0)
+ {
+ int res = __determine_cpumask_size (THREAD_SELF->tid);
+ if (res)
+ return res;
+ }
+
+ /* Check whether the new bitmask has any bit set beyond the
+ last one the kernel accepts. */
+ for (size_t cnt = __kernel_cpumask_size; cnt < sz; ++cnt)
+ if (((char *) cs)[cnt] != '\0')
+ /* Found a nonzero byte. This means the user request cannot be
+ fulfilled. */
+ return EINVAL;
+
+ return 0;
+}
+
#endif /* pthreadP.h */
diff --git a/nptl/pthread_attr_setschedparam.c b/nptl/pthread_attr_setschedparam.c
index ec1a8bd444..a167f153d1 100644
--- a/nptl/pthread_attr_setschedparam.c
+++ b/nptl/pthread_attr_setschedparam.c
@@ -30,11 +30,10 @@ __pthread_attr_setschedparam (attr, param)
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
struct pthread_attr *iattr = (struct pthread_attr *) attr;
- int min = sched_get_priority_min (iattr->schedpolicy);
- int max = sched_get_priority_max (iattr->schedpolicy);
- if (min == -1 || max == -1
- || param->sched_priority > max || param->sched_priority < min)
- return EINVAL;
+ int ret = check_sched_priority_attr (param->sched_priority,
+ iattr->schedpolicy);
+ if (ret)
+ return ret;
/* Copy the new values. */
memcpy (&iattr->schedparam, param, sizeof (struct sched_param));
diff --git a/nptl/pthread_attr_setschedpolicy.c b/nptl/pthread_attr_setschedpolicy.c
index 2fa6921690..4fe0b8e102 100644
--- a/nptl/pthread_attr_setschedpolicy.c
+++ b/nptl/pthread_attr_setschedpolicy.c
@@ -32,8 +32,9 @@ __pthread_attr_setschedpolicy (attr, policy)
iattr = (struct pthread_attr *) attr;
/* Catch invalid values. */
- if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
- return EINVAL;
+ int ret = check_sched_policy_attr (policy);
+ if (ret)
+ return ret;
/* Store the new values. */
iattr->schedpolicy = policy;
diff --git a/nptl/pthread_attr_setstack.c b/nptl/pthread_attr_setstack.c
index 783cffe6a1..4bd314e66a 100644
--- a/nptl/pthread_attr_setstack.c
+++ b/nptl/pthread_attr_setstack.c
@@ -39,8 +39,9 @@ __pthread_attr_setstack (attr, stackaddr, stacksize)
iattr = (struct pthread_attr *) attr;
/* Catch invalid sizes. */
- if (stacksize < PTHREAD_STACK_MIN)
- return EINVAL;
+ int ret = check_stacksize_attr (stacksize);
+ if (ret)
+ return ret;
#ifdef EXTRA_PARAM_CHECKS
EXTRA_PARAM_CHECKS;
diff --git a/nptl/pthread_attr_setstacksize.c b/nptl/pthread_attr_setstacksize.c
index b7f291906f..585bf087df 100644
--- a/nptl/pthread_attr_setstacksize.c
+++ b/nptl/pthread_attr_setstacksize.c
@@ -37,8 +37,9 @@ __pthread_attr_setstacksize (attr, stacksize)
iattr = (struct pthread_attr *) attr;
/* Catch invalid sizes. */
- if (stacksize < PTHREAD_STACK_MIN)
- return EINVAL;
+ int ret = check_stacksize_attr (stacksize);
+ if (ret)
+ return ret;
iattr->stacksize = stacksize;
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index c18278cf08..b78bd95c46 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -21,6 +21,7 @@
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include "pthreadP.h"
#include <hp-timing.h>
#include <ldsodefs.h>
@@ -312,7 +313,10 @@ start_thread (void *arg)
}
/* Call destructors for the thread_local TLS variables. */
- __call_tls_dtors ();
+#ifndef SHARED
+ if (&__call_tls_dtors != NULL)
+#endif
+ __call_tls_dtors ();
/* Run the destructor for the thread-local data. */
__nptl_deallocate_tsd ();
diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h
index 1405f60391..3d18b1de73 100644
--- a/nptl/sysdeps/i386/tls.h
+++ b/nptl/sysdeps/i386/tls.h
@@ -59,7 +59,9 @@ typedef struct
int __unused1;
#endif
/* Reservation of some values for the TM ABI. */
- void *__private_tm[5];
+ void *__private_tm[4];
+ /* GCC split stack support. */
+ void *__private_ss;
} tcbhead_t;
# define TLS_MULTIPLE_THREADS_IN_TCB 1
diff --git a/nptl/sysdeps/pthread/createthread.c b/nptl/sysdeps/pthread/createthread.c
index b0f686d25f..d24136b0e3 100644
--- a/nptl/sysdeps/pthread/createthread.c
+++ b/nptl/sysdeps/pthread/createthread.c
@@ -23,6 +23,7 @@
#include <atomic.h>
#include <ldsodefs.h>
#include <tls.h>
+#include <stdint.h>
#include "kernel-features.h"
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
index 02f8013a41..a6d6bc460a 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
@@ -66,6 +66,34 @@ __pthread_cond_timedwait:
movl $EINVAL, %eax
jae 18f
+ /* Stack frame:
+
+ esp + 32
+ +--------------------------+
+ esp + 24 | timeout value |
+ +--------------------------+
+ esp + 20 | futex pointer |
+ +--------------------------+
+ esp + 16 | pi-requeued flag |
+ +--------------------------+
+ esp + 12 | old broadcast_seq value |
+ +--------------------------+
+ esp + 4 | old wake_seq value |
+ +--------------------------+
+ esp + 0 | old cancellation mode |
+ +--------------------------+
+ */
+
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+# ifdef PIC
+ LOAD_PIC_REG (cx)
+ cmpl $0, __have_futex_clock_realtime@GOTOFF(%ecx)
+# else
+ cmpl $0, __have_futex_clock_realtime
+# endif
+ je .Lreltmo
+#endif
+
/* Get internal lock. */
movl $1, %edx
xorl %eax, %eax
@@ -96,7 +124,11 @@ __pthread_cond_timedwait:
addl $1, cond_futex(%ebx)
addl $(1 << nwaiters_shift), cond_nwaiters(%ebx)
-#define FRAME_SIZE 32
+#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+# define FRAME_SIZE 24
+#else
+# define FRAME_SIZE 32
+#endif
subl $FRAME_SIZE, %esp
cfi_adjust_cfa_offset(FRAME_SIZE)
cfi_remember_state
@@ -105,60 +137,19 @@ __pthread_cond_timedwait:
movl wakeup_seq(%ebx), %edi
movl wakeup_seq+4(%ebx), %edx
movl broadcast_seq(%ebx), %eax
- movl %edi, 12(%esp)
- movl %edx, 16(%esp)
- movl %eax, 20(%esp)
+ movl %edi, 4(%esp)
+ movl %edx, 8(%esp)
+ movl %eax, 12(%esp)
/* Reset the pi-requeued flag. */
-8: movl $0, 24(%esp)
- /* Get the current time. */
- movl %ebx, %edx
-#ifdef __NR_clock_gettime
- /* Get the clock number. */
- movl cond_nwaiters(%ebx), %ebx
- andl $((1 << nwaiters_shift) - 1), %ebx
- /* Only clocks 0 and 1 are allowed so far. Both are handled in the
- kernel. */
- leal 4(%esp), %ecx
- movl $__NR_clock_gettime, %eax
- ENTER_KERNEL
- movl %edx, %ebx
-
- /* Compute relative timeout. */
- movl (%ebp), %ecx
- movl 4(%ebp), %edx
- subl 4(%esp), %ecx
- subl 8(%esp), %edx
-#else
- /* Get the current time. */
- leal 4(%esp), %ebx
- xorl %ecx, %ecx
- movl $__NR_gettimeofday, %eax
- ENTER_KERNEL
- movl %edx, %ebx
+ movl $0, 16(%esp)
- /* Compute relative timeout. */
- movl 8(%esp), %eax
- movl $1000, %edx
- mul %edx /* Milli seconds to nano seconds. */
- movl (%ebp), %ecx
- movl 4(%ebp), %edx
- subl 4(%esp), %ecx
- subl %eax, %edx
-#endif
- jns 12f
- addl $1000000000, %edx
- subl $1, %ecx
-12: testl %ecx, %ecx
+ cmpl $0, (%ebp)
movl $-ETIMEDOUT, %esi
js 6f
- /* Store relative timeout. */
-21: movl %ecx, 4(%esp)
- movl %edx, 8(%esp)
-
- movl cond_futex(%ebx), %edi
- movl %edi, 28(%esp)
+8: movl cond_futex(%ebx), %edi
+ movl %edi, 20(%esp)
/* Unlock. */
LOCK
@@ -173,6 +164,7 @@ __pthread_cond_timedwait:
4: call __pthread_enable_asynccancel
movl %eax, (%esp)
+ leal (%ebp), %esi
#if FUTEX_PRIVATE_FLAG > 255
xorl %ecx, %ecx
#endif
@@ -196,9 +188,7 @@ __pthread_cond_timedwait:
jne 42f
orl $FUTEX_CLOCK_REALTIME, %ecx
- /* Requeue-PI uses absolute timeout */
-42: leal (%ebp), %esi
- movl 28(%esp), %edx
+42: movl 20(%esp), %edx
addl $cond_futex, %ebx
.Ladd_cond_futex_pi:
movl $SYS_futex, %eax
@@ -209,12 +199,12 @@ __pthread_cond_timedwait:
/* Set the pi-requeued flag only if the kernel has returned 0. The
kernel does not hold the mutex on ETIMEDOUT or any other error. */
cmpl $0, %eax
- sete 24(%esp)
+ sete 16(%esp)
je 41f
/* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
successfully, it has already locked the mutex for us and the
- pi_flag (24(%esp)) is set to denote that fact. However, if another
+ pi_flag (16(%esp)) is set to denote that fact. However, if another
thread changed the futex value before we entered the wait, the
syscall may return an EAGAIN and the mutex is not locked. We go
ahead with a success anyway since later we look at the pi_flag to
@@ -234,22 +224,28 @@ __pthread_cond_timedwait:
xorl %ecx, %ecx
40: subl $1, %ecx
+ movl $0, 16(%esp)
#ifdef __ASSUME_PRIVATE_FUTEX
andl $FUTEX_PRIVATE_FLAG, %ecx
#else
andl %gs:PRIVATE_FUTEX, %ecx
#endif
-#if FUTEX_WAIT != 0
- addl $FUTEX_WAIT, %ecx
-#endif
- leal 4(%esp), %esi
- movl 28(%esp), %edx
+ addl $FUTEX_WAIT_BITSET, %ecx
+ /* The following only works like this because we only support
+ two clocks, represented using a single bit. */
+ testl $1, cond_nwaiters(%ebx)
+ jne 30f
+ orl $FUTEX_CLOCK_REALTIME, %ecx
+30:
+ movl 20(%esp), %edx
+ movl $0xffffffff, %ebp
addl $cond_futex, %ebx
.Ladd_cond_futex:
movl $SYS_futex, %eax
ENTER_KERNEL
subl $cond_futex, %ebx
.Lsub_cond_futex:
+ movl 28+FRAME_SIZE(%esp), %ebp
movl %eax, %esi
41: movl (%esp), %eax
@@ -268,7 +264,7 @@ __pthread_cond_timedwait:
jnz 5f
6: movl broadcast_seq(%ebx), %eax
- cmpl 20(%esp), %eax
+ cmpl 12(%esp), %eax
jne 23f
movl woken_seq(%ebx), %eax
@@ -277,9 +273,9 @@ __pthread_cond_timedwait:
movl wakeup_seq(%ebx), %edi
movl wakeup_seq+4(%ebx), %edx
- cmpl 16(%esp), %edx
+ cmpl 8(%esp), %edx
jne 7f
- cmpl 12(%esp), %edi
+ cmpl 4(%esp), %edi
je 15f
7: cmpl %ecx, %edx
@@ -292,7 +288,7 @@ __pthread_cond_timedwait:
/* We need to go back to futex_wait. If we're using requeue_pi, then
release the mutex we had acquired and go back. */
- movl 24(%esp), %edx
+ movl 16(%esp), %edx
test %edx, %edx
jz 8b
@@ -357,13 +353,13 @@ __pthread_cond_timedwait:
11: movl 24+FRAME_SIZE(%esp), %eax
/* With requeue_pi, the mutex lock is held in the kernel. */
- movl 24(%esp), %ecx
+ movl 16(%esp), %ecx
testl %ecx, %ecx
jnz 27f
call __pthread_mutex_cond_lock
26: addl $FRAME_SIZE, %esp
- cfi_adjust_cfa_offset(-FRAME_SIZE);
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
/* We return the result of the mutex_lock operation if it failed. */
testl %eax, %eax
@@ -509,6 +505,245 @@ __pthread_cond_timedwait:
#endif
call __lll_unlock_wake
jmp 11b
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
+
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+.Lreltmo:
+ /* Get internal lock. */
+ movl $1, %edx
+ xorl %eax, %eax
+ LOCK
+# if cond_lock == 0
+ cmpxchgl %edx, (%ebx)
+# else
+ cmpxchgl %edx, cond_lock(%ebx)
+# endif
+ jnz 101f
+
+ /* Store the reference to the mutex. If there is already a
+ different value in there this is a bad user bug. */
+102: cmpl $-1, dep_mutex(%ebx)
+ movl 24(%esp), %eax
+ je 117f
+ movl %eax, dep_mutex(%ebx)
+
+ /* Unlock the mutex. */
+117: xorl %edx, %edx
+ call __pthread_mutex_unlock_usercnt
+
+ testl %eax, %eax
+ jne 16b
+
+ addl $1, total_seq(%ebx)
+ adcl $0, total_seq+4(%ebx)
+ addl $1, cond_futex(%ebx)
+ addl $(1 << nwaiters_shift), cond_nwaiters(%ebx)
+
+ subl $FRAME_SIZE, %esp
+ cfi_adjust_cfa_offset(FRAME_SIZE)
+
+ /* Get and store current wakeup_seq value. */
+ movl wakeup_seq(%ebx), %edi
+ movl wakeup_seq+4(%ebx), %edx
+ movl broadcast_seq(%ebx), %eax
+ movl %edi, 4(%esp)
+ movl %edx, 8(%esp)
+ movl %eax, 12(%esp)
+
+ /* Reset the pi-requeued flag. */
+ movl $0, 16(%esp)
+
+ /* Get the current time. */
+108: movl %ebx, %edx
+# ifdef __NR_clock_gettime
+ /* Get the clock number. */
+ movl cond_nwaiters(%ebx), %ebx
+ andl $((1 << nwaiters_shift) - 1), %ebx
+ /* Only clocks 0 and 1 are allowed so far. Both are handled in the
+ kernel. */
+ leal 24(%esp), %ecx
+ movl $__NR_clock_gettime, %eax
+ ENTER_KERNEL
+ movl %edx, %ebx
+
+ /* Compute relative timeout. */
+ movl (%ebp), %ecx
+ movl 4(%ebp), %edx
+ subl 24(%esp), %ecx
+ subl 28(%esp), %edx
+# else
+ /* Get the current time. */
+ leal 24(%esp), %ebx
+ xorl %ecx, %ecx
+ movl $__NR_gettimeofday, %eax
+ ENTER_KERNEL
+ movl %edx, %ebx
+
+ /* Compute relative timeout. */
+ movl 28(%esp), %eax
+ movl $1000, %edx
+ mul %edx /* Milli seconds to nano seconds. */
+ movl (%ebp), %ecx
+ movl 4(%ebp), %edx
+ subl 24(%esp), %ecx
+ subl %eax, %edx
+# endif
+ jns 112f
+ addl $1000000000, %edx
+ subl $1, %ecx
+112: testl %ecx, %ecx
+ movl $-ETIMEDOUT, %esi
+ js 106f
+
+ /* Store relative timeout. */
+121: movl %ecx, 24(%esp)
+ movl %edx, 28(%esp)
+
+ movl cond_futex(%ebx), %edi
+ movl %edi, 20(%esp)
+
+ /* Unlock. */
+ LOCK
+# if cond_lock == 0
+ subl $1, (%ebx)
+# else
+ subl $1, cond_lock(%ebx)
+# endif
+ jne 103f
+
+.LcleanupSTART2:
+104: call __pthread_enable_asynccancel
+ movl %eax, (%esp)
+
+ leal 24(%esp), %esi
+# if FUTEX_PRIVATE_FLAG > 255
+ xorl %ecx, %ecx
+# endif
+ cmpl $-1, dep_mutex(%ebx)
+ sete %cl
+ subl $1, %ecx
+# ifdef __ASSUME_PRIVATE_FUTEX
+ andl $FUTEX_PRIVATE_FLAG, %ecx
+# else
+ andl %gs:PRIVATE_FUTEX, %ecx
+# endif
+# if FUTEX_WAIT != 0
+ addl $FUTEX_WAIT, %ecx
+# endif
+ movl 20(%esp), %edx
+ addl $cond_futex, %ebx
+.Ladd_cond_futex2:
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+ subl $cond_futex, %ebx
+.Lsub_cond_futex2:
+ movl %eax, %esi
+
+141: movl (%esp), %eax
+ call __pthread_disable_asynccancel
+.LcleanupEND2:
+
+
+ /* Lock. */
+ movl $1, %edx
+ xorl %eax, %eax
+ LOCK
+# if cond_lock == 0
+ cmpxchgl %edx, (%ebx)
+# else
+ cmpxchgl %edx, cond_lock(%ebx)
+# endif
+ jnz 105f
+
+106: movl broadcast_seq(%ebx), %eax
+ cmpl 12(%esp), %eax
+ jne 23b
+
+ movl woken_seq(%ebx), %eax
+ movl woken_seq+4(%ebx), %ecx
+
+ movl wakeup_seq(%ebx), %edi
+ movl wakeup_seq+4(%ebx), %edx
+
+ cmpl 8(%esp), %edx
+ jne 107f
+ cmpl 4(%esp), %edi
+ je 115f
+
+107: cmpl %ecx, %edx
+ jne 9b
+ cmp %eax, %edi
+ jne 9b
+
+115: cmpl $-ETIMEDOUT, %esi
+ je 28b
+
+ jmp 8b
+
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
+ /* Initial locking failed. */
+101:
+# if cond_lock == 0
+ movl %ebx, %edx
+# else
+ leal cond_lock(%ebx), %edx
+# endif
+# if (LLL_SHARED-LLL_PRIVATE) > 255
+ xorl %ecx, %ecx
+# endif
+ cmpl $-1, dep_mutex(%ebx)
+ setne %cl
+ subl $1, %ecx
+ andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+# if LLL_PRIVATE != 0
+ addl $LLL_PRIVATE, %ecx
+# endif
+ call __lll_lock_wait
+ jmp 102b
+
+ cfi_adjust_cfa_offset(FRAME_SIZE)
+
+ /* Unlock in loop requires wakeup. */
+103:
+# if cond_lock == 0
+ movl %ebx, %eax
+# else
+ leal cond_lock(%ebx), %eax
+# endif
+# if (LLL_SHARED-LLL_PRIVATE) > 255
+ xorl %ecx, %ecx
+# endif
+ cmpl $-1, dep_mutex(%ebx)
+ setne %cl
+ subl $1, %ecx
+ andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+# if LLL_PRIVATE != 0
+ addl $LLL_PRIVATE, %ecx
+# endif
+ call __lll_unlock_wake
+ jmp 104b
+
+ /* Locking in loop failed. */
+105:
+# if cond_lock == 0
+ movl %ebx, %edx
+# else
+ leal cond_lock(%ebx), %edx
+# endif
+# if (LLL_SHARED-LLL_PRIVATE) > 255
+ xorl %ecx, %ecx
+# endif
+ cmpl $-1, dep_mutex(%ebx)
+ setne %cl
+ subl $1, %ecx
+ andl $(LLL_SHARED-LLL_PRIVATE), %ecx
+# if LLL_PRIVATE != 0
+ addl $LLL_PRIVATE, %ecx
+# endif
+ call __lll_lock_wait
+ jmp 106b
+ cfi_adjust_cfa_offset(-FRAME_SIZE)
+#endif
.size __pthread_cond_timedwait, .-__pthread_cond_timedwait
versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
@@ -552,7 +787,7 @@ __condvar_tw_cleanup:
call __lll_lock_wait
1: movl broadcast_seq(%ebx), %eax
- cmpl 20(%esp), %eax
+ cmpl 12(%esp), %eax
jne 3f
/* We increment the wakeup_seq counter only if it is lower than
@@ -706,6 +941,20 @@ __condvar_tw_cleanup:
.long .LcleanupEND-.Lsub_cond_futex
.long __condvar_tw_cleanup-.LSTARTCODE
.uleb128 0
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .long .LcleanupSTART2-.LSTARTCODE
+ .long .Ladd_cond_futex2-.LcleanupSTART2
+ .long __condvar_tw_cleanup-.LSTARTCODE
+ .uleb128 0
+ .long .Ladd_cond_futex2-.LSTARTCODE
+ .long .Lsub_cond_futex2-.Ladd_cond_futex2
+ .long __condvar_tw_cleanup2-.LSTARTCODE
+ .uleb128 0
+ .long .Lsub_cond_futex2-.LSTARTCODE
+ .long .LcleanupEND2-.Lsub_cond_futex2
+ .long __condvar_tw_cleanup-.LSTARTCODE
+ .uleb128 0
+#endif
.long .LcallUR-.LSTARTCODE
.long .LENDCODE-.LcallUR
.long 0
diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c b/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
index 8b7a499f86..b4335c56e3 100644
--- a/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
+++ b/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
@@ -25,9 +25,6 @@
#include <shlib-compat.h>
-/* Defined in pthread_setaffinity.c. */
-extern size_t __kernel_cpumask_size attribute_hidden;
-extern int __determine_cpumask_size (pid_t tid);
int
@@ -47,21 +44,10 @@ __pthread_attr_setaffinity_new (pthread_attr_t *attr, size_t cpusetsize,
}
else
{
- if (__kernel_cpumask_size == 0)
- {
- int res = __determine_cpumask_size (THREAD_SELF->tid);
- if (res != 0)
- /* Some serious problem. */
- return res;
- }
+ int ret = check_cpuset_attr (cpuset, cpusetsize);
- /* Check whether the new bitmask has any bit set beyond the
- last one the kernel accepts. */
- for (size_t cnt = __kernel_cpumask_size; cnt < cpusetsize; ++cnt)
- if (((char *) cpuset)[cnt] != '\0')
- /* Found a nonzero byte. This means the user request cannot be
- fulfilled. */
- return EINVAL;
+ if (ret)
+ return ret;
if (iattr->cpusetsize != cpusetsize)
{
diff --git a/nptl/sysdeps/unix/sysv/linux/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sem_post.c
index 6d3657c36a..622c7b0b0c 100644
--- a/nptl/sysdeps/unix/sysv/linux/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/sem_post.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <atomic.h>
#include <errno.h>
#include <sysdep.h>
#include <lowlevellock.h>
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
index b2845723fc..2cc84c189b 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -22,7 +22,7 @@
#include "lowlevellock.h"
#ifdef IS_IN_libpthread
-# ifdef SHARED
+# if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
# define __pthread_unwind __GI___pthread_unwind
# endif
#else
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index 3d67dbc75a..61df1af2b0 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -69,7 +69,9 @@ typedef struct
# endif
int rtld_must_xmm_save;
/* Reservation of some values for the TM ABI. */
- void *__private_tm[5];
+ void *__private_tm[4];
+ /* GCC split stack support. */
+ void *__private_ss;
long int __unused2;
/* Have space for the post-AVX register size. */
__128bits rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
diff --git a/nptl/tst-mutex8.c b/nptl/tst-mutex8.c
index 72dc9d4992..2089c50d4e 100644
--- a/nptl/tst-mutex8.c
+++ b/nptl/tst-mutex8.c
@@ -333,6 +333,13 @@ do_test (void)
puts ("1st mutexattr_settype failed");
return 1;
}
+#ifdef ENABLE_PI
+ if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
+ {
+ puts ("1st pthread_mutexattr_setprotocol failed");
+ return 1;
+ }
+#endif
puts ("check recursive mutex");
res |= check_type ("recursive", &ma);
if (pthread_mutexattr_destroy (&ma) != 0)
@@ -351,6 +358,13 @@ do_test (void)
puts ("2nd mutexattr_settype failed");
return 1;
}
+#ifdef ENABLE_PI
+ if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
+ {
+ puts ("2nd pthread_mutexattr_setprotocol failed");
+ return 1;
+ }
+#endif
puts ("check error-checking mutex");
res |= check_type ("error-checking", &ma);
if (pthread_mutexattr_destroy (&ma) != 0)
diff --git a/nptl_db/ChangeLog b/nptl_db/ChangeLog
index 6951395c4a..34462ceb85 100644
--- a/nptl_db/ChangeLog
+++ b/nptl_db/ChangeLog
@@ -1,3 +1,16 @@
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * db_info.c: Add missing #include <stdint.h> due to uint64_t or
+ uint32_t usage.
+ * fetch-value.c: Likewise.
+ * td_ta_clear_event.c: Likewise.
+ * td_ta_set_event.c: Likewise.
+ * td_ta_tsd_iter.c: Likewise.
+ * td_thr_clear_event.c: Likewise.
+ * td_thr_get_info.c: Likewise.
+ * td_thr_set_event.c: Likewise.
+ * td_thr_tsd.c: Likewise.
+
2013-01-02 Joseph Myers <joseph@codesourcery.com>
* All files with FSF copyright notices: Update copyright dates
diff --git a/nptl_db/db_info.c b/nptl_db/db_info.c
index b01984860a..31c8d88e1d 100644
--- a/nptl_db/db_info.c
+++ b/nptl_db/db_info.c
@@ -18,6 +18,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "thread_dbP.h"
#include <tls.h>
diff --git a/nptl_db/fetch-value.c b/nptl_db/fetch-value.c
index 5ea8437802..5986612cdf 100644
--- a/nptl_db/fetch-value.c
+++ b/nptl_db/fetch-value.c
@@ -19,6 +19,7 @@
#include "thread_dbP.h"
#include <byteswap.h>
#include <assert.h>
+#include <stdint.h>
td_err_e
_td_check_sizeof (td_thragent_t *ta, uint32_t *sizep, int sizep_name)
diff --git a/nptl_db/td_ta_clear_event.c b/nptl_db/td_ta_clear_event.c
index 058ac2cd7c..cf24a1b0ae 100644
--- a/nptl_db/td_ta_clear_event.c
+++ b/nptl_db/td_ta_clear_event.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_set_event.c b/nptl_db/td_ta_set_event.c
index 6d9b5912ae..6729ffb75b 100644
--- a/nptl_db/td_ta_set_event.c
+++ b/nptl_db/td_ta_set_event.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_tsd_iter.c b/nptl_db/td_ta_tsd_iter.c
index 92414cd570..e3f7ffeab8 100644
--- a/nptl_db/td_ta_tsd_iter.c
+++ b/nptl_db/td_ta_tsd_iter.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "thread_dbP.h"
#include <alloca.h>
diff --git a/nptl_db/td_thr_clear_event.c b/nptl_db/td_thr_clear_event.c
index 3e4c30b650..bb6739d17f 100644
--- a/nptl_db/td_thr_clear_event.c
+++ b/nptl_db/td_thr_clear_event.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <stddef.h>
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_get_info.c b/nptl_db/td_thr_get_info.c
index d17a0d7b15..18d0a2b18f 100644
--- a/nptl_db/td_thr_get_info.c
+++ b/nptl_db/td_thr_get_info.c
@@ -19,6 +19,7 @@
#include <stddef.h>
#include <string.h>
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_set_event.c b/nptl_db/td_thr_set_event.c
index a0634b284b..b833c6ca9c 100644
--- a/nptl_db/td_thr_set_event.c
+++ b/nptl_db/td_thr_set_event.c
@@ -18,6 +18,7 @@
<http://www.gnu.org/licenses/>. */
#include <stddef.h>
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_tsd.c b/nptl_db/td_thr_tsd.c
index c8d05538f7..79e39d3284 100644
--- a/nptl_db/td_thr_tsd.c
+++ b/nptl_db/td_thr_tsd.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nscd/connections.c b/nscd/connections.c
index 56c327971b..7099215916 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <stdint.h>
#include <arpa/inet.h>
#ifdef HAVE_NETLINK
# include <linux/netlink.h>
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index d25d8e92f2..5658792445 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -75,8 +75,8 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
const void *key, struct group *grp, uid_t owner,
struct hashentry *const he, struct datahead *dh, int errval)
{
+ bool all_written = true;
ssize_t total;
- ssize_t written;
time_t t = time (NULL);
/* We allocate all data in one memory block: the iov vector,
@@ -105,7 +105,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
/* Reload with the same time-to-live value. */
timeout = dh->timeout = t + db->postimeout;
- written = total = 0;
+ total = 0;
}
else
{
@@ -113,11 +113,10 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
case. */
total = sizeof (notfound);
- if (fd != -1)
- written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
- MSG_NOSIGNAL));
- else
- written = total;
+ if (fd != -1
+ && TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
/* If we have a transient error or cannot permanently store
the result, so be it. */
@@ -197,9 +196,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
gr_mem_len_total += gr_mem_len[gr_mem_cnt];
}
- written = total = (offsetof (struct dataset, strdata)
- + gr_mem_cnt * sizeof (uint32_t)
- + gr_name_len + gr_passwd_len + gr_mem_len_total);
+ total = (offsetof (struct dataset, strdata)
+ + gr_mem_cnt * sizeof (uint32_t)
+ + gr_name_len + gr_passwd_len + gr_mem_len_total);
/* If we refill the cache, first assume the reconrd did not
change. Allocate memory on the cache since it is likely
@@ -328,20 +327,27 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
<= (sizeof (struct database_pers_head)
+ db->head->module * sizeof (ref_t)
+ db->head->data_size));
- written = sendfileall (fd, db->wr_fd,
- (char *) &dataset->resp
- - (char *) db->head, dataset->head.recsize);
+ ssize_t written = sendfileall (fd, db->wr_fd,
+ (char *) &dataset->resp
+ - (char *) db->head,
+ dataset->head.recsize);
+ if (written != dataset->head.recsize)
+ {
# ifndef __ASSUME_SENDFILE
- if (written == -1 && errno == ENOSYS)
- goto use_write;
+ if (written == -1 && errno == ENOSYS)
+ goto use_write;
# endif
+ all_written = false;
+ }
}
else
# ifndef __ASSUME_SENDFILE
use_write:
# endif
#endif
- written = writeall (fd, &dataset->resp, dataset->head.recsize);
+ if (writeall (fd, &dataset->resp, dataset->head.recsize)
+ != dataset->head.recsize)
+ all_written = false;
}
/* Add the record to the database. But only if it has not been
@@ -401,7 +407,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
}
}
- if (__builtin_expect (written != total, 0) && debug_level > 0)
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
{
char buf[256];
dbg_log (_("short write in %s: %s"), __FUNCTION__,
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index ca2145212d..0d421fcbbb 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -29,6 +29,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <stdint.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <sys/mman.h>
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index 196407c870..462780e624 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -171,15 +171,16 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
nip = nip->next;
}
+ bool all_written;
ssize_t total;
- ssize_t written;
time_t timeout;
out:
+ all_written = true;
timeout = MAX_TIMEOUT_VALUE;
if (!any_success)
{
/* Nothing found. Create a negative result record. */
- written = total = sizeof (notfound);
+ total = sizeof (notfound);
if (he != NULL && all_tryagain)
{
@@ -197,9 +198,10 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
{
/* We have no data. This means we send the standard reply for this
case. */
- if (fd != -1)
- written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
- MSG_NOSIGNAL));
+ if (fd != -1
+ && TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
/* If we have a transient error or cannot permanently store
the result, so be it. */
@@ -251,8 +253,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
else
{
- written = total = (offsetof (struct dataset, strdata)
- + start * sizeof (int32_t));
+ total = offsetof (struct dataset, strdata) + start * sizeof (int32_t);
/* If we refill the cache, first assume the reconrd did not
change. Allocate memory on the cache since it is likely
@@ -365,20 +366,27 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
<= (sizeof (struct database_pers_head)
+ db->head->module * sizeof (ref_t)
+ db->head->data_size));
- written = sendfileall (fd, db->wr_fd,
- (char *) &dataset->resp
- - (char *) db->head, dataset->head.recsize);
+ ssize_t written = sendfileall (fd, db->wr_fd,
+ (char *) &dataset->resp
+ - (char *) db->head,
+ dataset->head.recsize);
+ if (written != dataset->head.recsize)
+ {
# ifndef __ASSUME_SENDFILE
- if (written == -1 && errno == ENOSYS)
- goto use_write;
+ if (written == -1 && errno == ENOSYS)
+ goto use_write;
# endif
+ all_written = false;
+ }
}
else
# ifndef __ASSUME_SENDFILE
use_write:
# endif
#endif
- written = writeall (fd, &dataset->resp, dataset->head.recsize);
+ if (writeall (fd, &dataset->resp, dataset->head.recsize)
+ != dataset->head.recsize)
+ all_written = false;
}
@@ -405,7 +413,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
free (groups);
- if (__builtin_expect (written != total, 0) && debug_level > 0)
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
{
char buf[256];
dbg_log (_("short write in %s: %s"), __FUNCTION__,
diff --git a/nscd/nscd.c b/nscd/nscd.c
index 26cf3c2692..ffbc6f8bc9 100644
--- a/nscd/nscd.c
+++ b/nscd/nscd.c
@@ -252,15 +252,6 @@ main (int argc, char **argv)
for (i = min_close_fd; i < getdtablesize (); i++)
close (i);
- if (run_mode == RUN_DAEMONIZE)
- {
- pid = fork ();
- if (pid == -1)
- error (EXIT_FAILURE, errno, _("cannot fork"));
- if (pid != 0)
- exit (0);
- }
-
setsid ();
if (chdir ("/") != 0)
diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
index 4ede24b194..e07f62236a 100644
--- a/nscd/nscd_gethst_r.c
+++ b/nscd/nscd_gethst_r.c
@@ -20,6 +20,7 @@
#include <resolv.h>
#include <stdio.h>
#include <string.h>
+#include <stdint.h>
#include <arpa/nameser.h>
#include <not-cancel.h>
diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
index f79bd42e1a..c9c890c63c 100644
--- a/nscd/nscd_getserv_r.c
+++ b/nscd/nscd_getserv_r.c
@@ -21,6 +21,7 @@
#include <string.h>
#include <not-cancel.h>
#include <_itoa.h>
+#include <stdint.h>
#include "nscd-client.h"
#include "nscd_proto.h"
diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
index ba58893560..8587e4549c 100644
--- a/nscd/nscd_helper.c
+++ b/nscd/nscd_helper.c
@@ -24,6 +24,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/poll.h>
#include <sys/socket.h>
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index ef492b58c1..4f3fb416da 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -81,8 +81,8 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
const void *key, struct passwd *pwd, uid_t owner,
struct hashentry *const he, struct datahead *dh, int errval)
{
+ bool all_written = true;
ssize_t total;
- ssize_t written;
time_t t = time (NULL);
/* We allocate all data in one memory block: the iov vector,
@@ -111,17 +111,18 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
/* Reload with the same time-to-live value. */
timeout = dh->timeout = t + db->postimeout;
- written = total = 0;
+ total = 0;
}
else
{
/* We have no data. This means we send the standard reply for this
case. */
- written = total = sizeof (notfound);
+ total = sizeof (notfound);
- if (fd != -1)
- written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
- MSG_NOSIGNAL));
+ if (fd != -1
+ && TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
/* If we have a transient error or cannot permanently store
the result, so be it. */
@@ -189,9 +190,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
n = snprintf (buf, buf_len, "%d%c%n%s", pwd->pw_uid, '\0',
&key_offset, (char *) key) + 1;
- written = total = (offsetof (struct dataset, strdata)
- + pw_name_len + pw_passwd_len
- + pw_gecos_len + pw_dir_len + pw_shell_len);
+ total = (offsetof (struct dataset, strdata)
+ + pw_name_len + pw_passwd_len
+ + pw_gecos_len + pw_dir_len + pw_shell_len);
/* If we refill the cache, first assume the reconrd did not
change. Allocate memory on the cache since it is likely
@@ -304,20 +305,27 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
<= (sizeof (struct database_pers_head)
+ db->head->module * sizeof (ref_t)
+ db->head->data_size));
- written = sendfileall (fd, db->wr_fd,
- (char *) &dataset->resp
- - (char *) db->head, dataset->head.recsize );
+ ssize_t written = sendfileall (fd, db->wr_fd,
+ (char *) &dataset->resp
+ - (char *) db->head,
+ dataset->head.recsize);
+ if (written != dataset->head.recsize)
+ {
# ifndef __ASSUME_SENDFILE
- if (written == -1 && errno == ENOSYS)
- goto use_write;
+ if (written == -1 && errno == ENOSYS)
+ goto use_write;
# endif
+ all_written = false;
+ }
}
else
# ifndef __ASSUME_SENDFILE
use_write:
# endif
#endif
- written = writeall (fd, &dataset->resp, dataset->head.recsize);
+ if (writeall (fd, &dataset->resp, dataset->head.recsize)
+ != dataset->head.recsize)
+ all_written = false;
}
@@ -377,7 +385,7 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
}
}
- if (__builtin_expect (written != total, 0) && debug_level > 0)
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
{
char buf[256];
dbg_log (_("short write in %s: %s"), __FUNCTION__,
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
index d29cde7d63..b7738a7cb4 100644
--- a/nscd/servicescache.c
+++ b/nscd/servicescache.c
@@ -22,6 +22,7 @@
#include <libintl.h>
#include <netdb.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <kernel-features.h>
@@ -65,8 +66,8 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
const void *key, struct servent *serv, uid_t owner,
struct hashentry *const he, struct datahead *dh, int errval)
{
+ bool all_written = true;
ssize_t total;
- ssize_t written;
time_t t = time (NULL);
/* We allocate all data in one memory block: the iov vector,
@@ -95,17 +96,18 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
/* Reload with the same time-to-live value. */
timeout = dh->timeout = t + db->postimeout;
- written = total = 0;
+ total = 0;
}
else
{
/* We have no data. This means we send the standard reply for this
case. */
- written = total = sizeof (notfound);
+ total = sizeof (notfound);
- if (fd != -1)
- written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
- MSG_NOSIGNAL));
+ if (fd != -1
+ && TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+ MSG_NOSIGNAL)) != total)
+ all_written = false;
/* If we have a transient error or cannot permanently store
the result, so be it. */
@@ -182,7 +184,6 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
+ s_name_len
+ s_proto_len
+ s_aliases_cnt * sizeof (uint32_t));
- written = total;
/* If we refill the cache, first assume the reconrd did not
change. Allocate memory on the cache since it is likely
@@ -290,25 +291,32 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
{
assert (db->wr_fd != -1);
assert ((char *) &dataset->resp > (char *) db->data);
- assert ((char *) &dataset->resp - (char *) db->head
+ assert ((char *) dataset - (char *) db->head
+ total
<= (sizeof (struct database_pers_head)
+ db->head->module * sizeof (ref_t)
+ db->head->data_size));
- written = sendfileall (fd, db->wr_fd,
- (char *) &dataset->resp
- - (char *) db->head, total);
+ ssize_t written = sendfileall (fd, db->wr_fd,
+ (char *) &dataset->resp
+ - (char *) db->head,
+ dataset->head.recsize);
+ if (written != dataset->head.recsize)
+ {
# ifndef __ASSUME_SENDFILE
- if (written == -1 && errno == ENOSYS)
- goto use_write;
+ if (written == -1 && errno == ENOSYS)
+ goto use_write;
# endif
+ all_written = false;
+ }
}
else
# ifndef __ASSUME_SENDFILE
use_write:
# endif
#endif
- written = writeall (fd, &dataset->resp, total);
+ if (writeall (fd, &dataset->resp, dataset->head.recsize)
+ != dataset->head.recsize)
+ all_written = false;
}
/* Add the record to the database. But only if it has not been
@@ -332,7 +340,7 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
}
}
- if (__builtin_expect (written != total, 0) && debug_level > 0)
+ if (__builtin_expect (!all_written, 0) && debug_level > 0)
{
char buf[256];
dbg_log (_("short write in %s: %s"), __FUNCTION__,
diff --git a/nss/Makefile b/nss/Makefile
index 449a258f8f..553eafaa6b 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -37,7 +37,7 @@ install-bin := getent makedb
makedb-modules = xmalloc hash-string
extra-objs += $(makedb-modules:=.o)
-tests = test-netdb tst-nss-test1
+tests = test-netdb tst-nss-test1 test-digits-dots
xtests = bug-erange
include ../Makeconfig
diff --git a/nss/digits_dots.c b/nss/digits_dots.c
index 2b862956e9..e007ef47a4 100644
--- a/nss/digits_dots.c
+++ b/nss/digits_dots.c
@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
{
if (h_errnop)
*h_errnop = NETDB_INTERNAL;
- *result = NULL;
+ if (buffer_size == NULL)
+ *status = NSS_STATUS_TRYAGAIN;
+ else
+ *result = NULL;
return -1;
}
@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
}
size_needed = (sizeof (*host_addr)
- + sizeof (*h_addr_ptrs) + strlen (name) + 1);
+ + sizeof (*h_addr_ptrs)
+ + sizeof (*h_alias_ptr) + strlen (name) + 1);
if (buffer_size == NULL)
{
if (buflen < size_needed)
{
+ *status = NSS_STATUS_TRYAGAIN;
if (h_errnop != NULL)
- *h_errnop = TRY_AGAIN;
+ *h_errnop = NETDB_INTERNAL;
__set_errno (ERANGE);
goto done;
}
@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
*buffer_size = 0;
__set_errno (save);
if (h_errnop != NULL)
- *h_errnop = TRY_AGAIN;
+ *h_errnop = NETDB_INTERNAL;
*result = NULL;
goto done;
}
@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
if (! ok)
{
*h_errnop = HOST_NOT_FOUND;
- if (buffer_size)
+ if (buffer_size == NULL)
+ *status = NSS_STATUS_NOTFOUND;
+ else
*result = NULL;
goto done;
}
@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
if (buffer_size == NULL)
*status = NSS_STATUS_SUCCESS;
else
- *result = resbuf;
+ *result = resbuf;
goto done;
}
@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':')
{
- const char *cp;
- char *hostname;
- typedef unsigned char host_addr_t[16];
- host_addr_t *host_addr;
- typedef char *host_addr_list_t[2];
- host_addr_list_t *h_addr_ptrs;
- size_t size_needed;
- int addr_size;
-
switch (af)
{
default:
@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
/* This is not possible. We cannot represent an IPv6 address
in an `struct in_addr' variable. */
*h_errnop = HOST_NOT_FOUND;
- *result = NULL;
+ if (buffer_size == NULL)
+ *status = NSS_STATUS_NOTFOUND;
+ else
+ *result = NULL;
goto done;
case AF_INET6:
@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
break;
}
- size_needed = (sizeof (*host_addr)
- + sizeof (*h_addr_ptrs) + strlen (name) + 1);
-
- if (buffer_size == NULL && buflen < size_needed)
- {
- if (h_errnop != NULL)
- *h_errnop = TRY_AGAIN;
- __set_errno (ERANGE);
- goto done;
- }
- else if (buffer_size != NULL && *buffer_size < size_needed)
- {
- char *new_buf;
- *buffer_size = size_needed;
- new_buf = realloc (*buffer, *buffer_size);
-
- if (new_buf == NULL)
- {
- save = errno;
- free (*buffer);
- __set_errno (save);
- *buffer = NULL;
- *buffer_size = 0;
- *result = NULL;
- goto done;
- }
- *buffer = new_buf;
- }
-
- memset (*buffer, '\0', size_needed);
-
- host_addr = (host_addr_t *) *buffer;
- h_addr_ptrs = (host_addr_list_t *)
- ((char *) host_addr + sizeof (*host_addr));
- hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs);
-
for (cp = name;; ++cp)
{
if (!*cp)
@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
if (inet_pton (AF_INET6, name, host_addr) <= 0)
{
*h_errnop = HOST_NOT_FOUND;
- if (buffer_size)
+ if (buffer_size == NULL)
+ *status = NSS_STATUS_NOTFOUND;
+ else
*result = NULL;
goto done;
}
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
index 1067744d63..33e63d4318 100644
--- a/nss/getXXbyYY_r.c
+++ b/nss/getXXbyYY_r.c
@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
case -1:
return errno;
case 1:
+#ifdef NEED_H_ERRNO
+ any_service = true;
+#endif
goto done;
}
#endif
@@ -284,11 +287,11 @@ done:
#endif
*result = status == NSS_STATUS_SUCCESS ? resbuf : NULL;
#ifdef NEED_H_ERRNO
- if (status == NSS_STATUS_UNAVAIL)
- /* Either we failed to lookup the functions or the functions themselves
- had a system error. Set NETDB_INTERNAL here to let the caller know
- that the errno may have the real reason for failure. */
- *h_errnop = NETDB_INTERNAL;
+ if (status == NSS_STATUS_UNAVAIL && !any_service && errno != ENOENT)
+ /* This happens when we weren't able to use a service for reasons other
+ than the module not being found. In such a case, we'd want to tell the
+ caller that errno has the real reason for failure. */
+ *h_errnop = NETDB_INTERNAL;
else if (status != NSS_STATUS_SUCCESS && !any_service)
/* We were not able to use any service. */
*h_errnop = NO_RECOVERY;
diff --git a/nss/getent.c b/nss/getent.c
index aa4eaf9e0d..8a3c864501 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -841,7 +841,7 @@ shadow_keys (int number, char *key[])
setspent ();
while ((sp = getspent ()) != NULL)
print_shadow (sp);
- endpwent ();
+ endspent ();
return result;
}
diff --git a/nss/makedb.c b/nss/makedb.c
index 13bd8461d4..bfc9084425 100644
--- a/nss/makedb.c
+++ b/nss/makedb.c
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/stat.h>
diff --git a/nss/nss_db/db-XXX.c b/nss/nss_db/db-XXX.c
index 9399ce205a..40b5ce9be7 100644
--- a/nss/nss_db/db-XXX.c
+++ b/nss/nss_db/db-XXX.c
@@ -18,6 +18,7 @@
#include <dlfcn.h>
#include <fcntl.h>
+#include <stdint.h>
#include <sys/mman.h>
#include <bits/libc-lock.h>
#include "nsswitch.h"
diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c
index 3038b2ed17..d0d73f0af9 100644
--- a/nss/nss_db/db-initgroups.c
+++ b/nss/nss_db/db-initgroups.c
@@ -24,6 +24,7 @@
#include <paths.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <sys/param.h>
#include "nss_db.h"
diff --git a/nss/nss_db/db-netgrp.c b/nss/nss_db/db-netgrp.c
index 8a5da381ce..203529f4c8 100644
--- a/nss/nss_db/db-netgrp.c
+++ b/nss/nss_db/db-netgrp.c
@@ -23,6 +23,7 @@
#include <fcntl.h>
#include <netgroup.h>
#include <string.h>
+#include <stdint.h>
#include <bits/libc-lock.h>
#include <paths.h>
#include <stdlib.h>
diff --git a/nss/nss_files/files-init.c b/nss/nss_files/files-init.c
index 8aac3fb08c..a34c49a99f 100644
--- a/nss/nss_files/files-init.c
+++ b/nss/nss_files/files-init.c
@@ -18,6 +18,7 @@
#ifdef USE_NSCD
+#include <string.h>
#include <nscd/nscd.h>
@@ -30,7 +31,7 @@ static union \
{ \
.file = \
{ \
- .fname = filename, ## __VA_ARGS__ \
+ __VA_ARGS__ \
} \
}
@@ -45,16 +46,22 @@ TF (netgr, "/etc/netgroup");
void
_nss_files_init (void (*cb) (size_t, struct traced_file *))
{
+ strcpy (pwd_traced_file.file.fname, "/etc/passwd");
cb (pwddb, &pwd_traced_file.file);
+ strcpy (grp_traced_file.file.fname, "/etc/group");
cb (grpdb, &grp_traced_file.file);
+ strcpy (hst_traced_file.file.fname, "/etc/hosts");
cb (hstdb, &hst_traced_file.file);
+ strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf");
cb (hstdb, &resolv_traced_file.file);
+ strcpy (serv_traced_file.file.fname, "/etc/services");
cb (servdb, &serv_traced_file.file);
+ strcpy (netgr_traced_file.file.fname, "/etc/netgroup");
cb (netgrdb, &netgr_traced_file.file);
}
diff --git a/nss/nss_files/files-network.c b/nss/nss_files/files-network.c
index 87ad5d3747..f18e9e174d 100644
--- a/nss/nss_files/files-network.c
+++ b/nss/nss_files/files-network.c
@@ -19,6 +19,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
+#include <stdint.h>
#define ENTNAME netent
#define DATABASE "networks"
diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
index 8ba277f7a5..91f32da8b8 100644
--- a/nss/nss_files/files-parse.c
+++ b/nss/nss_files/files-parse.c
@@ -20,6 +20,7 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
+#include <stdint.h>
/* These symbols are defined by the including source file:
diff --git a/nss/test-digits-dots.c b/nss/test-digits-dots.c
new file mode 100644
index 0000000000..1efa3449a3
--- /dev/null
+++ b/nss/test-digits-dots.c
@@ -0,0 +1,38 @@
+/* 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/>. */
+
+/* Testcase for BZ #15014 */
+
+#include <stdlib.h>
+#include <netdb.h>
+#include <errno.h>
+
+static int
+do_test (void)
+{
+ char buf[32];
+ struct hostent *result = NULL;
+ struct hostent ret;
+ int h_err = 0;
+ int err;
+
+ err = gethostbyname_r ("1.2.3.4", &ret, buf, sizeof (buf), &result, &h_err);
+ return err == ERANGE && h_err == NETDB_INTERNAL ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/po/de.po b/po/de.po
index 28fc940525..7fb3c23949 100644
--- a/po/de.po
+++ b/po/de.po
@@ -2,13 +2,13 @@
# Copyright © 1996, 2002 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Karl Eichwalder <ke@suse.de>, 2002.
-# Jochen Hein <jochen@jochen.org>, 1996-2012.
+# Jochen Hein <jochen@jochen.org>, 1996-2013.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU libc 2.17-pre1\n"
"POT-Creation-Date: 2012-12-07 15:10-0500\n"
-"PO-Revision-Date: 2013-01-31 07:16+0100\n"
+"PO-Revision-Date: 2013-03-30 16:56+0100\n"
"Last-Translator: Jochen Hein <jochen@jochen.org>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
@@ -988,7 +988,7 @@ msgstr "Warnung: Sie haben kein Ausführungsrecht für"
#: elf/ldd.bash.in:183
msgid "\tnot a dynamic executable"
-msgstr "\\tdas Programm ist nicht dynamisch gelinkt"
+msgstr "\tdas Programm ist nicht dynamisch gelinkt"
# XXX need to look at source
#: elf/ldd.bash.in:191
diff --git a/po/ru.po b/po/ru.po
index 78f658feb9..5cbe641215 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libc 2.17-pre1\n"
"POT-Creation-Date: 2012-12-07 15:10-0500\n"
-"PO-Revision-Date: 2012-12-15 11:25+0400\n"
+"PO-Revision-Date: 2013-04-21 11:25+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
"Language: ru\n"
@@ -3131,11 +3131,11 @@ msgstr "не удалось высвободить занятую аргумен
#: nis/nis_error.h:1 nis/ypclnt.c:832 nis/ypclnt.c:920 posix/regcomp.c:131
#: sysdeps/gnu/errlist.c:20
msgid "Success"
-msgstr "Победа"
+msgstr "Выполнено"
#: nis/nis_error.h:2
msgid "Probable success"
-msgstr "Вероятный успех"
+msgstr "Вероятно выполнено"
#: nis/nis_error.h:3
msgid "Not found"
@@ -3143,11 +3143,11 @@ msgstr "Не найдено"
#: nis/nis_error.h:4
msgid "Probably not found"
-msgstr "Вероятно, не найдено"
+msgstr "Вероятно не найдено"
#: nis/nis_error.h:5
msgid "Cache expired"
-msgstr "Время жизни кэша истекло "
+msgstr "Время жизни кэша истекло"
#: nis/nis_error.h:6
msgid "NIS+ servers unreachable"
@@ -3159,7 +3159,7 @@ msgstr "Неизвестный объект"
#: nis/nis_error.h:8
msgid "Server busy, try again"
-msgstr "Сервер занят, попробуйте еще раз"
+msgstr "Сервер занят, попробуйте ещё раз"
#: nis/nis_error.h:9
msgid "Generic system error"
diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index f01388f384..69797bd97e 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,3 +1,40 @@
+2013-05-23 Venkataranmanan Kumar <venkataramanan.kumar@linaro.org>
+
+ * sysdeps/aarch64/machine-gmon.h: Remove.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/aarch64/libm-test-ulps: Update test names.
+
+2013-05-21 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15493]
+ * sysdeps/aarch64/setjmp.S (__sigsetjmp): Don't clobber register
+ x1.
+ [NOT_IN_libc && IS_IN_rtld]: Don't call __sigjmp_save.
+
+2013-05-21 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/aarch64/libm-test-ulps: Regenerate.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/aarch64/libm-test-ulps: Update names of sincos tests.
+
+2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ [BZ #15442]
+ * sysdeps/aarch64/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP): New
+ macro.
+
+2013-05-12 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
+ Do not call sycall_error directly with a confitional branch.
+
+ * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
+ Do not call sycall_error directly with a confitional branch.
+
2013-03-19 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/aarch64/configure.in: Set
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 9a77d276ab..2229bb6063 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,24 @@
+2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (siginfo_t): Add
+ si_trapno and si_addr_lsb to _sifields.sigfault.
+ (si_trapno, si_addr_lsb): Define new macros.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Update names of sincos tests.
+
+2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ [BZ #15442]
+ * sysdeps/alpha/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP): New
+ macro.
+
2013-03-06 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/alpha/bits/mman.h (MAP_HUGE_MASK)
diff --git a/ports/ChangeLog.am33 b/ports/ChangeLog.am33
index 42548b2c2b..9c5dba338b 100644
--- a/ports/ChangeLog.am33
+++ b/ports/ChangeLog.am33
@@ -1,3 +1,8 @@
+2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * sysdeps/am33/atomicity.h: Add missing #include <stdint.h> due to
+ uint64_t or uint32_t usage.
+
2013-03-11 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/am33/bits/mman.h: Remove all defines
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 355d980ba5..dcf3605d0b 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,64 @@
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/libm-test-ulps: Update names of sincos tests.
+
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/arm/bits/atomic.h: Add missing #include
+ <stdint.h> due to uint64_t or uint32_t usage.
+
+2013-05-14 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #14908]
+ * sysdeps/arm/setjmp.S (__sigsetjmp): Don't save fpscr.
+ * sysdeps/arm/__longjmp.S (__longjmp): Don't restore fpscr.
+ * sysdeps/arm/bits/setjmp.h (__jmp_buf): Don't mention fpscr in
+ comment.
+
+2013-05-13 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/armv7/multiarch/memcpy.S [__ARM_NEON__]: Don't define
+ memcpy here, just __memcpy_arm and __aeabi_memcpy*.
+ * sysdeps/arm/armv7/multiarch/memcpy_neon.S [__ARM_NEON__]:
+ Define memcpy here, not __memcpy_neon.
+ * sysdeps/arm/armv7/multiarch/memcpy_vfp.S [__ARM_NEON__]:
+ Define nothing here.
+ * sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list) [__ARM_NEON__]: Don't list __memcpy_vfp;
+ use memcpy name for NEON implementation.
+
+2013-05-08 Will Newton <will.newton@linaro.org>
+
+ * sysdeps/arm/armv7/multiarch/Makefile: New file.
+ * sysdeps/arm/armv7/multiarch/aeabi_memcpy.c: Likewise.
+ * sysdeps/arm/armv7/multiarch/ifunc-impl-list.c: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_impl.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_neon.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_vfp.S: Likewise.
+ * sysdeps/arm/armv7/configure.in: Likewise.
+ * sysdeps/arm/armv7/configure: Generated.
+
+2013-05-07 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_dynamic): Use a plain C
+ reference to _GLOBAL_OFFSET_TABLE_ with an STV_HIDDEN declaration.
+
+2013-05-06 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Add missing sfi_breg.
+
+2013-04-19 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/sysdep.h
+ (eabi_fnstart, eabi_fnend, eabi_save, eabi_cantunwind, eabi_pad):
+ New macros.
+ * sysdeps/arm/dl-tlsdesc.S: Use them.
+
2013-03-26 Mans Rullgard <mans@mansr.com>
* sysdeps/arm/preconfigure.in: Use "test" instead of [ ].
diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa
index 0610c177d9..6a1cf1da05 100644
--- a/ports/ChangeLog.hppa
+++ b/ports/ChangeLog.hppa
@@ -1,3 +1,29 @@
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update names of sincos tests.
+
+2013-05-15 Carlos O'Donell <carlos@redhat.com>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Remove old values for ceil, floor,
+ rint, round, trunc, llrint, and llround.
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Regenerate.
+
+2013-05-15 Guy Martin <gmsoft@tuxicoman.be>
+ Carlos O'Donell <carlos@redhat.com>
+
+ [BZ# 15000]
+ * ports/sysdeps/hppa/fpu/fpu_control.h (_FPU_GETCW): Set cw.
+ (_FPU_SETCW): Pass address to fldd.
+
+2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/hppa/math_private.h: New file.
+
2013-03-06 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/hppa/bits/msq.h (MSG_COPY): Define.
diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64
index 50b5604ec1..46cddaff0e 100644
--- a/ports/ChangeLog.ia64
+++ b/ports/ChangeLog.ia64
@@ -1,3 +1,18 @@
+2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (siginfo_t): Add
+ si_addr_lsb to _sifields.sigfault.
+ (si_addr_lsb): Define new macro.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/fpu/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/fpu/libm-test-ulps: Update names of sincos tests.
+
2013-03-12 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL_DECL): Add
diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k
index 5e4fc6c468..479f5e05f1 100644
--- a/ports/ChangeLog.m68k
+++ b/ports/ChangeLog.m68k
@@ -1,3 +1,18 @@
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/m68k/coldfire/fpu/libm-test-ulps: Update test names.
+ * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Likewise.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/m68k/coldfire/fpu/libm-test-ulps: Update names of sincos
+ tests.
+ * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Likewise.
+
+2013-04-11 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update
+
2013-03-11 Andreas Schwab <schwab@suse.de>
[BZ #15234]
diff --git a/ports/ChangeLog.microblaze b/ports/ChangeLog.microblaze
new file mode 100644
index 0000000000..f183b9ce0a
--- /dev/null
+++ b/ports/ChangeLog.microblaze
@@ -0,0 +1,109 @@
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/microblaze/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/microblaze/libm-test-ulps: Update names of sincos tests.
+
+2013-03-28 David Holsgrove <david.holsgrove@xilinx.com>
+
+ * sysdeps/microblaze/Implies: New file.
+ * sysdeps/microblaze/Makefile: New file.
+ * sysdeps/microblaze/__longjmp.S: New file.
+ * sysdeps/microblaze/_mcount.S: New file.
+ * sysdeps/microblaze/abort-instr.h: New file.
+ * sysdeps/microblaze/asm-syntax.h: New file.
+ * sysdeps/microblaze/backtrace.c: New file.
+ * sysdeps/microblaze/backtrace_linux.c: New file.
+ * sysdeps/microblaze/bits/atomic.h: New file.
+ * sysdeps/microblaze/bits/endian.h: New file.
+ * sysdeps/microblaze/bits/fenv.h: New file.
+ * sysdeps/microblaze/bits/link.h: New file.
+ * sysdeps/microblaze/bits/setjmp.h: New file.
+ * sysdeps/microblaze/bsd-_setjmp.S: New file.
+ * sysdeps/microblaze/bsd-setjmp.S: New file.
+ * sysdeps/microblaze/crti.S: New file.
+ * sysdeps/microblaze/crtn.S: New file.
+ * sysdeps/microblaze/dl-machine.h: New file.
+ * sysdeps/microblaze/dl-tls.h: New file.
+ * sysdeps/microblaze/dl-trampoline.S: New file.
+ * sysdeps/microblaze/fegetround.c: New file.
+ * sysdeps/microblaze/fesetround.c: New file.
+ * sysdeps/microblaze/gccframe.h: New file.
+ * sysdeps/microblaze/jmpbuf-unwind.h: New file.
+ * sysdeps/microblaze/ldsodefs.h: New file.
+ * sysdeps/microblaze/libc-tls.c: New file.
+ * sysdeps/microblaze/libm-test-ulps: New file.
+ * sysdeps/microblaze/machine-gmon.h: New file.
+ * sysdeps/microblaze/math_private.h: New file.
+ * sysdeps/microblaze/memusage.h: New file.
+ * sysdeps/microblaze/nptl/Makefile: New file.
+ * sysdeps/microblaze/nptl/pthread_spin_lock.c: New file.
+ * sysdeps/microblaze/nptl/pthreaddef.h: New file.
+ * sysdeps/microblaze/nptl/tcb-offsets.sym: New file.
+ * sysdeps/microblaze/nptl/tls.h: New file.
+ * sysdeps/microblaze/preconfigure: New file.
+ * sysdeps/microblaze/setjmp.S: New file.
+ * sysdeps/microblaze/shlib-versions: New file.
+ * sysdeps/microblaze/sotruss-lib.c: New file.
+ * sysdeps/microblaze/stackinfo.h: New file.
+ * sysdeps/microblaze/start.S: New file.
+ * sysdeps/microblaze/sysdep.h: New file.
+ * sysdeps/microblaze/tls-macros.h: New file.
+ * sysdeps/microblaze/tst-audit.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/Makefile: New file.
+ * sysdeps/unix/sysv/linux/microblaze/Versions: New file.
+ * sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/bits/mman.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/bits/stat.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/brk.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/clone.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/configure: New file.
+ * sysdeps/unix/sysv/linux/microblaze/configure.in: New file.
+ * sysdeps/unix/sysv/linux/microblaze/fcntl.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/fxstat.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/fxstatat.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/getsysstats.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/kernel_stat.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/lxstat.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/mmap.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/msgctl.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/fork.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/profil-counter.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/semctl.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/shmctl.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/setgroups.c: New file.
+ * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/socket.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/sys/procfs.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/sys/user.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/syscall.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/syscalls.list: New file.
+ * sysdeps/unix/sysv/linux/microblaze/sysdep.S: New file.
+ * sysdeps/unix/sysv/linux/microblaze/sysdep.h: New file.
+ * sysdeps/unix/sysv/linux/microblaze/xstat.c: New file.
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 539cacf19d..c44068cc20 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,62 @@
+2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/mips/bits/siginfo.h (siginfo_t): Add
+ si_addr_lsb to _sifields.sifault.
+ (si_addr_lsb): Define new macro.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/mips32/libm-test-ulps: Update test names.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+
+2013-05-21 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15506]
+ * sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
+ [!__PIC__] (PSEUDO): Undefine and redefine.
+ (PSEUDO_END): Undefine and redefine unconditionally.
+ [!__PIC__] (STK_PAD): Define to 0.
+ [!__PIC__] (STKOFF_GP): Do not define.
+ [!__PIC__] (STKSPACE): Define to (STKOFF_SVMSK + SZREG).
+ (PSEUDO_JMP): Define depending on [__PIC__].
+ (CENABLE): Use PSEUDO_JMP in all definitions.
+ (CDISABLE): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+ (SYSCALL_ERROR_LABEL): Define unconditionally.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+ (SYSCALL_ERROR_LABEL): Define unconditionally.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/mips32/libm-test-ulps: Update names of sincos
+ tests.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+
+2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ [BZ #15442]
+ * sysdeps/mips/mips64/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP):
+ New macro.
+ (_FP_NANFRAC_S): Don't set the quiet bit.
+ (_FP_NANFRAC_D): Likewise.
+ (_FP_NANFRAC_Q): Likewise.
+ * sysdeps/mips/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP): New
+ macro.
+ (_FP_NANFRAC_S): Don't set the quiet bit.
+ (_FP_NANFRAC_D): Likewise.
+ (_FP_NANFRAC_Q): Likewise.
+
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h: Add missing
+ #include <stdint.h> due to uint64_t or uint32_t usage.
+ * sysdeps/mips/bits/atomic.h: Likewise.
+
+2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/mips/math_private.h: New file.
+
2013-03-20 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/configure.in (default-abi): Set
diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc
index 2ba8e3754f..93f249e290 100644
--- a/ports/ChangeLog.powerpc
+++ b/ports/ChangeLog.powerpc
@@ -1,3 +1,18 @@
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Update names of sincos
+ tests.
+
+2013-05-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ [BZ #15442]
+ * sysdeps/powerpc/soft-fp/sfp-machine.h (_FP_QNANNEGATEDP): New
+ macro.
+
2013-02-28 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile
index f63bde486b..33ffa71fe6 100644
--- a/ports/ChangeLog.tile
+++ b/ports/ChangeLog.tile
@@ -1,3 +1,33 @@
+2013-05-23 Chris Metcalf <cmetcalf@tilera.com>
+
+ * sysdeps/tile/tilegx/Makefile ($(cflags-mcmodel-large)):
+ Test for assembler and linker support for "-mcmodel=large -fpic"
+ in addition to compiler support; provide -DNO_PLT_PCREL if not.
+ * sysdeps/tile/start.S [NO_PLT_PCREL]: Guard for no PC-relative
+ PLT operators in assembly.
+ * sysdeps/tile/crti.S [NO_PLT_PCREL]: Likewise.
+
+2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/tile/bits/siginfo.h (siginfo_t): Fix comment
+ formatting. Add si_addr_lsb to _sifields.sigfault.
+ (si_addr_lsb): Define new macro.
+ (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
+2013-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/tile/libm-test-ulps: Update test names.
+
+2013-05-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/tile/libm-test-ulps: Update names of sincos tests.
+
+2013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
+
+ * sysdeps/tile/tilegx/memusage.h: Add missing #include <stdint.h> due
+ to uint64_t or uint32_t usage.
+ * sysdeps/tile/tilegx/string-endian.h: Likewise.
+
2013-03-11 Andreas Schwab <schwab@suse.de>
[BZ #15234]
diff --git a/ports/sysdeps/aarch64/libm-test-ulps b/ports/sysdeps/aarch64/libm-test-ulps
index aebc46f469..dc7dc341b0 100644
--- a/ports/sysdeps/aarch64/libm-test-ulps
+++ b/ports/sysdeps/aarch64/libm-test-ulps
@@ -1,19 +1,19 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -22,19 +22,19 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -43,314 +43,1494 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 1
ldouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 + +0 i) == 2.094395102393195492308428922186335256131 - 0 i":
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 - 0 i) == 2.094395102393195492308428922186335256131 + +0 i":
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + +0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+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.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p500 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000000000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p500 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 + 0x1p50 i) == 1.570796326794897507409741391764983781004 - 3.535050620855721078027883819436759661753e1 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 - 0x1p50 i) == 1.570796326794897507409741391764983781004 + 3.535050620855721078027883819436759661753e1 i":
+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+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
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
+ildouble: 1
+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
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-2 - 3 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 - 1.135753137836666928715489992987020363057e4 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 + 1.0 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 - 1.0 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 + 1.0 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 - 1.0 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: cacos (0.5 - 0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.fffffffffffff8p0 + 0.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x0.fffffffffffff8p0 + 0x1.fp-1025 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.fffffffffffff8p0 - 0.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0x1.fp-1025 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.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-63 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
+ildouble: 1
+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
@@ -359,292 +1539,2659 @@ ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+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.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+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
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 (-0x1p-23 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 (-0x1p-23 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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 (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
+ildouble: 1
+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
+Test "Real part of: cacosh (-1.5 - 0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1.fp-1025 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.fffffffffffff8p0 - 0.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1.fp-1025 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.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 - 0x1p500 i)":
+ildouble: 1
+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
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i) == -4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i) == -4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i) == 4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i) == 4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 + 1.135753137836666928715489992987020363057e4 i":
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Real part of: casin (-0x1p-52 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0.25 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 - 0.25 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
+ildouble: 1
+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
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i)":
+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
+Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 + 0.25 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0.25 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
+ildouble: 1
+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
@@ -653,1065 +4200,2655 @@ ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
+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
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 + 1.0 i) == -3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 - 1.0 i) == -3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 + 1.0 i) == -3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 - 1.0 i) == -3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 + 0x1p500 i) == -3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 + 0.25 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 - 0x1p500 i) == -3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0.25 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real 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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+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
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + +0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i) == 1.135753137836666928715489992987020363057e4 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 + 1.0 i) == 3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + +0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0.25 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0.25 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 - 1.0 i) == 3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (1.0 - 0.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 + 1.0 i) == 3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 - 1.0 i) == 3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p500 i) == 3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p500 i) == 3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (1.0 - 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1p5000 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+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: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (-0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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-16380 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real 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
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catan (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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-16380 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real 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
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 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.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 "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 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 (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary 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
+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 "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0 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 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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 (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i) == inf - 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+Test "Imaginary part of: cexp (-720 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i":
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 709.8942846690411016323109979483151967689 + 0.4636476090008061606231772164674799632783 i":
+Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i":
+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i":
+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i":
+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i":
+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i) == -1.6298145321400412054744424587143483169412e-08 + 0.9223574537155056772124552172295398141249 i":
+Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i":
+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i":
+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i":
+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i":
+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i":
+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i":
+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i":
+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 308.3031705664207720674749211936626341569 + 0.2013595981366865903254995612594728746470 i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i":
+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i":
+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i":
+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i":
+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i":
+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i":
+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i":
+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i":
+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 i":
+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -1720,192 +6857,192 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
ildouble: 1
ldouble: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1914,902 +7051,917 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 11357.25 i) == -8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i) == -8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i) == 8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i) == 8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i) == 1.217853148905605987081057582351152052687e4924 + inf i":
+Test "Real part of: csin (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i) == -9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i) == -9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i) == 1.106698967236475180613254276996359485630e+2466 + 2.687568007603946993388538156299100955642e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i) == 3.514690655930285351254618340783294558136e-2475 + 8.297059146828716918029689466551384219370e-2476 i":
+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Real part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 355 i) == 8.140551093483276762350406321792653551513e-309 + 1.0 i":
+Test "Real part of: ctan (1 + 355 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 365 i) == 1.677892637497921890115075995898773550884e-317 + 1.0 i":
+Test "Real part of: ctan (1 + 365 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i) == 1.0 + 8.140551093483276762350406321792653551513e-309 i":
+Test "Imaginary part of: ctanh (355 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i) == 1.0 + 1.677892637497921890115075995898773550884e-317 i":
+Test "Imaginary part of: ctanh (365 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
+Test "erfc (27.0)":
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
-Test "exp10 (4932) == 1.0e4932":
+Test "exp10 (4932)":
ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+Test "exp2 (100.5)":
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (-79.0) == -0.9999999999999999999999999999999999509391":
+Test "expm1 (-79.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "j0 (0x1p16383)":
+ildouble: 2
+ldouble: 2
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
ildouble: 2
ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "j1 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "j1 (0x1p16383)":
+ildouble: 2
+ldouble: 2
+Test "j1 (1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
ildouble: 2
ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
idouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 8
ldouble: 8
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -2818,17 +7970,17 @@ ildouble: 3
ldouble: 3
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -2837,409 +7989,1254 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (10.0, -4930.0) == 1e-4930":
+Test "pow (10.0, -4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4929.0) == 1e4929":
+Test "pow (10.0, 4929.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4930.0) == 1e4930":
+Test "pow (10.0, 4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4931.0) == 1e4931":
+Test "pow (10.0, 4931.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4932.0) == 1e4932":
+Test "pow (10.0, 4932.0)":
ildouble: 1
ldouble: 1
-Test "pow (1e4932, 0.75) == 1e3699":
+Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_tonearest (3)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
ildouble: 1
ldouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
+Test "tanh (-1.0)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
+Test "tanh (1.0)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.ffffffp0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.000002p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x1.0a32a2p+5)":
+float: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1.5800000080001p+7)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.fffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffep0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x14.000000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.000000000001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.00002p0)":
+float: 1
+ifloat: 1
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.ffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1e.00000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000001p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x1e.00002p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1p-24)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.000004p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 2
+idouble: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x28.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.0000000000000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x29.00004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.fffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ee.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.00000000000000000000000001p0)":
+ildouble: 1
+ldouble: 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 (-0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x31.fffffffffffep0)":
+double: 3
+idouble: 3
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x31.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x32.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e8.00000000000000000000000002p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x3e8.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.000008p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffff8p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.000008p0)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (-0x5.fffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.fffffffffffffff8p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5db.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5dc.00000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.00000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x63.ffffffffffffff8p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x64.000000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x64.0000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6d5.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6d6.00000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6e3.00000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x7.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.0000000000004p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x7.000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x7.fffff8p0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "tgamma (-0x7.ffffffffffffcp0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x7.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.0000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.00000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.00001p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x95.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0xa.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xa.00001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb5.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xb7.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb7.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb8.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0xbc.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbc.0000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbd.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbd.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbd.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbe.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xf9.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xfa.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-2.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-3.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (0.5)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0x1.fffffep0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.fffffffffffffp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1p-113)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1p-24)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1p-53)":
+double: 1
+idouble: 1
+Test "tgamma (0x2.30a43cp+4)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (0x2.fffffcp0)":
+float: 3
+ifloat: 3
+Test "tgamma (0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffcp0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x3.ffffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.fffff8p0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x5.000008p0)":
+float: 3
+ifloat: 3
+Test "tgamma (0x5.fffff8p0)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "tgamma (0x5.ffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+Test "tgamma (0x6.fffffffffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0x7.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.0000000000004p0)":
+double: 4
+idouble: 4
+Test "tgamma (0x7.000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x7.fffff8p0)":
+double: 2
float: 1
+idouble: 2
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.0000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (18.5)":
+double: 1
+idouble: 1
+Test "tgamma (19.5)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (32.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (33.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (34.5)":
+double: 1
+idouble: 1
+Test "tgamma (4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
double: 1
idouble: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
idouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "y0 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "y0 (0x1p16383)":
+ildouble: 2
+ldouble: 2
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
+Test "y0 (2.0)":
double: 1
idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -3248,44 +9245,50 @@ ildouble: 3
ldouble: 3
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
+Test "y1 (0.75)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-30) == -6.8356527557643159612937462812258975438856e+08":
+Test "y1 (0x1p-30)":
+ildouble: 1
+ldouble: 1
+Test "y1 (0x1p1023)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (0x1p16383)":
+ildouble: 2
+ldouble: 2
+Test "y1 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -3294,108 +9297,108 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
+Test "yn (0, 2.0)":
double: 1
idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 5
ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
@@ -3452,66 +9455,74 @@ ifloat: 1
Function: Real part of "cacos":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacos":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "casin":
double: 1
float: 1
idouble: 1
ifloat: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "casin":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "casinh":
double: 5
-float: 1
+float: 2
idouble: 5
-ifloat: 1
+ifloat: 2
ildouble: 4
ldouble: 4
Function: Imaginary part of "casinh":
double: 3
-float: 6
+float: 1
idouble: 3
-ifloat: 6
+ifloat: 1
ildouble: 2
ldouble: 2
+Function: Real part of "catan":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
Function: Imaginary part of "catan":
double: 1
float: 1
@@ -3522,11 +9533,15 @@ ldouble: 1
Function: Real part of "catanh":
double: 4
+float: 1
idouble: 4
+ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "catanh":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -4063,12 +10078,12 @@ ildouble: 1
ldouble: 1
Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 4
+ldouble: 4
Function: "y0":
double: 2
@@ -4083,8 +10098,8 @@ double: 3
float: 2
idouble: 3
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "yn":
double: 3
diff --git a/ports/sysdeps/aarch64/setjmp.S b/ports/sysdeps/aarch64/setjmp.S
index cff81c7e4d..10e070999c 100644
--- a/ports/sysdeps/aarch64/setjmp.S
+++ b/ports/sysdeps/aarch64/setjmp.S
@@ -44,8 +44,14 @@ ENTRY (__sigsetjmp)
stp d10, d11, [x0, #JB_D10<<3]
stp d12, d13, [x0, #JB_D12<<3]
stp d14, d15, [x0, #JB_D14<<3]
- mov x1, sp
- str x1, [x0, #JB_SP<<3]
+ mov x2, sp
+ str x2, [x0, #JB_SP<<3]
+#if defined NOT_IN_libc && defined IS_IN_rtld
+ /* In ld.so we never save the signal mask */
+ mov w0, #0
+ RET
+#else
b C_SYMBOL_NAME(__sigjmp_save)
+#endif
END (__sigsetjmp)
hidden_def (__sigsetjmp)
diff --git a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
index b355986415..d21d00a934 100644
--- a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h
@@ -25,6 +25,8 @@
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
/* From my experiments it seems X is chosen unless one of the
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
diff --git a/ports/sysdeps/alpha/fpu/libm-test-ulps b/ports/sysdeps/alpha/fpu/libm-test-ulps
index d546515ea1..149700358a 100644
--- a/ports/sysdeps/alpha/fpu/libm-test-ulps
+++ b/ports/sysdeps/alpha/fpu/libm-test-ulps
@@ -1,19 +1,19 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -22,19 +22,19 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -43,182 +43,182 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 1
ldouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+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 (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -227,199 +227,199 @@ ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+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) == 0.9624236501192068949955178268487368462704 - pi i":
+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) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+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) == 0.9624236501192068949955178268487368462704 - 0 i":
+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) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -428,951 +428,951 @@ ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Imaginary part of: catan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# cbrt
-Test "cbrt (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i) == inf - 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+Test "Imaginary part of: cexp (-720 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i":
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+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) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+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) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i":
+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i":
+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i":
+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i":
+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i":
+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i":
+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i":
+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i":
+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i":
+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i":
+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i":
+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i":
+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i":
+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i":
+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i":
+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i":
+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i":
+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i":
+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i":
+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 i":
+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -1381,194 +1381,194 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
ildouble: 1
ldouble: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 11
ldouble: 11
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1577,907 +1577,905 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 11357.25 i) == -8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i) == -8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i) == 8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i) == 8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i) == 1.217853148905605987081057582351152052687e4924 + inf i":
+Test "Real part of: csin (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i) == -9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i) == -9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2":
-ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i) == 1.106698967236475180613254276996359485630e+2466 + 2.687568007603946993388538156299100955642e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i) == 3.514690655930285351254618340783294558136e-2475 + 8.297059146828716918029689466551384219370e-2476 i":
+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Real part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 355 i) == 8.140551093483276762350406321792653551513e-309 + 1.0 i":
+Test "Real part of: ctan (1 + 355 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 365 i) == 1.677892637497921890115075995898773550884e-317 + 1.0 i":
+Test "Real part of: ctan (1 + 365 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i) == 1.0 + 8.140551093483276762350406321792653551513e-309 i":
+Test "Imaginary part of: ctanh (355 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i) == 1.0 + 1.677892637497921890115075995898773550884e-317 i":
+Test "Imaginary part of: ctanh (365 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
+Test "erfc (27.0)":
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
-Test "exp10 (4932) == 1.0e4932":
+Test "exp10 (4932)":
ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+Test "exp2 (100.5)":
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (-79.0) == -0.9999999999999999999999999999999999509391":
+Test "expm1 (-79.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 8
ldouble: 8
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -2486,17 +2484,17 @@ ildouble: 3
ldouble: 3
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -2505,422 +2503,422 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (10.0, -4930.0) == 1e-4930":
+Test "pow (10.0, -4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4929.0) == 1e4929":
+Test "pow (10.0, 4929.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4930.0) == 1e4930":
+Test "pow (10.0, 4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4931.0) == 1e4931":
+Test "pow (10.0, 4931.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4932.0) == 1e4932":
+Test "pow (10.0, 4932.0)":
ildouble: 1
ldouble: 1
-Test "pow (1e4932, 0.75) == 1e3699":
+Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_tonearest (3)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
ildouble: 1
ldouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
+Test "tanh (-1.0)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
+Test "tanh (1.0)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
+Test "tgamma (4)":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -2929,44 +2927,44 @@ ildouble: 3
ldouble: 3
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
+Test "y1 (0.75)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-30) == -6.8356527557643159612937462812258975438856e+08":
+Test "y1 (0x1p-30)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -2975,105 +2973,105 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/alpha/soft-fp/sfp-machine.h b/ports/sysdeps/alpha/soft-fp/sfp-machine.h
index 343464c3a8..be266feccc 100644
--- a/ports/sysdeps/alpha/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/alpha/soft-fp/sfp-machine.h
@@ -46,6 +46,7 @@
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
/* Alpha Architecture Handbook, 4.7.10.4 sez that we should prefer any
type of NaN in Fb, then Fa. */
diff --git a/ports/sysdeps/am33/atomicity.h b/ports/sysdeps/am33/atomicity.h
index 12f72eff91..e9705a25df 100644
--- a/ports/sysdeps/am33/atomicity.h
+++ b/ports/sysdeps/am33/atomicity.h
@@ -22,6 +22,7 @@
#define _ATOMICITY_H 1
#include <inttypes.h>
+#include <stdint.h>
#define __acquire_lock(lock) \
__asm__ __volatile__("1: bset %1, (%0)\n\t" \
diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S
index 8de9fa1c7b..a5edede16d 100644
--- a/ports/sysdeps/arm/__longjmp.S
+++ b/ports/sysdeps/arm/__longjmp.S
@@ -83,11 +83,6 @@ ENTRY (__longjmp)
/* Following instruction is vldmia ip!, {d8-d15}. */
sfi_breg r12, \
ldc p11, cr8, [\B], #64
- /* Restore the floating-point status register. */
- sfi_breg ip, \
- ldr a3, [\B], #4
- /* Following instruction is fmxr fpscr, a3. */
- mcr p10, 7, a3, cr1, cr0, 0
.Lno_vfp:
#ifndef ARM_ASSUME_NO_IWMMXT
diff --git a/ports/sysdeps/arm/armv7/configure b/ports/sysdeps/arm/armv7/configure
new file mode 100755
index 0000000000..a879ffb5a7
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/configure
@@ -0,0 +1,72 @@
+# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/arm/armv7.
+
+# We need binutils 2.21 to ensure that NEON alignments are assembled correctly.
+libc_cv_arm_as_version_ok=yes
+for ac_prog in $AS
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AS" && break
+done
+
+if test -z "$AS"; then
+ ac_verc_fail=yes
+else
+ # Found it, now check the version.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AS" >&5
+$as_echo_n "checking version of $AS... " >&6; }
+ ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+ libc_cv_arm_as_version_ok=no
+fi
+
+
+if test $libc_cv_arm_as_version_ok != yes; then
+ as_fn_error $? "as version too old, at least 2.21 is required" "$LINENO" 5
+fi
diff --git a/ports/sysdeps/arm/armv7/configure.in b/ports/sysdeps/arm/armv7/configure.in
new file mode 100644
index 0000000000..01e93ecd36
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/configure.in
@@ -0,0 +1,12 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/arm/armv7.
+
+# We need binutils 2.21 to ensure that NEON alignments are assembled correctly.
+libc_cv_arm_as_version_ok=yes
+AC_CHECK_PROG_VER(AS, $AS, --version,
+ [GNU assembler.* \([0-9]*\.[0-9.]*\)],
+ [2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*], libc_cv_arm_as_version_ok=no)
+
+if test $libc_cv_arm_as_version_ok != yes; then
+ AC_MSG_ERROR([as version too old, at least 2.21 is required])
+fi
diff --git a/ports/sysdeps/arm/armv7/multiarch/Makefile b/ports/sysdeps/arm/armv7/multiarch/Makefile
new file mode 100644
index 0000000000..e834cc937f
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),string)
+sysdep_routines += memcpy_neon memcpy_vfp
+endif
diff --git a/ports/sysdeps/arm/armv7/multiarch/aeabi_memcpy.c b/ports/sysdeps/arm/armv7/multiarch/aeabi_memcpy.c
new file mode 100644
index 0000000000..c6a2a98a55
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/aeabi_memcpy.c
@@ -0,0 +1,2 @@
+/* Empty file to override sysdeps/arm version. See memcpy.S for definitions
+ of these functions. */
diff --git a/ports/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c b/ports/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
new file mode 100644
index 0000000000..9c2487fd22
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
@@ -0,0 +1,51 @@
+/* Enumerate available IFUNC implementations of a function. ARM 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 <string.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+#include <ifunc-impl-list.h>
+
+/* Fill ARRAY of MAX elements with IFUNC implementations for function
+ NAME and return the number of valid entries. */
+
+size_t
+__libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
+ size_t max)
+{
+ size_t i = 0;
+ int hwcap;
+
+ hwcap = GLRO(dl_hwcap);
+
+ IFUNC_IMPL (i, name, memcpy,
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_ARM_NEON,
+#ifdef __ARM_NEON__
+ memcpy
+#else
+ __memcpy_neon
+#endif
+ )
+#ifndef __ARM_NEON__
+ IFUNC_IMPL_ADD (array, i, memcpy, hwcap & HWCAP_ARM_VFP,
+ __memcpy_vfp)
+#endif
+ IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_arm));
+
+ return i;
+}
diff --git a/ports/sysdeps/arm/armv7/multiarch/memcpy.S b/ports/sysdeps/arm/armv7/multiarch/memcpy.S
new file mode 100644
index 0000000000..81c01d3eac
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/memcpy.S
@@ -0,0 +1,76 @@
+/* Multiple versions of memcpy
+ All versions must be listed in ifunc-impl-list.c.
+ 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/>. */
+
+/* Thumb requires excess IT instructions here. */
+#define NO_THUMB
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+
+#ifndef NOT_IN_libc
+/* Under __ARM_NEON__, memcpy_neon.S defines the name memcpy. */
+# ifndef __ARM_NEON__
+ .text
+ENTRY(memcpy)
+ .type memcpy, %gnu_indirect_function
+# ifdef __SOFTFP__
+ ldr r1, .Lmemcpy_arm
+ tst r0, #HWCAP_ARM_VFP
+ ldrne r1, .Lmemcpy_vfp
+# else
+ ldr r1, .Lmemcpy_vfp
+# endif
+ tst r0, #HWCAP_ARM_NEON
+ ldrne r1, .Lmemcpy_neon
+1:
+ add r0, r1, pc
+ DO_RET(lr)
+
+# ifdef __SOFTFP__
+.Lmemcpy_arm:
+ .long C_SYMBOL_NAME(__memcpy_arm) - 1b - PC_OFS
+# endif
+.Lmemcpy_neon:
+ .long C_SYMBOL_NAME(__memcpy_neon) - 1b - PC_OFS
+.Lmemcpy_vfp:
+ .long C_SYMBOL_NAME(__memcpy_vfp) - 1b - PC_OFS
+
+END(memcpy)
+
+libc_hidden_builtin_def (memcpy)
+#endif /* Not __ARM_NEON__. */
+
+/* These versions of memcpy are defined not to clobber any VFP or NEON
+ registers so they must always call the ARM variant of the memcpy code. */
+strong_alias (__memcpy_arm, __aeabi_memcpy)
+strong_alias (__memcpy_arm, __aeabi_memcpy4)
+strong_alias (__memcpy_arm, __aeabi_memcpy8)
+libc_hidden_def (__memcpy_arm)
+
+#undef libc_hidden_builtin_def
+#define libc_hidden_builtin_def(name)
+#undef weak_alias
+#define weak_alias(x, y)
+#undef libc_hidden_def
+#define libc_hidden_def(name)
+
+#define memcpy __memcpy_arm
+
+#endif
+
+#include "memcpy_impl.S"
diff --git a/ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S b/ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S
new file mode 100644
index 0000000000..f83276a704
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/memcpy_impl.S
@@ -0,0 +1,642 @@
+/* NEON/VFP/ARM version of memcpy optimized for Cortex-A15.
+ 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/>.
+
+ This memcpy routine is optimised for Cortex-A15 cores and takes advantage
+ of VFP or NEON when built with the appropriate flags.
+
+ Assumptions:
+
+ ARMv6 (ARMv7-a if using Neon)
+ ARM state
+ Unaligned accesses
+ LDRD/STRD support unaligned word accesses
+
+ */
+
+/* Thumb cannot encode negative immediate offsets in memory operations. */
+#ifndef NO_THUMB
+#define NO_THUMB
+#endif
+#include <sysdep.h>
+
+ .syntax unified
+ /* This implementation requires ARM state. */
+ .arm
+
+#ifdef MEMCPY_NEON
+
+ .fpu neon
+ .arch armv7-a
+# define FRAME_SIZE 4
+# define USE_VFP
+# define USE_NEON
+
+#elif defined (MEMCPY_VFP)
+
+ .arch armv6
+ .fpu vfpv2
+# define FRAME_SIZE 32
+# define USE_VFP
+
+#else
+ .arch armv6
+# define FRAME_SIZE 32
+
+#endif
+
+#define ALIGN(addr, align) addr:align
+
+#define INSN_SIZE 4
+
+/* Call parameters. */
+#define dstin r0
+#define src r1
+#define count r2
+
+/* Locals. */
+#define tmp1 r3
+#define dst ip
+#define tmp2 r10
+
+#ifndef USE_NEON
+/* For bulk copies using GP registers. */
+#define A_l r2 /* Call-clobbered. */
+#define A_h r3 /* Call-clobbered. */
+#define B_l r4
+#define B_h r5
+#define C_l r6
+#define C_h r7
+#define D_l r8
+#define D_h r9
+#endif
+
+/* Number of lines ahead to pre-fetch data. If you change this the code
+ below will need adjustment to compensate. */
+
+#define prefetch_lines 5
+
+#ifdef USE_VFP
+ .macro cpy_line_vfp vreg, base
+ vstr \vreg, [dst, #\base]
+ vldr \vreg, [src, #\base]
+ vstr d0, [dst, #\base + 8]
+ vldr d0, [src, #\base + 8]
+ vstr d1, [dst, #\base + 16]
+ vldr d1, [src, #\base + 16]
+ vstr d2, [dst, #\base + 24]
+ vldr d2, [src, #\base + 24]
+ vstr \vreg, [dst, #\base + 32]
+ vldr \vreg, [src, #\base + prefetch_lines * 64 - 32]
+ vstr d0, [dst, #\base + 40]
+ vldr d0, [src, #\base + 40]
+ vstr d1, [dst, #\base + 48]
+ vldr d1, [src, #\base + 48]
+ vstr d2, [dst, #\base + 56]
+ vldr d2, [src, #\base + 56]
+ .endm
+
+ .macro cpy_tail_vfp vreg, base
+ vstr \vreg, [dst, #\base]
+ vldr \vreg, [src, #\base]
+ vstr d0, [dst, #\base + 8]
+ vldr d0, [src, #\base + 8]
+ vstr d1, [dst, #\base + 16]
+ vldr d1, [src, #\base + 16]
+ vstr d2, [dst, #\base + 24]
+ vldr d2, [src, #\base + 24]
+ vstr \vreg, [dst, #\base + 32]
+ vstr d0, [dst, #\base + 40]
+ vldr d0, [src, #\base + 40]
+ vstr d1, [dst, #\base + 48]
+ vldr d1, [src, #\base + 48]
+ vstr d2, [dst, #\base + 56]
+ vldr d2, [src, #\base + 56]
+ .endm
+#endif
+
+ .p2align 6
+ENTRY(memcpy)
+
+ mov dst, dstin /* Preserve dstin, we need to return it. */
+ cmp count, #64
+ bge .Lcpy_not_short
+ /* Deal with small copies quickly by dropping straight into the
+ exit block. */
+
+.Ltail63unaligned:
+#ifdef USE_NEON
+ and tmp1, count, #0x38
+ rsb tmp1, tmp1, #(56 - PC_OFS + INSN_SIZE)
+ add pc, pc, tmp1
+ vld1.8 {d0}, [src]! /* 14 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 12 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 10 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 8 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 6 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 4 words to go. */
+ vst1.8 {d0}, [dst]!
+ vld1.8 {d0}, [src]! /* 2 words to go. */
+ vst1.8 {d0}, [dst]!
+
+ tst count, #4
+ ldrne tmp1, [src], #4
+ strne tmp1, [dst], #4
+#else
+ /* Copy up to 15 full words of data. May not be aligned. */
+ /* Cannot use VFP for unaligned data. */
+ and tmp1, count, #0x3c
+ add dst, dst, tmp1
+ add src, src, tmp1
+ rsb tmp1, tmp1, #(60 - PC_OFS/2 + INSN_SIZE/2)
+ /* Jump directly into the sequence below at the correct offset. */
+ add pc, pc, tmp1, lsl #1
+
+ ldr tmp1, [src, #-60] /* 15 words to go. */
+ str tmp1, [dst, #-60]
+
+ ldr tmp1, [src, #-56] /* 14 words to go. */
+ str tmp1, [dst, #-56]
+ ldr tmp1, [src, #-52]
+ str tmp1, [dst, #-52]
+
+ ldr tmp1, [src, #-48] /* 12 words to go. */
+ str tmp1, [dst, #-48]
+ ldr tmp1, [src, #-44]
+ str tmp1, [dst, #-44]
+
+ ldr tmp1, [src, #-40] /* 10 words to go. */
+ str tmp1, [dst, #-40]
+ ldr tmp1, [src, #-36]
+ str tmp1, [dst, #-36]
+
+ ldr tmp1, [src, #-32] /* 8 words to go. */
+ str tmp1, [dst, #-32]
+ ldr tmp1, [src, #-28]
+ str tmp1, [dst, #-28]
+
+ ldr tmp1, [src, #-24] /* 6 words to go. */
+ str tmp1, [dst, #-24]
+ ldr tmp1, [src, #-20]
+ str tmp1, [dst, #-20]
+
+ ldr tmp1, [src, #-16] /* 4 words to go. */
+ str tmp1, [dst, #-16]
+ ldr tmp1, [src, #-12]
+ str tmp1, [dst, #-12]
+
+ ldr tmp1, [src, #-8] /* 2 words to go. */
+ str tmp1, [dst, #-8]
+ ldr tmp1, [src, #-4]
+ str tmp1, [dst, #-4]
+#endif
+
+ lsls count, count, #31
+ ldrhcs tmp1, [src], #2
+ ldrbne src, [src] /* Src is dead, use as a scratch. */
+ strhcs tmp1, [dst], #2
+ strbne src, [dst]
+ bx lr
+
+.Lcpy_not_short:
+ /* At least 64 bytes to copy, but don't know the alignment yet. */
+ str tmp2, [sp, #-FRAME_SIZE]!
+ cfi_adjust_cfa_offset (FRAME_SIZE)
+ cfi_rel_offset (tmp2, 0)
+ cfi_remember_state
+ and tmp2, src, #3
+ and tmp1, dst, #3
+ cmp tmp1, tmp2
+ bne .Lcpy_notaligned
+
+#ifdef USE_VFP
+ /* Magic dust alert! Force VFP on Cortex-A9. Experiments show
+ that the FP pipeline is much better at streaming loads and
+ stores. This is outside the critical loop. */
+ vmov.f32 s0, s0
+#endif
+
+ /* SRC and DST have the same mutual 32-bit alignment, but we may
+ still need to pre-copy some bytes to get to natural alignment.
+ We bring DST into full 64-bit alignment. */
+ lsls tmp2, dst, #29
+ beq 1f
+ rsbs tmp2, tmp2, #0
+ sub count, count, tmp2, lsr #29
+ ldrmi tmp1, [src], #4
+ strmi tmp1, [dst], #4
+ lsls tmp2, tmp2, #2
+ ldrhcs tmp1, [src], #2
+ ldrbne tmp2, [src], #1
+ strhcs tmp1, [dst], #2
+ strbne tmp2, [dst], #1
+
+1:
+ subs tmp2, count, #64 /* Use tmp2 for count. */
+ blt .Ltail63aligned
+
+ cmp tmp2, #512
+ bge .Lcpy_body_long
+
+.Lcpy_body_medium: /* Count in tmp2. */
+#ifdef USE_VFP
+1:
+ vldr d0, [src, #0]
+ subs tmp2, tmp2, #64
+ vldr d1, [src, #8]
+ vstr d0, [dst, #0]
+ vldr d0, [src, #16]
+ vstr d1, [dst, #8]
+ vldr d1, [src, #24]
+ vstr d0, [dst, #16]
+ vldr d0, [src, #32]
+ vstr d1, [dst, #24]
+ vldr d1, [src, #40]
+ vstr d0, [dst, #32]
+ vldr d0, [src, #48]
+ vstr d1, [dst, #40]
+ vldr d1, [src, #56]
+ vstr d0, [dst, #48]
+ add src, src, #64
+ vstr d1, [dst, #56]
+ add dst, dst, #64
+ bge 1b
+ tst tmp2, #0x3f
+ beq .Ldone
+
+.Ltail63aligned: /* Count in tmp2. */
+ and tmp1, tmp2, #0x38
+ add dst, dst, tmp1
+ add src, src, tmp1
+ rsb tmp1, tmp1, #(56 - PC_OFS + INSN_SIZE)
+ add pc, pc, tmp1
+
+ vldr d0, [src, #-56] /* 14 words to go. */
+ vstr d0, [dst, #-56]
+ vldr d0, [src, #-48] /* 12 words to go. */
+ vstr d0, [dst, #-48]
+ vldr d0, [src, #-40] /* 10 words to go. */
+ vstr d0, [dst, #-40]
+ vldr d0, [src, #-32] /* 8 words to go. */
+ vstr d0, [dst, #-32]
+ vldr d0, [src, #-24] /* 6 words to go. */
+ vstr d0, [dst, #-24]
+ vldr d0, [src, #-16] /* 4 words to go. */
+ vstr d0, [dst, #-16]
+ vldr d0, [src, #-8] /* 2 words to go. */
+ vstr d0, [dst, #-8]
+#else
+ sub src, src, #8
+ sub dst, dst, #8
+1:
+ ldrd A_l, A_h, [src, #8]
+ strd A_l, A_h, [dst, #8]
+ ldrd A_l, A_h, [src, #16]
+ strd A_l, A_h, [dst, #16]
+ ldrd A_l, A_h, [src, #24]
+ strd A_l, A_h, [dst, #24]
+ ldrd A_l, A_h, [src, #32]
+ strd A_l, A_h, [dst, #32]
+ ldrd A_l, A_h, [src, #40]
+ strd A_l, A_h, [dst, #40]
+ ldrd A_l, A_h, [src, #48]
+ strd A_l, A_h, [dst, #48]
+ ldrd A_l, A_h, [src, #56]
+ strd A_l, A_h, [dst, #56]
+ ldrd A_l, A_h, [src, #64]!
+ strd A_l, A_h, [dst, #64]!
+ subs tmp2, tmp2, #64
+ bge 1b
+ tst tmp2, #0x3f
+ bne 1f
+ ldr tmp2,[sp], #FRAME_SIZE
+ cfi_adjust_cfa_offset (-FRAME_SIZE)
+ cfi_restore (tmp2)
+ bx lr
+
+ cfi_restore_state
+ cfi_remember_state
+1:
+ add src, src, #8
+ add dst, dst, #8
+
+.Ltail63aligned: /* Count in tmp2. */
+ /* Copy up to 7 d-words of data. Similar to Ltail63unaligned, but
+ we know that the src and dest are 32-bit aligned so we can use
+ LDRD/STRD to improve efficiency. */
+ /* TMP2 is now negative, but we don't care about that. The bottom
+ six bits still tell us how many bytes are left to copy. */
+
+ and tmp1, tmp2, #0x38
+ add dst, dst, tmp1
+ add src, src, tmp1
+ rsb tmp1, tmp1, #(56 - PC_OFS + INSN_SIZE)
+ add pc, pc, tmp1
+ ldrd A_l, A_h, [src, #-56] /* 14 words to go. */
+ strd A_l, A_h, [dst, #-56]
+ ldrd A_l, A_h, [src, #-48] /* 12 words to go. */
+ strd A_l, A_h, [dst, #-48]
+ ldrd A_l, A_h, [src, #-40] /* 10 words to go. */
+ strd A_l, A_h, [dst, #-40]
+ ldrd A_l, A_h, [src, #-32] /* 8 words to go. */
+ strd A_l, A_h, [dst, #-32]
+ ldrd A_l, A_h, [src, #-24] /* 6 words to go. */
+ strd A_l, A_h, [dst, #-24]
+ ldrd A_l, A_h, [src, #-16] /* 4 words to go. */
+ strd A_l, A_h, [dst, #-16]
+ ldrd A_l, A_h, [src, #-8] /* 2 words to go. */
+ strd A_l, A_h, [dst, #-8]
+
+#endif
+ tst tmp2, #4
+ ldrne tmp1, [src], #4
+ strne tmp1, [dst], #4
+ lsls tmp2, tmp2, #31 /* Count (tmp2) now dead. */
+ ldrhcs tmp1, [src], #2
+ ldrbne tmp2, [src]
+ strhcs tmp1, [dst], #2
+ strbne tmp2, [dst]
+
+.Ldone:
+ ldr tmp2, [sp], #FRAME_SIZE
+ cfi_adjust_cfa_offset (-FRAME_SIZE)
+ cfi_restore (tmp2)
+ bx lr
+
+ cfi_restore_state
+ cfi_remember_state
+
+.Lcpy_body_long: /* Count in tmp2. */
+
+ /* Long copy. We know that there's at least (prefetch_lines * 64)
+ bytes to go. */
+#ifdef USE_VFP
+ /* Don't use PLD. Instead, read some data in advance of the current
+ copy position into a register. This should act like a PLD
+ operation but we won't have to repeat the transfer. */
+
+ vldr d3, [src, #0]
+ vldr d4, [src, #64]
+ vldr d5, [src, #128]
+ vldr d6, [src, #192]
+ vldr d7, [src, #256]
+
+ vldr d0, [src, #8]
+ vldr d1, [src, #16]
+ vldr d2, [src, #24]
+ add src, src, #32
+
+ subs tmp2, tmp2, #prefetch_lines * 64 * 2
+ blt 2f
+1:
+ cpy_line_vfp d3, 0
+ cpy_line_vfp d4, 64
+ cpy_line_vfp d5, 128
+ add dst, dst, #3 * 64
+ add src, src, #3 * 64
+ cpy_line_vfp d6, 0
+ cpy_line_vfp d7, 64
+ add dst, dst, #2 * 64
+ add src, src, #2 * 64
+ subs tmp2, tmp2, #prefetch_lines * 64
+ bge 1b
+
+2:
+ cpy_tail_vfp d3, 0
+ cpy_tail_vfp d4, 64
+ cpy_tail_vfp d5, 128
+ add src, src, #3 * 64
+ add dst, dst, #3 * 64
+ cpy_tail_vfp d6, 0
+ vstr d7, [dst, #64]
+ vldr d7, [src, #64]
+ vstr d0, [dst, #64 + 8]
+ vldr d0, [src, #64 + 8]
+ vstr d1, [dst, #64 + 16]
+ vldr d1, [src, #64 + 16]
+ vstr d2, [dst, #64 + 24]
+ vldr d2, [src, #64 + 24]
+ vstr d7, [dst, #64 + 32]
+ add src, src, #96
+ vstr d0, [dst, #64 + 40]
+ vstr d1, [dst, #64 + 48]
+ vstr d2, [dst, #64 + 56]
+ add dst, dst, #128
+ add tmp2, tmp2, #prefetch_lines * 64
+ b .Lcpy_body_medium
+#else
+ /* Long copy. Use an SMS style loop to maximize the I/O
+ bandwidth of the core. We don't have enough spare registers
+ to synthesise prefetching, so use PLD operations. */
+ /* Pre-bias src and dst. */
+ sub src, src, #8
+ sub dst, dst, #8
+ pld [src, #8]
+ pld [src, #72]
+ subs tmp2, tmp2, #64
+ pld [src, #136]
+ ldrd A_l, A_h, [src, #8]
+ strd B_l, B_h, [sp, #8]
+ cfi_rel_offset (B_l, 8)
+ cfi_rel_offset (B_h, 12)
+ ldrd B_l, B_h, [src, #16]
+ strd C_l, C_h, [sp, #16]
+ cfi_rel_offset (C_l, 16)
+ cfi_rel_offset (C_h, 20)
+ ldrd C_l, C_h, [src, #24]
+ strd D_l, D_h, [sp, #24]
+ cfi_rel_offset (D_l, 24)
+ cfi_rel_offset (D_h, 28)
+ pld [src, #200]
+ ldrd D_l, D_h, [src, #32]!
+ b 1f
+ .p2align 6
+2:
+ pld [src, #232]
+ strd A_l, A_h, [dst, #40]
+ ldrd A_l, A_h, [src, #40]
+ strd B_l, B_h, [dst, #48]
+ ldrd B_l, B_h, [src, #48]
+ strd C_l, C_h, [dst, #56]
+ ldrd C_l, C_h, [src, #56]
+ strd D_l, D_h, [dst, #64]!
+ ldrd D_l, D_h, [src, #64]!
+ subs tmp2, tmp2, #64
+1:
+ strd A_l, A_h, [dst, #8]
+ ldrd A_l, A_h, [src, #8]
+ strd B_l, B_h, [dst, #16]
+ ldrd B_l, B_h, [src, #16]
+ strd C_l, C_h, [dst, #24]
+ ldrd C_l, C_h, [src, #24]
+ strd D_l, D_h, [dst, #32]
+ ldrd D_l, D_h, [src, #32]
+ bcs 2b
+ /* Save the remaining bytes and restore the callee-saved regs. */
+ strd A_l, A_h, [dst, #40]
+ add src, src, #40
+ strd B_l, B_h, [dst, #48]
+ ldrd B_l, B_h, [sp, #8]
+ cfi_restore (B_l)
+ cfi_restore (B_h)
+ strd C_l, C_h, [dst, #56]
+ ldrd C_l, C_h, [sp, #16]
+ cfi_restore (C_l)
+ cfi_restore (C_h)
+ strd D_l, D_h, [dst, #64]
+ ldrd D_l, D_h, [sp, #24]
+ cfi_restore (D_l)
+ cfi_restore (D_h)
+ add dst, dst, #72
+ tst tmp2, #0x3f
+ bne .Ltail63aligned
+ ldr tmp2, [sp], #FRAME_SIZE
+ cfi_adjust_cfa_offset (-FRAME_SIZE)
+ cfi_restore (tmp2)
+ bx lr
+#endif
+
+ cfi_restore_state
+ cfi_remember_state
+
+.Lcpy_notaligned:
+ pld [src]
+ pld [src, #64]
+ /* There's at least 64 bytes to copy, but there is no mutual
+ alignment. */
+ /* Bring DST to 64-bit alignment. */
+ lsls tmp2, dst, #29
+ pld [src, #(2 * 64)]
+ beq 1f
+ rsbs tmp2, tmp2, #0
+ sub count, count, tmp2, lsr #29
+ ldrmi tmp1, [src], #4
+ strmi tmp1, [dst], #4
+ lsls tmp2, tmp2, #2
+ ldrbne tmp1, [src], #1
+ ldrhcs tmp2, [src], #2
+ strbne tmp1, [dst], #1
+ strhcs tmp2, [dst], #2
+1:
+ pld [src, #(3 * 64)]
+ subs count, count, #64
+ ldrmi tmp2, [sp], #FRAME_SIZE
+ bmi .Ltail63unaligned
+ pld [src, #(4 * 64)]
+
+#ifdef USE_NEON
+ vld1.8 {d0-d3}, [src]!
+ vld1.8 {d4-d7}, [src]!
+ subs count, count, #64
+ bmi 2f
+1:
+ pld [src, #(4 * 64)]
+ vst1.8 {d0-d3}, [ALIGN (dst, 64)]!
+ vld1.8 {d0-d3}, [src]!
+ vst1.8 {d4-d7}, [ALIGN (dst, 64)]!
+ vld1.8 {d4-d7}, [src]!
+ subs count, count, #64
+ bpl 1b
+2:
+ vst1.8 {d0-d3}, [ALIGN (dst, 64)]!
+ vst1.8 {d4-d7}, [ALIGN (dst, 64)]!
+ ands count, count, #0x3f
+#else
+ /* Use an SMS style loop to maximize the I/O bandwidth. */
+ sub src, src, #4
+ sub dst, dst, #8
+ subs tmp2, count, #64 /* Use tmp2 for count. */
+ ldr A_l, [src, #4]
+ ldr A_h, [src, #8]
+ strd B_l, B_h, [sp, #8]
+ cfi_rel_offset (B_l, 8)
+ cfi_rel_offset (B_h, 12)
+ ldr B_l, [src, #12]
+ ldr B_h, [src, #16]
+ strd C_l, C_h, [sp, #16]
+ cfi_rel_offset (C_l, 16)
+ cfi_rel_offset (C_h, 20)
+ ldr C_l, [src, #20]
+ ldr C_h, [src, #24]
+ strd D_l, D_h, [sp, #24]
+ cfi_rel_offset (D_l, 24)
+ cfi_rel_offset (D_h, 28)
+ ldr D_l, [src, #28]
+ ldr D_h, [src, #32]!
+ b 1f
+ .p2align 6
+2:
+ pld [src, #(5 * 64) - (32 - 4)]
+ strd A_l, A_h, [dst, #40]
+ ldr A_l, [src, #36]
+ ldr A_h, [src, #40]
+ strd B_l, B_h, [dst, #48]
+ ldr B_l, [src, #44]
+ ldr B_h, [src, #48]
+ strd C_l, C_h, [dst, #56]
+ ldr C_l, [src, #52]
+ ldr C_h, [src, #56]
+ strd D_l, D_h, [dst, #64]!
+ ldr D_l, [src, #60]
+ ldr D_h, [src, #64]!
+ subs tmp2, tmp2, #64
+1:
+ strd A_l, A_h, [dst, #8]
+ ldr A_l, [src, #4]
+ ldr A_h, [src, #8]
+ strd B_l, B_h, [dst, #16]
+ ldr B_l, [src, #12]
+ ldr B_h, [src, #16]
+ strd C_l, C_h, [dst, #24]
+ ldr C_l, [src, #20]
+ ldr C_h, [src, #24]
+ strd D_l, D_h, [dst, #32]
+ ldr D_l, [src, #28]
+ ldr D_h, [src, #32]
+ bcs 2b
+
+ /* Save the remaining bytes and restore the callee-saved regs. */
+ strd A_l, A_h, [dst, #40]
+ add src, src, #36
+ strd B_l, B_h, [dst, #48]
+ ldrd B_l, B_h, [sp, #8]
+ cfi_restore (B_l)
+ cfi_restore (B_h)
+ strd C_l, C_h, [dst, #56]
+ ldrd C_l, C_h, [sp, #16]
+ cfi_restore (C_l)
+ cfi_restore (C_h)
+ strd D_l, D_h, [dst, #64]
+ ldrd D_l, D_h, [sp, #24]
+ cfi_restore (D_l)
+ cfi_restore (D_h)
+ add dst, dst, #72
+ ands count, tmp2, #0x3f
+#endif
+ ldr tmp2, [sp], #FRAME_SIZE
+ cfi_adjust_cfa_offset (-FRAME_SIZE)
+ cfi_restore (tmp2)
+ bne .Ltail63unaligned
+ bx lr
+
+END(memcpy)
+libc_hidden_builtin_def (memcpy)
diff --git a/ports/sysdeps/arm/armv7/multiarch/memcpy_neon.S b/ports/sysdeps/arm/armv7/multiarch/memcpy_neon.S
new file mode 100644
index 0000000000..e60d1cc0e1
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/memcpy_neon.S
@@ -0,0 +1,9 @@
+#ifdef __ARM_NEON__
+/* Under __ARM_NEON__, this file defines memcpy directly. */
+libc_hidden_builtin_def (memcpy)
+#else
+# define memcpy __memcpy_neon
+#endif
+
+#define MEMCPY_NEON
+#include "memcpy_impl.S"
diff --git a/ports/sysdeps/arm/armv7/multiarch/memcpy_vfp.S b/ports/sysdeps/arm/armv7/multiarch/memcpy_vfp.S
new file mode 100644
index 0000000000..e008c041ed
--- /dev/null
+++ b/ports/sysdeps/arm/armv7/multiarch/memcpy_vfp.S
@@ -0,0 +1,7 @@
+/* Under __ARM_NEON__, memcpy_neon.S defines memcpy directly
+ and the __memcpy_vfp code will never be used. */
+#ifndef __ARM_NEON__
+# define MEMCPY_VFP
+# define memcpy __memcpy_vfp
+# include "memcpy_impl.S"
+#endif
diff --git a/ports/sysdeps/arm/bits/setjmp.h b/ports/sysdeps/arm/bits/setjmp.h
index 21bbf7f57d..c8c3a9a324 100644
--- a/ports/sysdeps/arm/bits/setjmp.h
+++ b/ports/sysdeps/arm/bits/setjmp.h
@@ -28,9 +28,9 @@
/* The exact set of registers saved may depend on the particular core
in use, as some coprocessor registers may need to be saved. The C
Library ABI requires that the buffer be 8-byte aligned, and
- recommends that the buffer contain 64 words. The first 28 words
- are occupied by v1-v6, sl, fp, sp, pc, d8-d15, and fpscr. (Note
- that d8-15 require 17 words, due to the use of fstmx.) */
+ recommends that the buffer contain 64 words. The first 27 words
+ are occupied by v1-v6, sl, fp, sp, pc, and d8-d15. (Note that
+ d8-15 require 17 words, due to the use of fstmx.) */
typedef int __jmp_buf[64] __attribute__((__aligned__ (8)));
#endif
diff --git a/ports/sysdeps/arm/dl-machine.h b/ports/sysdeps/arm/dl-machine.h
index 5a424f841f..6e09aa107c 100644
--- a/ports/sysdeps/arm/dl-machine.h
+++ b/ports/sysdeps/arm/dl-machine.h
@@ -39,30 +39,13 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. We used to use the PIC register to do this
- without a constant pool reference, but GCC 4.2 will use a pseudo-register
- for the PIC base, so it may not be in r10. */
+ first element of the GOT. */
static inline Elf32_Addr __attribute__ ((unused))
elf_machine_dynamic (void)
{
- Elf32_Addr dynamic;
-#ifdef __thumb2__
- long tmp;
- asm ("ldr\t%0, 1f\n\t"
- "adr\t%1, 1f\n\t"
- "ldr\t%0, [%0, %1]\n\t"
- "b 2f\n"
- ".align 2\n"
- "1: .word _GLOBAL_OFFSET_TABLE_ - 1b\n"
- "2:" : "=r" (dynamic), "=r"(tmp));
-#else
- asm ("ldr %0, 2f\n"
- "1: ldr %0, [pc, %0]\n"
- "b 3f\n"
- "2: .word _GLOBAL_OFFSET_TABLE_ - (1b+8)\n"
- "3:" : "=r" (dynamic));
-#endif
- return dynamic;
+ /* Declaring this hidden ensures that a PC-relative reference is used. */
+ extern const Elf32_Addr _GLOBAL_OFFSET_TABLE_[] attribute_hidden;
+ return _GLOBAL_OFFSET_TABLE_[0];
}
diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/ports/sysdeps/arm/dl-tlsdesc.S
index 7203c06ae6..d4b046669a 100644
--- a/ports/sysdeps/arm/dl-tlsdesc.S
+++ b/ports/sysdeps/arm/dl-tlsdesc.S
@@ -29,13 +29,13 @@
.global _dl_tlsdesc_return
.type _dl_tlsdesc_return,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_return:
sfi_breg r0, \
ldr r0, [\B]
BX (lr)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_return, .-_dl_tlsdesc_return
@@ -43,14 +43,14 @@ _dl_tlsdesc_return:
.global _dl_tlsdesc_undefweak
.type _dl_tlsdesc_undefweak,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_undefweak:
GET_TLS (r1)
rsb r0, r0, #0
BX (lr)
cfi_endproc
- .fnend
+ eabi_fnend
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
#ifdef SHARED
@@ -80,12 +80,12 @@ _dl_tlsdesc_dynamic(struct tlsdesc *tdp)
*/
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_dynamic:
/* Our calling convention is to clobber r0, r1 and the processor
flags. All others that are modified must be saved */
- .save {r2,r3,r4,lr}
+ eabi_save ({r2,r3,r4,lr})
push {r2,r3,r4,lr}
cfi_adjust_cfa_offset (16)
cfi_rel_offset (r2,0)
@@ -115,6 +115,7 @@ _dl_tlsdesc_dynamic:
#endif
cmn r2, #1
ittt ne
+ sfi_breg r1, \
ldrne r3, [r1, #4]
addne r3, r2, r3
rsbne r0, r4, r3
@@ -135,7 +136,7 @@ _dl_tlsdesc_dynamic:
#else
pop {r2,r3,r4, pc}
#endif
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
#endif /* SHARED */
@@ -145,7 +146,7 @@ _dl_tlsdesc_dynamic:
.global _dl_tlsdesc_lazy_resolver
.type _dl_tlsdesc_lazy_resolver,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_lazy_resolver:
/* r0 points at the tlsdesc,
@@ -155,10 +156,10 @@ _dl_tlsdesc_lazy_resolver:
We push the remaining call-clobbered registers here, and also
R1 -- to keep the stack correctly aligned. */
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -180,7 +181,7 @@ _dl_tlsdesc_lazy_resolver:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_lazy_resolver, .-_dl_tlsdesc_lazy_resolver
@@ -190,14 +191,14 @@ _dl_tlsdesc_lazy_resolver:
.global _dl_tlsdesc_resolve_hold
.type _dl_tlsdesc_resolve_hold,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_resolve_hold:
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -220,6 +221,6 @@ _dl_tlsdesc_resolve_hold:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_resolve_hold, .-_dl_tlsdesc_resolve_hold
diff --git a/ports/sysdeps/arm/libm-test-ulps b/ports/sysdeps/arm/libm-test-ulps
index e0c7e0d472..990a5bc826 100644
--- a/ports/sysdeps/arm/libm-test-ulps
+++ b/ports/sysdeps/arm/libm-test-ulps
@@ -1,1785 +1,1785 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0 - 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
# cos_upward
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real 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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+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) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
# ctanh_upward
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/arm/setjmp.S b/ports/sysdeps/arm/setjmp.S
index f750470652..a6c161db54 100644
--- a/ports/sysdeps/arm/setjmp.S
+++ b/ports/sysdeps/arm/setjmp.S
@@ -67,11 +67,6 @@ ENTRY (__sigsetjmp)
/* Following instruction is vstmia ip!, {d8-d15}. */
sfi_breg ip, \
stc p11, cr8, [\B], #64
- /* Store the floating-point status register. */
- /* Following instruction is vmrs a4, fpscr. */
- mrc p10, 7, a4, cr1, cr0, 0
- sfi_breg ip, \
- str a4, [\B], #4
.Lno_vfp:
#ifndef ARM_ASSUME_NO_IWMMXT
diff --git a/ports/sysdeps/arm/sysdep.h b/ports/sysdeps/arm/sysdep.h
index 83df7ebc3a..550159740b 100644
--- a/ports/sysdeps/arm/sysdep.h
+++ b/ports/sysdeps/arm/sysdep.h
@@ -257,6 +257,15 @@
# endif
+/* These are the directives used for EABI unwind info.
+ Wrap them in macros so another configuration's sysdep.h
+ file can define them away if it doesn't use EABI unwind info. */
+# define eabi_fnstart .fnstart
+# define eabi_fnend .fnend
+# define eabi_save(...) .save __VA_ARGS__
+# define eabi_cantunwind .cantunwind
+# define eabi_pad(n) .pad n
+
#endif /* __ASSEMBLER__ */
/* This number is the offset from the pc at the current location. */
diff --git a/ports/sysdeps/hppa/fpu/fpu_control.h b/ports/sysdeps/hppa/fpu/fpu_control.h
index 5cac3344d6..627cdd5b92 100644
--- a/ports/sysdeps/hppa/fpu/fpu_control.h
+++ b/ports/sysdeps/hppa/fpu/fpu_control.h
@@ -49,7 +49,7 @@ typedef unsigned int fpu_control_t;
__asm__ ("fstd %%fr0,0(%1)\n\t" \
"fldd 0(%1),%%fr0\n\t" \
: "=m" (__fullfp.__fpreg) : "r" (&__fullfp.__fpreg) : "%r0"); \
- __fullfp.__halfreg[0]; \
+ cw = __fullfp.__halfreg[0]; \
})
#define _FPU_SETCW(cw) \
@@ -57,7 +57,7 @@ typedef unsigned int fpu_control_t;
union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \
__fullfp.__halfreg[0] = cw; \
__asm__ ("fldd 0(%1),%%fr0\n\t" \
- : : "m" (__fullfp.__fpreg), "r" (__fullfp.__fpreg) : "%r0" ); \
+ : : "m" (__fullfp.__fpreg), "r" (&__fullfp.__fpreg) : "%r0" ); \
})
/* Default control word set at startup. */
diff --git a/ports/sysdeps/hppa/fpu/libm-test-ulps b/ports/sysdeps/hppa/fpu/libm-test-ulps
index b8ec3d25f4..0b64644a28 100644
--- a/ports/sysdeps/hppa/fpu/libm-test-ulps
+++ b/ports/sysdeps/hppa/fpu/libm-test-ulps
@@ -1,224 +1,3191 @@
# Begin of automatic generation
+# acos_downward
+Test "acos_downward (-0)":
+float: 1
+ifloat: 1
+Test "acos_downward (-0.5)":
+double: 1
+idouble: 1
+Test "acos_downward (-1)":
+float: 1
+ifloat: 1
+Test "acos_downward (0)":
+float: 1
+ifloat: 1
+Test "acos_downward (0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# acos_towardzero
+Test "acos_towardzero (-0)":
+float: 1
+ifloat: 1
+Test "acos_towardzero (-0.5)":
+double: 1
+idouble: 1
+Test "acos_towardzero (-1)":
+float: 1
+ifloat: 1
+Test "acos_towardzero (0)":
+float: 1
+ifloat: 1
+Test "acos_towardzero (0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# asin_downward
+Test "asin_downward (-0.5)":
+double: 1
+idouble: 1
+Test "asin_downward (0.5)":
+double: 1
+idouble: 1
+Test "asin_downward (1.0)":
+float: 1
+ifloat: 1
+
+# asin_towardzero
+Test "asin_towardzero (-0.5)":
+double: 1
+idouble: 1
+Test "asin_towardzero (-1.0)":
+float: 1
+ifloat: 1
+Test "asin_towardzero (0.5)":
+double: 1
+idouble: 1
+Test "asin_towardzero (1.0)":
+float: 1
+ifloat: 1
+
+# asin_upward
+Test "asin_upward (-1.0)":
+float: 1
+ifloat: 1
+
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (0.75, -1.0)":
+float: 1
+ifloat: 1
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
+float: 1
+ifloat: 1
+
+# cacos
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
+double: 1
+idouble: 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 "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 "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 "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 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.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 (-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 "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 (-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 (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.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 "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 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 "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
ildouble: 1
ldouble: 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 (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 "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 "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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 (-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: 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
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+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 "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+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
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 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 (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+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
ildouble: 1
ldouble: 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 (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+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
ildouble: 4
ldouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 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) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
+double: 1
+idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
-
-# ceil
-Test "ceil (-4503599627370496.75) == -4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "ceil (-4503599627370497.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "ceil (-9007199254740991.5) == -9007199254740991.0":
-ildouble: 1
-ldouble: 1
-Test "ceil (-9007199254740993.5) == -9007199254740993.0":
-ildouble: 1
-ldouble: 1
-Test "ceil (4503599627370496.25) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "ceil (4503599627370496.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (50 + 0x1p127 i)":
+double: 2
float: 1
+idouble: 2
ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (500 + 0x1p1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (709.8125 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
+float: 2
+ifloat: 2
# clog
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
+float: 1
+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
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+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
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 2
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 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-149 + 0x1.fp+127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+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
+idouble: 1
+ifloat: 1
+Test "Real part of: clog10 (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
+double: 1
+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
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
+double: 1
+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
+float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
+double: 1
+idouble: 1
+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) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (0x1p+120)":
+float: 1
+ifloat: 1
+Test "cos (0x1p+127)":
+float: 1
+ifloat: 1
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -226,38 +3193,119 @@ ifloat: 1
ildouble: 2
ldouble: 2
+# cos_downward
+Test "cos_downward (1)":
+float: 1
+ifloat: 1
+Test "cos_downward (2)":
+float: 1
+ifloat: 1
+Test "cos_downward (3)":
+float: 1
+ifloat: 1
+Test "cos_downward (4)":
+float: 1
+ifloat: 1
+Test "cos_downward (5)":
+float: 1
+ifloat: 1
+Test "cos_downward (7)":
+float: 1
+ifloat: 1
+Test "cos_downward (8)":
+float: 1
+ifloat: 1
+
+# cos_tonearest
+Test "cos_tonearest (7)":
+float: 1
+ifloat: 1
+
+# cos_towardzero
+Test "cos_towardzero (2)":
+float: 1
+ifloat: 1
+Test "cos_towardzero (3)":
+float: 1
+ifloat: 1
+Test "cos_towardzero (5)":
+float: 1
+ifloat: 1
+Test "cos_towardzero (7)":
+float: 1
+ifloat: 1
+Test "cos_towardzero (8)":
+float: 1
+ifloat: 1
+
+# cos_upward
+Test "cos_upward (10)":
+float: 1
+ifloat: 1
+Test "cos_upward (6)":
+float: 1
+ifloat: 1
+Test "cos_upward (7)":
+float: 1
+ifloat: 1
+Test "cos_upward (9)":
+float: 2
+ifloat: 2
+
+# cosh_downward
+Test "cosh_downward (22)":
+float: 1
+ifloat: 1
+Test "cosh_downward (23)":
+float: 1
+ifloat: 1
+Test "cosh_downward (24)":
+float: 1
+ifloat: 1
+
+# cosh_towardzero
+Test "cosh_towardzero (22)":
+float: 1
+ifloat: 1
+Test "cosh_towardzero (23)":
+float: 1
+ifloat: 1
+Test "cosh_towardzero (24)":
+float: 1
+ifloat: 1
+
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -265,302 +3313,565 @@ ifloat: 2
ildouble: 2
ldouble: 2
+# csin
+Test "Real part of: csin (-0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (-0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
+double: 1
+idouble: 1
+
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
+double: 1
+idouble: 1
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
+double: 1
+idouble: 1
# ctan
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan (-2 - 3 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "Real part of: ctan (0x1p1023 + 1 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
+float: 1
+ifloat: 1
+
+# ctan_downward
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+
+# ctan_tonearest
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+
+# ctan_towardzero
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+
+# ctan_upward
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
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
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctanh (1 + 0x1p127 i)":
+double: 1
+idouble: 1
+
+# ctanh_downward
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+# ctanh_tonearest
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+
+# ctanh_towardzero
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+
+# ctanh_upward
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# erfc
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (0x1.f7303cp+1)":
+double: 1
+idouble: 1
+Test "erfc (0x1.ffa002p+2)":
+float: 1
+ifloat: 1
+Test "erfc (2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (-305)":
+double: 1
+idouble: 1
+Test "exp10 (-36)":
+double: 1
+idouble: 1
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2
ildouble: 6
ldouble: 6
+Test "exp10 (36)":
+double: 1
+idouble: 1
+
+# exp_downward
+Test "exp_downward (2)":
+float: 1
+ifloat: 1
+Test "exp_downward (3)":
+float: 1
+ifloat: 1
+
+# exp_towardzero
+Test "exp_towardzero (2)":
+float: 1
+ifloat: 1
+Test "exp_towardzero (3)":
+float: 1
+ifloat: 1
+
+# exp_upward
+Test "exp_upward (1)":
+float: 1
+ifloat: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
-
-# floor
-Test "floor (-4503599627370496.25) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "floor (-4503599627370496.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "floor (4503599627370496.75) == 4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "floor (4503599627370497.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "floor (9007199254740991.5) == 9007199254740991.0":
-ildouble: 1
-ldouble: 1
-Test "floor (9007199254740993.5) == 9007199254740993.0":
-ildouble: 1
-ldouble: 1
+Test "expm1 (500.0)":
+double: 1
+idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (0x1.d7ce3ap+107)":
+float: 2
+ifloat: 2
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (0x1.3ffp+74)":
+double: 1
+idouble: 1
+Test "j1 (0x1.ff00000000002p+840)":
+double: 1
+idouble: 1
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 4
ldouble: 4
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
+double: 1
float: 4
+idouble: 1
ifloat: 4
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (2, 0x1.ffff62p+99)":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+Test "jn (2, 2.4048255576957729)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
+Test "jn (3, 2.4048255576957729)":
+double: 3
+idouble: 3
+Test "jn (4, 2.4048255576957729)":
+double: 1
+idouble: 1
+Test "jn (5, 2.4048255576957729)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (6, 2.4048255576957729)":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (7, 2.4048255576957729)":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+Test "jn (8, 2.4048255576957729)":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+Test "jn (9, 2.4048255576957729)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -568,430 +3879,602 @@ ifloat: 2
ildouble: 1
ldouble: 1
-# llrint
-Test "llrint (-72057594037927936.75) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint (-72057594037927937.5) == -72057594037927938LL":
-ildouble: 2
-ldouble: 2
-Test "llrint (-9007199254740992.75) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint (72057594037927936.75) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint (72057594037927937.5) == 72057594037927938LL":
-ildouble: -2
-ldouble: -2
-Test "llrint (9007199254740992.75) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-
-# llrint_downward
-Test "llrint_downward (-4503599627370496.25) == -4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-4503599627370496.4999999999999) == -4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-4503599627370496.5) == -4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-4503599627370497.4999999999999) == -4503599627370498LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-72057594037927936.25) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-72057594037927936.5) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-72057594037927936.75) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-72057594037927937.5) == -72057594037927938LL":
-ildouble: 2
-ldouble: 2
-Test "llrint_downward (-9007199254740991.4999999999999) == -9007199254740992LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-9007199254740992.25) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-9007199254740992.4999999999999) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-9007199254740992.5) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-9007199254740992.5000000000001) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (-9007199254740992.75) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (4503599627370496.5000000000001) == 4503599627370496LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (4503599627370496.75) == 4503599627370496LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (4503599627370497.5) == 4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (72057594037927935.5) == 72057594037927935LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (72057594037927937.5) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_downward (9007199254740991.5) == 9007199254740991LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (9007199254740991.5000000000001) == 9007199254740991LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (9007199254740993.4999999999999) == 9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (9007199254740993.5) == 9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_downward (9007199254740993.5000000000001) == 9007199254740993LL":
-ildouble: 1
-ldouble: 1
-
-# llrint_tonearest
-Test "llrint_tonearest (-72057594037927936.75) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_tonearest (-72057594037927937.5) == -72057594037927938LL":
-ildouble: 2
-ldouble: 2
-Test "llrint_tonearest (-9007199254740992.75) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_tonearest (72057594037927936.75) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_tonearest (72057594037927937.5) == 72057594037927938LL":
-ildouble: -2
-ldouble: -2
-Test "llrint_tonearest (9007199254740992.75) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-
-# llrint_towardzero
-Test "llrint_towardzero (-4503599627370496.75) == -4503599627370496LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (-4503599627370497.5) == -4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (-72057594037927935.5) == -72057594037927935LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (-72057594037927937.5) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_towardzero (-9007199254740991.5) == -9007199254740991LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (-9007199254740993.5) == -9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (4503599627370496.75) == 4503599627370496LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_towardzero (4503599627370497.5) == 4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_towardzero (72057594037927935.5) == 72057594037927935LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_towardzero (72057594037927937.5) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_towardzero (9007199254740991.5) == 9007199254740991LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_towardzero (9007199254740993.5) == 9007199254740993LL":
-ildouble: 1
-ldouble: 1
-
-# llrint_upward
-Test "llrint_upward (-4503599627370496.5000000000001) == -4503599627370496LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-4503599627370496.75) == -4503599627370496LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-4503599627370497.5) == -4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-72057594037927935.5) == -72057594037927935LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-72057594037927937.5) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llrint_upward (-9007199254740991.5) == -9007199254740991LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-9007199254740991.5000000000001) == -9007199254740991LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-9007199254740993.4999999999999) == -9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-9007199254740993.5) == -9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (-9007199254740993.5000000000001) == -9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (4503599627370496.25) == 4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (4503599627370496.4999999999999) == 4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (4503599627370496.5) == 4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (4503599627370497.4999999999999) == 4503599627370498LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (72057594037927936.25) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (72057594037927936.5) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (72057594037927936.75) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (72057594037927937.5) == 72057594037927938LL":
-ildouble: -2
-ldouble: -2
-Test "llrint_upward (9007199254740991.4999999999999) == 9007199254740992LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (9007199254740992.25) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (9007199254740992.4999999999999) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (9007199254740992.5) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (9007199254740992.5000000000001) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llrint_upward (9007199254740992.75) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-
-# llround
-Test "llround (-4503599627370496.5) == -4503599627370497LL":
-ildouble: 1
-ldouble: 1
-Test "llround (-72057594037927936.5) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llround (-72057594037927936.75) == -72057594037927937LL":
-ildouble: 1
-ldouble: 1
-Test "llround (-72057594037927937.5) == -72057594037927938LL":
-ildouble: 2
-ldouble: 2
-Test "llround (-9007199254740992.5) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llround (-9007199254740992.75) == -9007199254740993LL":
-ildouble: 1
-ldouble: 1
-Test "llround (-9223372036854775806.25) == -9223372036854775806LL":
-ildouble: -2
-ldouble: -2
-Test "llround (-9223372036854775806.5) == -9223372036854775807LL":
-ildouble: -1
-ldouble: -1
-Test "llround (-9223372036854775807.0) == -9223372036854775807LL":
-ildouble: -1
-ldouble: -1
-Test "llround (4503599627370496.5) == 4503599627370497LL":
-ildouble: -1
-ldouble: -1
-Test "llround (72057594037927936.5) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llround (72057594037927936.75) == 72057594037927937LL":
-ildouble: -1
-ldouble: -1
-Test "llround (72057594037927937.5) == 72057594037927938LL":
-ildouble: -2
-ldouble: -2
-Test "llround (9007199254740992.5) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llround (9007199254740992.75) == 9007199254740993LL":
-ildouble: -1
-ldouble: -1
-Test "llround (9223372036854775806.25) == 9223372036854775806LL":
-ildouble: 1
-ldouble: 1
-
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
-# rint_downward
-Test "rint_downward (-4503599627370496.25) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "rint_downward (-4503599627370496.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "rint_downward (4503599627370496.75) == 4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "rint_downward (4503599627370497.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
+# pow
+Test "pow (0x0.ffffffp0, -0x1p24)":
+float: 1
+ifloat: 1
+Test "pow (0x0.ffffffp0, 0x1p24)":
+float: 1
+ifloat: 1
+Test "pow (0x1.000002p0, 0x1p24)":
+float: 1
+ifloat: 1
-# rint_towardzero
-Test "rint_towardzero (-4503599627370496.75) == -4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "rint_towardzero (-4503599627370497.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "rint_towardzero (4503599627370496.75) == 4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "rint_towardzero (4503599627370497.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
+# pow_downward
+Test "pow_downward (1.5, 1.03125)":
+float: 1
+ifloat: 1
-# rint_upward
-Test "rint_upward (-4503599627370496.75) == -4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "rint_upward (-4503599627370497.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "rint_upward (4503599627370496.25) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "rint_upward (4503599627370496.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
+# pow_towardzero
+Test "pow_towardzero (1.5, 1.03125)":
+float: 1
+ifloat: 1
-# round
-Test "round (-4503599627370496.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "round (4503599627370496.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
+# pow_upward
+Test "pow_upward (1.0625, 1.125)":
+float: 1
+ifloat: 1
+
+# sin_downward
+Test "sin_downward (10)":
+float: 1
+ifloat: 1
+Test "sin_downward (3)":
+float: 1
+ifloat: 1
+Test "sin_downward (5)":
+float: 1
+ifloat: 1
+Test "sin_downward (6)":
+float: 1
+ifloat: 1
+
+# sin_tonearest
+Test "sin_tonearest (1)":
+float: 1
+ifloat: 1
+
+# sin_towardzero
+Test "sin_towardzero (1)":
+float: 1
+ifloat: 1
+Test "sin_towardzero (10)":
+float: 1
+ifloat: 1
+Test "sin_towardzero (4)":
+float: 1
+ifloat: 1
+Test "sin_towardzero (5)":
+float: 1
+ifloat: 1
+Test "sin_towardzero (9)":
+float: 1
+ifloat: 1
+
+# sin_upward
+Test "sin_upward (1)":
+float: 1
+ifloat: 1
+Test "sin_upward (2)":
+float: 2
+ifloat: 2
+Test "sin_upward (4)":
+float: 1
+ifloat: 1
+Test "sin_upward (9)":
+float: 1
+ifloat: 1
# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
+float: 1
+ifloat: 1
+Test "sincos (0x1p+127) extra output 2":
+float: 1
+ifloat: 1
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
-float: 1
idouble: 1
-ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (pi/6) extra output 2":
+float: 1
+ifloat: 1
+
+# sinh_downward
+Test "sinh_downward (22)":
+float: 1
+ifloat: 1
+Test "sinh_downward (23)":
+float: 1
+ifloat: 1
+Test "sinh_downward (24)":
+float: 1
+ifloat: 1
+
+# sinh_towardzero
+Test "sinh_towardzero (22)":
+float: 1
+ifloat: 1
+Test "sinh_towardzero (23)":
+float: 1
+ifloat: 1
+Test "sinh_towardzero (24)":
+float: 1
+ifloat: 1
+
+# tan_downward
+Test "tan_downward (1)":
+float: 1
+ifloat: 1
+Test "tan_downward (10)":
+float: 1
+ifloat: 1
+Test "tan_downward (2)":
+float: 1
+ifloat: 1
+Test "tan_downward (6)":
+float: 1
+ifloat: 1
+Test "tan_downward (8)":
+float: 1
+ifloat: 1
+Test "tan_downward (9)":
+float: 1
+ifloat: 1
+
+# tan_towardzero
+Test "tan_towardzero (10)":
+float: 1
+ifloat: 1
+Test "tan_towardzero (3)":
+float: 1
+ifloat: 1
+Test "tan_towardzero (4)":
+float: 1
+ifloat: 1
+Test "tan_towardzero (5)":
+float: 1
+ifloat: 1
+Test "tan_towardzero (9)":
+float: 1
+ifloat: 1
+
+# tan_upward
+Test "tan_upward (1)":
+float: 1
+ifloat: 1
+Test "tan_upward (10)":
+float: 1
+ifloat: 1
+Test "tan_upward (3)":
+float: 1
+ifloat: 1
+Test "tan_upward (5)":
float: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x0.ffffffp0)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+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
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-
-# trunc
-Test "trunc (-4503599627370496.75) == -4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (-4503599627370497.5) == -4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (-9007199254740991.5) == -9007199254740991.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (-9007199254740993.5) == -9007199254740993.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (4503599627370496.75) == 4503599627370496.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (4503599627370497.5) == 4503599627370497.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (9007199254740991.5) == 9007199254740991.0":
-ildouble: 1
-ldouble: 1
-Test "trunc (9007199254740993.5) == 9007199254740993.0":
-ildouble: 1
-ldouble: 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 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (0x1.3ffp+74)":
+double: 1
+idouble: 1
+Test "y0 (0x1.ff00000000002p+840)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-10)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-110)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-20)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-30)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-40)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (0x1p-50)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-70)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-80)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -1000,29 +4483,35 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (0x1.27e204p+99)":
+double: 1
+idouble: 1
+Test "y1 (0x1p-10)":
+double: 1
+idouble: 1
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -1031,114 +4520,142 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# Maximal error of functions:
+Function: "acos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_upward":
+float: 1
+ifloat: 1
+
Function: "atan2":
float: 1
ifloat: 1
@@ -1147,9 +4664,29 @@ Function: "atanh":
float: 1
ifloat: 1
+Function: Real part of "cacos":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cacos":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cacosh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
Function: Imaginary part of "cacosh":
-float: 1
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Function: Real part of "casin":
double: 1
@@ -1159,22 +4696,32 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: Imaginary part of "casin":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
Function: Real part of "casinh":
double: 5
-float: 1
+float: 2
idouble: 5
-ifloat: 1
+ifloat: 2
ildouble: 5
ldouble: 5
Function: Imaginary part of "casinh":
double: 3
-float: 6
+float: 1
idouble: 3
-ifloat: 6
+ifloat: 1
ildouble: 3
ldouble: 3
+Function: Real part of "catan":
+float: 1
+ifloat: 1
+
Function: Imaginary part of "catan":
double: 1
float: 1
@@ -1185,10 +4732,16 @@ ldouble: 1
Function: Real part of "catanh":
double: 4
+float: 1
idouble: 4
+ifloat: 1
ildouble: 4
ldouble: 4
+Function: Imaginary part of "catanh":
+float: 1
+ifloat: 1
+
Function: "cbrt":
double: 1
idouble: 1
@@ -1204,7 +4757,9 @@ ildouble: 1
ldouble: 1
Function: Imaginary part of "ccos":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Function: Real part of "ccosh":
@@ -1216,29 +4771,39 @@ ildouble: 1
ldouble: 1
Function: Imaginary part of "ccosh":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Function: "ceil":
-ildouble: 1
-ldouble: 1
-
Function: Real part of "cexp":
+double: 2
float: 1
+idouble: 2
ifloat: 1
Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Function: Real part of "clog":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Function: Real part of "clog10":
+Function: Imaginary part of "clog":
float: 1
ifloat: 1
+Function: Real part of "clog10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
Function: Imaginary part of "clog10":
double: 1
float: 1
@@ -1255,6 +4820,30 @@ ifloat: 1
ildouble: 2
ldouble: 2
+Function: "cos_downward":
+float: 1
+ifloat: 1
+
+Function: "cos_tonearest":
+float: 1
+ifloat: 1
+
+Function: "cos_towardzero":
+float: 1
+ifloat: 1
+
+Function: "cos_upward":
+float: 2
+ifloat: 2
+
+Function: "cosh_downward":
+float: 1
+ifloat: 1
+
+Function: "cosh_towardzero":
+float: 1
+ifloat: 1
+
Function: Real part of "cpow":
double: 2
float: 4
@@ -1271,6 +4860,12 @@ ifloat: 2
ildouble: 2
ldouble: 2
+Function: Real part of "csin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
Function: Real part of "csinh":
float: 1
ifloat: 1
@@ -1284,7 +4879,21 @@ ildouble: 1
ldouble: 1
Function: Real part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ctan":
+double: 1
float: 1
+idouble: 1
ifloat: 1
Function: Imaginary part of "ctan":
@@ -1293,16 +4902,94 @@ idouble: 1
ildouble: 1
ldouble: 1
-Function: Real part of "ctanh":
+Function: Real part of "ctan_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "ctan_downward":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctan_towardzero":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan_towardzero":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctan_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "ctan_upward":
double: 1
float: 2
idouble: 1
ifloat: 2
+
+Function: Real part of "ctanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "ctanh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "ctanh_downward":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Real part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctanh_towardzero":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh_towardzero":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctanh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ctanh_upward":
+double: 2
float: 1
+idouble: 2
ifloat: 1
Function: "erf":
@@ -1313,7 +5000,9 @@ ldouble: 1
Function: "erfc":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -1325,6 +5014,18 @@ ifloat: 2
ildouble: 6
ldouble: 6
+Function: "exp_downward":
+float: 1
+ifloat: 1
+
+Function: "exp_towardzero":
+float: 1
+ifloat: 1
+
+Function: "exp_upward":
+float: 1
+ifloat: 1
+
Function: "expm1":
double: 1
float: 1
@@ -1333,10 +5034,6 @@ ifloat: 1
ildouble: 1
ldouble: 1
-Function: "floor":
-ildouble: 1
-ldouble: 1
-
Function: "hypot":
float: 1
ifloat: 1
@@ -1359,9 +5056,9 @@ ldouble: 1
Function: "jn":
double: 4
-float: 4
+float: 5
idouble: 4
-ifloat: 4
+ifloat: 5
ildouble: 4
ldouble: 4
@@ -1385,21 +5082,37 @@ Function: "log1p":
float: 1
ifloat: 1
-Function: "rint_downward":
-ildouble: 1
-ldouble: 1
+Function: "pow":
+float: 1
+ifloat: 1
-Function: "rint_towardzero":
-ildouble: 1
-ldouble: 1
+Function: "pow_downward":
+float: 1
+ifloat: 1
-Function: "rint_upward":
-ildouble: 1
-ldouble: 1
+Function: "pow_towardzero":
+float: 1
+ifloat: 1
-Function: "round":
-ildouble: 1
-ldouble: 1
+Function: "pow_upward":
+float: 1
+ifloat: 1
+
+Function: "sin_downward":
+float: 1
+ifloat: 1
+
+Function: "sin_tonearest":
+float: 1
+ifloat: 1
+
+Function: "sin_towardzero":
+float: 1
+ifloat: 1
+
+Function: "sin_upward":
+float: 2
+ifloat: 2
Function: "sincos":
double: 1
@@ -1409,21 +5122,37 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "sinh_downward":
+float: 1
+ifloat: 1
+
+Function: "sinh_towardzero":
+float: 1
+ifloat: 1
+
Function: "tan":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Function: "tgamma":
-double: 1
+Function: "tan_downward":
float: 1
-idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Function: "trunc":
+Function: "tan_towardzero":
+float: 1
+ifloat: 1
+
+Function: "tan_upward":
+float: 1
+ifloat: 1
+
+Function: "tgamma":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
ildouble: 1
ldouble: 1
diff --git a/ports/sysdeps/hppa/math_private.h b/ports/sysdeps/hppa/math_private.h
new file mode 100644
index 0000000000..03b0711e06
--- /dev/null
+++ b/ports/sysdeps/hppa/math_private.h
@@ -0,0 +1,27 @@
+/* Internal math stuff. HPPA 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/>. */
+
+#ifndef _MATH_PRIVATE_H
+
+/* One of the few architectures where the meaning of the quiet/signaling bit is
+ inverse to IEEE 754-2008 (as well as common practice for IEEE 754-1985). */
+#define HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+
+#include_next <math_private.h>
+
+#endif
diff --git a/ports/sysdeps/ia64/fpu/libm-test-ulps b/ports/sysdeps/ia64/fpu/libm-test-ulps
index c5a2a08549..5036dd68c6 100644
--- a/ports/sysdeps/ia64/fpu/libm-test-ulps
+++ b/ports/sysdeps/ia64/fpu/libm-test-ulps
@@ -1,237 +1,237 @@
# Begin of automatic generation
# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-2 - 3 i)":
double: 1
float: 7
idouble: 1
ifloat: 7
ildouble: 7
ldouble: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 5
ldouble: 5
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
ildouble: 1
ldouble: 1
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0.80190127184058835) == 0.69534156199418473":
+Test "cos (0.80190127184058835)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos (pi/2) == 0":
+Test "cos (pi/2)":
double: 1
float: 1
idouble: 1
@@ -240,50 +240,50 @@ ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 6
ldouble: 6
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 3
ldouble: 3
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
ildouble: 4
ldouble: 4
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 3
idouble: 2
@@ -292,119 +292,119 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Imaginary part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 24
ldouble: 24
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
+Test "erfc (1.25)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
@@ -413,172 +413,172 @@ ildouble: 3
ldouble: 3
# expm1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
ildouble: 1
ldouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
float: 4
ifloat: 4
ildouble: 1
ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
idouble: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
@@ -587,15 +587,15 @@ ildouble: 1
ldouble: 1
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -604,34 +604,34 @@ ildouble: 1
ldouble: 1
# log
-Test "log (e) == 1":
+Test "log (e)":
float: 1
ifloat: 1
# log10
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sincos
-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res":
+Test "sincos (0.80190127184058835) extra output 2":
double: 1
idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+ildouble: 1
+ldouble: 1
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (pi/2) extra output 2":
double: 1
float: 1
idouble: 1
@@ -640,52 +640,52 @@ ildouble: 1
ldouble: 1
# tan
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 1
idouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
ildouble: 1
ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
+Test "y0 (2.0)":
double: 1
idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -694,131 +694,131 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323";
+Test "y1 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (10.0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
+Test "yn (0, 2.0)":
double: 1
idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
+Test "yn (1, 1.5)":
float: 1
-idouble: 3
ifloat: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323";
+ildouble: 1
+ldouble: 1
+Test "yn (1, 10.0)":
+double: 3
float: 1
+idouble: 3
ifloat: 1
-ldouble: 1
-ildouble: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
float: 2
ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps
index 8608c0d390..05be5a92b6 100644
--- a/ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+++ b/ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps
@@ -1,594 +1,594 @@
# Begin of automatic generation
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacosh
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
# clog
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
ifloat: 2
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
# ctan
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
float: 4
ifloat: 4
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps b/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
index 59b057693f..6af0bbd6f8 100644
--- a/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
+++ b/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
@@ -1,988 +1,4562 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
double: 1
idouble: 1
-Test "acos_upward (-0.5) == M_PI_6l*4.0":
+Test "acos_upward (-0.5)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
double: 1
idouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
double: 1
idouble: 1
-Test "acos_upward (0.5) == M_PI_6l*2.0":
+Test "acos_upward (0.5)":
ildouble: 1
ldouble: 1
# acosh
-Test "acosh (7) == 2.63391579384963341725009269461593689":
+Test "acosh (7)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
double: 1
idouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_upward
-Test "asin_upward (-0.5) == -pi/6":
+Test "asin_upward (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_upward (0.5) == pi/6":
+Test "asin_upward (0.5)":
ildouble: 1
ldouble: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
double: 1
idouble: 1
# asinh
-Test "asinh (0.75) == 0.693147180559945309417232121458176568":
+Test "asinh (0.75)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (0.390625, .00029) == 1.57005392693128974780151246612928941":
+Test "atan2 (0.390625, .00029)":
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
ildouble: 1
ldouble: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.25 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
+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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+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 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 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 "Imaginary part of: cacos (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.25 - 1.0 i)":
+ildouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.75 + 1.25 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
+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
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 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: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: cacos (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+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
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (1.0 - 0x1.fp-30 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 "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Real part of: cacosh (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
double: 1
idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-2 - 3 i)":
double: 1
float: 7
idouble: 1
ifloat: 7
ildouble: 6
ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-52 i)":
double: 1
idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 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
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
+float: 1
+ifloat: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 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 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: casin (-0x0.ffffffp0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Real part of: casin (-0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+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 (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
+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 "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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 "Imaginary part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 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 "Imaginary part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 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 "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 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
+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 "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 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
+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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 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 (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (0x0.ffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+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 "Imaginary part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 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 "Imaginary part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 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 "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 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
+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 "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 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
+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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 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)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: casin (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Real part of: casin (1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 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 (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (+0 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (+0 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 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
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
+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
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 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.000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 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)":
+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-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Imaginary part of: casinh (-1.0 + 0.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "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
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Imaginary part of: casinh (-1.0 - 0.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "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
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+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 (-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
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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 (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-2 - 3 i)":
double: 6
float: 19
idouble: 6
ifloat: 19
ildouble: 5
ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 13
float: 6
idouble: 13
ifloat: 6
ildouble: 6
ldouble: 6
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 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: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 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.000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 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)":
+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-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (1.0 + +0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "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 "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (1.0 - 0.5 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+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 "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+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
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casinh (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 (1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Real part of: catan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cbrt
-Test "cbrt (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
ildouble: 1
ldouble: 1
# ccos
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Real part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Real part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Real part of: cexp (-95 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (11356.5625 + 0.75 i) == 9.052188470850960144814815984311663764287e4931 + 8.432986734191301036267148978260970230200e4931 i":
+Test "Imaginary part of: cexp (11356.5625 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Imaginary part of: clog (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -5.421010862427522170184200798202494495630e-20 + 3.548665303440282824232502561095699343814e-4516 i":
+Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-100 i) == 8.237022655933121125560939513260027133767e-5 + 8.974094312218060110948251664314290484113e-31 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i) == 11356.60974243783798653123798337822335902 + 0.4764674194737066993385333770295162295856 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x1.fp+16383 + 0x1p+16383 i) == 11356.60974243783798653123798337822335902 + 0.4764674194737066993385333770295162295856 i":
+Test "Imaginary part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i) == 1.1723955140027907954461000991619077811832e-12 + 1.5622968405332756349813737986164832897108 i":
+Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 4.4469229730850767799109418892826021157328e-20 + 1.2046235979300843056806465045930070146351 i":
+Test "Imaginary part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -2.3362950222592964220878638677292132852104e-37 + 1.1856121127236268105413184264288408265852 i":
+Test "Imaginary part of: clog (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Imaginary part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i) == -1.0480505352462576151523512837107080269981e-13 + 0.8858771987699967480545613322309315260313 i":
+Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i) == -6.2122796286154679676173624516405339768606e-30 + 1.4904138780720095276446375492434049214172 i":
+Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.234566p-40 - 1.0 i) == 2.325249110681915353442924915876654139373e-25 - 6.821881769213700828789403802671540158935e-1 i":
+Test "Imaginary part of: clog10 (-0x1.234566p-40 - 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -2.354315103889861110220423157644627849164e-20 + 1.541165759405643564697852372112893034397e-4516 i":
+Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i) == -4948.884673709346821106688037612752099609 + 0.2013595981366865710389502301937289472543 i":
+Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i) == -1.0893543813872082317104059174982092534059e-30 + 0.5954257879188711495921161433751775633232 i":
+Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i) == -4.3074341162203896332989394770760901408798e-39 + 0.5709443672155660428417571212549720987784 i":
+Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -4.2289432987513243393180377141513840878196e-30 + 0.4252020027092323591068799049905597805296 i":
+Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -4.2289432987513243393180377141513840878196e-30 + 0.4252020027092323591068799049905597805296 i":
+Test "Imaginary part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xa1f2c1p-24 + 0xc643aep-24 i) == -4.5516256421319921959681423447271490869664e-14 + 0.3847315790697197749315054516562206543710 i":
+Test "Imaginary part of: clog10 (0xa1f2c1p-24 + 0xc643aep-24 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i) == -2.6979587627476803379953050733225113494503e-30 + 0.6472785229986997177606324374555347813105 i":
+Test "Imaginary part of: clog10 (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos (pi/2) == 0":
+Test "cos (pi/2)":
double: 1
float: 1
idouble: 1
@@ -991,36 +4565,36 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
double: 1
idouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
ildouble: 1
ldouble: 1
-Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_downward (9)":
double: 1
float: 1
idouble: 1
@@ -1029,194 +4603,194 @@ ildouble: 1
ldouble: 1
# cos_towardzero
-Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_towardzero (1)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_towardzero (4)":
double: 1
idouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
float: 1
ifloat: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
ildouble: 1
ldouble: 1
-Test "cos_upward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_upward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
double: 1
idouble: 1
-Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_upward (5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
double: 1
idouble: 1
-Test "cos_upward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_upward (8)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
double: 1
idouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
float: 3
ifloat: 3
ildouble: 9
ldouble: 9
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 15
ldouble: 15
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 5
ldouble: 5
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 6
ifloat: 6
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Real part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 3
idouble: 2
@@ -1225,393 +4799,393 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Real part of: csin (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Imaginary part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i) == 3.453664695497464982856905711457966660085e-162 + 1.430554756764195530630723976279903095110e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i) == 2.442109726130830256743814843868934877597e-162 + 1.011554969366634726113090867589031782487e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i) == 8.225610928685557596194006925540350401606e-23 + 3.407159605465907500737319471202779419102e-23 i":
+Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i) == 4.112805464342778798097003462770175200803e-23 + 1.703579802732953750368659735601389709551e-23 i":
+Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 5680 i) == 4.725214596136812019616700920476949798307e-4934 + 1.0 i":
+Test "Real part of: ctan (1 + 5680 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
idouble: 1
ildouble: 8
ldouble: 8
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (5680 + 1 i) == 1.0 + 4.725214596136812019616700920476949798307e-4934 i":
+Test "Imaginary part of: ctanh (5680 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
idouble: 1
ildouble: 8
ldouble: 8
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
+Test "erfc (1.25)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
float: 1
ifloat: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (1) == e":
+Test "exp_downward (1)":
ildouble: 1
ldouble: 1
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
double: 1
float: 1
idouble: 1
@@ -1620,17 +5194,17 @@ ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (1) == e":
+Test "exp_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
double: 1
float: 1
idouble: 1
@@ -1639,408 +5213,417 @@ ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
# expm1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
ildouble: 1
ldouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "gamma (0.5) == log(sqrt(pi))":
+Test "gamma (0.5)":
ildouble: 1
ldouble: 1
-Test "gamma (3) == M_LN2l":
+Test "gamma (3)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
-Test "j0 (1.5) == 0.511827671735918128749051744283411720":
+Test "j0 (0x1p1023)":
+double: 1
+idouble: 1
+Test "j0 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "j0 (1.5)":
float: 1
ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 1
idouble: 1
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
float: 1
ifloat: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "j1 (1.0)":
float: 1
ifloat: 1
-Test "j1 (1.5) == 0.557936507910099641990121213156089400":
+Test "j1 (1.5)":
float: 1
ifloat: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
float: 1
ifloat: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 1.5) == 0.511827671735918128749051744283411720":
+Test "jn (0, 1.5)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 1
idouble: 1
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
float: 1
ifloat: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
float: 1
ifloat: 1
-Test "jn (1, 1.5) == 0.557936507910099641990121213156089400":
+Test "jn (1, 1.5)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
float: 1
ifloat: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
float: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
float: 3
ifloat: 3
ildouble: 1
ldouble: 1
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+Test "jn (3, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+Test "jn (3, 1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
float: 4
ifloat: 4
ildouble: 1
ldouble: 1
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
float: 5
ifloat: 5
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
float: 4
ifloat: 4
ildouble: 2
ldouble: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
float: 3
ifloat: 3
ildouble: 2
ldouble: 2
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.5) == log(sqrt(pi))":
+Test "lgamma (0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "lgamma (3) == M_LN2l":
+Test "lgamma (3)":
ildouble: 1
ldouble: 1
# log
-Test "log (0.75) == -0.287682072451780927439219005993827432":
+Test "log (0.75)":
ildouble: 1
ldouble: 1
-Test "log (2) == M_LN2l":
+Test "log (2)":
ildouble: 1
ldouble: 1
-Test "log (e) == 1":
+Test "log (e)":
float: 1
ifloat: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
ildouble: 2
ldouble: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
ildouble: 1
ldouble: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0.75, 1.25) == 0.697953644326574699205914060237425566":
+Test "pow (0.75, 1.25)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1p64, 0.125) == 256":
+Test "pow (0x1p64, 0.125)":
ildouble: 1
ldouble: 1
-Test "pow (256, 8) == 0x1p64":
+Test "pow (256, 8)":
float: 1
ifloat: 1
ildouble: 7
ldouble: 7
# pow_downward
-Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_downward (1.0625, 1.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_towardzero
-Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_towardzero (1.0625, 1.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_upward (1.5, 1.03125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_downward (1)":
ildouble: 1
ldouble: 1
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
double: 1
idouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_downward (7)":
ildouble: 1
ldouble: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
double: 1
float: 1
idouble: 1
@@ -2049,33 +5632,33 @@ ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
double: 1
idouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_towardzero (7)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
double: 1
float: 1
idouble: 1
@@ -2084,55 +5667,55 @@ ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
float: 1
ifloat: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_upward (5)":
float: 1
ifloat: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_upward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_upward (8)":
float: 1
ifloat: 1
# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (pi/2) extra output 2":
double: 1
float: 1
idouble: 1
@@ -2141,417 +5724,426 @@ ildouble: 1
ldouble: 1
# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
+Test "sinh (0.75)":
ildouble: 1
ldouble: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_upward
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
double: 1
idouble: 1
# tan
-Test "tan (0.75) == 0.931596459944072461165202756573936428":
+Test "tan (0.75)":
ildouble: 1
ldouble: 1
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 1
idouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_downward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_downward (3)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_downward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_downward (5)":
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_downward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_downward (7)":
double: 1
idouble: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_towardzero (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_towardzero (7)":
double: 1
idouble: 1
-Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_towardzero (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
ildouble: 1
ldouble: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
double: 1
idouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
double: 1
idouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_upward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_upward (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
+Test "tgamma (4)":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0.75) == -0.137172769385772397522814379396581855":
+Test "y0 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-100) == -4.420092432563900590456563035154802121284e+1":
+Test "y0 (0x1p-100)":
float: 1
ifloat: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
float: 1
ifloat: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
double: 1
idouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-90) == -3.9788212322585974036636501709188067393195e+1":
+Test "y0 (0x1p-90)":
float: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "y0 (1.0)":
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
+Test "y0 (2.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
float: 1
ifloat: 1
-Test "y1 (1.0) == -0.781212821300288716547150000047964821":
+Test "y1 (0x1p1023)":
+double: 1
+idouble: 1
+Test "y1 (0x1p16382)":
+ildouble: 1
+ldouble: 1
+Test "y1 (1.0)":
double: 1
idouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
float: 1
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
+Test "yn (0, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
+Test "yn (0, 2.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
float: 1
ifloat: 1
-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
+Test "yn (1, 1.0)":
double: 1
idouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
float: 1
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
float: 1
ifloat: 1
@@ -2638,17 +6230,17 @@ ldouble: 2
Function: Real part of "cacosh":
double: 1
-float: 7
+float: 1
idouble: 1
-ifloat: 7
+ifloat: 1
ildouble: 6
ldouble: 6
Function: Imaginary part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 2
ldouble: 2
diff --git a/ports/sysdeps/microblaze/Implies b/ports/sysdeps/microblaze/Implies
new file mode 100644
index 0000000000..73c766c52e
--- /dev/null
+++ b/ports/sysdeps/microblaze/Implies
@@ -0,0 +1,4 @@
+wordsize-32
+# MicroBlaze uses IEEE 754 floating point.
+ieee754/flt-32
+ieee754/dbl-64
diff --git a/ports/sysdeps/microblaze/Makefile b/ports/sysdeps/microblaze/Makefile
new file mode 100644
index 0000000000..cc82a7482b
--- /dev/null
+++ b/ports/sysdeps/microblaze/Makefile
@@ -0,0 +1,26 @@
+ifeq ($(subdir),elf)
+CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
+endif
+
+ifeq ($(subdir),gmon)
+sysdep_routines += _mcount
+endif
+
+ifeq ($(subdir),resource)
+sysdep_routines += backtrace_linux
+endif
+
+$(objpfx)libm.so: $(elfobjdir)/ld.so
+$(objpfx)libcrypt.so: $(elfobjdir)/ld.so
+$(objpfx)libresolv.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_dns.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_files.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_db.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_nis.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_nisplus.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_hesiod.so: $(elfobjdir)/ld.so
+$(objpfx)libnss_compat.so: $(elfobjdir)/ld.so
+$(objpfx)libanl.so: $(elfobjdir)/ld.so
+$(objpfx)libnsl.so: $(elfobjdir)/ld.so
+$(objpfx)libcidn.so: $(elfobjdir)/ld.so
+$(objpfx)libutil.so: $(elfobjdir)/ld.so
diff --git a/ports/sysdeps/microblaze/__longjmp.S b/ports/sysdeps/microblaze/__longjmp.S
new file mode 100644
index 0000000000..a49c33f1cc
--- /dev/null
+++ b/ports/sysdeps/microblaze/__longjmp.S
@@ -0,0 +1,55 @@
+/* Copyright (C) 1997-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 <sysdep.h>
+
+/* Jump to the position specified by ENV, causing the
+ setjmp call there to return VAL, or 1 if VAL is 0. */
+
+/* void __longjmp (__jmp_buf env, int val) */
+
+ENTRY(__longjmp)
+ lwi r1,r5,0
+ lwi r2,r5,4
+ lwi r13,r5,8
+ lwi r14,r5,12
+ lwi r15,r5,16
+ lwi r16,r5,20
+ lwi r17,r5,24
+ lwi r18,r5,28
+ lwi r19,r5,32
+ lwi r20,r5,36
+ lwi r21,r5,40
+ lwi r22,r5,44
+ lwi r23,r5,48
+ lwi r24,r5,52
+ lwi r25,r5,56
+ lwi r26,r5,60
+ lwi r27,r5,64
+ lwi r28,r5,68
+ lwi r29,r5,72
+ lwi r30,r5,76
+ lwi r31,r5,80
+ addk r3,r6,r0
+ beqi r3,L(return_1)
+ rtsd r15,8
+ nop
+L(return_1):
+ rtsd r15,8
+ addik r3,r0,1 /* delay slot. */
+END(__longjmp)
diff --git a/ports/sysdeps/microblaze/_mcount.S b/ports/sysdeps/microblaze/_mcount.S
new file mode 100644
index 0000000000..7d4f40aece
--- /dev/null
+++ b/ports/sysdeps/microblaze/_mcount.S
@@ -0,0 +1,91 @@
+/* Copyright (C) 1997-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/>. */
+
+ .global _mcount
+ .type _mcount, @function
+_mcount:
+ # Save regs.
+ addik r1, r1,-4 * 24
+ swi r31, r1, 4 * 23
+ swi r30, r1, 4 * 22
+ swi r29, r1, 4 * 21
+ swi r28, r1, 4 * 20
+ swi r27, r1, 4 * 19
+ swi r26, r1, 4 * 18
+ swi r25, r1, 4 * 17
+ swi r24, r1, 4 * 16
+ swi r23, r1, 4 * 15
+ swi r22, r1, 4 * 14
+ swi r21, r1, 4 * 13
+ swi r20, r1, 4 * 12
+ swi r19, r1, 4 * 11
+ swi r15, r1, 4 * 10
+ swi r12, r1, 4 * 9
+ swi r11, r1, 4 * 8
+ swi r10, r1, 4 * 7
+ swi r8, r1, 4 * 6
+ swi r7, r1, 4 * 5
+ swi r6, r1, 4 * 4
+ swi r5, r1, 4 * 3
+ swi r4, r1, 4 * 2
+ swi r3, r1, 4 * 1
+ swi r2, r1, 4 * 0
+
+#ifdef SHARED
+ mfs r20,rpc
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8
+ addk r6, r0, r15 # callee is in r15.
+ brlid r15, __mcount_internal@PLT
+ lwi r5, r1, 4 * 24 # caller is on the stack.
+#else
+ # Pass from/to in r5 and r6.
+ addk r6, r0, r15 # callee is in r15.
+ bralid r15, __mcount_internal
+ lwi r5, r1, 4 * 24 # caller is on the stack.
+#endif
+
+ # Reload regs
+ lwi r31, r1, 4 * 23
+ lwi r30, r1, 4 * 22
+ lwi r29, r1, 4 * 21
+ lwi r28, r1, 4 * 20
+ lwi r27, r1, 4 * 19
+ lwi r26, r1, 4 * 18
+ lwi r25, r1, 4 * 17
+ lwi r24, r1, 4 * 16
+ lwi r23, r1, 4 * 15
+ lwi r22, r1, 4 * 14
+ lwi r21, r1, 4 * 13
+ lwi r20, r1, 4 * 12
+ lwi r19, r1, 4 * 11
+ lwi r15, r1, 4 * 10
+ lwi r12, r1, 4 * 9
+ lwi r11, r1, 4 * 8
+ lwi r10, r1, 4 * 7
+ lwi r8, r1, 4 * 6
+ lwi r7, r1, 4 * 5
+ lwi r6, r1, 4 * 4
+ lwi r5, r1, 4 * 3
+ lwi r4, r1, 4 * 2
+ lwi r3, r1, 4 * 1
+ lwi r2, r1, 4 * 0
+
+ rtsd r15, 8
+ addik r1, r1, 4 * 24
+
+ .size _mcount, . - _mcount
diff --git a/ports/sysdeps/microblaze/abort-instr.h b/ports/sysdeps/microblaze/abort-instr.h
new file mode 100644
index 0000000000..38469d490a
--- /dev/null
+++ b/ports/sysdeps/microblaze/abort-instr.h
@@ -0,0 +1,2 @@
+/* An instruction which should crash any program is `illegal'. */
+#define ABORT_INSTRUCTION asm ("brki r0, -1")
diff --git a/ports/sysdeps/microblaze/asm-syntax.h b/ports/sysdeps/microblaze/asm-syntax.h
new file mode 100644
index 0000000000..fc8fbcd9cd
--- /dev/null
+++ b/ports/sysdeps/microblaze/asm-syntax.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1997-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/>. */
+
+#undef ALIGN
+#define ALIGN(log) .align 1<<log
+
+#define R_(r) %##r
+#define R(r) R_(r)
+#define L(label) .##label
diff --git a/ports/sysdeps/microblaze/backtrace.c b/ports/sysdeps/microblaze/backtrace.c
new file mode 100644
index 0000000000..97a5fdbea4
--- /dev/null
+++ b/ports/sysdeps/microblaze/backtrace.c
@@ -0,0 +1,139 @@
+/* Copyright (C) 2005-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 <stdio.h>
+#include <string.h>
+#include <sysdep.h>
+#include <signal.h>
+#include <execinfo.h>
+
+extern int
+_identify_sighandler (unsigned long fp, unsigned long pc,
+ unsigned long *pprev_fp, unsigned long *pprev_pc,
+ unsigned long *retaddr);
+
+inline long
+get_frame_size (unsigned long instr)
+{
+ return abs ((short signed) (instr & 0xFFFF));
+}
+
+static unsigned long *
+find_frame_creation (unsigned long *pc)
+{
+ int i;
+
+ /* NOTE: Distance to search is arbitrary.
+ 250 works well for most things,
+ 750 picks up things like tcp_recvmsg,
+ 1000 needed for fat_fill_super. */
+ for (i = 0; i < 1000; i++, pc--)
+ {
+ unsigned long instr;
+ unsigned long frame_size;
+
+ instr = *pc;
+
+ /* Is the instruction of the form
+ addik r1, r1, foo ? */
+ if ((instr & 0xFFFF0000) != 0x30210000)
+ continue;
+
+ frame_size = get_frame_size (instr);
+
+ if ((frame_size < 8) || (frame_size & 3))
+ return NULL;
+
+ return pc;
+ }
+ return NULL;
+}
+
+static int
+lookup_prev_stack_frame (unsigned long fp, unsigned long pc,
+ unsigned long *pprev_fp, unsigned long *pprev_pc,
+ unsigned long *retaddr)
+{
+ unsigned long *prologue = NULL;
+
+ int is_signalhandler = _identify_sighandler (fp, pc, pprev_fp,
+ pprev_pc, retaddr);
+
+ if (!is_signalhandler)
+ {
+ prologue = find_frame_creation ((unsigned long *) pc);
+
+ if (prologue)
+ {
+ long frame_size = get_frame_size (*prologue);
+ *pprev_fp = fp + frame_size;
+ if (*retaddr != 0)
+ *pprev_pc = *retaddr;
+ else
+ *pprev_pc = *(unsigned long *) fp;
+
+ *retaddr = 0;
+ if (!*pprev_pc || (*pprev_pc & 3))
+ prologue=0;
+ }
+ else
+ {
+ *pprev_pc = 0;
+ *pprev_fp = fp;
+ *retaddr = 0;
+ }
+ }
+ return (!*pprev_pc || (*pprev_pc & 3)) ? -1 : 0;
+}
+
+int
+__backtrace (void **array, int size)
+{
+ unsigned long pc, fp;
+ unsigned long ppc, pfp;
+ /* Return address(r15) is required in the signal handler case, since the
+ return address of the function which causes the signal may not be
+ recorded in the stack. */
+ unsigned long retaddr;
+
+ int count;
+ int rc = 0;
+
+ __asm__ __volatile__ ("mfs %0, rpc"
+ : "=r"(pc));
+
+ __asm__ __volatile__ ("add %0, r1, r0"
+ : "=r"(fp));
+
+ array[0] = (void *) pc;
+ retaddr = 0;
+ for (count = 1; count < size; count++)
+ {
+ rc = lookup_prev_stack_frame (fp, pc, &pfp, &ppc, &retaddr);
+
+ fp = pfp;
+ pc = ppc;
+ array[count] = (void *) pc;
+ if (rc)
+ return count;
+ }
+ return count;
+}
+
+weak_alias (__backtrace, backtrace)
+libc_hidden_def (__backtrace)
diff --git a/ports/sysdeps/microblaze/backtrace_linux.c b/ports/sysdeps/microblaze/backtrace_linux.c
new file mode 100644
index 0000000000..55fa061dcd
--- /dev/null
+++ b/ports/sysdeps/microblaze/backtrace_linux.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2005-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 <stddef.h>
+#include <asm/sigcontext.h>
+#include <linux/signal.h>
+#include <asm-generic/ucontext.h>
+#include <asm/unistd.h>
+
+int
+_identify_sighandler (unsigned long fp, unsigned long pc,
+ unsigned long *pprev_fp, unsigned long *pprev_pc,
+ unsigned long *retaddr)
+{
+ unsigned long *tramp = 0;
+ struct ucontext *uc;
+
+ if (*retaddr == 0)
+ {
+ /* Kernel inserts the tramp between the signal handler frame and the
+ caller frame in signal handling. */
+ tramp = (unsigned long *) pc;
+ tramp += 2;
+ if ((*tramp == (0x31800000 | __NR_rt_sigreturn))
+ && (*(tramp+1) == 0xb9cc0008))
+ {
+ /* Signal handler function argument are:
+ int sig_num, siginfo_t * info, void * ucontext
+ therefore ucontext is the 3rd argument. */
+ unsigned long ucptr = ((unsigned long) tramp
+ - sizeof (struct ucontext));
+ uc = (struct ucontext *) ucptr;
+ *pprev_pc = uc->uc_mcontext.regs.pc;
+ /* Need to record the return address since the return address of the
+ function which causes this signal may not be recorded in the
+ stack. */
+ *pprev_fp = uc->uc_mcontext.regs.r1;
+ *retaddr = uc->uc_mcontext.regs.r15;
+ /* It is a signal handler. */
+ return 1;
+ }
+ }
+ return 0;
+}
diff --git a/ports/sysdeps/microblaze/bits/atomic.h b/ports/sysdeps/microblaze/bits/atomic.h
new file mode 100755
index 0000000000..2daaa7e9c2
--- /dev/null
+++ b/ports/sysdeps/microblaze/bits/atomic.h
@@ -0,0 +1,269 @@
+/* Copyright (C) 2003-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 <stdint.h>
+#include <sysdep.h>
+
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+
+/* Microblaze does not have byte and halfword forms of load and reserve and
+ store conditional. So for microblaze we stub out the 8- and 16-bit forms. */
+#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_bool_8_rel(mem, newval, oldval) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_bool_16_rel(mem, newval, oldval) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ \
+ __typeof (*(mem)) __tmp; \
+ __typeof (mem) __memp = (mem); \
+ int test; \
+ __asm __volatile ( \
+ " addc r0, r0, r0;" \
+ "1: lwx %0, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ " cmp %1, %0, %4;" \
+ " bnei %1, 2f;" \
+ " swx %5, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ "2:" \
+ : "=&r" (__tmp), \
+ "=&r" (test), \
+ "=m" (*__memp) \
+ : "r" (__memp), \
+ "r" (oldval), \
+ "r" (newval) \
+ : "cc", "memory"); \
+ __tmp; \
+ })
+
+#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*mem) == 4) \
+ __result = __arch_compare_and_exchange_val_32_acq (mem, newval, oldval); \
+ else if (sizeof (*mem) == 8) \
+ __result = __arch_compare_and_exchange_val_64_acq (mem, newval, oldval); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define atomic_compare_and_exchange_val_rel(mem, newval, oldval) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*mem) == 4) \
+ __result = __arch_compare_and_exchange_val_32_acq (mem, newval, oldval); \
+ else if (sizeof (*mem) == 8) \
+ __result = __arch_compare_and_exchange_val_64_acq (mem, newval, oldval); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define __arch_atomic_exchange_32_acq(mem, value) \
+ ({ \
+ __typeof (*(mem)) __tmp; \
+ __typeof (mem) __memp = (mem); \
+ int test; \
+ __asm __volatile ( \
+ " addc r0, r0, r0;" \
+ "1: lwx %0, %4, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ " swx %3, %4, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ : "=&r" (__tmp), \
+ "=&r" (test), \
+ "=m" (*__memp) \
+ : "r" (value), \
+ "r" (__memp) \
+ : "cc", "memory"); \
+ __tmp; \
+ })
+
+#define __arch_atomic_exchange_64_acq(mem, newval) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_exchange_acq(mem, value) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*mem) == 4) \
+ __result = __arch_atomic_exchange_32_acq (mem, value); \
+ else if (sizeof (*mem) == 8) \
+ __result = __arch_atomic_exchange_64_acq (mem, value); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define atomic_exchange_rel(mem, value) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*mem) == 4) \
+ __result = __arch_atomic_exchange_32_acq (mem, value); \
+ else if (sizeof (*mem) == 8) \
+ __result = __arch_atomic_exchange_64_acq (mem, value); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define __arch_atomic_exchange_and_add_32(mem, value) \
+ ({ \
+ __typeof (*(mem)) __tmp; \
+ __typeof (mem) __memp = (mem); \
+ int test; \
+ __asm __volatile ( \
+ " addc r0, r0, r0;" \
+ "1: lwx %0, %4, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ " add %1, %3, %0;" \
+ " swx %1, %4, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ : "=&r" (__tmp), \
+ "=&r" (test), \
+ "=m" (*__memp) \
+ : "r" (value), \
+ "r" (__memp) \
+ : "cc", "memory"); \
+ __tmp; \
+ })
+
+#define __arch_atomic_exchange_and_add_64(mem, value) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_exchange_and_add(mem, value) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*mem) == 4) \
+ __result = __arch_atomic_exchange_and_add_32 (mem, value); \
+ else if (sizeof (*mem) == 8) \
+ __result = __arch_atomic_exchange_and_add_64 (mem, value); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define __arch_atomic_increment_val_32(mem) \
+ ({ \
+ __typeof (*(mem)) __val; \
+ int test; \
+ __asm __volatile ( \
+ " addc r0, r0, r0;" \
+ "1: lwx %0, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ " addi %0, %0, 1;" \
+ " swx %0, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ : "=&r" (__val), \
+ "=&r" (test), \
+ "=m" (*mem) \
+ : "r" (mem), \
+ "m" (*mem) \
+ : "cc", "memory"); \
+ __val; \
+ })
+
+#define __arch_atomic_increment_val_64(mem) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_increment_val(mem) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*(mem)) == 4) \
+ __result = __arch_atomic_increment_val_32 (mem); \
+ else if (sizeof (*(mem)) == 8) \
+ __result = __arch_atomic_increment_val_64 (mem); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define atomic_increment(mem) ({ atomic_increment_val (mem); (void) 0; })
+
+#define __arch_atomic_decrement_val_32(mem) \
+ ({ \
+ __typeof (*(mem)) __val; \
+ int test; \
+ __asm __volatile ( \
+ " addc r0, r0, r0;" \
+ "1: lwx %0, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ " rsubi %0, %0, 1;" \
+ " swx %0, %3, r0;" \
+ " addic %1, r0, 0;" \
+ " bnei %1, 1b;" \
+ : "=&r" (__val), \
+ "=&r" (test), \
+ "=m" (*mem) \
+ : "r" (mem), \
+ "m" (*mem) \
+ : "cc", "memory"); \
+ __val; \
+ })
+
+#define __arch_atomic_decrement_val_64(mem) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_decrement_val(mem) \
+ ({ \
+ __typeof (*(mem)) __result; \
+ if (sizeof (*(mem)) == 4) \
+ __result = __arch_atomic_decrement_val_32 (mem); \
+ else if (sizeof (*(mem)) == 8) \
+ __result = __arch_atomic_decrement_val_64 (mem); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#define atomic_decrement(mem) ({ atomic_decrement_val (mem); (void) 0; })
diff --git a/ports/sysdeps/microblaze/bits/endian.h b/ports/sysdeps/microblaze/bits/endian.h
new file mode 100644
index 0000000000..174c115b08
--- /dev/null
+++ b/ports/sysdeps/microblaze/bits/endian.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 1997-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 _ENDIAN_H
+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+#endif
+
+/* MicroBlaze can be either big or little endian. */
+#ifdef _BIG_ENDIAN
+# define __BYTE_ORDER __BIG_ENDIAN
+# define __FLOAT_WORD_ORDER __BIG_ENDIAN
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+# define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
+#endif
diff --git a/ports/sysdeps/microblaze/bits/fenv.h b/ports/sysdeps/microblaze/bits/fenv.h
new file mode 100644
index 0000000000..49dd8cd631
--- /dev/null
+++ b/ports/sysdeps/microblaze/bits/fenv.h
@@ -0,0 +1,42 @@
+/* Copyright (C) 2011-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 _FENV_H
+# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
+#endif
+
+/* MicroBlaze supports only round-to-nearest. The software
+ floating-point support also acts this way. */
+enum
+ {
+ __FE_UNDEFINED = 0,
+
+ FE_TONEAREST =
+#define FE_TONEAREST 0x1
+ FE_TONEAREST,
+ };
+
+#define FE_ALL_EXCEPT 0
+
+/* Type representing exception flags (if there were any). */
+typedef unsigned int fexcept_t;
+
+/* Type representing floating-point environment. */
+typedef unsigned int fenv_t;
+
+/* If the default argument is used we use this value. */
+#define FE_DFL_ENV ((const fenv_t *) -1l)
diff --git a/ports/sysdeps/microblaze/bits/link.h b/ports/sysdeps/microblaze/bits/link.h
new file mode 100644
index 0000000000..2b2842a8e8
--- /dev/null
+++ b/ports/sysdeps/microblaze/bits/link.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 2005-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 _LINK_H
+# error "Never include <bits/link.h> directly; use <link.h> instead."
+#endif
+
+/* Registers for entry into PLT on Microblaze. */
+typedef struct La_microblaze_regs
+{
+ uint32_t lr_r0;
+ uint32_t lr_r1;
+ uint32_t lr_sp;
+} La_microblaze_regs;
+
+/* Return values for calls from PLT on Microblaze. */
+typedef struct La_microblaze_retval
+{
+ uint32_t lrv_r3;
+} La_microblaze_retval;
+
+
+__BEGIN_DECLS
+
+extern Elf32_Addr la_microblaze_gnu_pltenter (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_microblaze_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+
+extern unsigned int la_microblaze_gnu_pltexit (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_microblaze_regs *__inregs,
+ La_microblaze_retval *__outregs,
+ const char *__symname);
+
+__END_DECLS
diff --git a/ports/sysdeps/microblaze/bits/setjmp.h b/ports/sysdeps/microblaze/bits/setjmp.h
new file mode 100644
index 0000000000..19f83db75f
--- /dev/null
+++ b/ports/sysdeps/microblaze/bits/setjmp.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-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/>. */
+
+/* Define the machine-dependent type `jmp_buf'. */
+
+#ifndef _BITS_SETJMP_H
+# define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+typedef struct
+ {
+ /* There are 21 4-byte registers that should be saved:
+ r1, r2, r13-r31. Actually, there seems no need to save
+ r14, r16, r17, r18 (return addresses for interrupt/exception/trap). */
+ int *__sp; /* dedicated name for r1. */
+ long int __gregs[20];
+ } __jmp_buf[1];
+
+#endif
diff --git a/ports/sysdeps/microblaze/bsd-_setjmp.S b/ports/sysdeps/microblaze/bsd-_setjmp.S
new file mode 100644
index 0000000000..22c8d20569
--- /dev/null
+++ b/ports/sysdeps/microblaze/bsd-_setjmp.S
@@ -0,0 +1,22 @@
+/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.
+ Copyright (C) 1997-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/>. */
+
+#define setjmp_name _setjmp
+#define SAVEMASK 0
+
+#include <setjmp.S>
diff --git a/ports/sysdeps/microblaze/bsd-setjmp.S b/ports/sysdeps/microblaze/bsd-setjmp.S
new file mode 100644
index 0000000000..e25b6cb7c7
--- /dev/null
+++ b/ports/sysdeps/microblaze/bsd-setjmp.S
@@ -0,0 +1,22 @@
+/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.
+ Copyright (C) 1995-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/>. */
+
+#define setjmp_name setjmp
+#define SAVEMASK 1
+
+#include <setjmp.S>
diff --git a/ports/sysdeps/microblaze/crti.S b/ports/sysdeps/microblaze/crti.S
new file mode 100644
index 0000000000..19199336d7
--- /dev/null
+++ b/ports/sysdeps/microblaze/crti.S
@@ -0,0 +1,88 @@
+/* Special .init and .fini section support for MicroBlaze.
+ Copyright (C) 2012-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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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/>. */
+
+/* crti.S puts a function prologue at the beginning of the .init and
+ .fini sections and defines global symbols for those addresses, so
+ they can be called as functions. The symbols _init and _fini are
+ magic and cause the linker to emit DT_INIT and DT_FINI. */
+
+#include <libc-symbols.h>
+#include <sysdep.h>
+
+#ifndef PREINIT_FUNCTION
+# define PREINIT_FUNCTION __gmon_start__
+#endif
+
+#ifndef PREINIT_FUNCTION_WEAK
+# define PREINIT_FUNCTION_WEAK 1
+#endif
+
+#if PREINIT_FUNCTION_WEAK
+ weak_extern (PREINIT_FUNCTION)
+#else
+ .hidden PREINIT_FUNCTION
+#endif
+
+ .section .init,"ax",@progbits
+ .align 2
+ .globl _init
+ .type _init, @function
+_init:
+ addik r1,r1,-32
+ swi r20,r1,28
+ mfs r20,rpc
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8
+ lwi r3,r20,PREINIT_FUNCTION@GOT
+#if PREINIT_FUNCTION_WEAK
+ beqid r3,$Lno_weak_fn:
+ swi r15,r1,0
+ brlid r15,PREINIT_FUNCTION@PLT
+$Lno_weak_fn:
+#else
+ swi r15,r1,0
+ brald r15,r3
+#endif
+ nop # Unfilled delay slot
+
+ .section .fini,"ax",@progbits
+ .align 2
+ .globl _fini
+ .type _fini, @function
+_fini:
+ addik r1,r1,-32
+ swi r20,r1,28
+ swi r15,r1,0
+ mfs r20,rpc
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8
diff --git a/ports/sysdeps/microblaze/crtn.S b/ports/sysdeps/microblaze/crtn.S
new file mode 100644
index 0000000000..83a8237f61
--- /dev/null
+++ b/ports/sysdeps/microblaze/crtn.S
@@ -0,0 +1,51 @@
+/* Special .init and .fini section support for MicroBlaze.
+ Copyright (C) 1995-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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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/>. */
+
+/* crtn.S puts function epilogues in the .init and .fini sections
+ corresponding to the prologues in crti.S. */
+
+#include <sysdep.h>
+
+ .section .init,"ax",@progbits
+ lwi r15,r1,0
+ lwi r20,r1,28
+ rtsd r15,8
+ addik r1,r1,32
+
+ .section .fini,"ax",@progbits
+ lwi r15,r1,0
+ lwi r20,r1,28
+ rtsd r15,8
+ addik r1,r1,32
diff --git a/ports/sysdeps/microblaze/dl-machine.h b/ports/sysdeps/microblaze/dl-machine.h
new file mode 100644
index 0000000000..7471bdd84f
--- /dev/null
+++ b/ports/sysdeps/microblaze/dl-machine.h
@@ -0,0 +1,299 @@
+/* Copyright (C) 1995-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 dl_machine_h
+#define dl_machine_h
+
+#define ELF_MACHINE_NAME "microblaze"
+
+#include <sys/param.h>
+#include <tls.h>
+
+/* Return nonzero iff ELF header is compatible with the running host. */
+static inline int
+elf_machine_matches_host (const Elf32_Ehdr *ehdr)
+{
+ return (ehdr->e_machine == EM_MICROBLAZE);
+}
+
+/* Return the link-time address of _DYNAMIC. Conveniently, this is the
+ first element of the GOT. This must be inlined in a function which
+ uses global data. */
+static inline Elf32_Addr
+elf_machine_dynamic (void)
+{
+ /* This produces a GOTOFF reloc that resolves to zero at link time, so in
+ fact just loads from the GOT register directly. By doing it without
+ an asm we can let the compiler choose any register. */
+
+ Elf32_Addr got_entry_0;
+ __asm__ __volatile__(
+ "lwi %0,r20,0"
+ :"=r"(got_entry_0)
+ );
+ return got_entry_0;
+}
+
+/* Return the run-time load address of the shared object. */
+static inline Elf32_Addr
+elf_machine_load_address (void)
+{
+ /* Compute the difference between the runtime address of _DYNAMIC as seen
+ by a GOTOFF reference, and the link-time address found in the special
+ unrelocated first GOT entry. */
+
+ Elf32_Addr dyn;
+ __asm__ __volatile__ (
+ "addik %0,r20,_DYNAMIC@GOTOFF"
+ : "=r"(dyn)
+ );
+ return dyn - elf_machine_dynamic ();
+}
+
+/* Set up the loaded object described by L so its unrelocated PLT
+ entries will jump to the on-demand fixup code in dl-runtime.c. */
+
+static inline int __attribute__ ((always_inline))
+elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+{
+ extern void _dl_runtime_resolve (Elf32_Word);
+ extern void _dl_runtime_profile (Elf32_Word);
+
+ return lazy;
+}
+
+/* The PLT uses Elf32_Rela relocs. */
+#define elf_machine_relplt elf_machine_rela
+
+/* Mask identifying addresses reserved for the user program,
+ where the dynamic linker should not map anything. */
+#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL
+
+/* Initial entry point code for the dynamic linker.
+ The C function `_dl_start' is the real entry point;
+ its return value is the user program's entry point. */
+
+#define RTLD_START asm ("\
+ .text\n\
+ .globl _start\n\
+ .type _start,@function\n\
+_start:\n\
+ addk r5,r0,r1\n\
+ addk r3,r0,r0\n\
+1:\n\
+ addik r5,r5,4\n\
+ lw r4,r5,r0\n\
+ bneid r4,1b\n\
+ addik r3,r3,1\n\
+ addik r3,r3,-1\n\
+ addk r5,r0,r1\n\
+ sw r3,r5,r0\n\
+ addik r1,r1,-24\n\
+ sw r15,r1,r0\n\
+ brlid r15,_dl_start\n\
+ nop\n\
+ /* FALLTHRU. */\n\
+\n\
+ .globl _dl_start_user\n\
+ .type _dl_start_user,@function\n\
+_dl_start_user:\n\
+ mfs r20,rpc\n\
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8\n\
+ lwi r4,r20,_dl_skip_args@GOTOFF\n\
+ lwi r5,r1,24\n\
+ rsubk r5,r4,r5\n\
+ addk r4,r4,r4\n\
+ addk r4,r4,r4\n\
+ addk r1,r1,r4\n\
+ swi r5,r1,24\n\
+ swi r3,r1,20\n\
+ addk r6,r5,r0\n\
+ addk r5,r5,r5\n\
+ addk r5,r5,r5\n\
+ addik r7,r1,28\n\
+ addk r8,r7,r5\n\
+ addik r8,r8,4\n\
+ lwi r5,r20,_rtld_local@GOTOFF\n\
+ brlid r15,_dl_init_internal\n\
+ nop\n\
+ lwi r5,r1,24\n\
+ lwi r3,r1,20\n\
+ addk r4,r5,r5\n\
+ addk r4,r4,r4\n\
+ addik r6,r1,28\n\
+ addk r7,r6,r4\n\
+ addik r7,r7,4\n\
+ addik r15,r20,_dl_fini@GOTOFF\n\
+ addik r15,r15,-8\n\
+ brad r3\n\
+ addik r1,r1,24\n\
+ nop\n\
+ .size _dl_start_user, . - _dl_start_user\n\
+ .previous");
+
+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
+ TLS variable, so undefined references should not be allowed to
+ define the value.
+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
+ of the main executable's symbols, as for a COPY reloc. */
+#ifndef RTLD_BOOTSTRAP
+# define elf_machine_type_class(type) \
+ (((type) == R_MICROBLAZE_JUMP_SLOT || \
+ (type) == R_MICROBLAZE_TLSDTPREL32 || \
+ (type) == R_MICROBLAZE_TLSDTPMOD32 || \
+ (type) == R_MICROBLAZE_TLSTPREL32) \
+ * ELF_RTYPE_CLASS_PLT \
+ | ((type) == R_MICROBLAZE_COPY) * ELF_RTYPE_CLASS_COPY)
+#else
+# define elf_machine_type_class(type) \
+ (((type) == R_MICROBLAZE_JUMP_SLOT) * ELF_RTYPE_CLASS_PLT \
+ | ((type) == R_MICROBLAZE_COPY) * ELF_RTYPE_CLASS_COPY)
+#endif
+
+/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
+#define ELF_MACHINE_JMP_SLOT R_MICROBLAZE_JUMP_SLOT
+
+/* The microblaze never uses Elf32_Rel relocations. */
+#define ELF_MACHINE_NO_REL 1
+
+static inline Elf32_Addr
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+ const Elf32_Rela *reloc,
+ Elf32_Addr *reloc_addr, Elf32_Addr value)
+{
+ return *reloc_addr = value;
+}
+
+/* Return the final value of a plt relocation. Ignore the addend. */
+static inline Elf32_Addr
+elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
+ Elf32_Addr value)
+{
+ return value;
+}
+
+#endif /* !dl_machine_h. */
+
+/* Names of the architecture-specific auditing callback functions. */
+#define ARCH_LA_PLTENTER microblaze_gnu_pltenter
+#define ARCH_LA_PLTEXIT microblaze_gnu_pltexit
+
+#ifdef RESOLVE_MAP
+
+/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+ MAP is the object containing the reloc. */
+
+/* Macro to put 32-bit relocation value into 2 words. */
+#define PUT_REL_64(rel_addr,val) \
+ do { \
+ ((unsigned short *)(rel_addr))[1] = (val) >> 16; \
+ ((unsigned short *)(rel_addr))[3] = (val) & 0xffff; \
+ } while (0)
+
+auto inline void __attribute__ ((always_inline))
+elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
+ const Elf32_Sym *sym, const struct r_found_version *version,
+ void *const reloc_addr_arg, int skip_ifunc)
+{
+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
+ const int r_type = ELF32_R_TYPE (reloc->r_info);
+
+ if (__builtin_expect (r_type == R_MICROBLAZE_64_PCREL, 0))
+ PUT_REL_64 (reloc_addr, map->l_addr + reloc->r_addend);
+ else if (r_type == R_MICROBLAZE_REL)
+ *reloc_addr = map->l_addr + reloc->r_addend;
+ else
+ {
+ const Elf32_Sym *const refsym = sym;
+ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
+ Elf32_Addr value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value;
+
+ value += reloc->r_addend;
+ if (r_type == R_MICROBLAZE_GLOB_DAT ||
+ r_type == R_MICROBLAZE_JUMP_SLOT ||
+ r_type == R_MICROBLAZE_32)
+ {
+ *reloc_addr = value;
+ }
+ else if (r_type == R_MICROBLAZE_COPY)
+ {
+ if (sym != NULL && (sym->st_size > refsym->st_size
+ || (sym->st_size < refsym->st_size && GLRO (dl_verbose))) )
+ {
+ const char *strtab;
+
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_error_printf ("\
+%s: Symbol `%s' has different size in shared object, consider re-linking\n",
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ }
+ memcpy (reloc_addr_arg, (void *) value,
+ MIN (sym->st_size, refsym->st_size));
+ }
+ else if (r_type == R_MICROBLAZE_NONE)
+ {
+ }
+#if !defined RTLD_BOOTSTRAP
+ else if (r_type == R_MICROBLAZE_TLSDTPMOD32)
+ {
+ if (sym_map != NULL)
+ *reloc_addr = sym_map->l_tls_modid;
+ }
+ else if (r_type == R_MICROBLAZE_TLSDTPREL32)
+ {
+ if (sym != NULL)
+ *reloc_addr = sym->st_value + reloc->r_addend;
+ }
+ else if (r_type == R_MICROBLAZE_TLSTPREL32)
+ {
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ *reloc_addr = sym->st_value + sym_map->l_tls_offset + reloc->r_addend;
+ }
+ }
+#endif
+ else
+ {
+ _dl_reloc_bad_type (map, r_type, 0);
+ }
+ }
+}
+
+auto inline void
+elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
+ void *const reloc_addr_arg)
+{
+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
+ PUT_REL_64 (reloc_addr, l_addr + reloc->r_addend);
+}
+
+auto inline void
+elf_machine_lazy_rel (struct link_map *map,
+ Elf32_Addr l_addr, const Elf32_Rela *reloc,
+ int skip_ifunc)
+{
+ Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
+ if (ELF32_R_TYPE (reloc->r_info) == R_MICROBLAZE_JUMP_SLOT)
+ *reloc_addr += l_addr;
+ else
+ _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1);
+}
+
+#endif /* RESOLVE_MAP. */
diff --git a/ports/sysdeps/microblaze/dl-tls.h b/ports/sysdeps/microblaze/dl-tls.h
new file mode 100644
index 0000000000..0e7f2e5d99
--- /dev/null
+++ b/ports/sysdeps/microblaze/dl-tls.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-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/>. */
+
+/* Type used for the representation of TLS information in the GOT. */
+typedef struct
+{
+ unsigned long int ti_module;
+ unsigned long int ti_offset;
+} tls_index;
+
+extern void *__tls_get_addr (tls_index *ti);
+
+/* Value used for dtv entries for which the allocation is delayed. */
+#define TLS_DTV_UNALLOCATED ((void *) -1l)
diff --git a/ports/sysdeps/microblaze/dl-trampoline.S b/ports/sysdeps/microblaze/dl-trampoline.S
new file mode 100644
index 0000000000..f10e22eff6
--- /dev/null
+++ b/ports/sysdeps/microblaze/dl-trampoline.S
@@ -0,0 +1,109 @@
+/* Copyright (C) 2005-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 <sysdep.h>
+#include <libc-symbols.h>
+
+#ifndef PROF
+
+ .text
+ .globl _dl_runtime_resolve
+ .type _dl_runtime_resolve, @function
+ .align 4
+_dl_runtime_resolve:
+ addik r1,r1,-40
+ swi r5,r1,12
+ swi r6,r1,16
+ swi r7,r1,20
+ swi r8,r1,24
+ swi r9,r1,28
+ swi r10,r1,32
+ swi r15,r1,0
+ addk r5,r0,r4
+ brlid r15, _dl_fixup
+ addk r6,r0,r3; /* delay slot. */
+ lwi r10,r1,32
+ lwi r9,r1,28
+ lwi r8,r1,24
+ lwi r7,r1,20
+ lwi r6,r1,16
+ lwi r5,r1,12
+ lwi r15,r1,0
+ brad r3
+ addik r1,r1,40; /* delay slot. */
+ .size _dl_runtime_resolve, . - _dl_runtime_resolve
+
+ .text
+ .globl _dl_runtime_profile
+ .type _dl_runtime_profile, @function
+ .align 4
+_dl_runtime_profile:
+ addik r1,r1,-40
+ swi r5,r1,12
+ swi r6,r1,16
+ swi r7,r1,20
+ swi r8,r1,24
+ swi r9,r1,28
+ swi r10,r1,32
+ swi r15,r1,0
+ addk r5,r0,r4
+ brlid r15, _dl_profile_fixup
+ addk r6,r0,r3; /* delay slot. */
+ lwi r10,r1,32
+ lwi r9,r1,28
+ lwi r8,r1,24
+ lwi r7,r1,20
+ lwi r6,r1,16
+ lwi r5,r1,12
+ lwi r15,r1,0
+ brad r3
+ addik r1,r1,40; /* delay slot. */
+ .size _dl_runtime_profile, . - _dl_runtime_profile
+
+#else
+
+ .text
+ .globl _dl_runtime_resolve
+ .type _dl_runtime_resolve, @function
+ .align 4
+_dl_runtime_resolve:
+ addik r1,r1,-40
+ swi r5,r1,12
+ swi r6,r1,16
+ swi r7,r1,20
+ swi r8,r1,24
+ swi r9,r1,28
+ swi r10,r1,32
+ swi r15,r1,0
+ addk r5,r0,r4
+ brlid r15, fixup
+ addk r6,r0,r3; /* delay slot. */
+ lwi r10,r1,32
+ lwi r9,r1,28
+ lwi r8,r1,24
+ lwi r7,r1,20
+ lwi r6,r1,16
+ lwi r5,r1,12
+ lwi r15,r1,0
+ brad r3
+ addik r1,r1,40; /* delay slot. */
+ .size _dl_runtime_resolve, . - _dl_runtime_resolve
+ .globl _dl_runtime_profile
+ .set _dl_runtime_profile, _dl_runtime_resolve
+
+#endif
diff --git a/ports/sysdeps/aarch64/machine-gmon.h b/ports/sysdeps/microblaze/fegetround.c
index c52a1a404d..4f47dd1fef 100644
--- a/ports/sysdeps/aarch64/machine-gmon.h
+++ b/ports/sysdeps/microblaze/fegetround.c
@@ -1,5 +1,4 @@
/* Copyright (C) 2011-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
@@ -16,10 +15,10 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#define _MCOUNT_DECL(from, self) \
- void __mcount_internal (u_long from, u_long self)
+#include <fenv.h>
-/* Call __mcount_internal with our the return PC for our caller, and
- the return PC our caller will return to. Empty since we use an
- assembly stub instead. */
-#define MCOUNT
+int
+fegetround (void)
+{
+ return FE_TONEAREST;
+}
diff --git a/ports/sysdeps/microblaze/fesetround.c b/ports/sysdeps/microblaze/fesetround.c
new file mode 100644
index 0000000000..8ca4e5137b
--- /dev/null
+++ b/ports/sysdeps/microblaze/fesetround.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2011-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 <fenv.h>
+
+int
+fesetround (int round)
+{
+ return (round == FE_TONEAREST) ? 0 : 1;
+}
+libm_hidden_def (fesetround)
diff --git a/ports/sysdeps/microblaze/gccframe.h b/ports/sysdeps/microblaze/gccframe.h
new file mode 100644
index 0000000000..4561cf2734
--- /dev/null
+++ b/ports/sysdeps/microblaze/gccframe.h
@@ -0,0 +1,21 @@
+/* Copyright (C) 2005-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/>. */
+
+#define FIRST_PSEUDO_REGISTER 78
+
+#include <sysdeps/generic/gccframe.h>
diff --git a/ports/sysdeps/microblaze/jmpbuf-unwind.h b/ports/sysdeps/microblaze/jmpbuf-unwind.h
new file mode 100644
index 0000000000..237b035122
--- /dev/null
+++ b/ports/sysdeps/microblaze/jmpbuf-unwind.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2005-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 <setjmp.h>
+#include <stdint.h>
+#include <unwind.h>
+#include <sysdep.h>
+
+/* Test if longjmp to JMPBUF would unwind the frame
+ containing a local variable at ADDRESS. */
+#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
+ ((void *) (address) < (void *) demangle ((jmpbuf)[0].__sp))
+
+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
+
+static inline uintptr_t __attribute__ ((unused))
+_jmpbuf_sp (__jmp_buf regs)
+{
+ uintptr_t sp = regs[0].__sp;
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (sp);
+#endif
+ return sp;
+}
+
+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
+ ((uintptr_t) (_address) - (_adj) < _jmpbuf_sp (_jmpbuf) - (_adj))
+
+/* We use the normal longjmp for unwinding. */
+#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/ports/sysdeps/microblaze/ldsodefs.h b/ports/sysdeps/microblaze/ldsodefs.h
new file mode 100644
index 0000000000..74f68e97ac
--- /dev/null
+++ b/ports/sysdeps/microblaze/ldsodefs.h
@@ -0,0 +1,45 @@
+/* Copyright (C) 2005-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 _MICROBLAZE_LDSODEFS_H
+#define _MICROBLAZE_LDSODEFS_H 1
+
+#include <elf.h>
+
+struct La_microblaze_regs;
+struct La_microblaze_retval;
+
+#define ARCH_PLTENTER_MEMBERS \
+ Elf32_Addr (*microblaze_gnu_pltenter) (Elf32_Sym *, unsigned int, \
+ uintptr_t *, \
+ uintptr_t *, \
+ struct La_microblaze_regs *, \
+ unsigned int *, const char *name, \
+ long int *framesizep);
+
+#define ARCH_PLTEXIT_MEMBERS \
+ unsigned int (*microblaze_gnu_pltexit) (Elf32_Sym *, unsigned int, \
+ uintptr_t *, \
+ uintptr_t *, \
+ const struct La_microblaze_regs *, \
+ struct La_microblaze_retval *, \
+ const char *);
+
+#include_next <ldsodefs.h>
+
+#endif
diff --git a/ports/sysdeps/microblaze/libc-tls.c b/ports/sysdeps/microblaze/libc-tls.c
new file mode 100644
index 0000000000..1dacdca945
--- /dev/null
+++ b/ports/sysdeps/microblaze/libc-tls.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2005-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 <csu/libc-tls.c>
+#include <dl-tls.h>
+
+/* On Microblaze, linker optimizations are not required, so __tls_get_addr
+ can be called even in statically linked binaries. In this case module
+ must be always 1 and PT_TLS segment exist in the binary, otherwise it
+ would not link. */
+
+void *
+__tls_get_addr (tls_index *ti)
+{
+ dtv_t *dtv = THREAD_DTV ();
+ return (char *) dtv[1].pointer.val + ti->ti_offset;
+}
diff --git a/ports/sysdeps/microblaze/libm-test-ulps b/ports/sysdeps/microblaze/libm-test-ulps
new file mode 100644
index 0000000000..9820f51ee5
--- /dev/null
+++ b/ports/sysdeps/microblaze/libm-test-ulps
@@ -0,0 +1,1728 @@
+# Begin of automatic generation
+
+# atan2
+Test "atan2 (-0.75, -1.0)":
+float: 1
+ifloat: 1
+Test "atan2 (-max_value, -min_value)":
+float: 1
+ifloat: 1
+Test "atan2 (0.75, -1.0)":
+float: 1
+ifloat: 1
+Test "atan2 (1.390625, 0.9296875)":
+float: 1
+ifloat: 1
+
+# atanh
+Test "atanh (0.75)":
+float: 1
+ifloat: 1
+
+# cacos
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 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 "Real part of: cacos (0.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0 i)":
+double: 1
+idouble: 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
+
+# cacosh
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 - 0 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)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 - 0 i)":
+float: 1
+ifloat: 1
+
+# casin
+Test "Imaginary part of: casin (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 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 (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+
+# casinh
+Test "Real part of: casinh (-0.5 + +0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0 i)":
+float: 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 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 - 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 - 0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 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 (1.0 + +0 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.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0 i)":
+double: 1
+idouble: 1
+
+# catan
+Test "Imaginary part of: catan (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# catanh
+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
+
+# cbrt
+Test "cbrt (-27.0)":
+double: 1
+idouble: 1
+Test "cbrt (0.75)":
+double: 1
+idouble: 1
+Test "cbrt (0.9921875)":
+double: 1
+idouble: 1
+
+# ccos
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Real part of: ccos (0.75 + 1.25 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
+double: 1
+idouble: 1
+
+# ccosh
+Test "Real part of: ccosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
+float: 1
+ifloat: 1
+Test "Real part of: ccosh (0.75 + 1.25 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
+float: 1
+ifloat: 1
+
+# cexp
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (50 + 0x1p127 i)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (500 + 0x1p1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (709.8125 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Real part of: cexp (88.75 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
+float: 2
+ifloat: 2
+
+# clog
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
+float: 1
+ifloat: 1
+
+# clog10
+Test "Imaginary part of: clog10 (-0 + inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0 - inf i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
+double: 2
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 2
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 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-149 + 0x1.fp+127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-2 - 3 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-3 + inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-3 - inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 1 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 1 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 + inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 - inf i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 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 - 0x1.fp+1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (3 + inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (3 - inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf + inf i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf - inf i)":
+float: 1
+ifloat: 1
+
+# cos
+Test "cos (0x1p+120)":
+float: 1
+ifloat: 1
+Test "cos (0x1p+127)":
+float: 1
+ifloat: 1
+Test "cos (M_PI_6l * 2.0)":
+double: 1
+idouble: 1
+Test "cos (M_PI_6l * 4.0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+# cos_tonearest
+Test "cos_tonearest (7)":
+float: 1
+ifloat: 1
+
+# cpow
+Test "Real 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
+idouble: 1
+ifloat: 4
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
+double: 1
+float: 4
+idouble: 1
+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)":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (-0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 + 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 + 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 - 710.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 - 89.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
+double: 1
+idouble: 1
+
+# csinh
+Test "Imaginary part of: csinh (-2 - 3 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csinh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
+float: 1
+ifloat: 1
+
+# csqrt
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
+double: 1
+idouble: 1
+Test "Real part of: csqrt (-2 + 3 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
+double: 1
+idouble: 1
+
+# ctan
+Test "Real part of: ctan (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan (-2 - 3 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctan (0x1p1023 + 1 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
+float: 1
+ifloat: 1
+
+# ctan_tonearest
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
+float: 1
+ifloat: 1
+
+# ctanh
+Test "Real part of: ctanh (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: ctanh (0.75 + 1.25 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
+double: 1
+idouble: 1
+Test "Real part of: ctanh (1 + 0x1p127 i)":
+double: 1
+idouble: 1
+
+# ctanh_tonearest
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
+float: 1
+ifloat: 1
+
+# erf
+Test "erf (1.25)":
+double: 1
+idouble: 1
+
+# erfc
+Test "erfc (0x1.f7303cp+1)":
+double: 1
+idouble: 1
+Test "erfc (0x1.ffa002p+2)":
+float: 1
+ifloat: 1
+Test "erfc (2.0)":
+double: 1
+idouble: 1
+Test "erfc (4.125)":
+double: 1
+idouble: 1
+
+# exp10
+Test "exp10 (-1)":
+double: 1
+idouble: 1
+Test "exp10 (-305)":
+double: 1
+idouble: 1
+Test "exp10 (-36)":
+double: 1
+idouble: 1
+Test "exp10 (3)":
+double: 1
+idouble: 1
+Test "exp10 (36)":
+double: 1
+idouble: 1
+
+# expm1
+Test "expm1 (0.75)":
+double: 1
+idouble: 1
+Test "expm1 (1)":
+float: 1
+ifloat: 1
+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)":
+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
+ifloat: 1
+Test "fma (0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022)":
+double: 1
+idouble: 1
+
+# hypot
+Test "hypot (-0.7, -12.4)":
+float: 1
+ifloat: 1
+Test "hypot (-0.7, 12.4)":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, -0.7)":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, 0.7)":
+float: 1
+ifloat: 1
+Test "hypot (0.7, -12.4)":
+float: 1
+ifloat: 1
+Test "hypot (0.7, 12.4)":
+float: 1
+ifloat: 1
+Test "hypot (12.4, -0.7)":
+float: 1
+ifloat: 1
+Test "hypot (12.4, 0.7)":
+float: 1
+ifloat: 1
+
+# j0
+Test "j0 (-4.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (0.75)":
+float: 1
+ifloat: 1
+Test "j0 (0x1.d7ce3ap+107)":
+float: 2
+ifloat: 2
+Test "j0 (10.0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "j0 (2.0)":
+float: 2
+ifloat: 2
+Test "j0 (4.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (8.0)":
+float: 1
+ifloat: 1
+
+# j1
+Test "j1 (0x1.3ffp+74)":
+double: 1
+idouble: 1
+Test "j1 (0x1.ff00000000002p+840)":
+double: 1
+idouble: 1
+Test "j1 (10.0)":
+float: 2
+ifloat: 2
+Test "j1 (2.0)":
+double: 1
+idouble: 1
+Test "j1 (8.0)":
+double: 1
+idouble: 1
+
+# jn
+Test "jn (0, -4.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 0.75)":
+float: 1
+ifloat: 1
+Test "jn (0, 10.0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (0, 2.0)":
+float: 2
+ifloat: 2
+Test "jn (0, 4.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 8.0)":
+float: 1
+ifloat: 1
+Test "jn (1, 10.0)":
+float: 2
+ifloat: 2
+Test "jn (1, 2.0)":
+double: 1
+idouble: 1
+Test "jn (1, 8.0)":
+double: 1
+idouble: 1
+Test "jn (10, 0.125)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 0.75)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 10.0)":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (10, 2.0)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "jn (2, 0x1.ffff62p+99)":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+Test "jn (2, 2.4048255576957729)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (3, 0.125)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 0.75)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 10.0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (3, 2.0)":
+float: 1
+ifloat: 1
+Test "jn (3, 2.4048255576957729)":
+double: 3
+idouble: 3
+Test "jn (4, 2.4048255576957729)":
+double: 1
+idouble: 1
+Test "jn (5, 2.4048255576957729)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (6, 2.4048255576957729)":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (7, 2.4048255576957729)":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+Test "jn (8, 2.4048255576957729)":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+Test "jn (9, 2.4048255576957729)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# lgamma
+Test "lgamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (1.2)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# log10
+Test "log10 (0.75)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "log10 (e)":
+float: 1
+ifloat: 1
+
+# log1p
+Test "log1p (-0.25)":
+float: 1
+ifloat: 1
+
+# pow
+Test "pow (0x0.ffffffp0, -0x1p24)":
+float: 1
+ifloat: 1
+Test "pow (0x0.ffffffp0, 0x1p24)":
+float: 1
+ifloat: 1
+Test "pow (0x1.000002p0, 0x1p24)":
+float: 1
+ifloat: 1
+
+# sin_tonearest
+Test "sin_tonearest (1)":
+float: 1
+ifloat: 1
+
+# sincos
+Test "sincos (0x1p+120) extra output 2":
+float: 1
+ifloat: 1
+Test "sincos (0x1p+127) extra output 2":
+float: 1
+ifloat: 1
+Test "sincos (M_PI_6l*2.0) extra output 1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
+float: 1
+ifloat: 1
+
+# tgamma
+Test "tgamma (-0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0.5)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y0
+Test "y0 (0x1.3ffp+74)":
+double: 1
+idouble: 1
+Test "y0 (0x1.ff00000000002p+840)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-10)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-110)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-20)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-30)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-40)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (0x1p-50)":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-70)":
+double: 1
+idouble: 1
+Test "y0 (0x1p-80)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (1.0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (1.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (10.0)":
+float: 1
+ifloat: 1
+Test "y0 (8.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y1
+Test "y1 (0.125)":
+double: 1
+idouble: 1
+Test "y1 (0x1.27e204p+99)":
+double: 1
+idouble: 1
+Test "y1 (0x1p-10)":
+double: 1
+idouble: 1
+Test "y1 (1.5)":
+float: 1
+ifloat: 1
+Test "y1 (10.0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "y1 (2.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y1 (8.0)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# yn
+Test "yn (0, 1.0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 1.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 10.0)":
+float: 1
+ifloat: 1
+Test "yn (0, 8.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 0.125)":
+double: 1
+idouble: 1
+Test "yn (1, 1.5)":
+float: 1
+ifloat: 1
+Test "yn (1, 10.0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "yn (1, 2.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 8.0)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "yn (10, 0.125)":
+double: 1
+idouble: 1
+Test "yn (10, 0.75)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 1.0)":
+double: 1
+idouble: 1
+Test "yn (10, 10.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 2.0)":
+double: 2
+idouble: 2
+Test "yn (3, 0.125)":
+double: 1
+idouble: 1
+Test "yn (3, 0.75)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 10.0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 2.0)":
+double: 1
+idouble: 1
+
+# Maximal error of functions:
+Function: "atan2":
+float: 1
+ifloat: 1
+
+Function: "atanh":
+float: 1
+ifloat: 1
+
+Function: Real part of "cacos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "cacos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "cacosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "cacosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "casin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "casinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catanh":
+double: 4
+idouble: 4
+
+Function: "cbrt":
+double: 1
+idouble: 1
+
+Function: Real part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "cexp":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "cexp":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "clog":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "clog":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "clog10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "cos_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "cpow":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Imaginary part of "cpow":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csinh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "csinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ctan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan":
+double: 1
+idouble: 1
+
+Function: Real part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: "erf":
+double: 1
+idouble: 1
+
+Function: "erfc":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp10":
+double: 1
+idouble: 1
+
+Function: "expm1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "fma":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "hypot":
+float: 1
+ifloat: 1
+
+Function: "j0":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "j1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "jn":
+double: 4
+float: 5
+idouble: 4
+ifloat: 5
+
+Function: "lgamma":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log10":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log1p":
+float: 1
+ifloat: 1
+
+Function: "pow":
+float: 1
+ifloat: 1
+
+Function: "sin_tonearest":
+float: 1
+ifloat: 1
+
+Function: "sincos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tan":
+double: 1
+idouble: 1
+
+Function: "tgamma":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "y0":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "y1":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "yn":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+# end of automatic generation
diff --git a/ports/sysdeps/microblaze/libm-test-ulps_new b/ports/sysdeps/microblaze/libm-test-ulps_new
new file mode 100644
index 0000000000..2f33c0769c
--- /dev/null
+++ b/ports/sysdeps/microblaze/libm-test-ulps_new
@@ -0,0 +1,3032 @@
+# Begin of automatic generation
+
+# atan2
+Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+float: 1
+ifloat: 1
+Test "atan2 (-max_value, -min_value) == -pi/2":
+float: 1
+ifloat: 1
+Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+float: 1
+ifloat: 1
+Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+float: 1
+ifloat: 1
+
+# atanh
+Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+float: 1
+ifloat: 1
+
+# cacos
+Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i) == 3.141592643999491532482601997450598791535 - 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i) == 3.141592643999491532482601997450598791535 + 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0.0 i) == 3.141592653589793238462643383279502884197 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1.fp-129 i) == 3.141592653589793238462643383279502878367 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i) == 3.141370441751352383825802745874586120521 - 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0.0 i) == 3.141592653589793238462643383279502884197 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1.fp-129 i) == 3.141592653589793238462643383279502878367 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i) == 3.141370441751352383825802745874586120521 + 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i) == 1.572134236154454360143880041170803681211 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i) == 1.572134236154454360143880041170803681211 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 - 8.813736713132375348727889167749389235161e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 + 8.813736713132375348727889167749389235161e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 - 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-100 i) == 3.141592653589792002170605123018614219682 - 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-1000 i) == 3.141592653589793238462643383279502884197 - 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-129 i) == 3.141592653589793238409287030509680549213 - 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
+double: 43
+idouble: 43
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Real part of: cacos (-1.0 + 0x1p50 i) == 1.570796326794897507409741391764983781004 - 3.535050620855721078027883819436759661753e1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 + 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-100 i) == 3.141592653589792002170605123018614219682 + 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-1000 i) == 3.141592653589793238462643383279502884197 + 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-129 i) == 3.141592653589793238409287030509680549213 + 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: cacos (-1.0 - 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
+double: 43
+idouble: 43
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Real part of: cacos (-1.0 - 0x1p50 i) == 1.570796326794897507409741391764983781004 + 3.535050620855721078027883819436759661753e1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i) == 1.394493894017929688812643125003661339452 - 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i) == 1.394493894017929688812643125003661339452 + 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i) == 0.0 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 - 2.107342425544701550354780375182800088393e-8 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i) == 0.0 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 + 2.107342425544701550354780375182800088393e-8 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: cacos (0x1.000002p0 + 0.0 i) == 0.0 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: cacos (0x1.000002p0 + 0x1.fp-129 i) == 5.830451806317544230969669308596361881467e-36 - 4.882812451493617206486388134172712975070e-4 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1.fp-129 i) == 5.830451806317544230969669308596361881467e-36 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 - 5.364668491573609633134147164031476452679e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 - 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: cacos (0x1.000002p0 - 0.0 i) == 0.0 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: cacos (0x1.000002p0 - 0x1.fp-129 i) == 5.830451806317544230969669308596361881467e-36 + 4.882812451493617206486388134172712975070e-4 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1.fp-129 i) == 5.830451806317544230969669308596361881467e-36 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 + 5.364668491573609633134147164031476452679e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 + 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i) == 1.569458417435338878318763342108699202986 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i) == 1.569458417435338878318763342108699202986 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442097 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442097 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i) == 1.570796325518966635014803151387033957091 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i) == 1.570796325518966635014803151387033957091 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (1.0 + 0.25 i) == 4.890443302710802929202843732146540079124e-1 - 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+float: 6
+ifloat: 6
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-100 i) == 1.236292038260260888664514866456887257525e-15 - 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-1000 i) == 4.252291453851660175550490409247739011867e-151 - 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-1025 i) == 7.340879205566679497036857179189356754017e-155 - 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-129 i) == 5.335635276982233498398987585285818977930e-20 - 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+double: 2827891
+idouble: 2827891
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Real part of: cacos (1.0 - 0.25 i) == 4.890443302710802929202843732146540079124e-1 + 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+float: 6
+ifloat: 6
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-100 i) == 1.236292038260260888664514866456887257525e-15 + 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-1000 i) == 4.252291453851660175550490409247739011867e-151 + 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-1025 i) == 7.340879205566679497036857179189356754017e-155 + 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-129 i) == 5.335635276982233498398987585285818977930e-20 + 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+double: 2827891
+idouble: 2827891
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+
+# cacosh
+Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+float: 1
+ifloat: 1
+
+# casin
+Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i) == -1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i) == -1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i) == -1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i) == -1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: casin (-0x1.000002p0 + 0.0 i) == -1.570796326794896619231321691639751442099 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1.fp-129 i) == -1.570796326794896619231321691639751436268 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i) == -1.570574114956455764594481054234834678422 + 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: casin (-0x1.000002p0 - 0.0 i) == -1.570796326794896619231321691639751442099 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1.fp-129 i) == -1.570796326794896619231321691639751436268 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i) == -1.570574114956455764594481054234834678422 - 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i) == -1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i) == -1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i) == -1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i) == -1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i) == -3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i) == -3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i) == -2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i) == -2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 + 0.25 i) == -1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i) == -1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-100 i) == -1.570796326794895382939283431378862777584 + 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-1000 i) == -1.570796326794896619231321691639751442099 + 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-129 i) == -1.570796326794896619177965338869929107115 + 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+double: 86
+idouble: 86
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Real part of: casin (-1.0 - 0.25 i) == -1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i) == -1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-100 i) == -1.570796326794895382939283431378862777584 - 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-1000 i) == -1.570796326794896619231321691639751442099 - 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-129 i) == -1.570796326794896619177965338869929107115 - 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+double: 86
+idouble: 86
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Imaginary part of: casin (0.25 + 1.0 i) == 1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0.25 - 1.0 i) == 1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i) == 1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+double: 25216052
+idouble: 25216052
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i) == 1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+double: 20798466
+idouble: 20798466
+Test "Imaginary part of: casin (0x1.000002p0 + 0.0 i) == 1.570796326794896619231321691639751442099 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1.fp-129 i) == 1.570796326794896619231321691639751436268 + 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i) == 1.570574114956455764594481054234834678422 + 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Imaginary part of: casin (0x1.000002p0 - 0.0 i) == 1.570796326794896619231321691639751442099 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1.fp-129 i) == 1.570796326794896619231321691639751436268 - 4.882812451493617206486388134172712975070e-4 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i) == 1.570574114956455764594481054234834678422 - 5.364668491573609633134147164031476452679e-4 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i) == 1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i) == 1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i) == 1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i) == 1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i) == 3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i) == 3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i) == 2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i) == 2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casin (1.0 + 0.25 i) == 1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i) == 1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: casin (1.0 + 0x1.fp-100 i) == 1.570796326794895382939283431378862777584 + 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: casin (1.0 + 0x1.fp-1000 i) == 1.570796326794896619231321691639751442099 + 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: casin (1.0 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: casin (1.0 + 0x1.fp-129 i) == 1.570796326794896619177965338869929107115 + 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+double: 86
+idouble: 86
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Real part of: casin (1.0 - 0.25 i) == 1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i) == 1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Imaginary part of: casin (1.0 - 0x1.fp-100 i) == 1.570796326794895382939283431378862777584 - 1.236292038260260888664514866457202186027e-15 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Imaginary part of: casin (1.0 - 0x1.fp-1000 i) == 1.570796326794896619231321691639751442099 - 4.252291453851660175550490409247739011867e-151 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Imaginary part of: casin (1.0 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 7.340879205566679497036857179189356754017e-155 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Imaginary part of: casin (1.0 - 0x1.fp-129 i) == 1.570796326794896619177965338869929107115 - 5.335635276982233498398987585285818977933e-20 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+double: 86
+idouble: 86
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+
+# casinh
+Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (-0.0 + 0x1.000002p0 i) == -4.882812451493617206486388134172712975070e-4 + 1.570796326794896619231321691639751442099 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (-0.0 - 0x1.000002p0 i) == -4.882812451493617206486388134172712975070e-4 - 1.570796326794896619231321691639751442099 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casinh (-0.25 + 1.0 i) == -5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0.25 - 1.0 i) == -5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i) == -4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i) == -4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Real part of: casinh (-0x1.fp-100 + 1.0 i) == -1.236292038260260888664514866457202186027e-15 + 1.570796326794895382939283431378862777584 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Real part of: casinh (-0x1.fp-100 - 1.0 i) == -1.236292038260260888664514866457202186027e-15 - 1.570796326794895382939283431378862777584 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Real part of: casinh (-0x1.fp-1000 + 1.0 i) == -4.252291453851660175550490409247739011867e-151 + 1.570796326794896619231321691639751442099 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Real part of: casinh (-0x1.fp-1000 - 1.0 i) == -4.252291453851660175550490409247739011867e-151 - 1.570796326794896619231321691639751442099 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (-0x1.fp-1025 + 1.0 i) == -7.340879205566679497036857179189356754017e-155 + 1.570796326794896619231321691639751442099 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (-0x1.fp-1025 - 1.0 i) == -7.340879205566679497036857179189356754017e-155 - 1.570796326794896619231321691639751442099 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Real part of: casinh (-0x1.fp-129 + 0x1.000002p0 i) == -4.882812451493617206486388134172712975070e-4 + 1.570796326794896619231321691639751436268 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (-0x1.fp-129 + 1.0 i) == -5.335635276982233498398987585285818977933e-20 + 1.570796326794896619177965338869929107115 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casinh (-0x1.fp-129 - 0x1.000002p0 i) == -4.882812451493617206486388134172712975070e-4 - 1.570796326794896619231321691639751436268 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (-0x1.fp-129 - 1.0 i) == -5.335635276982233498398987585285818977933e-20 - 1.570796326794896619177965338869929107115 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Imaginary part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+double: 86
+idouble: 86
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Imaginary part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+double: 86
+idouble: 86
+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i) == -5.364668491573609633134147164031476452679e-4 + 1.570574114956455764594481054234834678422 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i) == -5.364668491573609633134147164031476452679e-4 - 1.570574114956455764594481054234834678422 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+double: 20798466
+idouble: 20798466
+Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+double: 20798466
+idouble: 20798466
+Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0.25 i) == -8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0.25 i) == -8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (0.0 + 0x1.000002p0 i) == 4.882812451493617206486388134172712975070e-4 + 1.570796326794896619231321691639751442099 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (0.0 - 0x1.000002p0 i) == 4.882812451493617206486388134172712975070e-4 - 1.570796326794896619231321691639751442099 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Imaginary part of: casinh (0.25 + 1.0 i) == 5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0.25 - 1.0 i) == 5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i) == 4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i) == 4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+double: 6
+float: 17
+idouble: 6
+ifloat: 17
+Test "Real part of: casinh (0x1.fp-100 + 1.0 i) == 1.236292038260260888664514866457202186027e-15 + 1.570796326794895382939283431378862777584 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Real part of: casinh (0x1.fp-100 - 1.0 i) == 1.236292038260260888664514866457202186027e-15 - 1.570796326794895382939283431378862777584 i":
+double: 486654063623740
+float: 11676448
+idouble: 486654063623740
+ifloat: 11676448
+Test "Real part of: casinh (0x1.fp-1000 + 1.0 i) == 4.252291453851660175550490409247739011867e-151 + 1.570796326794896619231321691639751442099 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Real part of: casinh (0x1.fp-1000 - 1.0 i) == 4.252291453851660175550490409247739011867e-151 - 1.570796326794896619231321691639751442099 i":
+double: 6268745377432003
+idouble: 6268745377432003
+Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (0x1.fp-1025 + 1.0 i) == 7.340879205566679497036857179189356754017e-155 + 1.570796326794896619231321691639751442099 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+double: 25216052
+idouble: 25216052
+Test "Real part of: casinh (0x1.fp-1025 - 1.0 i) == 7.340879205566679497036857179189356754017e-155 - 1.570796326794896619231321691639751442099 i":
+double: 8865344731827986
+idouble: 8865344731827986
+Test "Real part of: casinh (0x1.fp-129 + 0x1.000002p0 i) == 4.882812451493617206486388134172712975070e-4 + 1.570796326794896619231321691639751436268 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (0x1.fp-129 + 1.0 i) == 5.335635276982233498398987585285818977933e-20 + 1.570796326794896619177965338869929107115 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casinh (0x1.fp-129 - 0x1.000002p0 i) == 4.882812451493617206486388134172712975070e-4 - 1.570796326794896619231321691639751436268 i":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+Test "Real part of: casinh (0x1.fp-129 - 1.0 i) == 5.335635276982233498398987585285818977933e-20 - 1.570796326794896619177965338869929107115 i":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Imaginary part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+double: 86
+idouble: 86
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+double: 2843582
+float: 11039
+idouble: 2843582
+ifloat: 11039
+Test "Imaginary part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+double: 86
+idouble: 86
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i) == 5.364668491573609633134147164031476452679e-4 + 1.570574114956455764594481054234834678422 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i) == 5.364668491573609633134147164031476452679e-4 - 1.570574114956455764594481054234834678422 i":
+double: 327
+float: 431
+idouble: 327
+ifloat: 431
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+double: 20798466
+idouble: 20798466
+Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+double: 20798466
+idouble: 20798466
+Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0.25 i) == 8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0.25 i) == 8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+double: 1
+idouble: 1
+
+# catan
+Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# catanh
+Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+double: 4
+idouble: 4
+Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+double: 1
+idouble: 1
+
+# cbrt
+Test "cbrt (-27.0) == -3.0":
+double: 1
+idouble: 1
+Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+double: 1
+idouble: 1
+Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+double: 1
+idouble: 1
+
+# ccos
+Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+float: 1
+ifloat: 1
+Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+double: 1
+idouble: 1
+
+# ccosh
+Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+
+# cexp
+Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+double: 1
+idouble: 1
+Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+float: 2
+ifloat: 2
+
+# clog
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+double: 1
+idouble: 1
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+double: 1
+idouble: 1
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+float: 1
+ifloat: 1
+
+# clog10
+Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+float: 1
+ifloat: 1
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+double: 1
+idouble: 1
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+float: 1
+ifloat: 1
+
+# cos
+Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+float: 1
+ifloat: 1
+Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+float: 1
+ifloat: 1
+Test "cos (M_PI_6l * 2.0) == 0.5":
+double: 1
+idouble: 1
+Test "cos (M_PI_6l * 4.0) == -0.5":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+# cos_tonearest
+Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+float: 1
+ifloat: 1
+
+# cpow
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+# csin
+Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+double: 1
+idouble: 1
+Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+double: 1
+idouble: 1
+Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+double: 1
+idouble: 1
+
+# csinh
+Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+float: 1
+ifloat: 1
+
+# csqrt
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+double: 1
+idouble: 1
+Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+float: 1
+ifloat: 1
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+double: 1
+idouble: 1
+
+# ctan
+Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+double: 1
+idouble: 1
+Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+double: 1
+idouble: 1
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+float: 1
+ifloat: 1
+
+# ctan_tonearest
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+float: 1
+ifloat: 1
+
+# ctanh
+Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+double: 1
+idouble: 1
+Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+double: 1
+idouble: 1
+
+# ctanh_tonearest
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+float: 1
+ifloat: 1
+
+# erf
+Test "erf (1.25) == 0.922900128256458230136523481197281140":
+double: 1
+idouble: 1
+
+# erfc
+Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+double: 1
+idouble: 1
+Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+float: 1
+ifloat: 1
+Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+double: 1
+idouble: 1
+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+double: 1
+idouble: 1
+
+# exp10
+Test "exp10 (-1) == 0.1":
+double: 1
+idouble: 1
+Test "exp10 (-305) == 1.0e-305":
+double: 1
+idouble: 1
+Test "exp10 (-36) == 1.0e-36":
+double: 1
+idouble: 1
+Test "exp10 (3) == 1000":
+double: 1
+idouble: 1
+Test "exp10 (36) == 1.0e36":
+double: 1
+idouble: 1
+
+# expm1
+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+double: 1
+idouble: 1
+Test "expm1 (1) == M_El - 1.0":
+float: 1
+ifloat: 1
+Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+double: 1
+idouble: 1
+
+# fma
+Test "fma (-0x1.fffffffffffffp-711, 0x1.fffffffffffffp-275, 0x1.fffffe00007ffp-983) == 0x1.7ffffe00007ffp-983":
+double: 1
+idouble: 1
+Test "fma (0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300) == 0x1.fffffffffffffp-1":
+double: 1
+idouble: 1
+Test "fma (0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022) == -0x0.b22757123bbe9p-1022":
+double: 1
+idouble: 1
+Test "fma (0x1.4000004p-967, 0x1p-106, 0x0.000001p-1022) == 0x0.0000010000003p-1022":
+double: 1
+idouble: 1
+Test "fma (0x1.7ff8p+13, 0x1.000002p+0, 0x1.ffffp-24) == 0x1.7ff802p+13":
+float: 1
+ifloat: 1
+Test "fma (0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022) == 0x0.0000010000001p-1022":
+double: 1
+idouble: 1
+
+# hypot
+Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+float: 1
+ifloat: 1
+
+# j0
+Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+float: 2
+ifloat: 2
+Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+
+# j1
+Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+double: 1
+idouble: 1
+Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+double: 1
+idouble: 1
+Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
+Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+
+# jn
+Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
+Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+float: 1
+ifloat: 1
+Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+double: 3
+idouble: 3
+Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+double: 1
+idouble: 1
+Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# lgamma
+Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# log10
+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "log10 (e) == log10(e)":
+float: 1
+ifloat: 1
+
+# log1p
+Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+float: 1
+ifloat: 1
+
+# pow
+Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+float: 1
+ifloat: 1
+Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+float: 1
+ifloat: 1
+Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+float: 1
+ifloat: 1
+
+# sin_tonearest
+Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+float: 1
+ifloat: 1
+
+# sincos
+Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+float: 1
+ifloat: 1
+Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+float: 1
+ifloat: 1
+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+double: 1
+idouble: 1
+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+float: 1
+ifloat: 1
+
+# tgamma
+Test "tgamma (-0.5) == -2 sqrt (pi)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0.5) == sqrt (pi)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y0
+Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+double: 1
+idouble: 1
+Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+double: 1
+idouble: 1
+Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+double: 1
+idouble: 1
+Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+double: 1
+idouble: 1
+Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+double: 1
+idouble: 1
+Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# y1
+Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+double: 1
+idouble: 1
+Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+double: 1
+idouble: 1
+Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
+Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+# yn
+Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
+Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+double: 1
+idouble: 1
+Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+double: 1
+idouble: 1
+Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+double: 2
+idouble: 2
+Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+double: 1
+idouble: 1
+Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+double: 1
+idouble: 1
+
+# Maximal error of functions:
+Function: "atan2":
+float: 1
+ifloat: 1
+
+Function: "atanh":
+float: 1
+ifloat: 1
+
+Function: Real part of "cacos":
+double: 2827891
+float: 6
+idouble: 2827891
+ifloat: 6
+
+Function: Imaginary part of "cacos":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+
+Function: Real part of "cacosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "cacosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casin":
+double: 86
+float: 1
+idouble: 86
+ifloat: 1
+
+Function: Imaginary part of "casin":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+
+Function: Real part of "casinh":
+double: 8865344731827986
+float: 16512991
+idouble: 8865344731827986
+ifloat: 16512991
+
+Function: Imaginary part of "casinh":
+double: 86
+float: 1
+idouble: 86
+ifloat: 1
+
+Function: Imaginary part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catanh":
+double: 4
+idouble: 4
+
+Function: "cbrt":
+double: 1
+idouble: 1
+
+Function: Real part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "cexp":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "cexp":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "clog":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "clog":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "clog10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "cos_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "cpow":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Imaginary part of "cpow":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csinh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "csinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "csqrt":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ctan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan":
+double: 1
+idouble: 1
+
+Function: Real part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan_tonearest":
+float: 1
+ifloat: 1
+
+Function: Real part of "ctanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "ctanh_tonearest":
+float: 1
+ifloat: 1
+
+Function: "erf":
+double: 1
+idouble: 1
+
+Function: "erfc":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp10":
+double: 1
+idouble: 1
+
+Function: "expm1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "fma":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "hypot":
+float: 1
+ifloat: 1
+
+Function: "j0":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "j1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "jn":
+double: 4
+float: 5
+idouble: 4
+ifloat: 5
+
+Function: "lgamma":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log10":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "log1p":
+float: 1
+ifloat: 1
+
+Function: "pow":
+float: 1
+ifloat: 1
+
+Function: "sin_tonearest":
+float: 1
+ifloat: 1
+
+Function: "sincos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tan":
+double: 1
+idouble: 1
+
+Function: "tgamma":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "y0":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "y1":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "yn":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+# end of automatic generation
diff --git a/ports/sysdeps/microblaze/machine-gmon.h b/ports/sysdeps/microblaze/machine-gmon.h
new file mode 100644
index 0000000000..0cfaa19e0f
--- /dev/null
+++ b/ports/sysdeps/microblaze/machine-gmon.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2011-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/>. */
+
+/* We need a special version of the `mcount' function because it has
+ to preserve more registers than your usual function. */
+
+void __mcount_internal (unsigned long frompc, unsigned long selfpc);
+
+#define _MCOUNT_DECL(frompc, selfpc) \
+void __mcount_internal (unsigned long frompc, unsigned long selfpc)
+
+
+/* Define MCOUNT as empty since we have the implementation in another
+ file. */
+#define MCOUNT
diff --git a/ports/sysdeps/microblaze/math_private.h b/ports/sysdeps/microblaze/math_private.h
new file mode 100644
index 0000000000..39b71722d3
--- /dev/null
+++ b/ports/sysdeps/microblaze/math_private.h
@@ -0,0 +1,33 @@
+#ifndef _MATH_PRIVATE_H
+
+/* Suppress use of exceptions here to avoid build errors if the FE_*
+ macros aren't definied. Only allow rounding modes implemented for
+ MicroBlaze.
+
+ This does mean that some code will silently fail to report exceptions,
+ set rounding mode as expected, etc., but it allows math code to compile
+ that otherwise wouldn't (such as math/s_fma.c) and so is valuable.
+
+ We intentionally ignore the "exception" arguments of functions that
+ take an exception, since we can't even evaluate the argument
+ without causing a build failure. The extra level of statement
+ expression wrapping avoids "statement with no effect" warnings.
+ Since the callers don't check for errors anyway, we just claim
+ success in every case.
+
+ The overrides for libc_ functions must happen before we include
+ the generic math_private.h, and the overrides for regular
+ <fenv.h> functions must happen afterwards, to avoid clashing with
+ the declarations of those functions. */
+
+#define libc_fesetround(rnd) ({ 0; })
+#define libc_fetestexcept(exc) ({ 0; })
+#define libc_feholdexcept_setround(env, exc) ({ (void) (env); 0; })
+#define libc_feupdateenv_test(env, exc) ({ (void) (env); 0; })
+
+#include_next <math_private.h>
+
+#define feraiseexcept(excepts) ({ 0; })
+#define feclearexcept(exc) ({ 0; })
+
+#endif
diff --git a/ports/sysdeps/microblaze/memusage.h b/ports/sysdeps/microblaze/memusage.h
new file mode 100644
index 0000000000..a4974b2187
--- /dev/null
+++ b/ports/sysdeps/microblaze/memusage.h
@@ -0,0 +1,21 @@
+/* Copyright (C) 2000-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/>. */
+
+#define GETSP() ({ register uintptr_t stack_ptr asm ("r1"); stack_ptr; })
+
+#include <sysdeps/generic/memusage.h>
diff --git a/ports/sysdeps/microblaze/nptl/Makefile b/ports/sysdeps/microblaze/nptl/Makefile
new file mode 100644
index 0000000000..3c0521a5a9
--- /dev/null
+++ b/ports/sysdeps/microblaze/nptl/Makefile
@@ -0,0 +1,21 @@
+# Copyright (C) 2005-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/>.
+
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/ports/sysdeps/microblaze/nptl/pthread_spin_lock.c b/ports/sysdeps/microblaze/nptl/pthread_spin_lock.c
new file mode 100644
index 0000000000..0d12517de3
--- /dev/null
+++ b/ports/sysdeps/microblaze/nptl/pthread_spin_lock.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2008-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/>. */
+
+#define SPIN_LOCK_READS_BETWEEN_CMPXCHG 1000
+
+/* We can't use the normal "#include <nptl/pthread_spin_lock.c>" because
+ it will resolve to this very file. Using "sysdeps/.." as reference to the
+ top level directory does the job. */
+#include <sysdeps/../nptl/pthread_spin_lock.c>
diff --git a/ports/sysdeps/microblaze/nptl/pthreaddef.h b/ports/sysdeps/microblaze/nptl/pthreaddef.h
new file mode 100644
index 0000000000..29d58284c1
--- /dev/null
+++ b/ports/sysdeps/microblaze/nptl/pthreaddef.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2002-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 <stdlib.h>
+#include <string.h>
+
+/* Default stack size. */
+#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
+
+/* Required stack pointer alignment at beginning. */
+#define STACK_ALIGN 16
+
+/* Minimal stack size after allocating thread descriptor and guard size. */
+#define MINIMAL_REST_STACK 2048
+
+/* Alignment requirement for TCB. */
+#define TCB_ALIGNMENT 16
+
+/* Location of current stack frame. */
+#define CURRENT_STACK_FRAME __builtin_frame_address (0)
+
+/* XXX Until we have a better place keep the definitions here. */
+
+#define __exit_thread_inline(val) \
+ INLINE_SYSCALL (exit, 1, (val))
diff --git a/ports/sysdeps/microblaze/nptl/tcb-offsets.sym b/ports/sysdeps/microblaze/nptl/tcb-offsets.sym
new file mode 100644
index 0000000000..18afbee291
--- /dev/null
+++ b/ports/sysdeps/microblaze/nptl/tcb-offsets.sym
@@ -0,0 +1,11 @@
+#include <sysdep.h>
+#include <tls.h>
+
+--
+
+-- Abuse tls.h macros to derive offsets relative to the thread register.
+#define thread_offsetof(mem) (long)(offsetof (struct pthread, mem) - sizeof (struct pthread))
+
+MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
+PID_OFFSET thread_offsetof (pid)
+TID_OFFSET thread_offsetof (tid)
diff --git a/ports/sysdeps/microblaze/nptl/tls.h b/ports/sysdeps/microblaze/nptl/tls.h
new file mode 100644
index 0000000000..9598982cc2
--- /dev/null
+++ b/ports/sysdeps/microblaze/nptl/tls.h
@@ -0,0 +1,155 @@
+/* Copyright (C) 2005-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 _TLS_H
+# define _TLS_H 1
+
+# include <dl-sysdep.h>
+
+#ifndef __ASSEMBLER__
+# include <stdbool.h>
+# include <stddef.h>
+# include <stdint.h>
+
+/* Type for the dtv. */
+typedef union dtv
+{
+ size_t counter;
+ struct
+ {
+ void *val;
+ bool is_static;
+ } pointer;
+} dtv_t;
+
+#else /* __ASSEMBLER__ */
+# include <tcb-offsets.h>
+#endif /* __ASSEMBLER__ */
+
+#ifndef __ASSEMBLER__
+
+/* Get system call information. */
+# include <sysdep.h>
+
+/* The TP points to the start of the thread blocks. */
+# define TLS_DTV_AT_TP 1
+
+/* Get the thread descriptor definition. */
+# include <nptl/descr.h>
+
+typedef struct
+{
+ dtv_t *dtv;
+ void *private;
+} tcbhead_t;
+
+static inline void *__microblaze_get_thread_area (void)
+{
+ register void * volatile __microblaze_thread_area asm ("r21");
+ return (void *) __microblaze_thread_area;
+}
+
+# define READ_THREAD_POINTER() \
+ ({ __microblaze_get_thread_area(); })
+
+/* This is the size of the initial TCB. */
+# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
+
+/* Alignment requirements for the initial TCB. */
+# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
+
+/* This is the size of the TCB. */
+# define TLS_TCB_SIZE sizeof (tcbhead_t)
+
+/* This is the size we need before TCB. */
+# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
+
+/* Alignment requirements for the TCB. */
+# define TLS_TCB_ALIGN __alignof__ (struct pthread)
+
+/* Install the dtv pointer. The pointer passed is to the element with
+ index -1 which contain the length. */
+# define INSTALL_DTV(tcbp, dtvp) \
+ (((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1)
+
+/* Install new dtv for current thread. */
+# define INSTALL_NEW_DTV(dtv) \
+ (THREAD_DTV() = (dtv))
+
+/* Return dtv of given thread descriptor. */
+# define GET_DTV(tcbp) \
+ (((tcbhead_t *) (tcbp))->dtv)
+
+/* Code to initially initialize the thread pointer.
+ r21 is reserved for thread pointer. */
+# define TLS_INIT_TP(tcbp, secondcall) \
+ ({ __asm __volatile ("or r21,r0,%0" : : "r" ((void *)tcbp)); 0; })
+
+/* Return the address of the dtv for the current thread. */
+# define THREAD_DTV() \
+ (((tcbhead_t *) READ_THREAD_POINTER())->dtv)
+
+/* Return the thread descriptor for the current thread. */
+# define THREAD_SELF \
+ (((struct pthread *) READ_THREAD_POINTER()) - 1)
+
+/* Magic for libthread_db to know how to do THREAD_SELF. */
+# define DB_THREAD_SELF \
+ CONST_THREAD_AREA (32, sizeof (struct pthread))
+
+/* Read member of the thread descriptor directly. */
+# define THREAD_GETMEM(descr, member) (descr->member)
+
+/* Same as THREAD_GETMEM, but the member offset can be non-constant. */
+# define THREAD_GETMEM_NC(descr, member, idx) \
+ (descr->member[idx])
+
+/* Set member of the thread descriptor directly. */
+# define THREAD_SETMEM(descr, member, value) \
+ (descr->member = (value))
+
+/* Same as THREAD_SETMEM, but the member offset can be non-constant. */
+# define THREAD_SETMEM_NC(descr, member, idx, value) \
+ (descr->member[idx] = (value))
+
+/* Get and set the global scope generation counter in struct pthread. */
+# define THREAD_GSCOPE_FLAG_UNUSED 0
+# define THREAD_GSCOPE_FLAG_USED 1
+# define THREAD_GSCOPE_FLAG_WAIT 2
+# define THREAD_GSCOPE_RESET_FLAG() \
+ do \
+ { int __res \
+ = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
+ THREAD_GSCOPE_FLAG_UNUSED); \
+ if (__res == THREAD_GSCOPE_FLAG_WAIT) \
+ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
+ } \
+ while (0)
+# define THREAD_GSCOPE_SET_FLAG() \
+ do \
+ { \
+ THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
+ atomic_write_barrier (); \
+ } \
+ while (0)
+# define THREAD_GSCOPE_WAIT() \
+ GL (dl_wait_lookup_done) ()
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* tls.h. */
diff --git a/ports/sysdeps/microblaze/preconfigure b/ports/sysdeps/microblaze/preconfigure
new file mode 100644
index 0000000000..90e2e631d9
--- /dev/null
+++ b/ports/sysdeps/microblaze/preconfigure
@@ -0,0 +1,3 @@
+case "$machine" in
+microblaze*) base_machine=microblaze machine=microblaze ;;
+esac
diff --git a/ports/sysdeps/microblaze/setjmp.S b/ports/sysdeps/microblaze/setjmp.S
new file mode 100644
index 0000000000..4a2bd22ed3
--- /dev/null
+++ b/ports/sysdeps/microblaze/setjmp.S
@@ -0,0 +1,75 @@
+/* Copyright (C) 1997-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 <sysdep.h>
+
+/* This source produces 3 functions:
+ __sigsetjmp (jmpbuf,savemask)
+ setjmp (jmpbuf) - equivalent to __sigsetjump (jmpbuf, 1)
+ _setjmp (jmpbuf) - equivalent to __sigsetjump (jmpbuf, 0)
+*/
+
+#ifndef setjmp_name
+# define setjmp_name __sigsetjmp
+# define SET_MASK_ARG
+#else
+# define SET_MASK_ARG addik r6,r0,SAVEMASK
+#endif
+
+ENTRY (setjmp_name)
+ swi r1,r5,0
+ swi r2,r5,4
+ swi r13,r5,8
+ swi r14,r5,12
+ swi r15,r5,16
+ swi r16,r5,20
+ swi r17,r5,24
+ swi r18,r5,28
+ swi r19,r5,32
+ swi r20,r5,36
+ swi r21,r5,40
+ swi r22,r5,44
+ swi r23,r5,48
+ swi r24,r5,52
+ swi r25,r5,56
+ swi r26,r5,60
+ swi r27,r5,64
+ swi r28,r5,68
+ swi r29,r5,72
+ swi r30,r5,76
+ swi r31,r5,80
+
+ SET_MASK_ARG
+
+ /* Make a tail call to __sigjmp_save; it takes the same args. */
+#ifdef PIC
+ /* We cannot use the PLT, because it requires that r20 be set, but
+ we can't save and restore our caller's value. Instead, we do an
+ indirect jump through the GOT, using the temporary register
+ %ecx, which is call-clobbered. */
+ mfs r12,rpc
+ addik r12,r12,_GLOBAL_OFFSET_TABLE_+8
+ lwi r12,r12,__sigjmp_save@GOT
+ brad r12
+#else
+ brid __sigjmp_save
+#endif
+ nop
+END (setjmp_name)
+
+libc_hidden_def (setjmp_name)
diff --git a/ports/sysdeps/microblaze/shlib-versions b/ports/sysdeps/microblaze/shlib-versions
new file mode 100644
index 0000000000..6ec43db15b
--- /dev/null
+++ b/ports/sysdeps/microblaze/shlib-versions
@@ -0,0 +1 @@
+microblaze.*-.*-linux.* DEFAULT GLIBC_2.18
diff --git a/ports/sysdeps/microblaze/sotruss-lib.c b/ports/sysdeps/microblaze/sotruss-lib.c
new file mode 100644
index 0000000000..88654880e6
--- /dev/null
+++ b/ports/sysdeps/microblaze/sotruss-lib.c
@@ -0,0 +1,52 @@
+/* Override generic sotruss-lib.c to define actual functions for MicroBlaze.
+ Copyright (C) 2012 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/>. */
+
+#define HAVE_ARCH_PLTENTER
+#define HAVE_ARCH_PLTEXIT
+
+#include <elf/sotruss-lib.c>
+
+ElfW(Addr)
+la_microblaze_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
+ unsigned int ndx __attribute__ ((unused)),
+ uintptr_t *refcook, uintptr_t *defcook,
+ La_microblaze_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ print_enter (refcook, defcook, symname,
+ regs->lr_r0, regs->lr_r1, regs->lr_sp,
+ *flags);
+
+ /* No need to copy anything, we will not need the parameters in any case. */
+ *framesizep = 0;
+
+ return sym->st_value;
+}
+
+unsigned int
+la_microblaze_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx,
+ uintptr_t *refcook,
+ uintptr_t *defcook,
+ const struct La_microblaze_regs *inregs,
+ struct La_microblaze_retval *outregs,
+ const char *symname)
+{
+ print_exit (refcook, defcook, symname, outregs->lrv_r3);
+
+ return 0;
+}
diff --git a/ports/sysdeps/microblaze/stackinfo.h b/ports/sysdeps/microblaze/stackinfo.h
new file mode 100644
index 0000000000..542bc6f4df
--- /dev/null
+++ b/ports/sysdeps/microblaze/stackinfo.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 2001-2012 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/>. */
+
+/* This file contains a bit of information about the stack allocation
+ of the processor. */
+
+#ifndef _STACKINFO_H
+# define _STACKINFO_H 1
+
+# include <elf.h>
+
+/* On MicroBlaze the stack grows down. */
+# define _STACK_GROWS_DOWN 1
+
+/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is
+ * present, but it is presumed absent. */
+# define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
+
+#endif /* stackinfo.h. */
diff --git a/ports/sysdeps/microblaze/start.S b/ports/sysdeps/microblaze/start.S
new file mode 100644
index 0000000000..fbbf3bf36a
--- /dev/null
+++ b/ports/sysdeps/microblaze/start.S
@@ -0,0 +1,84 @@
+/* Copyright (C) 1995-2012 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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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/>. */
+
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ /* On entry the stack contains the following args:
+ r1+0 - argc
+ r1+4 - argv[0]
+ ...
+ r1+4*(argc-1) - argv[argc-1]
+ r1+4*argc - NULL
+ r1+4*argc + 4 - envp[0]
+ ...
+ NULL
+ */
+ addk r3,r0,r0
+ addk r5,r1,r0
+1:
+ addik r5,r5,4
+ lw r4,r5,r0
+ bneid r4,1b
+ addik r3,r3,1
+ addik r6,r3,-1
+ sw r6,r1,r0
+ addik r7,r1,4
+ addik r1,r1,-24
+#ifdef SHARED
+ /* Setup PIC. */
+ mfs r20,rpc
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8
+ lwi r5,r20,main@GOT
+ lwi r8,r20,__libc_csu_init@GOT
+ lwi r9,r20,__libc_csu_fini@GOT
+ brid __libc_start_main@PLT
+ addk r10,r0,r0
+#else
+ addik r5,r0,main
+ addik r8,r0,__libc_csu_init
+ addik r9,r0,__libc_csu_fini
+ brid __libc_start_main
+ addk r10,r0,r0
+#endif
+
+/* Define a symbol for the first piece of initialized data. */
+ .data
+ .globl __data_start
+__data_start:
+ .long 0
+ .weak data_start
+ data_start = __data_start
diff --git a/ports/sysdeps/microblaze/sysdep.h b/ports/sysdeps/microblaze/sysdep.h
new file mode 100644
index 0000000000..4fe460735d
--- /dev/null
+++ b/ports/sysdeps/microblaze/sysdep.h
@@ -0,0 +1,85 @@
+/* Copyright (C) 1997-2012 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 <sysdeps/generic/sysdep.h>
+
+#ifdef __ASSEMBLER__
+
+/* Syntactic details of assembler. */
+
+# define ALIGNARG(log2) log2
+# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+
+/* Define an entry point visible from C. */
+# define ENTRY(name) \
+ .globl C_SYMBOL_NAME(name); \
+ .type C_SYMBOL_NAME(name),@function; \
+ .align ALIGNARG(2); \
+ C_LABEL(name) \
+ CALL_MCOUNT
+
+# undef END
+# define END(name) ASM_SIZE_DIRECTIVE(name)
+
+
+/* If compiled for profiling, call `_mcount' at the start of each function. */
+# ifdef PROF
+/* The mcount code relies on a normal frame pointer being on the stack
+ to locate our caller, so push one just for its benefit. */
+# define CALL_MCOUNT \
+ addik r1,r1,-4; \
+ swi r15,r1,0; \
+ brlid r15,JUMPTARGET(mcount); \
+ nop; \
+ lwi r15,r1,0; \
+ addik r1,r1,4;
+# else
+# define CALL_MCOUNT /* Do nothing. */
+# endif
+
+/* Since C identifiers are not normally prefixed with an underscore
+ on this system, the asm identifier `syscall_error' intrudes on the
+ C name space. Make sure we use an innocuous name. */
+# define syscall_error __syscall_error
+# define mcount _mcount
+
+# define PSEUDO(name, syscall_name, args) \
+ .globl syscall_error; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args);
+
+# define ret \
+ rtsd r15,8; nop;
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ END (name)
+
+# undef JUMPTARGET
+# ifdef PIC
+# define JUMPTARGET(name) name##@PLTPC
+# else
+# define JUMPTARGET(name) name
+# endif
+
+/* Local label name for asm code. */
+# ifndef L
+# define L(name) $L##name
+# endif
+
+# endif /* __ASSEMBLER__ */
diff --git a/ports/sysdeps/microblaze/tls-macros.h b/ports/sysdeps/microblaze/tls-macros.h
new file mode 100644
index 0000000000..df58430bd9
--- /dev/null
+++ b/ports/sysdeps/microblaze/tls-macros.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2009-2012 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/>. */
+
+#define TLS_LD(x) \
+ ({ \
+ char *__result; \
+ int __offset; \
+ extern void *__tls_get_addr (void *); \
+ asm ("mfs r20,rpc \n" \
+ "addik r20,r20,_GLOBAL_OFFSET_TABLE_+8\n" \
+ "addik %0,r20," #x "@TLSLDM" \
+ : "=r" (__result)); \
+ __result = (char *) __tls_get_addr (__result); \
+ asm ("addik %0,r0,"#x"@TLSDTPREL" \
+ : "=r" (__offset)); \
+ (int *) (__result + __offset); })
+
+
+#define TLS_GD(x) \
+ ({ \
+ int *__result; \
+ extern void *__tls_get_addr (void *); \
+ asm ("mfs r20,rpc\n" \
+ "addik r20,r20,_GLOBAL_OFFSET_TABLE_+8\n" \
+ "addik %0,r20," #x "@TLSGD" \
+ : "=r" (__result)); \
+ (int *) __tls_get_addr (__result); })
+
+#define TLS_LE(x) TLS_LD(x)
+
+#define TLS_IE(x) TLS_GD(x)
diff --git a/ports/sysdeps/microblaze/tst-audit.h b/ports/sysdeps/microblaze/tst-audit.h
new file mode 100644
index 0000000000..90c1b25bae
--- /dev/null
+++ b/ports/sysdeps/microblaze/tst-audit.h
@@ -0,0 +1,25 @@
+/* Definitions for testing PLT entry/exit auditing. MicroBlaze version.
+
+ Copyright (C) 2012 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/>. */
+
+#define pltenter la_microblaze_gnu_pltenter
+#define pltexit la_microblaze_gnu_pltexit
+#define La_regs La_microblaze_regs
+#define La_retval La_microblaze_retval
+#define int_retval lrv_r3
diff --git a/ports/sysdeps/mips/bits/atomic.h b/ports/sysdeps/mips/bits/atomic.h
index bdc3acef7b..7c735f7262 100644
--- a/ports/sysdeps/mips/bits/atomic.h
+++ b/ports/sysdeps/mips/bits/atomic.h
@@ -19,6 +19,7 @@
#ifndef _MIPS_BITS_ATOMIC_H
#define _MIPS_BITS_ATOMIC_H 1
+#include <stdint.h>
#include <inttypes.h>
#include <sgidefs.h>
diff --git a/ports/sysdeps/mips/math_private.h b/ports/sysdeps/mips/math_private.h
new file mode 100644
index 0000000000..f0ba4ee706
--- /dev/null
+++ b/ports/sysdeps/mips/math_private.h
@@ -0,0 +1,27 @@
+/* Internal math stuff. MIPS 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/>. */
+
+#ifndef _MATH_PRIVATE_H
+
+/* One of the few architectures where the meaning of the quiet/signaling bit is
+ inverse to IEEE 754-2008 (as well as common practice for IEEE 754-1985). */
+#define HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+
+#include_next <math_private.h>
+
+#endif
diff --git a/ports/sysdeps/mips/mips32/libm-test-ulps b/ports/sysdeps/mips/mips32/libm-test-ulps
index e0c7e0d472..990a5bc826 100644
--- a/ports/sysdeps/mips/mips32/libm-test-ulps
+++ b/ports/sysdeps/mips/mips32/libm-test-ulps
@@ -1,1785 +1,1785 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0 - 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
# cos_upward
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real 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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+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) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
# ctanh_upward
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/mips/mips64/libm-test-ulps b/ports/sysdeps/mips/mips64/libm-test-ulps
index c7a18d6666..399d32410c 100644
--- a/ports/sysdeps/mips/mips64/libm-test-ulps
+++ b/ports/sysdeps/mips/mips64/libm-test-ulps
@@ -1,195 +1,195 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+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 (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -198,179 +198,179 @@ ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -379,939 +379,939 @@ ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Imaginary part of: catan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# cbrt
-Test "cbrt (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i) == inf - 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+Test "Imaginary part of: cexp (-720 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i":
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i":
+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i":
+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i":
+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i":
+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i":
+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i":
+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i":
+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i":
+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i":
+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i":
+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i":
+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i":
+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i":
+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i":
+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i":
+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i":
+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i":
+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i":
+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i":
+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 i":
+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -1320,138 +1320,138 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
# cos_upward
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1460,380 +1460,380 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 11357.25 i) == -8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i) == -8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i) == 8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i) == 8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i) == 1.217853148905605987081057582351152052687e4924 + inf i":
+Test "Real part of: csin (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i) == -9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i) == -9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i) == 1.106698967236475180613254276996359485630e+2466 + 2.687568007603946993388538156299100955642e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i) == 3.514690655930285351254618340783294558136e-2475 + 8.297059146828716918029689466551384219370e-2476 i":
+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Real part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 355 i) == 8.140551093483276762350406321792653551513e-309 + 1.0 i":
+Test "Real part of: ctan (1 + 355 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 365 i) == 1.677892637497921890115075995898773550884e-317 + 1.0 i":
+Test "Real part of: ctan (1 + 365 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_towardzero
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_upward
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
@@ -1842,515 +1842,515 @@ ildouble: 2
ldouble: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i) == 1.0 + 8.140551093483276762350406321792653551513e-309 i":
+Test "Imaginary part of: ctanh (355 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i) == 1.0 + 1.677892637497921890115075995898773550884e-317 i":
+Test "Imaginary part of: ctanh (365 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
+Test "erfc (27.0)":
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
-Test "exp10 (4932) == 1.0e4932":
+Test "exp10 (4932)":
ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+Test "exp2 (100.5)":
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
# expm1
-Test "expm1 (-79.0) == -0.9999999999999999999999999999999999509391":
+Test "expm1 (-79.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 8
ldouble: 8
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -2359,17 +2359,17 @@ ildouble: 3
ldouble: 3
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -2378,327 +2378,327 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (10.0, -4930.0) == 1e-4930":
+Test "pow (10.0, -4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4929.0) == 1e4929":
+Test "pow (10.0, 4929.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4930.0) == 1e4930":
+Test "pow (10.0, 4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4931.0) == 1e4931":
+Test "pow (10.0, 4931.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4932.0) == 1e4932":
+Test "pow (10.0, 4932.0)":
ildouble: 1
ldouble: 1
-Test "pow (1e4932, 0.75) == 1e3699":
+Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_tonearest (3)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
+Test "tanh (-1.0)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
+Test "tanh (1.0)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
+Test "tgamma (4)":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -2707,44 +2707,44 @@ ildouble: 3
ldouble: 3
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
+Test "y1 (0.75)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-30) == -6.8356527557643159612937462812258975438856e+08":
+Test "y1 (0x1p-30)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -2753,105 +2753,105 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h b/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h
index c81067dfd7..1bdde5ace8 100644
--- a/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h
@@ -17,14 +17,16 @@
#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 << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1)
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1
+#define _FP_NANFRAC_S (_FP_QNANBIT_S - 1)
+#define _FP_NANFRAC_D (_FP_QNANBIT_D - 1)
+#define _FP_NANFRAC_Q (_FP_QNANBIT_Q - 1), -1
#define _FP_NANSIGN_S 0
#define _FP_NANSIGN_D 0
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 1
+
/* From my experiments it seems X is chosen unless one of the
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
diff --git a/ports/sysdeps/mips/soft-fp/sfp-machine.h b/ports/sysdeps/mips/soft-fp/sfp-machine.h
index 3b2a40f0e2..8ccfaa60fd 100644
--- a/ports/sysdeps/mips/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/mips/soft-fp/sfp-machine.h
@@ -14,14 +14,16 @@
#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 << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANFRAC_S (_FP_QNANBIT_S - 1)
+#define _FP_NANFRAC_D (_FP_QNANBIT_D - 1), -1
+#define _FP_NANFRAC_Q (_FP_QNANBIT_Q - 1), -1, -1, -1
#define _FP_NANSIGN_S 0
#define _FP_NANSIGN_D 0
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 1
+
/* From my experiments it seems X is chosen unless one of the
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
diff --git a/ports/sysdeps/powerpc/nofpu/libm-test-ulps b/ports/sysdeps/powerpc/nofpu/libm-test-ulps
index 652cad322c..30cd046042 100644
--- a/ports/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/ports/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -1,32 +1,32 @@
# Begin of automatic generation
# acos
-Test "acos (-0x0.ffffffff8p0) == 3.1415773948007305904329067627145550395696":
+Test "acos (-0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "acos (-0x0.ffffffp0) == 3.1412473866050770348750401337968641476999":
+Test "acos (-0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "acos (2e-17) == 1.57079632679489659923132169163975144":
+Test "acos (2e-17)":
ildouble: 1
ldouble: 1
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -35,21 +35,21 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -58,1229 +58,1229 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 2
ldouble: 2
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 2
ldouble: 2
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 2
ldouble: 2
# asin
-Test "asin (-0x0.ffffffff8p0) == -1.5707810680058339712015850710748035974710":
+Test "asin (-0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013":
+Test "asin (-0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
+Test "asin (0.75)":
ildouble: 2
ldouble: 2
-Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710":
+Test "asin (0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013":
+Test "asin (0x0.ffffffp0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cabs
-Test "cabs (0.75 + 1.25 i) == 1.45773797371132511771853821938639577":
+Test "cabs (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i":
+Test "Real part of: casin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0 - 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Real part of: catan (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Imaginary part of: cexp (500 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
+Test "Imaginary part of: clog (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Imaginary part of: clog (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i) == 1.1723955140027907954461000991619077811832e-12 + 1.5622968405332756349813737986164832897108 i":
+Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x13836d58a13448d750b4b9p-85 + 0x195ca7bc3ab4f9161edbe6p-85 i) == 2.8398125044729578740243199963484494962411e-50 + 0.9149964976334130461795060758257083099706 i":
+Test "Imaginary part of: clog (0x13836d58a13448d750b4b9p-85 + 0x195ca7bc3ab4f9161edbe6p-85 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i) == -4.7775669192897997174762089350332738583822e-50 + 0.8393953487996880419413728440067635213372 i":
+Test "Imaginary part of: clog (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 1.0168910106364605304135563536838075568606e-30 + 0.8208373755522359859870890246475340086663 i":
+Test "Imaginary part of: clog (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 6.4064442119814669184296141278612389400075e-37 + 0.9193591364645830864185131402313014890145 i":
+Test "Imaginary part of: clog (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 4.3299788920664682288477984749202524623248e-63 + 1.4746938237585656250866370987773473745867 i":
+Test "Imaginary part of: clog (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i) == -1.0480505352462576151523512837107080269981e-13 + 0.8858771987699967480545613322309315260313 i":
+Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i) == -6.2122796286154679676173624516405339768606e-30 + 1.4904138780720095276446375492434049214172 i":
+Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xf2p-10 + 0x3e3p-10 i) == 6.1988446308070710970664736815277450078106e-06 + 1.3322126499153926210226335249558203898460 i":
+Test "Imaginary part of: clog (0xf2p-10 + 0x3e3p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+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) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x13836d58a13448d750b4b9p-85 + 0x195ca7bc3ab4f9161edbe6p-85 i) == 1.2333149003324592532859843519619084433953e-50 + 0.3973779298829931059309198145608711073016 i":
+Test "Imaginary part of: clog10 (0x13836d58a13448d750b4b9p-85 + 0x195ca7bc3ab4f9161edbe6p-85 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i) == -2.0748709499710785084693619097712106753591e-50 + 0.3645447681189598740620098186365764884771 i":
+Test "Imaginary part of: clog10 (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x15d8ab6ed05ca514086ac3a1e84p-105 + 0x1761e480aa094c0b10b34b09ce9p-105 i) == 4.3548095442952115860848857519953610343042e-63 + 0.3558376234889641500775150477035448866763 i":
+Test "Real part of: clog10 (0x15d8ab6ed05ca514086ac3a1e84p-105 + 0x1761e480aa094c0b10b34b09ce9p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -5.1816837072162316773907242302011632570857e-37 + 0.5386167838952956925896424154370364458140 i":
+Test "Imaginary part of: clog10 (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i) == -4.3074341162203896332989394770760901408798e-39 + 0.5709443672155660428417571212549720987784 i":
+Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xe33f66c9542ca25cc43c867p-95 + 0x7f35a68ebd3704a43c465864p-95 i) == 1.7850272475173865337808494725293124613817e-56 + 0.6338990862456906754888183278564382516852 i":
+Test "Imaginary part of: clog10 (0xe33f66c9542ca25cc43c867p-95 + 0x7f35a68ebd3704a43c465864p-95 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_downward (9)":
ildouble: 1
ldouble: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_upward (5)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_tonearest (24)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 2
ldouble: 2
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 2
ldouble: 2
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 2
ldouble: 2
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real 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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1289,224 +1289,224 @@ ildouble: 2
ldouble: 2
# csin
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i) == 2.442109726130830256743814843868934877597e-162 + 1.011554969366634726113090867589031782487e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 2
ldouble: 2
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 13
ldouble: 13
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 6
ldouble: 6
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 10
ldouble: 10
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
@@ -1515,68 +1515,68 @@ ildouble: 1
ldouble: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 2
ldouble: 2
# ctanh_downward
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
@@ -1585,52 +1585,52 @@ ildouble: 3
ldouble: 3
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 13
ldouble: 13
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 6
ldouble: 6
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
@@ -1639,319 +1639,319 @@ ildouble: 3
ldouble: 3
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
-Test "erfc (0x1.ffff56789abcdef0123456789a8p+2) == 1.123161416304655390092138725253789378459e-29":
+Test "erfc (0x1.ffff56789abcdef0123456789a8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp
-Test "exp (0.75) == 2.11700001661267466854536981983709561":
+Test "exp (0.75)":
ildouble: 1
ldouble: 1
-Test "exp (50.0) == 5184705528587072464087.45332293348538":
+Test "exp (50.0)":
ildouble: 1
ldouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (0.75, 1.25) == 1.45773797371132511771853821938639577":
+Test "hypot (0.75, 1.25)":
ildouble: 1
ldouble: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 4
ldouble: 4
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 4
ldouble: 4
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 2
ldouble: 2
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 4
ldouble: 4
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -1960,12 +1960,12 @@ ildouble: 7
ldouble: 7
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -1974,455 +1974,455 @@ ildouble: 3
ldouble: 3
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (e) == M_LOG2El":
+Test "log2 (e)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
# pow_downward
-Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_downward (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_towardzero (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
-Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_upward (1.5, 1.03125)":
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_downward (1)":
ildouble: 4
ldouble: 4
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
+Test "sinh (0.75)":
ildouble: 1
ldouble: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_upward
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# tan
-Test "tan (-0xc.908p-4) == -0.9997603425502441410973077452249560802034":
+Test "tan (-0xc.908p-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90cp-4) == -0.9998823910588060302788513970802357770031":
+Test "tan (-0xc.90cp-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90ep-4) == -0.9999434208994808753305784795924711152508":
+Test "tan (-0xc.90ep-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90f8p-4) == -0.9999891957244072765118898375645469865764":
+Test "tan (-0xc.90f8p-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90fcp-4) == -0.9999968250656122402859679132395522927393":
+Test "tan (-0xc.90fcp-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.90fd8p-4) == -0.9999996860835706212861509874451585282616":
+Test "tan (-0xc.90fd8p-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.90fdap-4) == -0.9999999245021033010474530133665235922808":
+Test "tan (-0xc.90fdap-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.92p-4) == -1.0004928571392300571266638743539017593717":
+Test "tan (-0xc.92p-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.9p-4) == -0.9995162902115457818029468900654150261381":
+Test "tan (-0xc.9p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.908p-4) == 0.9997603425502441410973077452249560802034":
+Test "tan (0xc.908p-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90cp-4) == 0.9998823910588060302788513970802357770031":
+Test "tan (0xc.90cp-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90ep-4) == 0.9999434208994808753305784795924711152508":
+Test "tan (0xc.90ep-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90f8p-4) == 0.9999891957244072765118898375645469865764":
+Test "tan (0xc.90f8p-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90fcp-4) == 0.9999968250656122402859679132395522927393":
+Test "tan (0xc.90fcp-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.90fd8p-4) == 0.9999996860835706212861509874451585282616":
+Test "tan (0xc.90fd8p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.90fdap-4) == 0.9999999245021033010474530133665235922808":
+Test "tan (0xc.90fdap-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.92p-4) == 1.0004928571392300571266638743539017593717":
+Test "tan (0xc.92p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.9p-4) == 0.9995162902115457818029468900654150261381":
+Test "tan (0xc.9p-4)":
ildouble: 1
ldouble: 1
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_tonearest
-Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_tonearest (10)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_tonearest (4)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_tonearest (7)":
ildouble: 1
ldouble: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_towardzero (7)":
ildouble: 2
ldouble: 2
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_upward (7)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
-Test "y0 (0x1p-100) == -4.420092432563900590456563035154802121284e+1":
+Test "y0 (0x1p-100)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -2431,138 +2431,138 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (0x1p-20) == -6.6754421443450423911167962313100637952285e+05":
+Test "y1 (0x1p-20)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/powerpc/soft-fp/sfp-machine.h b/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
index 8a9afad3e6..c2a190e7ef 100644
--- a/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
@@ -22,6 +22,7 @@
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
/* Someone please check this. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
diff --git a/ports/sysdeps/tile/crti.S b/ports/sysdeps/tile/crti.S
index 9046010dc1..7e8e559b91 100644
--- a/ports/sysdeps/tile/crti.S
+++ b/ports/sysdeps/tile/crti.S
@@ -95,7 +95,7 @@ _init:
LD_PTR r0, r0
BEQZ r0, .Lno_weak_fn
jalr r0
-#elif defined(__tilegx__)
+#elif defined(__tilegx__) && !defined(NO_PLT_PCREL)
/* Since we are calling from the start of the object to the PLT,
call by loading the full address into a register. */
lnk r2
diff --git a/ports/sysdeps/tile/libm-test-ulps b/ports/sysdeps/tile/libm-test-ulps
index eddae42c76..639e8d820e 100644
--- a/ports/sysdeps/tile/libm-test-ulps
+++ b/ports/sysdeps/tile/libm-test-ulps
@@ -1,1465 +1,1450 @@
# Begin of automatic generation
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0 - 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i plus overflow exception":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i plus overflow exception":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i plus overflow exception":
-double: 1
-idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+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) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+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) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+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) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
-double: 1
-idouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i plus overflow exception":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i plus overflow exception":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# fma
-Test "fma (-0x1.fffffffffffffp-711, 0x1.fffffffffffffp-275, 0x1.fffffe00007ffp-983) == 0x1.7ffffe00007ffp-983":
+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) == 0x1.fffffffffffffp-1":
+Test "fma (0x1.0000002p+0, 0x1.ffffffcp-1, -0x1p-300)":
double: 1
idouble: 1
-Test "fma (0x1.153d650bb9f06p-907, 0x1.2d01230d48407p-125, -0x0.b278d5acfc3cp-1022) == -0x0.b22757123bbe9p-1022":
+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) == 0x0.0000010000003p-1022":
+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) == 0x1.7ff802p+13":
+Test "fma (0x1.7ff8p+13, 0x1.000002p+0, 0x1.ffffp-24)":
float: 1
ifloat: 1
-Test "fma (0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022) == 0x0.0000010000001p-1022":
+Test "fma (0x1.7fffff8p-968, 0x1p-106, 0x0.000001p-1022)":
double: 1
idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/ports/sysdeps/tile/start.S b/ports/sysdeps/tile/start.S
index 99415647c2..3e7ec5cccf 100644
--- a/ports/sysdeps/tile/start.S
+++ b/ports/sysdeps/tile/start.S
@@ -62,6 +62,13 @@
#include <sysdep.h>
#include <arch/abi.h>
+/* Just create no-ops if we don't support PC-relative PLT relocations. */
+#ifdef NO_PLT_PCREL
+# define hw2_last_plt(x) 0
+# define hw1_plt(x) 0
+# define hw0_plt(x) 0
+#endif
+
.text
.global _start
.type _start,@function
@@ -155,7 +162,11 @@ _start:
}
{
ADD_PTR r4, r4, r13
- jalr r12
+# ifdef NO_PLT_PCREL
+ j plt(__libc_start_main)
+# else
+ jr r12
+# endif
}
#else
addli r0, r13, lo16(main - .Lmy_pc)
diff --git a/ports/sysdeps/tile/tilegx/Makefile b/ports/sysdeps/tile/tilegx/Makefile
index d3a0e970a7..4281dd98fc 100644
--- a/ports/sysdeps/tile/tilegx/Makefile
+++ b/ports/sysdeps/tile/tilegx/Makefile
@@ -1,12 +1,16 @@
include $(common-objpfx)cflags-mcmodel-large.mk
+# Check for gcc to support the command-line switch, and for
+# binutils to support the hwN_plt() assembly operators and relocations.
$(common-objpfx)cflags-mcmodel-large.mk: $(common-objpfx)config.make
mcmodel=no; \
- $(CC) -S -o /dev/null -xc /dev/null -mcmodel=large && mcmodel=yes; \
+ (echo 'int main() { return getuid(); }' | \
+ $(CC) -o /dev/null -xc - -mcmodel=large -fpic) && mcmodel=yes; \
echo "cflags-mcmodel-large = $$mcmodel" > $@
-ifeq ($(subdir),csu)
ifeq (yes,$(cflags-mcmodel-large))
+
+ifeq ($(subdir),csu)
# elf-init.c is in libc_nonshared.o (the end of the shared object) but
# must reach the _init symbol at the very start of the shared object.
CFLAGS-elf-init.c += -mcmodel=large
@@ -15,4 +19,17 @@ CFLAGS-elf-init.c += -mcmodel=large
# with profiling, but calls to libc.so via the PLT at the very end.
CFLAGS-gmon-start.c += -mcmodel=large
endif
+
+else
+
+# Don't try to compile assembly code with hwN_plt() directives if the
+# toolchain doesn't support -mcmodel=large.
+ifeq ($(subdir),csu)
+CPPFLAGS-start.S += -DNO_PLT_PCREL
+CPPFLAGS-crti.S += -DNO_PLT_PCREL
+endif
+ifeq ($(subdir),nptl)
+CPPFLAGS-pt-crti.S += -DNO_PLT_PCREL
+endif
+
endif
diff --git a/ports/sysdeps/tile/tilegx/memusage.h b/ports/sysdeps/tile/tilegx/memusage.h
index 863b229f86..a81916c219 100644
--- a/ports/sysdeps/tile/tilegx/memusage.h
+++ b/ports/sysdeps/tile/tilegx/memusage.h
@@ -16,6 +16,7 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
#include <arch/spr_def.h>
#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
diff --git a/ports/sysdeps/tile/tilegx/string-endian.h b/ports/sysdeps/tile/tilegx/string-endian.h
index ee9bd1620a..69ca5fedf2 100644
--- a/ports/sysdeps/tile/tilegx/string-endian.h
+++ b/ports/sysdeps/tile/tilegx/string-endian.h
@@ -22,6 +22,8 @@
Also, specify how to count "first" and "last" bits
when the bits have been read as a word. */
+#include <stdint.h>
+
#ifndef __BIG_ENDIAN__
#define MASK(x) (__insn_shl(1ULL, (x << 3)) - 1)
#define NULMASK(x) ((2ULL << x) - 1)
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
index 999ecf21ce..b359e6e8a3 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -65,9 +65,10 @@ ENTRY(__clone)
svc 0x0
cmp x0, #0
beq 2f
- blt C_SYMBOL_NAME(__syscall_error)
+ blt 3f
RET
1: mov x0, #-EINVAL
+3:
b syscall_error
2:
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
index b089bb55c5..2e08cf708c 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -24,9 +24,7 @@ ENTRY(__ioctl)
sxtw x0, w0
svc #0x0
cmn x0, #0x1, lsl #12
- b.hi C_SYMBOL_NAME(__syscall_error)
- ret
-
+ PSEUDO_RET
PSEUDO_END (__ioctl)
weak_alias (__ioctl, ioctl)
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
index 14b7edfe2e..0f1cfc8702 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
@@ -395,3 +395,8 @@ GLIBC_2.17
yn F
ynf F
ynl F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
index 12778856fa..49ca826479 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
@@ -89,6 +89,8 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
+ int si_trapno; /* TRAP # which caused the signal. */
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -121,6 +123,8 @@ typedef struct
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
+# define si_trapno _sifields._sigfault.si_trapno
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -211,8 +215,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
index 9c4170dbe4..400a851d4d 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
@@ -391,6 +391,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
feclearexcept F
diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h b/ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h
index c76b8f3c2d..ae486e1f21 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h
@@ -16,6 +16,8 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
/* If the compiler doesn't provide a primitive, we'll use this macro
to get assistance from the kernel. */
#ifdef __thumb2__
diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
index cee34728d8..614e5ebe5c 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
@@ -54,6 +54,10 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
GLIBC_2.4
GLIBC_2.4 A
_LIB_VERSION D 0x4
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
index 7887b45540..5fa97b5d59 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
@@ -94,6 +94,7 @@ typedef struct siginfo
int _si_imm;
unsigned int _si_flags;
unsigned long int _si_isr;
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -118,6 +119,7 @@ typedef struct siginfo
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
@@ -233,8 +235,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
index 1fb51a118d..db8b279110 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
@@ -18,6 +18,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
_LIB_VERSION D 0x4
diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
index cee34728d8..614e5ebe5c 100644
--- a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
@@ -54,6 +54,10 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
GLIBC_2.4
GLIBC_2.4 A
_LIB_VERSION D 0x4
diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
index 35fc1e3d72..0beecb7246 100644
--- a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
@@ -396,6 +396,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
feclearexcept F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/Makefile b/ports/sysdeps/unix/sysv/linux/microblaze/Makefile
new file mode 100644
index 0000000000..614553204f
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),resource)
+sysdep_routines += backtrace_linux
+endif
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/Versions b/ports/sysdeps/unix/sysv/linux/microblaze/Versions
new file mode 100644
index 0000000000..aa48a3c155
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.18 {
+ fallocate64;
+ }
+}
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/ports/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
new file mode 100644
index 0000000000..ff3fda41bf
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
@@ -0,0 +1,29 @@
+/* Copyright (C) 1997-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 <sysdep.h>
+
+ .text
+ENTRY (__revisit_longjmp_chk)
+ rtsd r15,0
+ nop
+PSEUDO_END (__revisit_longjmp_chk)
+ENTRY (____longjmp_chk)
+ rtsd r15,0
+ nop
+PSEUDO_END (____longjmp_chk)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
new file mode 100644
index 0000000000..1a7bd42635
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
@@ -0,0 +1,86 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-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 _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define O_CREAT 00000100 /* not fcntl. */
+#define O_TRUNC 00001000 /* not fcntl. */
+#define O_EXCL 00000200 /* not fcntl. */
+#define O_NOCTTY 00000400 /* not fcntl. */
+
+#define O_NONBLOCK 00004000
+#define O_APPEND 00002000
+#define O_SYNC 04000000
+
+#define __O_DIRECTORY 00200000 /* Must be a directory. */
+#define __O_NOFOLLOW 00400000 /* Do not follow links. */
+#define __O_CLOEXEC 02000000 /* Set close_on_exec. */
+
+#define __O_DIRECT 00040000 /* Direct disk access. */
+#define __O_NOATIME 01000000 /* Do not set atime. */
+#define __O_PATH 010000000 /* Resolve pathname but do not open file. */
+
+/* Not necessary, files are always with 64bit off_t. */
+#define __O_LARGEFILE 00100000
+
+#define __O_DSYNC 00010000 /* Synchronize data. */
+
+#define F_GETLK 5 /* Get record locking info. */
+#define F_SETLK 6 /* Set record locking info (non-blocking). */
+#define F_SETLKW 7 /* Set record locking info (blocking). */
+#define F_GETLK64 12 /* Get record locking info. */
+#define F_SETLK64 13 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 14 /* Set record locking info (blocking). */
+
+#define __F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
+#define __F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
+#define F_RDLCK 0 /* Read lock. */
+#define F_WRLCK 1 /* Write lock. */
+#define F_UNLCK 2 /* Remove lock. */
+
+/* for old implementation of bsd flock (). */
+#define F_EXLCK 4 /* or 3. */
+#define F_SHLCK 8 /* or 4. */
+
+/* We don't need to support __USE_FILE_OFFSET64. */
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/bits/mman.h b/ports/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
new file mode 100644
index 0000000000..5dd530203b
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
@@ -0,0 +1,42 @@
+/* Definitions for POSIX memory map interface. Linux/MicroBlaze version.
+
+ Copyright (C) 1997-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 _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+#ifdef __USE_MISC
+/* These are Linux-specific. */
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY. */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/bits/stat.h b/ports/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
new file mode 100644
index 0000000000..0fa0edb5b0
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
@@ -0,0 +1,203 @@
+/* Copyright (C) 1997-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/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+#ifndef __USE_FILE_OFFSET64
+struct stat
+{
+ __dev_t st_dev; /* Device. */
+ __ino_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned long __pad2;
+ __off_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_MISC
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+#else /* __USE_FILE_OFFSET64 */
+/* MS: If __USE_FILE_OFFSET64 is setup then struct stat should match stat64
+ * structure. Glibc has no type __dev64_t that's why I had to use standard
+ * type for st_dev and st_rdev. Several architectures uses pads after st_dev
+ * but this approach covers BIG and LITTLE endian. I think it is better to
+ * create one ifdef to separate stats structures. */
+struct stat
+{
+ unsigned long long st_dev; /* Device. */
+ __ino64_t st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_MISC
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+#endif /* __USE_FILE_OFFSET64 */
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+{
+ unsigned long long st_dev; /* Device. */
+ __ino64_t st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_MISC
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h. */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/brk.c b/ports/sysdeps/unix/sysv/linux/microblaze/brk.c
new file mode 100644
index 0000000000..9f19fb2adc
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/brk.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2011-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 <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux ELF dynamic
+ linker. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ INTERNAL_SYSCALL_DECL (err);
+
+ __curbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ if (__curbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/clone.S b/ports/sysdeps/unix/sysv/linux/microblaze/clone.S
new file mode 100644
index 0000000000..c13091c052
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/clone.S
@@ -0,0 +1,72 @@
+/* Copyright (C) 1996-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/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* int clone (int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid);
+
+ INCOMING: r5 (fn), r6 (child_stack), r7 (flags), r8 (arg), r9 (ptid)
+ r10 (tls), 28 (r1) ctid
+
+ OUTGOING:
+
+ linux: arch/microblaze/entry.S: sys_clone expects
+ r5 (flags) r6 (child stack) r7 (stack_size) r8 (ptid)r9 (ctid)
+ r10 (tls)
+*/
+
+ .text
+ENTRY (__clone)
+ addik r3,r0,-EINVAL
+ beqi r5,SYSCALL_ERROR_LABEL ; // Invalid func
+ beqi r6,SYSCALL_ERROR_LABEL ; // Invalid stack
+ addik r6,r6,-8
+ swi r5,r6,0 ; // Push fn onto child's stack
+ swi r8,r6,4 ; // Push arg for child
+ addk r5,r0,r7 ; // flags for clone() syscall
+ addk r7,r0,r0
+ addk r8,r0,r9 ; // parent tid ptr
+ lwi r9,r1,28 ; // child tid ptr
+ addik r12,r0,SYS_ify(clone)
+ brki r14,8
+ addk r0,r0,r0
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ beqi r3,L(thread_start)
+ rtsd r15,8
+ nop
+
+L(thread_start):
+ lwi r12,r1,0 ; // fn
+ lwi r5,r1,4 ; // arg
+ brald r15,r12
+ nop
+ addk r5,r0,r3
+ addik r12,r0,SYS_ify(exit)
+ brki r14,8
+ nop
+PSEUDO_END(__clone)
+
+weak_alias (__clone,clone)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/configure b/ports/sysdeps/unix/sysv/linux/microblaze/configure
new file mode 100644
index 0000000000..fa7da73931
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.in by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/microblaze.
+
+arch_minimum_kernel=2.6.30
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/configure.in b/ports/sysdeps/unix/sysv/linux/microblaze/configure.in
new file mode 100644
index 0000000000..f283d37702
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/configure.in
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/microblaze.
+
+arch_minimum_kernel=2.6.30
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c b/ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c b/ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/fxstatat.c b/ports/sysdeps/unix/sysv/linux/microblaze/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/getsysstats.c b/ports/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
new file mode 100644
index 0000000000..7baa13d732
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1997-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/>. */
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Read all lines and count the lines starting with the string \
+ "CPU-Family:". We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (strncmp (l, "CPU-Family:", 11) == 0) \
+ ++(RESULT); \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/ports/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
new file mode 100644
index 0000000000..d67d7fb694
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2011-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/>. */
+
+
+/* MicroBlaze glibc support starts with 2.6.30, guaranteeing many kernel features. */
+#define __ASSUME_UTIMES 1
+#define __ASSUME_O_CLOEXEC 1
+#define __ASSUME_SOCK_CLOEXEC 1
+#define __ASSUME_IN_NONBLOCK 1
+#define __ASSUME_PIPE2 1
+#define __ASSUME_EVENTFD2 1
+#define __ASSUME_SIGNALFD4 1
+#define __ASSUME_ACCEPT4 1
+#define __ASSUME_DUP3 1
+
+#include_next <kernel-features.h>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/ports/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
new file mode 100644
index 0000000000..2823856e4d
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
@@ -0,0 +1,49 @@
+/* Definition of `struct stat' used in the kernel
+ 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/>. */
+
+struct kernel_stat
+{
+ unsigned long st_dev; /* Device. */
+ unsigned long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long st_rdev; /* Device number, if device. */
+ unsigned long __pad2;
+#define _HAVE_STAT___PAD2
+#define _HAVE_STAT64___PAD2
+ long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+#define _HAVE_STAT___PAD3
+#define _HAVE_STAT64___PAD3
+ long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64_NSEC
+ unsigned int __unused4;
+#define _HAVE_STAT___UNUSED4
+#define _HAVE_STAT64___UNUSED4
+ unsigned int __unused5;
+#define _HAVE_STAT___UNUSED5
+#define _HAVE_STAT64___UNUSED5
+};
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c b/ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/mmap.S b/ports/sysdeps/unix/sysv/linux/microblaze/mmap.S
new file mode 100644
index 0000000000..2b671897ee
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/mmap.S
@@ -0,0 +1,50 @@
+/* Copyright (C) 2009-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 <sysdep.h>
+
+#define EINVAL 22
+ .text
+ENTRY (__mmap)
+ addik r3,r0,-EINVAL
+ andi r4,r10,0xfff
+ bnei r4,L(skip)
+ addik r12,r0,SYS_ify(mmap2)
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10
+ sra r10,r10 ; /* mmap2 takes the offset in pages. */
+ brki r14,8
+ nop
+L(skip):
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ nop
+PSEUDO_END (__mmap)
+
+weak_alias (__mmap, mmap)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c b/ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c
new file mode 100644
index 0000000000..38aedadf49
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/msgctl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/msgctl.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h
new file mode 100644
index 0000000000..bb914a097a
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h
@@ -0,0 +1,176 @@
+/* Copyright (C) 2002-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 _BITS_PTHREADTYPES_H
+# define _BITS_PTHREADTYPES_H 1
+
+# include <endian.h>
+
+# define __SIZEOF_PTHREAD_ATTR_T 36
+# define __SIZEOF_PTHREAD_MUTEX_T 24
+# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
+# define __SIZEOF_PTHREAD_COND_T 48
+# define __SIZEOF_PTHREAD_COND_COMPAT_T 12
+# define __SIZEOF_PTHREAD_CONDATTR_T 4
+# define __SIZEOF_PTHREAD_RWLOCK_T 32
+# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
+# define __SIZEOF_PTHREAD_BARRIER_T 20
+# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
+
+
+/* Thread identifiers. The structure of the attribute type is not
+ exposed on purpose. */
+typedef unsigned long int pthread_t;
+
+union pthread_attr_t
+{
+ char __size[__SIZEOF_PTHREAD_ATTR_T];
+ long int __align;
+};
+
+# ifndef __have_pthread_attr_t
+typedef union pthread_attr_t pthread_attr_t;
+# define __have_pthread_attr_t 1
+# endif
+
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+} __pthread_slist_t;
+
+/* Data structures for mutex handling. The structure of the attribute
+ type is not exposed on purpose. */
+typedef union
+{
+ struct __pthread_mutex_s
+ {
+ int __lock;
+ unsigned int __count;
+ int __owner;
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility. */
+ int __kind;
+ unsigned int __nusers;
+ __extension__ union
+ {
+ int __spins;
+ __pthread_slist_t __list;
+ };
+ } __data;
+ char __size[__SIZEOF_PTHREAD_MUTEX_T];
+ long int __align;
+} pthread_mutex_t;
+
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+ int __align;
+} pthread_mutexattr_t;
+
+/* Data structure for conditional variable handling. The structure of
+ the attribute type is not exposed on purpose. */
+typedef union
+{
+ struct
+ {
+ int __lock;
+ unsigned int __futex;
+ __extension__ unsigned long long int __total_seq;
+ __extension__ unsigned long long int __wakeup_seq;
+ __extension__ unsigned long long int __woken_seq;
+ void *__mutex;
+ unsigned int __nwaiters;
+ unsigned int __broadcast_seq;
+ } __data;
+ char __size[__SIZEOF_PTHREAD_COND_T];
+ __extension__ long long int __align;
+} pthread_cond_t;
+
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_CONDATTR_T];
+ int __align;
+} pthread_condattr_t;
+
+/* Keys for thread-specific data. */
+typedef unsigned int pthread_key_t;
+
+/* Once-only execution. */
+typedef int pthread_once_t;
+
+# if defined __USE_UNIX98 || defined __USE_XOPEN2K
+/* Data structure for read-write lock variable handling. The
+ structure of the attribute type is not exposed on purpose. */
+typedef union
+{
+ struct
+ {
+ int __lock;
+ unsigned int __nr_readers;
+ unsigned int __readers_wakeup;
+ unsigned int __writer_wakeup;
+ unsigned int __nr_readers_queued;
+ unsigned int __nr_writers_queued;
+# if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned char __pad1;
+ unsigned char __pad2;
+ unsigned char __shared;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+# else
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ unsigned char __shared;
+ unsigned char __pad1;
+ unsigned char __pad2;
+# endif
+ int __writer;
+ } __data;
+ char __size[__SIZEOF_PTHREAD_RWLOCK_T];
+ long int __align;
+} pthread_rwlock_t;
+
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
+ long int __align;
+} pthread_rwlockattr_t;
+# endif
+
+# ifdef __USE_XOPEN2K
+/* POSIX spinlock data type. */
+typedef volatile int pthread_spinlock_t;
+
+/* POSIX barriers data type. The structure of the type is
+ deliberately not exposed. */
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_BARRIER_T];
+ long int __align;
+} pthread_barrier_t;
+
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
+ int __align;
+} pthread_barrierattr_t;
+# endif
+
+#endif /* bits/pthreadtypes.h. */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h
new file mode 100644
index 0000000000..25bf2d293c
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/bits/semaphore.h
@@ -0,0 +1,32 @@
+/* Copyright (C) 2002-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 _SEMAPHORE_H
+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
+#endif
+
+#define __SIZEOF_SEM_T 16
+
+/* Value returned if `sem_open' failed. */
+#define SEM_FAILED ((sem_t *) 0)
+
+typedef union
+{
+ char __size[__SIZEOF_SEM_T];
+ long int __align;
+} sem_t;
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c
new file mode 100644
index 0000000000..2e645f35ee
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/createthread.c
@@ -0,0 +1,23 @@
+/* Copyright (C) 2005-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/>. */
+
+/* Value passed to 'clone' for initialization of the thread register. */
+#define TLS_VALUE (pd + 1)
+
+/* Get the real implementation. */
+#include <nptl/sysdeps/pthread/createthread.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/fork.c b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/fork.c
new file mode 100644
index 0000000000..e8b26da9e3
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/fork.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-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 <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, NULL, &THREAD_SELF->tid)
+
+#include <nptl/sysdeps/unix/sysv/linux/fork.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist
new file mode 100644
index 0000000000..d4cace24eb
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/ld.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ __libc_memalign F
+ __libc_stack_end D 0x4
+ __stack_chk_guard D 0x4
+ __tls_get_addr F
+ _dl_mcount F
+ _r_debug D 0x14
+ calloc F
+ free F
+ malloc F
+ realloc F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0ca5b6f053
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libBrokenLocale.abilist
@@ -0,0 +1,3 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ __ctype_get_mb_cur_max F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist
new file mode 100644
index 0000000000..c25a1ab9d0
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libanl.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ gai_cancel F
+ gai_error F
+ gai_suspend F
+ getaddrinfo_a F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist
new file mode 100644
index 0000000000..6e8d993ac6
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libc.abilist
@@ -0,0 +1,2082 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ _Exit F
+ _IO_2_1_stderr_ D 0x98
+ _IO_2_1_stdin_ D 0x98
+ _IO_2_1_stdout_ D 0x98
+ _IO_adjust_column F
+ _IO_adjust_wcolumn F
+ _IO_default_doallocate F
+ _IO_default_finish F
+ _IO_default_pbackfail F
+ _IO_default_uflow F
+ _IO_default_xsgetn F
+ _IO_default_xsputn F
+ _IO_do_write F
+ _IO_doallocbuf F
+ _IO_fclose F
+ _IO_fdopen F
+ _IO_feof F
+ _IO_ferror F
+ _IO_fflush F
+ _IO_fgetpos F
+ _IO_fgetpos64 F
+ _IO_fgets F
+ _IO_file_attach F
+ _IO_file_close F
+ _IO_file_close_it F
+ _IO_file_doallocate F
+ _IO_file_finish F
+ _IO_file_fopen F
+ _IO_file_init F
+ _IO_file_jumps D 0x54
+ _IO_file_open F
+ _IO_file_overflow F
+ _IO_file_read F
+ _IO_file_seek F
+ _IO_file_seekoff F
+ _IO_file_setbuf F
+ _IO_file_stat F
+ _IO_file_sync F
+ _IO_file_underflow F
+ _IO_file_write F
+ _IO_file_xsputn F
+ _IO_flockfile F
+ _IO_flush_all F
+ _IO_flush_all_linebuffered F
+ _IO_fopen F
+ _IO_fprintf F
+ _IO_fputs F
+ _IO_fread F
+ _IO_free_backup_area F
+ _IO_free_wbackup_area F
+ _IO_fsetpos F
+ _IO_fsetpos64 F
+ _IO_ftell F
+ _IO_ftrylockfile F
+ _IO_funlockfile F
+ _IO_fwrite F
+ _IO_getc F
+ _IO_getline F
+ _IO_getline_info F
+ _IO_gets F
+ _IO_init F
+ _IO_init_marker F
+ _IO_init_wmarker F
+ _IO_iter_begin F
+ _IO_iter_end F
+ _IO_iter_file F
+ _IO_iter_next F
+ _IO_least_wmarker F
+ _IO_link_in F
+ _IO_list_all D 0x4
+ _IO_list_lock F
+ _IO_list_resetlock F
+ _IO_list_unlock F
+ _IO_marker_delta F
+ _IO_marker_difference F
+ _IO_padn F
+ _IO_peekc_locked F
+ _IO_popen F
+ _IO_printf F
+ _IO_proc_close F
+ _IO_proc_open F
+ _IO_putc F
+ _IO_puts F
+ _IO_remove_marker F
+ _IO_seekmark F
+ _IO_seekoff F
+ _IO_seekpos F
+ _IO_seekwmark F
+ _IO_setb F
+ _IO_setbuffer F
+ _IO_setvbuf F
+ _IO_sgetn F
+ _IO_sprintf F
+ _IO_sputbackc F
+ _IO_sputbackwc F
+ _IO_sscanf F
+ _IO_str_init_readonly F
+ _IO_str_init_static F
+ _IO_str_overflow F
+ _IO_str_pbackfail F
+ _IO_str_seekoff F
+ _IO_str_underflow F
+ _IO_sungetc F
+ _IO_sungetwc F
+ _IO_switch_to_get_mode F
+ _IO_switch_to_main_wget_area F
+ _IO_switch_to_wbackup_area F
+ _IO_switch_to_wget_mode F
+ _IO_un_link F
+ _IO_ungetc F
+ _IO_unsave_markers F
+ _IO_unsave_wmarkers F
+ _IO_vfprintf F
+ _IO_vfscanf F
+ _IO_vsprintf F
+ _IO_wdefault_doallocate F
+ _IO_wdefault_finish F
+ _IO_wdefault_pbackfail F
+ _IO_wdefault_uflow F
+ _IO_wdefault_xsgetn F
+ _IO_wdefault_xsputn F
+ _IO_wdo_write F
+ _IO_wdoallocbuf F
+ _IO_wfile_jumps D 0x54
+ _IO_wfile_overflow F
+ _IO_wfile_seekoff F
+ _IO_wfile_sync F
+ _IO_wfile_underflow F
+ _IO_wfile_xsputn F
+ _IO_wmarker_delta F
+ _IO_wsetb F
+ ___brk_addr D 0x4
+ __adjtimex F
+ __after_morecore_hook D 0x4
+ __argz_count F
+ __argz_next F
+ __argz_stringify F
+ __asprintf F
+ __asprintf_chk F
+ __assert F
+ __assert_fail F
+ __assert_perror_fail F
+ __backtrace F
+ __backtrace_symbols F
+ __backtrace_symbols_fd F
+ __bsd_getpgrp F
+ __bzero F
+ __check_rhosts_file D 0x4
+ __chk_fail F
+ __clone F
+ __close F
+ __cmsg_nxthdr F
+ __confstr_chk F
+ __connect F
+ __ctype_b_loc F
+ __ctype_get_mb_cur_max F
+ __ctype_tolower_loc F
+ __ctype_toupper_loc F
+ __curbrk D 0x4
+ __cxa_at_quick_exit F
+ __cxa_atexit F
+ __cxa_finalize F
+ __cxa_thread_atexit_impl F
+ __cyg_profile_func_enter F
+ __cyg_profile_func_exit F
+ __daylight D 0x4
+ __dcgettext F
+ __default_morecore F
+ __dgettext F
+ __dprintf_chk F
+ __dup2 F
+ __duplocale F
+ __endmntent F
+ __environ D 0x4
+ __errno_location F
+ __fbufsize F
+ __fcntl F
+ __fdelt_chk F
+ __fdelt_warn F
+ __ffs F
+ __fgets_chk F
+ __fgets_unlocked_chk F
+ __fgetws_chk F
+ __fgetws_unlocked_chk F
+ __finite F
+ __finitef F
+ __finitel F
+ __flbf F
+ __fork F
+ __fpending F
+ __fprintf_chk F
+ __fpu_control D 0x4
+ __fpurge F
+ __fread_chk F
+ __fread_unlocked_chk F
+ __freadable F
+ __freading F
+ __free_hook D 0x4
+ __freelocale F
+ __fsetlocking F
+ __fwprintf_chk F
+ __fwritable F
+ __fwriting F
+ __fxstat F
+ __fxstat64 F
+ __fxstatat F
+ __fxstatat64 F
+ __getauxval F
+ __getcwd_chk F
+ __getdelim F
+ __getdomainname_chk F
+ __getgroups_chk F
+ __gethostname_chk F
+ __getlogin_r_chk F
+ __getmntent_r F
+ __getpagesize F
+ __getpgid F
+ __getpid F
+ __gets_chk F
+ __gettimeofday F
+ __getwd_chk F
+ __gmtime_r F
+ __h_errno_location F
+ __isalnum_l F
+ __isalpha_l F
+ __isascii_l F
+ __isblank_l F
+ __iscntrl_l F
+ __isctype F
+ __isdigit_l F
+ __isgraph_l F
+ __isinf F
+ __isinff F
+ __isinfl F
+ __islower_l F
+ __isnan F
+ __isnanf F
+ __isnanl F
+ __isoc99_fscanf F
+ __isoc99_fwscanf F
+ __isoc99_scanf F
+ __isoc99_sscanf F
+ __isoc99_swscanf F
+ __isoc99_vfscanf F
+ __isoc99_vfwscanf F
+ __isoc99_vscanf F
+ __isoc99_vsscanf F
+ __isoc99_vswscanf F
+ __isoc99_vwscanf F
+ __isoc99_wscanf F
+ __isprint_l F
+ __ispunct_l F
+ __isspace_l F
+ __isupper_l F
+ __iswalnum_l F
+ __iswalpha_l F
+ __iswblank_l F
+ __iswcntrl_l F
+ __iswctype F
+ __iswctype_l F
+ __iswdigit_l F
+ __iswgraph_l F
+ __iswlower_l F
+ __iswprint_l F
+ __iswpunct_l F
+ __iswspace_l F
+ __iswupper_l F
+ __iswxdigit_l F
+ __isxdigit_l F
+ __ivaliduser F
+ __key_decryptsession_pk_LOCAL D 0x4
+ __key_encryptsession_pk_LOCAL D 0x4
+ __key_gendes_LOCAL D 0x4
+ __libc_allocate_rtsig F
+ __libc_calloc F
+ __libc_current_sigrtmax F
+ __libc_current_sigrtmin F
+ __libc_free F
+ __libc_freeres F
+ __libc_init_first F
+ __libc_mallinfo F
+ __libc_malloc F
+ __libc_mallopt F
+ __libc_memalign F
+ __libc_pvalloc F
+ __libc_realloc F
+ __libc_sa_len F
+ __libc_start_main F
+ __libc_valloc F
+ __longjmp_chk F
+ __lseek F
+ __lxstat F
+ __lxstat64 F
+ __malloc_hook D 0x4
+ __malloc_initialize_hook D 0x4
+ __mbrlen F
+ __mbrtowc F
+ __mbsnrtowcs_chk F
+ __mbsrtowcs_chk F
+ __mbstowcs_chk F
+ __memalign_hook D 0x4
+ __memcpy_chk F
+ __memmove_chk F
+ __mempcpy F
+ __mempcpy_chk F
+ __mempcpy_small F
+ __memset_chk F
+ __monstartup F
+ __morecore D 0x4
+ __nanosleep F
+ __newlocale F
+ __nl_langinfo_l F
+ __nss_configure_lookup F
+ __nss_database_lookup F
+ __nss_group_lookup F
+ __nss_hostname_digits_dots F
+ __nss_hosts_lookup F
+ __nss_next F
+ __nss_passwd_lookup F
+ __obstack_printf_chk F
+ __obstack_vprintf_chk F
+ __open F
+ __open64 F
+ __open64_2 F
+ __open_2 F
+ __openat64_2 F
+ __openat_2 F
+ __overflow F
+ __pipe F
+ __poll F
+ __poll_chk F
+ __posix_getopt F
+ __ppoll_chk F
+ __pread64 F
+ __pread64_chk F
+ __pread_chk F
+ __printf_chk F
+ __printf_fp F
+ __profile_frequency F
+ __progname D 0x4
+ __progname_full D 0x4
+ __ptsname_r_chk F
+ __pwrite64 F
+ __rawmemchr F
+ __rcmd_errstr D 0x4
+ __read F
+ __read_chk F
+ __readlink_chk F
+ __readlinkat_chk F
+ __realloc_hook D 0x4
+ __realpath_chk F
+ __recv_chk F
+ __recvfrom_chk F
+ __register_atfork F
+ __res_init F
+ __res_nclose F
+ __res_ninit F
+ __res_randomid F
+ __res_state F
+ __rpc_thread_createerr F
+ __rpc_thread_svc_fdset F
+ __rpc_thread_svc_max_pollfd F
+ __rpc_thread_svc_pollfd F
+ __sbrk F
+ __sched_cpualloc F
+ __sched_cpucount F
+ __sched_cpufree F
+ __sched_get_priority_max F
+ __sched_get_priority_min F
+ __sched_getparam F
+ __sched_getscheduler F
+ __sched_setscheduler F
+ __sched_yield F
+ __select F
+ __send F
+ __setmntent F
+ __setpgid F
+ __sigaction F
+ __sigaddset F
+ __sigdelset F
+ __sigismember F
+ __signbit F
+ __signbitf F
+ __sigpause F
+ __sigsetjmp F
+ __sigsuspend F
+ __snprintf_chk F
+ __sprintf_chk F
+ __stack_chk_fail F
+ __statfs F
+ __stpcpy F
+ __stpcpy_chk F
+ __stpcpy_small F
+ __stpncpy F
+ __stpncpy_chk F
+ __strcasecmp F
+ __strcasecmp_l F
+ __strcasestr F
+ __strcat_chk F
+ __strcoll_l F
+ __strcpy_chk F
+ __strcpy_small F
+ __strcspn_c1 F
+ __strcspn_c2 F
+ __strcspn_c3 F
+ __strdup F
+ __strerror_r F
+ __strfmon_l F
+ __strftime_l F
+ __strncasecmp_l F
+ __strncat_chk F
+ __strncpy_chk F
+ __strndup F
+ __strpbrk_c2 F
+ __strpbrk_c3 F
+ __strsep_1c F
+ __strsep_2c F
+ __strsep_3c F
+ __strsep_g F
+ __strspn_c1 F
+ __strspn_c2 F
+ __strspn_c3 F
+ __strtod_internal F
+ __strtod_l F
+ __strtof_internal F
+ __strtof_l F
+ __strtok_r F
+ __strtok_r_1c F
+ __strtol_internal F
+ __strtol_l F
+ __strtold_internal F
+ __strtold_l F
+ __strtoll_internal F
+ __strtoll_l F
+ __strtoul_internal F
+ __strtoul_l F
+ __strtoull_internal F
+ __strtoull_l F
+ __strverscmp F
+ __strxfrm_l F
+ __swprintf_chk F
+ __sysconf F
+ __sysctl F
+ __syslog_chk F
+ __sysv_signal F
+ __timezone D 0x4
+ __toascii_l F
+ __tolower_l F
+ __toupper_l F
+ __towctrans F
+ __towctrans_l F
+ __towlower_l F
+ __towupper_l F
+ __ttyname_r_chk F
+ __tzname D 0x8
+ __uflow F
+ __underflow F
+ __uselocale F
+ __vasprintf_chk F
+ __vdprintf_chk F
+ __vfork F
+ __vfprintf_chk F
+ __vfscanf F
+ __vfwprintf_chk F
+ __vprintf_chk F
+ __vsnprintf F
+ __vsnprintf_chk F
+ __vsprintf_chk F
+ __vsscanf F
+ __vswprintf_chk F
+ __vsyslog_chk F
+ __vwprintf_chk F
+ __wait F
+ __waitpid F
+ __wcpcpy_chk F
+ __wcpncpy_chk F
+ __wcrtomb_chk F
+ __wcscasecmp_l F
+ __wcscat_chk F
+ __wcscoll_l F
+ __wcscpy_chk F
+ __wcsftime_l F
+ __wcsncasecmp_l F
+ __wcsncat_chk F
+ __wcsncpy_chk F
+ __wcsnrtombs_chk F
+ __wcsrtombs_chk F
+ __wcstod_internal F
+ __wcstod_l F
+ __wcstof_internal F
+ __wcstof_l F
+ __wcstol_internal F
+ __wcstol_l F
+ __wcstold_internal F
+ __wcstold_l F
+ __wcstoll_internal F
+ __wcstoll_l F
+ __wcstombs_chk F
+ __wcstoul_internal F
+ __wcstoul_l F
+ __wcstoull_internal F
+ __wcstoull_l F
+ __wcsxfrm_l F
+ __wctomb_chk F
+ __wctrans_l F
+ __wctype_l F
+ __wmemcpy_chk F
+ __wmemmove_chk F
+ __wmempcpy_chk F
+ __wmemset_chk F
+ __woverflow F
+ __wprintf_chk F
+ __write F
+ __wuflow F
+ __wunderflow F
+ __xmknod F
+ __xmknodat F
+ __xpg_basename F
+ __xpg_sigpause F
+ __xpg_strerror_r F
+ __xstat F
+ __xstat64 F
+ _authenticate F
+ _dl_mcount_wrapper F
+ _dl_mcount_wrapper_check F
+ _environ D 0x4
+ _exit F
+ _flushlbf F
+ _libc_intl_domainname D 0x5
+ _longjmp F
+ _mcleanup F
+ _mcount F
+ _nl_default_dirname D 0x12
+ _nl_domain_bindings D 0x4
+ _nl_msg_cat_cntr D 0x4
+ _null_auth D 0xc
+ _obstack_allocated_p F
+ _obstack_begin F
+ _obstack_begin_1 F
+ _obstack_free F
+ _obstack_memory_used F
+ _obstack_newchunk F
+ _res D 0x200
+ _res_hconf D 0x30
+ _rpc_dtablesize F
+ _seterr_reply F
+ _setjmp F
+ _sys_errlist D 0x21c
+ _sys_nerr D 0x4
+ _sys_siglist D 0x104
+ _tolower F
+ _toupper F
+ a64l F
+ abort F
+ abs F
+ accept F
+ accept4 F
+ access F
+ acct F
+ addmntent F
+ addseverity F
+ adjtime F
+ adjtimex F
+ advance F
+ alarm F
+ aligned_alloc F
+ alphasort F
+ alphasort64 F
+ argp_err_exit_status D 0x4
+ argp_error F
+ argp_failure F
+ argp_help F
+ argp_parse F
+ argp_program_bug_address D 0x4
+ argp_program_version D 0x4
+ argp_program_version_hook D 0x4
+ argp_state_help F
+ argp_usage F
+ argz_add F
+ argz_add_sep F
+ argz_append F
+ argz_count F
+ argz_create F
+ argz_create_sep F
+ argz_delete F
+ argz_extract F
+ argz_insert F
+ argz_next F
+ argz_replace F
+ argz_stringify F
+ asctime F
+ asctime_r F
+ asprintf F
+ atof F
+ atoi F
+ atol F
+ atoll F
+ authdes_create F
+ authdes_getucred F
+ authdes_pk_create F
+ authnone_create F
+ authunix_create F
+ authunix_create_default F
+ backtrace F
+ backtrace_symbols F
+ backtrace_symbols_fd F
+ basename F
+ bcmp F
+ bcopy F
+ bdflush F
+ bind F
+ bind_textdomain_codeset F
+ bindresvport F
+ bindtextdomain F
+ brk F
+ bsd_signal F
+ bsearch F
+ btowc F
+ bzero F
+ c16rtomb F
+ c32rtomb F
+ calloc F
+ callrpc F
+ canonicalize_file_name F
+ capget F
+ capset F
+ catclose F
+ catgets F
+ catopen F
+ cbc_crypt F
+ cfgetispeed F
+ cfgetospeed F
+ cfmakeraw F
+ cfree F
+ cfsetispeed F
+ cfsetospeed F
+ cfsetspeed F
+ chdir F
+ chflags F
+ chmod F
+ chown F
+ chroot F
+ clearenv F
+ clearerr F
+ clearerr_unlocked F
+ clnt_broadcast F
+ clnt_create F
+ clnt_pcreateerror F
+ clnt_perrno F
+ clnt_perror F
+ clnt_spcreateerror F
+ clnt_sperrno F
+ clnt_sperror F
+ clntraw_create F
+ clnttcp_create F
+ clntudp_bufcreate F
+ clntudp_create F
+ clntunix_create F
+ clock F
+ clock_adjtime F
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
+ clone F
+ close F
+ closedir F
+ closelog F
+ confstr F
+ connect F
+ copysign F
+ copysignf F
+ copysignl F
+ creat F
+ creat64 F
+ create_module F
+ ctermid F
+ ctime F
+ ctime_r F
+ cuserid F
+ daemon F
+ daylight D 0x4
+ dcgettext F
+ dcngettext F
+ delete_module F
+ des_setparity F
+ dgettext F
+ difftime F
+ dirfd F
+ dirname F
+ div F
+ dl_iterate_phdr F
+ dngettext F
+ dprintf F
+ drand48 F
+ drand48_r F
+ dup F
+ dup2 F
+ dup3 F
+ duplocale F
+ dysize F
+ eaccess F
+ ecb_crypt F
+ ecvt F
+ ecvt_r F
+ endaliasent F
+ endfsent F
+ endgrent F
+ endhostent F
+ endmntent F
+ endnetent F
+ endnetgrent F
+ endprotoent F
+ endpwent F
+ endrpcent F
+ endservent F
+ endsgent F
+ endspent F
+ endttyent F
+ endusershell F
+ endutent F
+ endutxent F
+ environ D 0x4
+ envz_add F
+ envz_entry F
+ envz_get F
+ envz_merge F
+ envz_remove F
+ envz_strip F
+ epoll_create F
+ epoll_create1 F
+ epoll_ctl F
+ epoll_pwait F
+ epoll_wait F
+ erand48 F
+ erand48_r F
+ err F
+ error F
+ error_at_line F
+ error_message_count D 0x4
+ error_one_per_line D 0x4
+ error_print_progname D 0x4
+ errx F
+ ether_aton F
+ ether_aton_r F
+ ether_hostton F
+ ether_line F
+ ether_ntoa F
+ ether_ntoa_r F
+ ether_ntohost F
+ euidaccess F
+ eventfd F
+ eventfd_read F
+ eventfd_write F
+ execl F
+ execle F
+ execlp F
+ execv F
+ execve F
+ execvp F
+ execvpe F
+ exit F
+ faccessat F
+ fallocate F
+ fallocate64 F
+ fanotify_init F
+ fanotify_mark F
+ fattach F
+ fchdir F
+ fchflags F
+ fchmod F
+ fchmodat F
+ fchown F
+ fchownat F
+ fclose F
+ fcloseall F
+ fcntl F
+ fcvt F
+ fcvt_r F
+ fdatasync F
+ fdetach F
+ fdopen F
+ fdopendir F
+ feof F
+ feof_unlocked F
+ ferror F
+ ferror_unlocked F
+ fexecve F
+ fflush F
+ fflush_unlocked F
+ ffs F
+ ffsl F
+ ffsll F
+ fgetc F
+ fgetc_unlocked F
+ fgetgrent F
+ fgetgrent_r F
+ fgetpos F
+ fgetpos64 F
+ fgetpwent F
+ fgetpwent_r F
+ fgets F
+ fgets_unlocked F
+ fgetsgent F
+ fgetsgent_r F
+ fgetspent F
+ fgetspent_r F
+ fgetwc F
+ fgetwc_unlocked F
+ fgetws F
+ fgetws_unlocked F
+ fgetxattr F
+ fileno F
+ fileno_unlocked F
+ finite F
+ finitef F
+ finitel F
+ flistxattr F
+ flock F
+ flockfile F
+ fmemopen F
+ fmtmsg F
+ fnmatch F
+ fopen F
+ fopen64 F
+ fopencookie F
+ fork F
+ fpathconf F
+ fprintf F
+ fputc F
+ fputc_unlocked F
+ fputs F
+ fputs_unlocked F
+ fputwc F
+ fputwc_unlocked F
+ fputws F
+ fputws_unlocked F
+ fread F
+ fread_unlocked F
+ free F
+ freeaddrinfo F
+ freeifaddrs F
+ freelocale F
+ fremovexattr F
+ freopen F
+ freopen64 F
+ frexp F
+ frexpf F
+ frexpl F
+ fscanf F
+ fseek F
+ fseeko F
+ fseeko64 F
+ fsetpos F
+ fsetpos64 F
+ fsetxattr F
+ fstatfs F
+ fstatfs64 F
+ fstatvfs F
+ fstatvfs64 F
+ fsync F
+ ftell F
+ ftello F
+ ftello64 F
+ ftime F
+ ftok F
+ ftruncate F
+ ftruncate64 F
+ ftrylockfile F
+ fts_children F
+ fts_close F
+ fts_open F
+ fts_read F
+ fts_set F
+ ftw F
+ ftw64 F
+ funlockfile F
+ futimens F
+ futimes F
+ futimesat F
+ fwide F
+ fwprintf F
+ fwrite F
+ fwrite_unlocked F
+ fwscanf F
+ gai_strerror F
+ gcvt F
+ get_avphys_pages F
+ get_current_dir_name F
+ get_kernel_syms F
+ get_myaddress F
+ get_nprocs F
+ get_nprocs_conf F
+ get_phys_pages F
+ getaddrinfo F
+ getaliasbyname F
+ getaliasbyname_r F
+ getaliasent F
+ getaliasent_r F
+ getauxval F
+ getc F
+ getc_unlocked F
+ getchar F
+ getchar_unlocked F
+ getcontext F
+ getcwd F
+ getdate F
+ getdate_err D 0x4
+ getdate_r F
+ getdelim F
+ getdirentries F
+ getdirentries64 F
+ getdomainname F
+ getdtablesize F
+ getegid F
+ getenv F
+ geteuid F
+ getfsent F
+ getfsfile F
+ getfsspec F
+ getgid F
+ getgrent F
+ getgrent_r F
+ getgrgid F
+ getgrgid_r F
+ getgrnam F
+ getgrnam_r F
+ getgrouplist F
+ getgroups F
+ gethostbyaddr F
+ gethostbyaddr_r F
+ gethostbyname F
+ gethostbyname2 F
+ gethostbyname2_r F
+ gethostbyname_r F
+ gethostent F
+ gethostent_r F
+ gethostid F
+ gethostname F
+ getifaddrs F
+ getipv4sourcefilter F
+ getitimer F
+ getline F
+ getloadavg F
+ getlogin F
+ getlogin_r F
+ getmntent F
+ getmntent_r F
+ getmsg F
+ getnameinfo F
+ getnetbyaddr F
+ getnetbyaddr_r F
+ getnetbyname F
+ getnetbyname_r F
+ getnetent F
+ getnetent_r F
+ getnetgrent F
+ getnetgrent_r F
+ getnetname F
+ getopt F
+ getopt_long F
+ getopt_long_only F
+ getpagesize F
+ getpass F
+ getpeername F
+ getpgid F
+ getpgrp F
+ getpid F
+ getpmsg F
+ getppid F
+ getpriority F
+ getprotobyname F
+ getprotobyname_r F
+ getprotobynumber F
+ getprotobynumber_r F
+ getprotoent F
+ getprotoent_r F
+ getpt F
+ getpublickey F
+ getpw F
+ getpwent F
+ getpwent_r F
+ getpwnam F
+ getpwnam_r F
+ getpwuid F
+ getpwuid_r F
+ getresgid F
+ getresuid F
+ getrlimit F
+ getrlimit64 F
+ getrpcbyname F
+ getrpcbyname_r F
+ getrpcbynumber F
+ getrpcbynumber_r F
+ getrpcent F
+ getrpcent_r F
+ getrpcport F
+ getrusage F
+ gets F
+ getsecretkey F
+ getservbyname F
+ getservbyname_r F
+ getservbyport F
+ getservbyport_r F
+ getservent F
+ getservent_r F
+ getsgent F
+ getsgent_r F
+ getsgnam F
+ getsgnam_r F
+ getsid F
+ getsockname F
+ getsockopt F
+ getsourcefilter F
+ getspent F
+ getspent_r F
+ getspnam F
+ getspnam_r F
+ getsubopt F
+ gettext F
+ gettimeofday F
+ getttyent F
+ getttynam F
+ getuid F
+ getusershell F
+ getutent F
+ getutent_r F
+ getutid F
+ getutid_r F
+ getutline F
+ getutline_r F
+ getutmp F
+ getutmpx F
+ getutxent F
+ getutxid F
+ getutxline F
+ getw F
+ getwc F
+ getwc_unlocked F
+ getwchar F
+ getwchar_unlocked F
+ getwd F
+ getxattr F
+ glob F
+ glob64 F
+ glob_pattern_p F
+ globfree F
+ globfree64 F
+ gmtime F
+ gmtime_r F
+ gnu_dev_major F
+ gnu_dev_makedev F
+ gnu_dev_minor F
+ gnu_get_libc_release F
+ gnu_get_libc_version F
+ grantpt F
+ group_member F
+ gsignal F
+ gtty F
+ h_errlist D 0x14
+ h_nerr D 0x4
+ hasmntopt F
+ hcreate F
+ hcreate_r F
+ hdestroy F
+ hdestroy_r F
+ herror F
+ host2netname F
+ hsearch F
+ hsearch_r F
+ hstrerror F
+ htonl F
+ htons F
+ iconv F
+ iconv_close F
+ iconv_open F
+ if_freenameindex F
+ if_indextoname F
+ if_nameindex F
+ if_nametoindex F
+ imaxabs F
+ imaxdiv F
+ in6addr_any D 0x10
+ in6addr_loopback D 0x10
+ index F
+ inet6_opt_append F
+ inet6_opt_find F
+ inet6_opt_finish F
+ inet6_opt_get_val F
+ inet6_opt_init F
+ inet6_opt_next F
+ inet6_opt_set_val F
+ inet6_option_alloc F
+ inet6_option_append F
+ inet6_option_find F
+ inet6_option_init F
+ inet6_option_next F
+ inet6_option_space F
+ inet6_rth_add F
+ inet6_rth_getaddr F
+ inet6_rth_init F
+ inet6_rth_reverse F
+ inet6_rth_segments F
+ inet6_rth_space F
+ inet_addr F
+ inet_aton F
+ inet_lnaof F
+ inet_makeaddr F
+ inet_netof F
+ inet_network F
+ inet_nsap_addr F
+ inet_nsap_ntoa F
+ inet_ntoa F
+ inet_ntop F
+ inet_pton F
+ init_module F
+ initgroups F
+ initstate F
+ initstate_r F
+ innetgr F
+ inotify_add_watch F
+ inotify_init F
+ inotify_init1 F
+ inotify_rm_watch F
+ insque F
+ ioctl F
+ iruserok F
+ iruserok_af F
+ isalnum F
+ isalnum_l F
+ isalpha F
+ isalpha_l F
+ isascii F
+ isastream F
+ isatty F
+ isblank F
+ isblank_l F
+ iscntrl F
+ iscntrl_l F
+ isctype F
+ isdigit F
+ isdigit_l F
+ isfdtype F
+ isgraph F
+ isgraph_l F
+ isinf F
+ isinff F
+ isinfl F
+ islower F
+ islower_l F
+ isnan F
+ isnanf F
+ isnanl F
+ isprint F
+ isprint_l F
+ ispunct F
+ ispunct_l F
+ isspace F
+ isspace_l F
+ isupper F
+ isupper_l F
+ iswalnum F
+ iswalnum_l F
+ iswalpha F
+ iswalpha_l F
+ iswblank F
+ iswblank_l F
+ iswcntrl F
+ iswcntrl_l F
+ iswctype F
+ iswctype_l F
+ iswdigit F
+ iswdigit_l F
+ iswgraph F
+ iswgraph_l F
+ iswlower F
+ iswlower_l F
+ iswprint F
+ iswprint_l F
+ iswpunct F
+ iswpunct_l F
+ iswspace F
+ iswspace_l F
+ iswupper F
+ iswupper_l F
+ iswxdigit F
+ iswxdigit_l F
+ isxdigit F
+ isxdigit_l F
+ jrand48 F
+ jrand48_r F
+ key_decryptsession F
+ key_decryptsession_pk F
+ key_encryptsession F
+ key_encryptsession_pk F
+ key_gendes F
+ key_get_conv F
+ key_secretkey_is_set F
+ key_setnet F
+ key_setsecret F
+ kill F
+ killpg F
+ klogctl F
+ l64a F
+ labs F
+ lchmod F
+ lchown F
+ lckpwdf F
+ lcong48 F
+ lcong48_r F
+ ldexp F
+ ldexpf F
+ ldexpl F
+ ldiv F
+ lfind F
+ lgetxattr F
+ link F
+ linkat F
+ listen F
+ listxattr F
+ llabs F
+ lldiv F
+ llistxattr F
+ llseek F
+ loc1 D 0x4
+ loc2 D 0x4
+ localeconv F
+ localtime F
+ localtime_r F
+ lockf F
+ lockf64 F
+ locs D 0x4
+ longjmp F
+ lrand48 F
+ lrand48_r F
+ lremovexattr F
+ lsearch F
+ lseek F
+ lseek64 F
+ lsetxattr F
+ lutimes F
+ madvise F
+ makecontext F
+ mallinfo F
+ malloc F
+ malloc_get_state F
+ malloc_info F
+ malloc_set_state F
+ malloc_stats F
+ malloc_trim F
+ malloc_usable_size F
+ mallopt F
+ mallwatch D 0x4
+ mblen F
+ mbrlen F
+ mbrtoc16 F
+ mbrtoc32 F
+ mbrtowc F
+ mbsinit F
+ mbsnrtowcs F
+ mbsrtowcs F
+ mbstowcs F
+ mbtowc F
+ mcheck F
+ mcheck_check_all F
+ mcheck_pedantic F
+ memalign F
+ memccpy F
+ memchr F
+ memcmp F
+ memcpy F
+ memfrob F
+ memmem F
+ memmove F
+ mempcpy F
+ memrchr F
+ memset F
+ mincore F
+ mkdir F
+ mkdirat F
+ mkdtemp F
+ mkfifo F
+ mkfifoat F
+ mkostemp F
+ mkostemp64 F
+ mkostemps F
+ mkostemps64 F
+ mkstemp F
+ mkstemp64 F
+ mkstemps F
+ mkstemps64 F
+ mktemp F
+ mktime F
+ mlock F
+ mlockall F
+ mmap F
+ mmap64 F
+ modf F
+ modff F
+ modfl F
+ moncontrol F
+ monstartup F
+ mount F
+ mprobe F
+ mprotect F
+ mrand48 F
+ mrand48_r F
+ mremap F
+ msgctl F
+ msgget F
+ msgrcv F
+ msgsnd F
+ msync F
+ mtrace F
+ munlock F
+ munlockall F
+ munmap F
+ muntrace F
+ name_to_handle_at F
+ nanosleep F
+ netname2host F
+ netname2user F
+ newlocale F
+ nfsservctl F
+ nftw F
+ nftw64 F
+ ngettext F
+ nice F
+ nl_langinfo F
+ nl_langinfo_l F
+ nrand48 F
+ nrand48_r F
+ ntohl F
+ ntohs F
+ ntp_adjtime F
+ ntp_gettime F
+ ntp_gettimex F
+ obstack_alloc_failed_handler D 0x4
+ obstack_exit_failure D 0x4
+ obstack_free F
+ obstack_printf F
+ obstack_vprintf F
+ on_exit F
+ open F
+ open64 F
+ open_by_handle_at F
+ open_memstream F
+ open_wmemstream F
+ openat F
+ openat64 F
+ opendir F
+ openlog F
+ optarg D 0x4
+ opterr D 0x4
+ optind D 0x4
+ optopt D 0x4
+ parse_printf_format F
+ passwd2des F
+ pathconf F
+ pause F
+ pclose F
+ perror F
+ personality F
+ pipe F
+ pipe2 F
+ pivot_root F
+ pmap_getmaps F
+ pmap_getport F
+ pmap_rmtcall F
+ pmap_set F
+ pmap_unset F
+ poll F
+ popen F
+ posix_fadvise F
+ posix_fadvise64 F
+ posix_fallocate F
+ posix_fallocate64 F
+ posix_madvise F
+ posix_memalign F
+ posix_openpt F
+ posix_spawn F
+ posix_spawn_file_actions_addclose F
+ posix_spawn_file_actions_adddup2 F
+ posix_spawn_file_actions_addopen F
+ posix_spawn_file_actions_destroy F
+ posix_spawn_file_actions_init F
+ posix_spawnattr_destroy F
+ posix_spawnattr_getflags F
+ posix_spawnattr_getpgroup F
+ posix_spawnattr_getschedparam F
+ posix_spawnattr_getschedpolicy F
+ posix_spawnattr_getsigdefault F
+ posix_spawnattr_getsigmask F
+ posix_spawnattr_init F
+ posix_spawnattr_setflags F
+ posix_spawnattr_setpgroup F
+ posix_spawnattr_setschedparam F
+ posix_spawnattr_setschedpolicy F
+ posix_spawnattr_setsigdefault F
+ posix_spawnattr_setsigmask F
+ posix_spawnp F
+ ppoll F
+ prctl F
+ pread F
+ pread64 F
+ preadv F
+ preadv64 F
+ printf F
+ printf_size F
+ printf_size_info F
+ prlimit F
+ prlimit64 F
+ process_vm_readv F
+ process_vm_writev F
+ profil F
+ program_invocation_name D 0x4
+ program_invocation_short_name D 0x4
+ pselect F
+ psiginfo F
+ psignal F
+ pthread_attr_destroy F
+ pthread_attr_getdetachstate F
+ pthread_attr_getinheritsched F
+ pthread_attr_getschedparam F
+ pthread_attr_getschedpolicy F
+ pthread_attr_getscope F
+ pthread_attr_init F
+ pthread_attr_setdetachstate F
+ pthread_attr_setinheritsched F
+ pthread_attr_setschedparam F
+ pthread_attr_setschedpolicy F
+ pthread_attr_setscope F
+ pthread_cond_broadcast F
+ pthread_cond_destroy F
+ pthread_cond_init F
+ pthread_cond_signal F
+ pthread_cond_timedwait F
+ pthread_cond_wait F
+ pthread_condattr_destroy F
+ pthread_condattr_init F
+ pthread_equal F
+ pthread_exit F
+ pthread_getschedparam F
+ pthread_mutex_destroy F
+ pthread_mutex_init F
+ pthread_mutex_lock F
+ pthread_mutex_unlock F
+ pthread_self F
+ pthread_setcancelstate F
+ pthread_setcanceltype F
+ pthread_setschedparam F
+ ptrace F
+ ptsname F
+ ptsname_r F
+ putc F
+ putc_unlocked F
+ putchar F
+ putchar_unlocked F
+ putenv F
+ putgrent F
+ putmsg F
+ putpmsg F
+ putpwent F
+ puts F
+ putsgent F
+ putspent F
+ pututline F
+ pututxline F
+ putw F
+ putwc F
+ putwc_unlocked F
+ putwchar F
+ putwchar_unlocked F
+ pvalloc F
+ pwrite F
+ pwrite64 F
+ pwritev F
+ pwritev64 F
+ qecvt F
+ qecvt_r F
+ qfcvt F
+ qfcvt_r F
+ qgcvt F
+ qsort F
+ qsort_r F
+ query_module F
+ quick_exit F
+ quotactl F
+ raise F
+ rand F
+ rand_r F
+ random F
+ random_r F
+ rawmemchr F
+ rcmd F
+ rcmd_af F
+ re_comp F
+ re_compile_fastmap F
+ re_compile_pattern F
+ re_exec F
+ re_match F
+ re_match_2 F
+ re_search F
+ re_search_2 F
+ re_set_registers F
+ re_set_syntax F
+ re_syntax_options D 0x4
+ read F
+ readahead F
+ readdir F
+ readdir64 F
+ readdir64_r F
+ readdir_r F
+ readlink F
+ readlinkat F
+ readv F
+ realloc F
+ realpath F
+ reboot F
+ recv F
+ recvfrom F
+ recvmmsg F
+ recvmsg F
+ regcomp F
+ regerror F
+ regexec F
+ regfree F
+ register_printf_function F
+ register_printf_modifier F
+ register_printf_specifier F
+ register_printf_type F
+ registerrpc F
+ remap_file_pages F
+ remove F
+ removexattr F
+ remque F
+ rename F
+ renameat F
+ revoke F
+ rewind F
+ rewinddir F
+ rexec F
+ rexec_af F
+ rexecoptions D 0x4
+ rindex F
+ rmdir F
+ rpc_createerr D 0x10
+ rpmatch F
+ rresvport F
+ rresvport_af F
+ rtime F
+ ruserok F
+ ruserok_af F
+ ruserpass F
+ sbrk F
+ scalbn F
+ scalbnf F
+ scalbnl F
+ scandir F
+ scandir64 F
+ scandirat F
+ scandirat64 F
+ scanf F
+ sched_get_priority_max F
+ sched_get_priority_min F
+ sched_getaffinity F
+ sched_getcpu F
+ sched_getparam F
+ sched_getscheduler F
+ sched_rr_get_interval F
+ sched_setaffinity F
+ sched_setparam F
+ sched_setscheduler F
+ sched_yield F
+ secure_getenv F
+ seed48 F
+ seed48_r F
+ seekdir F
+ select F
+ semctl F
+ semget F
+ semop F
+ semtimedop F
+ send F
+ sendfile F
+ sendfile64 F
+ sendmmsg F
+ sendmsg F
+ sendto F
+ setaliasent F
+ setbuf F
+ setbuffer F
+ setcontext F
+ setdomainname F
+ setegid F
+ setenv F
+ seteuid F
+ setfsent F
+ setfsgid F
+ setfsuid F
+ setgid F
+ setgrent F
+ setgroups F
+ sethostent F
+ sethostid F
+ sethostname F
+ setipv4sourcefilter F
+ setitimer F
+ setjmp F
+ setlinebuf F
+ setlocale F
+ setlogin F
+ setlogmask F
+ setmntent F
+ setnetent F
+ setnetgrent F
+ setns F
+ setpgid F
+ setpgrp F
+ setpriority F
+ setprotoent F
+ setpwent F
+ setregid F
+ setresgid F
+ setresuid F
+ setreuid F
+ setrlimit F
+ setrlimit64 F
+ setrpcent F
+ setservent F
+ setsgent F
+ setsid F
+ setsockopt F
+ setsourcefilter F
+ setspent F
+ setstate F
+ setstate_r F
+ settimeofday F
+ setttyent F
+ setuid F
+ setusershell F
+ setutent F
+ setutxent F
+ setvbuf F
+ setxattr F
+ sgetsgent F
+ sgetsgent_r F
+ sgetspent F
+ sgetspent_r F
+ shmat F
+ shmctl F
+ shmdt F
+ shmget F
+ shutdown F
+ sigaction F
+ sigaddset F
+ sigaltstack F
+ sigandset F
+ sigblock F
+ sigdelset F
+ sigemptyset F
+ sigfillset F
+ siggetmask F
+ sighold F
+ sigignore F
+ siginterrupt F
+ sigisemptyset F
+ sigismember F
+ siglongjmp F
+ signal F
+ signalfd F
+ sigorset F
+ sigpause F
+ sigpending F
+ sigprocmask F
+ sigqueue F
+ sigrelse F
+ sigreturn F
+ sigset F
+ sigsetmask F
+ sigstack F
+ sigsuspend F
+ sigtimedwait F
+ sigvec F
+ sigwait F
+ sigwaitinfo F
+ sleep F
+ snprintf F
+ sockatmark F
+ socket F
+ socketpair F
+ splice F
+ sprintf F
+ sprofil F
+ srand F
+ srand48 F
+ srand48_r F
+ srandom F
+ srandom_r F
+ sscanf F
+ ssignal F
+ sstk F
+ statfs F
+ statfs64 F
+ statvfs F
+ statvfs64 F
+ stderr D 0x4
+ stdin D 0x4
+ stdout D 0x4
+ step F
+ stime F
+ stpcpy F
+ stpncpy F
+ strcasecmp F
+ strcasecmp_l F
+ strcasestr F
+ strcat F
+ strchr F
+ strchrnul F
+ strcmp F
+ strcoll F
+ strcoll_l F
+ strcpy F
+ strcspn F
+ strdup F
+ strerror F
+ strerror_l F
+ strerror_r F
+ strfmon F
+ strfmon_l F
+ strfry F
+ strftime F
+ strftime_l F
+ strlen F
+ strncasecmp F
+ strncasecmp_l F
+ strncat F
+ strncmp F
+ strncpy F
+ strndup F
+ strnlen F
+ strpbrk F
+ strptime F
+ strptime_l F
+ strrchr F
+ strsep F
+ strsignal F
+ strspn F
+ strstr F
+ strtod F
+ strtod_l F
+ strtof F
+ strtof_l F
+ strtoimax F
+ strtok F
+ strtok_r F
+ strtol F
+ strtol_l F
+ strtold F
+ strtold_l F
+ strtoll F
+ strtoll_l F
+ strtoq F
+ strtoul F
+ strtoul_l F
+ strtoull F
+ strtoull_l F
+ strtoumax F
+ strtouq F
+ strverscmp F
+ strxfrm F
+ strxfrm_l F
+ stty F
+ svc_exit F
+ svc_fdset D 0x80
+ svc_getreq F
+ svc_getreq_common F
+ svc_getreq_poll F
+ svc_getreqset F
+ svc_max_pollfd D 0x4
+ svc_pollfd D 0x4
+ svc_register F
+ svc_run F
+ svc_sendreply F
+ svc_unregister F
+ svcauthdes_stats D 0xc
+ svcerr_auth F
+ svcerr_decode F
+ svcerr_noproc F
+ svcerr_noprog F
+ svcerr_progvers F
+ svcerr_systemerr F
+ svcerr_weakauth F
+ svcfd_create F
+ svcraw_create F
+ svctcp_create F
+ svcudp_bufcreate F
+ svcudp_create F
+ svcudp_enablecache F
+ svcunix_create F
+ svcunixfd_create F
+ swab F
+ swapcontext F
+ swapoff F
+ swapon F
+ swprintf F
+ swscanf F
+ symlink F
+ symlinkat F
+ sync F
+ sync_file_range F
+ syncfs F
+ sys_errlist D 0x21c
+ sys_nerr D 0x4
+ sys_sigabbrev D 0x104
+ sys_siglist D 0x104
+ syscall F
+ sysconf F
+ sysctl F
+ sysinfo F
+ syslog F
+ system F
+ sysv_signal F
+ tcdrain F
+ tcflow F
+ tcflush F
+ tcgetattr F
+ tcgetpgrp F
+ tcgetsid F
+ tcsendbreak F
+ tcsetattr F
+ tcsetpgrp F
+ tdelete F
+ tdestroy F
+ tee F
+ telldir F
+ tempnam F
+ textdomain F
+ tfind F
+ time F
+ timegm F
+ timelocal F
+ timerfd_create F
+ timerfd_gettime F
+ timerfd_settime F
+ times F
+ timespec_get F
+ timezone D 0x4
+ tmpfile F
+ tmpfile64 F
+ tmpnam F
+ tmpnam_r F
+ toascii F
+ tolower F
+ tolower_l F
+ toupper F
+ toupper_l F
+ towctrans F
+ towctrans_l F
+ towlower F
+ towlower_l F
+ towupper F
+ towupper_l F
+ tr_break F
+ truncate F
+ truncate64 F
+ tsearch F
+ ttyname F
+ ttyname_r F
+ ttyslot F
+ twalk F
+ tzname D 0x8
+ tzset F
+ ualarm F
+ ulckpwdf F
+ ulimit F
+ umask F
+ umount F
+ umount2 F
+ uname F
+ ungetc F
+ ungetwc F
+ unlink F
+ unlinkat F
+ unlockpt F
+ unsetenv F
+ unshare F
+ updwtmp F
+ updwtmpx F
+ uselib F
+ uselocale F
+ user2netname F
+ usleep F
+ ustat F
+ utime F
+ utimensat F
+ utimes F
+ utmpname F
+ utmpxname F
+ valloc F
+ vasprintf F
+ vdprintf F
+ verr F
+ verrx F
+ versionsort F
+ versionsort64 F
+ vfork F
+ vfprintf F
+ vfscanf F
+ vfwprintf F
+ vfwscanf F
+ vhangup F
+ vlimit F
+ vmsplice F
+ vprintf F
+ vscanf F
+ vsnprintf F
+ vsprintf F
+ vsscanf F
+ vswprintf F
+ vswscanf F
+ vsyslog F
+ vtimes F
+ vwarn F
+ vwarnx F
+ vwprintf F
+ vwscanf F
+ wait F
+ wait3 F
+ wait4 F
+ waitid F
+ waitpid F
+ warn F
+ warnx F
+ wcpcpy F
+ wcpncpy F
+ wcrtomb F
+ wcscasecmp F
+ wcscasecmp_l F
+ wcscat F
+ wcschr F
+ wcschrnul F
+ wcscmp F
+ wcscoll F
+ wcscoll_l F
+ wcscpy F
+ wcscspn F
+ wcsdup F
+ wcsftime F
+ wcsftime_l F
+ wcslen F
+ wcsncasecmp F
+ wcsncasecmp_l F
+ wcsncat F
+ wcsncmp F
+ wcsncpy F
+ wcsnlen F
+ wcsnrtombs F
+ wcspbrk F
+ wcsrchr F
+ wcsrtombs F
+ wcsspn F
+ wcsstr F
+ wcstod F
+ wcstod_l F
+ wcstof F
+ wcstof_l F
+ wcstoimax F
+ wcstok F
+ wcstol F
+ wcstol_l F
+ wcstold F
+ wcstold_l F
+ wcstoll F
+ wcstoll_l F
+ wcstombs F
+ wcstoq F
+ wcstoul F
+ wcstoul_l F
+ wcstoull F
+ wcstoull_l F
+ wcstoumax F
+ wcstouq F
+ wcswcs F
+ wcswidth F
+ wcsxfrm F
+ wcsxfrm_l F
+ wctob F
+ wctomb F
+ wctrans F
+ wctrans_l F
+ wctype F
+ wctype_l F
+ wcwidth F
+ wmemchr F
+ wmemcmp F
+ wmemcpy F
+ wmemmove F
+ wmempcpy F
+ wmemset F
+ wordexp F
+ wordfree F
+ wprintf F
+ write F
+ writev F
+ wscanf F
+ xdecrypt F
+ xdr_accepted_reply F
+ xdr_array F
+ xdr_authdes_cred F
+ xdr_authdes_verf F
+ xdr_authunix_parms F
+ xdr_bool F
+ xdr_bytes F
+ xdr_callhdr F
+ xdr_callmsg F
+ xdr_char F
+ xdr_cryptkeyarg F
+ xdr_cryptkeyarg2 F
+ xdr_cryptkeyres F
+ xdr_des_block F
+ xdr_double F
+ xdr_enum F
+ xdr_float F
+ xdr_free F
+ xdr_getcredres F
+ xdr_hyper F
+ xdr_int F
+ xdr_int16_t F
+ xdr_int32_t F
+ xdr_int64_t F
+ xdr_int8_t F
+ xdr_key_netstarg F
+ xdr_key_netstres F
+ xdr_keybuf F
+ xdr_keystatus F
+ xdr_long F
+ xdr_longlong_t F
+ xdr_netnamestr F
+ xdr_netobj F
+ xdr_opaque F
+ xdr_opaque_auth F
+ xdr_pmap F
+ xdr_pmaplist F
+ xdr_pointer F
+ xdr_quad_t F
+ xdr_reference F
+ xdr_rejected_reply F
+ xdr_replymsg F
+ xdr_rmtcall_args F
+ xdr_rmtcallres F
+ xdr_short F
+ xdr_sizeof F
+ xdr_string F
+ xdr_u_char F
+ xdr_u_hyper F
+ xdr_u_int F
+ xdr_u_long F
+ xdr_u_longlong_t F
+ xdr_u_quad_t F
+ xdr_u_short F
+ xdr_uint16_t F
+ xdr_uint32_t F
+ xdr_uint64_t F
+ xdr_uint8_t F
+ xdr_union F
+ xdr_unixcred F
+ xdr_vector F
+ xdr_void F
+ xdr_wrapstring F
+ xdrmem_create F
+ xdrrec_create F
+ xdrrec_endofrecord F
+ xdrrec_eof F
+ xdrrec_skiprecord F
+ xdrstdio_create F
+ xencrypt F
+ xprt_register F
+ xprt_unregister F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist
new file mode 100644
index 0000000000..0ac28c5704
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libcrypt.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ crypt F
+ crypt_r F
+ encrypt F
+ encrypt_r F
+ fcrypt F
+ setkey F
+ setkey_r F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist
new file mode 100644
index 0000000000..aa8924562e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libdl.abilist
@@ -0,0 +1,11 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ dladdr F
+ dladdr1 F
+ dlclose F
+ dlerror F
+ dlinfo F
+ dlmopen F
+ dlopen F
+ dlsym F
+ dlvsym F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist
new file mode 100644
index 0000000000..8d6327c735
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libm.abilist
@@ -0,0 +1,370 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ _LIB_VERSION D 0x4
+ __acos_finite F
+ __acosf_finite F
+ __acosh_finite F
+ __acoshf_finite F
+ __asin_finite F
+ __asinf_finite F
+ __atan2_finite F
+ __atan2f_finite F
+ __atanh_finite F
+ __atanhf_finite F
+ __clog10 F
+ __clog10f F
+ __clog10l F
+ __cosh_finite F
+ __coshf_finite F
+ __exp10_finite F
+ __exp10f_finite F
+ __exp2_finite F
+ __exp2f_finite F
+ __exp_finite F
+ __expf_finite F
+ __finite F
+ __finitef F
+ __finitel F
+ __fmod_finite F
+ __fmodf_finite F
+ __fpclassify F
+ __fpclassifyf F
+ __gamma_r_finite F
+ __gammaf_r_finite F
+ __hypot_finite F
+ __hypotf_finite F
+ __issignaling F
+ __issignalingf F
+ __j0_finite F
+ __j0f_finite F
+ __j1_finite F
+ __j1f_finite F
+ __jn_finite F
+ __jnf_finite F
+ __lgamma_r_finite F
+ __lgammaf_r_finite F
+ __log10_finite F
+ __log10f_finite F
+ __log2_finite F
+ __log2f_finite F
+ __log_finite F
+ __logf_finite F
+ __pow_finite F
+ __powf_finite F
+ __remainder_finite F
+ __remainderf_finite F
+ __scalb_finite F
+ __scalbf_finite F
+ __signbit F
+ __signbitf F
+ __sinh_finite F
+ __sinhf_finite F
+ __sqrt_finite F
+ __sqrtf_finite F
+ __y0_finite F
+ __y0f_finite F
+ __y1_finite F
+ __y1f_finite F
+ __yn_finite F
+ __ynf_finite F
+ acos F
+ acosf F
+ acosh F
+ acoshf F
+ acoshl F
+ acosl F
+ asin F
+ asinf F
+ asinh F
+ asinhf F
+ asinhl F
+ asinl F
+ atan F
+ atan2 F
+ atan2f F
+ atan2l F
+ atanf F
+ atanh F
+ atanhf F
+ atanhl F
+ atanl F
+ cabs F
+ cabsf F
+ cabsl F
+ cacos F
+ cacosf F
+ cacosh F
+ cacoshf F
+ cacoshl F
+ cacosl F
+ carg F
+ cargf F
+ cargl F
+ casin F
+ casinf F
+ casinh F
+ casinhf F
+ casinhl F
+ casinl F
+ catan F
+ catanf F
+ catanh F
+ catanhf F
+ catanhl F
+ catanl F
+ cbrt F
+ cbrtf F
+ cbrtl F
+ ccos F
+ ccosf F
+ ccosh F
+ ccoshf F
+ ccoshl F
+ ccosl F
+ ceil F
+ ceilf F
+ ceill F
+ cexp F
+ cexpf F
+ cexpl F
+ cimag F
+ cimagf F
+ cimagl F
+ clog F
+ clog10 F
+ clog10f F
+ clog10l F
+ clogf F
+ clogl F
+ conj F
+ conjf F
+ conjl F
+ copysign F
+ copysignf F
+ copysignl F
+ cos F
+ cosf F
+ cosh F
+ coshf F
+ coshl F
+ cosl F
+ cpow F
+ cpowf F
+ cpowl F
+ cproj F
+ cprojf F
+ cprojl F
+ creal F
+ crealf F
+ creall F
+ csin F
+ csinf F
+ csinh F
+ csinhf F
+ csinhl F
+ csinl F
+ csqrt F
+ csqrtf F
+ csqrtl F
+ ctan F
+ ctanf F
+ ctanh F
+ ctanhf F
+ ctanhl F
+ ctanl F
+ drem F
+ dremf F
+ dreml F
+ erf F
+ erfc F
+ erfcf F
+ erfcl F
+ erff F
+ erfl F
+ exp F
+ exp10 F
+ exp10f F
+ exp10l F
+ exp2 F
+ exp2f F
+ exp2l F
+ expf F
+ expl F
+ expm1 F
+ expm1f F
+ expm1l F
+ fabs F
+ fabsf F
+ fabsl F
+ fdim F
+ fdimf F
+ fdiml F
+ feclearexcept F
+ fedisableexcept F
+ feenableexcept F
+ fegetenv F
+ fegetexcept F
+ fegetexceptflag F
+ fegetround F
+ feholdexcept F
+ feraiseexcept F
+ fesetenv F
+ fesetexceptflag F
+ fesetround F
+ fetestexcept F
+ feupdateenv F
+ finite F
+ finitef F
+ finitel F
+ floor F
+ floorf F
+ floorl F
+ fma F
+ fmaf F
+ fmal F
+ fmax F
+ fmaxf F
+ fmaxl F
+ fmin F
+ fminf F
+ fminl F
+ fmod F
+ fmodf F
+ fmodl F
+ frexp F
+ frexpf F
+ frexpl F
+ gamma F
+ gammaf F
+ gammal F
+ hypot F
+ hypotf F
+ hypotl F
+ ilogb F
+ ilogbf F
+ ilogbl F
+ j0 F
+ j0f F
+ j0l F
+ j1 F
+ j1f F
+ j1l F
+ jn F
+ jnf F
+ jnl F
+ ldexp F
+ ldexpf F
+ ldexpl F
+ lgamma F
+ lgamma_r F
+ lgammaf F
+ lgammaf_r F
+ lgammal F
+ lgammal_r F
+ llrint F
+ llrintf F
+ llrintl F
+ llround F
+ llroundf F
+ llroundl F
+ log F
+ log10 F
+ log10f F
+ log10l F
+ log1p F
+ log1pf F
+ log1pl F
+ log2 F
+ log2f F
+ log2l F
+ logb F
+ logbf F
+ logbl F
+ logf F
+ logl F
+ lrint F
+ lrintf F
+ lrintl F
+ lround F
+ lroundf F
+ lroundl F
+ matherr F
+ modf F
+ modff F
+ modfl F
+ nan F
+ nanf F
+ nanl F
+ nearbyint F
+ nearbyintf F
+ nearbyintl F
+ nextafter F
+ nextafterf F
+ nextafterl F
+ nexttoward F
+ nexttowardf F
+ nexttowardl F
+ pow F
+ pow10 F
+ pow10f F
+ pow10l F
+ powf F
+ powl F
+ remainder F
+ remainderf F
+ remainderl F
+ remquo F
+ remquof F
+ remquol F
+ rint F
+ rintf F
+ rintl F
+ round F
+ roundf F
+ roundl F
+ scalb F
+ scalbf F
+ scalbl F
+ scalbln F
+ scalblnf F
+ scalblnl F
+ scalbn F
+ scalbnf F
+ scalbnl F
+ signgam D 0x4
+ significand F
+ significandf F
+ significandl F
+ sin F
+ sincos F
+ sincosf F
+ sincosl F
+ sinf F
+ sinh F
+ sinhf F
+ sinhl F
+ sinl F
+ sqrt F
+ sqrtf F
+ sqrtl F
+ tan F
+ tanf F
+ tanh F
+ tanhf F
+ tanhl F
+ tanl F
+ tgamma F
+ tgammaf F
+ tgammal F
+ trunc F
+ truncf F
+ truncl F
+ y0 F
+ y0f F
+ y0l F
+ y1 F
+ y1f F
+ y1l F
+ yn F
+ ynf F
+ ynl F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist
new file mode 100644
index 0000000000..a47687532e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libnsl.abilist
@@ -0,0 +1,123 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ __free_fdresult F
+ __nis_default_access F
+ __nis_default_group F
+ __nis_default_owner F
+ __nis_default_ttl F
+ __nis_finddirectory F
+ __nis_hash F
+ __nisbind_connect F
+ __nisbind_create F
+ __nisbind_destroy F
+ __nisbind_next F
+ __yp_check F
+ nis_add F
+ nis_add_entry F
+ nis_addmember F
+ nis_checkpoint F
+ nis_clone_directory F
+ nis_clone_object F
+ nis_clone_result F
+ nis_creategroup F
+ nis_destroy_object F
+ nis_destroygroup F
+ nis_dir_cmp F
+ nis_domain_of F
+ nis_domain_of_r F
+ nis_first_entry F
+ nis_free_directory F
+ nis_free_object F
+ nis_free_request F
+ nis_freenames F
+ nis_freeresult F
+ nis_freeservlist F
+ nis_freetags F
+ nis_getnames F
+ nis_getservlist F
+ nis_ismember F
+ nis_leaf_of F
+ nis_leaf_of_r F
+ nis_lerror F
+ nis_list F
+ nis_local_directory F
+ nis_local_group F
+ nis_local_host F
+ nis_local_principal F
+ nis_lookup F
+ nis_mkdir F
+ nis_modify F
+ nis_modify_entry F
+ nis_name_of F
+ nis_name_of_r F
+ nis_next_entry F
+ nis_perror F
+ nis_ping F
+ nis_print_directory F
+ nis_print_entry F
+ nis_print_group F
+ nis_print_group_entry F
+ nis_print_link F
+ nis_print_object F
+ nis_print_result F
+ nis_print_rights F
+ nis_print_table F
+ nis_read_obj F
+ nis_remove F
+ nis_remove_entry F
+ nis_removemember F
+ nis_rmdir F
+ nis_servstate F
+ nis_sperrno F
+ nis_sperror F
+ nis_sperror_r F
+ nis_stats F
+ nis_verifygroup F
+ nis_write_obj F
+ readColdStartFile F
+ writeColdStartFile F
+ xdr_cback_data F
+ xdr_domainname F
+ xdr_keydat F
+ xdr_mapname F
+ xdr_obj_p F
+ xdr_peername F
+ xdr_valdat F
+ xdr_yp_buf F
+ xdr_ypall F
+ xdr_ypbind_binding F
+ xdr_ypbind_resp F
+ xdr_ypbind_resptype F
+ xdr_ypbind_setdom F
+ xdr_ypdelete_args F
+ xdr_ypmap_parms F
+ xdr_ypmaplist F
+ xdr_yppush_status F
+ xdr_yppushresp_xfr F
+ xdr_ypreq_key F
+ xdr_ypreq_nokey F
+ xdr_ypreq_xfr F
+ xdr_ypresp_all F
+ xdr_ypresp_key_val F
+ xdr_ypresp_maplist F
+ xdr_ypresp_master F
+ xdr_ypresp_order F
+ xdr_ypresp_val F
+ xdr_ypresp_xfr F
+ xdr_ypstat F
+ xdr_ypupdate_args F
+ xdr_ypxfrstat F
+ yp_all F
+ yp_bind F
+ yp_first F
+ yp_get_default_domain F
+ yp_maplist F
+ yp_master F
+ yp_match F
+ yp_next F
+ yp_order F
+ yp_unbind F
+ yp_update F
+ ypbinderr_string F
+ yperr_string F
+ ypprot_err F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist
new file mode 100644
index 0000000000..f2c65fbdd5
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libpthread.abilist
@@ -0,0 +1,224 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ _IO_flockfile F
+ _IO_ftrylockfile F
+ _IO_funlockfile F
+ __close F
+ __connect F
+ __errno_location F
+ __fcntl F
+ __fork F
+ __h_errno_location F
+ __libc_allocate_rtsig F
+ __libc_current_sigrtmax F
+ __libc_current_sigrtmin F
+ __lseek F
+ __nanosleep F
+ __open F
+ __open64 F
+ __pread64 F
+ __pthread_cleanup_routine F
+ __pthread_getspecific F
+ __pthread_key_create F
+ __pthread_mutex_destroy F
+ __pthread_mutex_init F
+ __pthread_mutex_lock F
+ __pthread_mutex_trylock F
+ __pthread_mutex_unlock F
+ __pthread_mutexattr_destroy F
+ __pthread_mutexattr_init F
+ __pthread_mutexattr_settype F
+ __pthread_once F
+ __pthread_register_cancel F
+ __pthread_register_cancel_defer F
+ __pthread_rwlock_destroy F
+ __pthread_rwlock_init F
+ __pthread_rwlock_rdlock F
+ __pthread_rwlock_tryrdlock F
+ __pthread_rwlock_trywrlock F
+ __pthread_rwlock_unlock F
+ __pthread_rwlock_wrlock F
+ __pthread_setspecific F
+ __pthread_unregister_cancel F
+ __pthread_unregister_cancel_restore F
+ __pthread_unwind_next F
+ __pwrite64 F
+ __read F
+ __res_state F
+ __send F
+ __sigaction F
+ __vfork F
+ __wait F
+ __write F
+ _pthread_cleanup_pop F
+ _pthread_cleanup_pop_restore F
+ _pthread_cleanup_push F
+ _pthread_cleanup_push_defer F
+ accept F
+ close F
+ connect F
+ fcntl F
+ flockfile F
+ fork F
+ fsync F
+ ftrylockfile F
+ funlockfile F
+ longjmp F
+ lseek F
+ lseek64 F
+ msync F
+ nanosleep F
+ open F
+ open64 F
+ pause F
+ pread F
+ pread64 F
+ pthread_attr_destroy F
+ pthread_attr_getaffinity_np F
+ pthread_attr_getdetachstate F
+ pthread_attr_getguardsize F
+ pthread_attr_getinheritsched F
+ pthread_attr_getschedparam F
+ pthread_attr_getschedpolicy F
+ pthread_attr_getscope F
+ pthread_attr_getstack F
+ pthread_attr_getstackaddr F
+ pthread_attr_getstacksize F
+ pthread_attr_init F
+ pthread_attr_setaffinity_np F
+ pthread_attr_setdetachstate F
+ pthread_attr_setguardsize F
+ pthread_attr_setinheritsched F
+ pthread_attr_setschedparam F
+ pthread_attr_setschedpolicy F
+ pthread_attr_setscope F
+ pthread_attr_setstack F
+ pthread_attr_setstackaddr F
+ pthread_attr_setstacksize F
+ pthread_barrier_destroy F
+ pthread_barrier_init F
+ pthread_barrier_wait F
+ pthread_barrierattr_destroy F
+ pthread_barrierattr_getpshared F
+ pthread_barrierattr_init F
+ pthread_barrierattr_setpshared F
+ pthread_cancel F
+ pthread_cond_broadcast F
+ pthread_cond_destroy F
+ pthread_cond_init F
+ pthread_cond_signal F
+ pthread_cond_timedwait F
+ pthread_cond_wait F
+ pthread_condattr_destroy F
+ pthread_condattr_getclock F
+ pthread_condattr_getpshared F
+ pthread_condattr_init F
+ pthread_condattr_setclock F
+ pthread_condattr_setpshared F
+ pthread_create F
+ pthread_detach F
+ pthread_equal F
+ pthread_exit F
+ pthread_getaffinity_np F
+ pthread_getattr_np F
+ pthread_getconcurrency F
+ pthread_getcpuclockid F
+ pthread_getname_np F
+ pthread_getschedparam F
+ pthread_getspecific F
+ pthread_join F
+ pthread_key_create F
+ pthread_key_delete F
+ pthread_kill F
+ pthread_kill_other_threads_np F
+ pthread_mutex_consistent F
+ pthread_mutex_consistent_np F
+ pthread_mutex_destroy F
+ pthread_mutex_getprioceiling F
+ pthread_mutex_init F
+ pthread_mutex_lock F
+ pthread_mutex_setprioceiling F
+ pthread_mutex_timedlock F
+ pthread_mutex_trylock F
+ pthread_mutex_unlock F
+ pthread_mutexattr_destroy F
+ pthread_mutexattr_getkind_np F
+ pthread_mutexattr_getprioceiling F
+ pthread_mutexattr_getprotocol F
+ pthread_mutexattr_getpshared F
+ pthread_mutexattr_getrobust F
+ pthread_mutexattr_getrobust_np F
+ pthread_mutexattr_gettype F
+ pthread_mutexattr_init F
+ pthread_mutexattr_setkind_np F
+ pthread_mutexattr_setprioceiling F
+ pthread_mutexattr_setprotocol F
+ pthread_mutexattr_setpshared F
+ pthread_mutexattr_setrobust F
+ pthread_mutexattr_setrobust_np F
+ pthread_mutexattr_settype F
+ pthread_once F
+ pthread_rwlock_destroy F
+ pthread_rwlock_init F
+ pthread_rwlock_rdlock F
+ pthread_rwlock_timedrdlock F
+ pthread_rwlock_timedwrlock F
+ pthread_rwlock_tryrdlock F
+ pthread_rwlock_trywrlock F
+ pthread_rwlock_unlock F
+ pthread_rwlock_wrlock F
+ pthread_rwlockattr_destroy F
+ pthread_rwlockattr_getkind_np F
+ pthread_rwlockattr_getpshared F
+ pthread_rwlockattr_init F
+ pthread_rwlockattr_setkind_np F
+ pthread_rwlockattr_setpshared F
+ pthread_self F
+ pthread_setaffinity_np F
+ pthread_setcancelstate F
+ pthread_setcanceltype F
+ pthread_setconcurrency F
+ pthread_setname_np F
+ pthread_setschedparam F
+ pthread_setschedprio F
+ pthread_setspecific F
+ pthread_sigmask F
+ pthread_sigqueue F
+ pthread_spin_destroy F
+ pthread_spin_init F
+ pthread_spin_lock F
+ pthread_spin_trylock F
+ pthread_spin_unlock F
+ pthread_testcancel F
+ pthread_timedjoin_np F
+ pthread_tryjoin_np F
+ pthread_yield F
+ pwrite F
+ pwrite64 F
+ raise F
+ read F
+ recv F
+ recvfrom F
+ recvmsg F
+ sem_close F
+ sem_destroy F
+ sem_getvalue F
+ sem_init F
+ sem_open F
+ sem_post F
+ sem_timedwait F
+ sem_trywait F
+ sem_unlink F
+ sem_wait F
+ send F
+ sendmsg F
+ sendto F
+ sigaction F
+ siglongjmp F
+ sigwait F
+ system F
+ tcdrain F
+ vfork F
+ wait F
+ waitpid F
+ write F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist
new file mode 100644
index 0000000000..d9123c98ac
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libresolv.abilist
@@ -0,0 +1,93 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ __b64_ntop F
+ __b64_pton F
+ __dn_comp F
+ __dn_count_labels F
+ __dn_expand F
+ __dn_skipname F
+ __fp_nquery F
+ __fp_query F
+ __fp_resstat F
+ __hostalias F
+ __loc_aton F
+ __loc_ntoa F
+ __p_cdname F
+ __p_cdnname F
+ __p_class F
+ __p_class_syms D 0x54
+ __p_fqname F
+ __p_fqnname F
+ __p_option F
+ __p_query F
+ __p_rcode F
+ __p_secstodate F
+ __p_time F
+ __p_type F
+ __p_type_syms D 0x228
+ __putlong F
+ __putshort F
+ __res_close F
+ __res_dnok F
+ __res_hnok F
+ __res_hostalias F
+ __res_isourserver F
+ __res_mailok F
+ __res_mkquery F
+ __res_nameinquery F
+ __res_nmkquery F
+ __res_nquery F
+ __res_nquerydomain F
+ __res_nsearch F
+ __res_nsend F
+ __res_ownok F
+ __res_queriesmatch F
+ __res_query F
+ __res_querydomain F
+ __res_search F
+ __res_send F
+ __sym_ntop F
+ __sym_ntos F
+ __sym_ston F
+ _gethtbyaddr F
+ _gethtbyname F
+ _gethtbyname2 F
+ _gethtent F
+ _getlong F
+ _getshort F
+ _res_opcodes D 0x40
+ _sethtent F
+ inet_net_ntop F
+ inet_net_pton F
+ inet_neta F
+ ns_datetosecs F
+ ns_format_ttl F
+ ns_get16 F
+ ns_get32 F
+ ns_initparse F
+ ns_makecanon F
+ ns_msg_getflag F
+ ns_name_compress F
+ ns_name_ntol F
+ ns_name_ntop F
+ ns_name_pack F
+ ns_name_pton F
+ ns_name_rollback F
+ ns_name_skip F
+ ns_name_uncompress F
+ ns_name_unpack F
+ ns_parse_ttl F
+ ns_parserr F
+ ns_put16 F
+ ns_put32 F
+ ns_samedomain F
+ ns_samename F
+ ns_skiprr F
+ ns_sprintrr F
+ ns_sprintrrf F
+ ns_subdomain F
+ res_gethostbyaddr F
+ res_gethostbyname F
+ res_gethostbyname2 F
+ res_send_setqhook F
+ res_send_setrhook F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist
new file mode 100644
index 0000000000..211e046c04
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/librt.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ __mq_open_2 F
+ aio_cancel F
+ aio_cancel64 F
+ aio_error F
+ aio_error64 F
+ aio_fsync F
+ aio_fsync64 F
+ aio_init F
+ aio_read F
+ aio_read64 F
+ aio_return F
+ aio_return64 F
+ aio_suspend F
+ aio_suspend64 F
+ aio_write F
+ aio_write64 F
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
+ lio_listio F
+ lio_listio64 F
+ mq_close F
+ mq_getattr F
+ mq_notify F
+ mq_open F
+ mq_receive F
+ mq_send F
+ mq_setattr F
+ mq_timedreceive F
+ mq_timedsend F
+ mq_unlink F
+ shm_open F
+ shm_unlink F
+ timer_create F
+ timer_delete F
+ timer_getoverrun F
+ timer_gettime F
+ timer_settime F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist
new file mode 100644
index 0000000000..61d736a406
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libthread_db.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ td_init F
+ td_log F
+ td_symbol_list F
+ td_ta_clear_event F
+ td_ta_delete F
+ td_ta_enable_stats F
+ td_ta_event_addr F
+ td_ta_event_getmsg F
+ td_ta_get_nthreads F
+ td_ta_get_ph F
+ td_ta_get_stats F
+ td_ta_map_id2thr F
+ td_ta_map_lwp2thr F
+ td_ta_new F
+ td_ta_reset_stats F
+ td_ta_set_event F
+ td_ta_setconcurrency F
+ td_ta_thr_iter F
+ td_ta_tsd_iter F
+ td_thr_clear_event F
+ td_thr_dbresume F
+ td_thr_dbsuspend F
+ td_thr_event_enable F
+ td_thr_event_getmsg F
+ td_thr_get_info F
+ td_thr_getfpregs F
+ td_thr_getgregs F
+ td_thr_getxregs F
+ td_thr_getxregsize F
+ td_thr_set_event F
+ td_thr_setfpregs F
+ td_thr_setgregs F
+ td_thr_setprio F
+ td_thr_setsigpending F
+ td_thr_setxregs F
+ td_thr_sigsetmask F
+ td_thr_tls_get_addr F
+ td_thr_tlsbase F
+ td_thr_tsd F
+ td_thr_validate F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist
new file mode 100644
index 0000000000..5563672e8b
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/libutil.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.18
+ GLIBC_2.18 A
+ forkpty F
+ login F
+ login_tty F
+ logout F
+ logwtmp F
+ openpty F
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data
new file mode 100644
index 0000000000..6dd5bcb4de
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/localplt.data
@@ -0,0 +1,11 @@
+libc.so: __errno_location
+libc.so: __signbit
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: __signbit
+libm.so: __signbitf
+libm.so: matherr
+libpthread.so: __errno_location
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h
new file mode 100644
index 0000000000..45b8d9aa1b
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h
@@ -0,0 +1,317 @@
+/* Copyright (C) 2005-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 _LOWLEVELLOCK_H
+#define _LOWLEVELLOCK_H 1
+
+#include <time.h>
+#include <sys/param.h>
+#include <bits/pthreadtypes.h>
+#include <atomic.h>
+#include <sysdep.h>
+#include <kernel-features.h>
+#include <tls.h> /* Need THREAD_*, and header.*. */
+
+#define FUTEX_WAIT 0
+#define FUTEX_WAKE 1
+#define FUTEX_REQUEUE 3
+#define FUTEX_CMP_REQUEUE 4
+#define FUTEX_WAKE_OP 5
+#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
+#define FUTEX_LOCK_PI 6
+#define FUTEX_UNLOCK_PI 7
+#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
+#define FUTEX_WAIT_REQUEUE_PI 11
+#define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_PRIVATE_FLAG 128
+#define FUTEX_CLOCK_REALTIME 256
+
+#define FUTEX_BITSET_MATCH_ANY 0xffffffff
+
+/* Values for 'private' parameter of locking macros. Yes, the
+ definition seems to be backwards. But it is not. The bit will be
+ reversed before passing to the system call. */
+#define LLL_PRIVATE 0
+#define LLL_SHARED FUTEX_PRIVATE_FLAG
+
+
+#if !defined NOT_IN_libc || defined IS_IN_rtld
+/* In libc.so or ld.so all futexes are private. */
+# ifdef __ASSUME_PRIVATE_FUTEX
+# define __lll_private_flag(fl, private) \
+ ((fl) | FUTEX_PRIVATE_FLAG)
+# else
+# define __lll_private_flag(fl, private) \
+ ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
+# endif
+#else
+# ifdef __ASSUME_PRIVATE_FUTEX
+# define __lll_private_flag(fl, private) \
+ (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
+# else
+# define __lll_private_flag(fl, private) \
+ (__builtin_constant_p (private) \
+ ? ((private) == 0 \
+ ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
+ : (fl)) \
+ : ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
+ & THREAD_GETMEM (THREAD_SELF, header.private_futex))))
+# endif
+#endif
+
+
+#define lll_futex_wait(futexp, val, private) \
+ lll_futex_timed_wait (futexp, val, NULL, private)
+
+#define lll_futex_timed_wait(futexp, val, timespec, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
+ __lll_private_flag (FUTEX_WAIT, private), \
+ (val), (timespec)); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ })
+
+#define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ int __op = FUTEX_WAIT_BITSET | clockbit; \
+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (long) (futexp), \
+ __lll_private_flag (__op, private), \
+ (val), (timespec), NULL /* Unused. */, \
+ FUTEX_BITSET_MATCH_ANY); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ })
+
+#define lll_futex_wake(futexp, nr, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
+ __lll_private_flag (FUTEX_WAKE, private), \
+ (nr), 0); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ })
+
+#define lll_robust_dead(futexv, private) \
+ do \
+ { \
+ int *__futexp = &(futexv); \
+ atomic_or (__futexp, FUTEX_OWNER_DIED); \
+ lll_futex_wake (__futexp, 1, private); \
+ } \
+ while (0)
+
+/* Returns non-zero if error happened, zero if success. */
+#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
+ __lll_private_flag (FUTEX_CMP_REQUEUE, private), \
+ (nr_wake), (nr_move), (mutex), (val)); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
+ })
+
+
+/* Returns non-zero if error happened, zero if success. */
+#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ \
+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
+ __lll_private_flag (FUTEX_WAKE_OP, private), \
+ (nr_wake), (nr_wake2), (futexp2), \
+ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
+ })
+
+/* Priority Inheritance support. */
+#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
+ lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
+
+#define lll_futex_timed_wait_requeue_pi(futexp, val, timespec, clockbit, \
+ mutex, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ int __op = FUTEX_WAIT_REQUEUE_PI | clockbit; \
+ \
+ __ret = INTERNAL_SYSCALL (futex, __err, 5, (futexp), \
+ __lll_private_flag (__op, private), \
+ (val), (timespec), mutex); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ })
+
+#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ \
+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
+ __lll_private_flag (FUTEX_CMP_REQUEUE_PI, priv), \
+ (nr_wake), (nr_move), (mutex), (val)); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
+ })
+
+#define lll_trylock(lock) \
+ atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
+
+#define lll_cond_trylock(lock) \
+ atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
+
+#define __lll_robust_trylock(futex, id) \
+ (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
+#define lll_robust_trylock(lock, id) \
+ __lll_robust_trylock (&(lock), id)
+
+extern void __lll_lock_wait_private (int *futex) attribute_hidden;
+extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
+extern int __lll_robust_lock_wait (int *futex, int private) attribute_hidden;
+
+#define __lll_lock(futex, private) \
+ ((void) ({ \
+ int *__futex = (futex); \
+ if (__builtin_expect (atomic_compare_and_exchange_val_acq (__futex, 1, 0), \
+ 0) != 0) \
+ { \
+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
+ __lll_lock_wait_private (__futex); \
+ else \
+ __lll_lock_wait (__futex, private); \
+ } \
+ }))
+#define lll_lock(futex, private) __lll_lock (&(futex), private)
+
+#define __lll_robust_lock(futex, id, private) \
+ ({ \
+ int *__futex = (futex); \
+ int __val = 0; \
+ \
+ if (__builtin_expect (atomic_compare_and_exchange_bool_acq (__futex, id, \
+ 0), 0)) \
+ __val = __lll_robust_lock_wait (__futex, private); \
+ __val; \
+ })
+#define lll_robust_lock(futex, id, private) \
+ __lll_robust_lock (&(futex), id, private)
+
+static inline void __attribute__ ((always_inline))
+__lll_cond_lock (int *futex, int private)
+{
+ if (__builtin_expect (atomic_exchange_acq (futex, 2), 0))
+ __lll_lock_wait (futex, private);
+}
+#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
+
+#define lll_robust_cond_lock(futex, id, private) \
+ __lll_robust_lock (&(futex), (id) | FUTEX_WAITERS, private)
+
+
+extern int __lll_timedlock_wait (int *futex, const struct timespec *,
+ int private) attribute_hidden;
+extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
+ int private) attribute_hidden;
+
+static inline int __attribute__ ((always_inline))
+__lll_timedlock (int *futex, const struct timespec *abstime, int private)
+{
+ int result = 0;
+ if (__builtin_expect (atomic_compare_and_exchange_val_acq (futex, 1, 0), 0) != 0)
+ result = __lll_timedlock_wait (futex, abstime, private);
+ return result;
+}
+#define lll_timedlock(futex, abstime, private) \
+ __lll_timedlock (&(futex), abstime, private)
+
+static inline int __attribute__ ((always_inline))
+__lll_robust_timedlock (int *futex, const struct timespec *abstime,
+ int id, int private)
+{
+ int result = 0;
+ if (__builtin_expect (atomic_compare_and_exchange_bool_acq (futex, id, 0), 0))
+ result = __lll_robust_timedlock_wait (futex, abstime, private);
+ return result;
+}
+#define lll_robust_timedlock(futex, abstime, id, private) \
+ __lll_robust_timedlock (&(futex), abstime, id, private)
+
+#define __lll_unlock(futex, private) \
+ ((void) ({ \
+ int *__futex = (futex); \
+ int __val = atomic_exchange_rel (__futex, 0); \
+ \
+ if (__builtin_expect (__val > 1, 0)) \
+ lll_futex_wake (__futex, 1, private); \
+ }))
+#define lll_unlock(futex, private) __lll_unlock(&(futex), private)
+
+#define __lll_robust_unlock(futex, private) \
+ ((void) ({ \
+ int *__futex = (futex); \
+ int __val = atomic_exchange_rel (__futex, 0); \
+ \
+ if (__builtin_expect (__val & FUTEX_WAITERS, 0)) \
+ lll_futex_wake (__futex, 1, private); \
+ }))
+#define lll_robust_unlock(futex, private) \
+ __lll_robust_unlock(&(futex), private)
+
+#define lll_islocked(futex) \
+ (futex != 0)
+
+/* Our internal lock implementation is identical to the binary-compatible
+ mutex implementation. */
+
+/* Initializers for lock. */
+#define LLL_LOCK_INITIALIZER (0)
+#define LLL_LOCK_INITIALIZER_LOCKED (1)
+
+/* The states of a lock are:
+ 0 - untaken
+ 1 - taken by one user
+ >1 - taken by more users. */
+
+/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
+ wakeup when the clone terminates. The memory location contains the
+ thread ID while the clone is running and is reset to zero
+ afterwards. */
+#define lll_wait_tid(tid) \
+ do { \
+ __typeof (tid) __tid; \
+ while ((__tid = (tid)) != 0) \
+ lll_futex_wait (&(tid), __tid, LLL_SHARED); \
+ } while (0)
+
+extern int __lll_timedwait_tid (int *, const struct timespec *)
+ attribute_hidden;
+
+#define lll_timedwait_tid(tid, abstime) \
+ ({ \
+ int __res = 0; \
+ if ((tid) != 0) \
+ __res = __lll_timedwait_tid (&(tid), (abstime)); \
+ __res; \
+ })
+
+#endif /* lowlevellock.h. */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S
new file mode 100644
index 0000000000..51d787fbcd
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pt-vfork.S
@@ -0,0 +1,21 @@
+/* Copyright (C) 2009-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 <tcb-offsets.h>
+
+#include "vfork.S"
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c
new file mode 100644
index 0000000000..b1f2f4d04e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/pthread_once.c
@@ -0,0 +1,89 @@
+/* Copyright (C) 2004-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 "pthreadP.h"
+#include <lowlevellock.h>
+
+unsigned long int __fork_generation attribute_hidden;
+
+static void
+clear_once_control (void *arg)
+{
+ pthread_once_t *once_control = (pthread_once_t *) arg;
+
+ *once_control = 0;
+ lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
+}
+
+int
+__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
+{
+ for (;;)
+ {
+ int oldval;
+ int newval;
+
+ /* Pseudo code:
+ newval = __fork_generation | 1;
+ oldval = *once_control;
+ if ((oldval & 2) == 0)
+ *once_control = newval;
+ Do this atomically. */
+ do
+ {
+ newval = __fork_generation | 1;
+ oldval = *once_control;
+ if (oldval & 2)
+ break;
+ } while (atomic_compare_and_exchange_val_acq (once_control, newval, oldval) != oldval);
+
+ /* Check if the initializer has already been done. */
+ if ((oldval & 2) != 0)
+ return 0;
+
+ /* Check if another thread already runs the initializer. */
+ if ((oldval & 1) == 0)
+ break;
+
+ /* Check whether the initializer execution was interrupted by a fork. */
+ if (oldval != newval)
+ break;
+
+ /* Same generation, some other thread was faster. Wait. */
+ lll_futex_wait (once_control, oldval, LLL_PRIVATE);
+ }
+
+ /* This thread is the first here. Do the initialization.
+ Register a cleanup handler so that in case the thread gets
+ interrupted the initialization can be restarted. */
+ pthread_cleanup_push (clear_once_control, once_control);
+
+ init_routine ();
+
+ pthread_cleanup_pop (0);
+
+ /* Say that the initialisation is done. */
+ *once_control = __fork_generation | 2;
+
+ /* Wake up all other threads. */
+ lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
+
+ return 0;
+}
+weak_alias (__pthread_once, pthread_once)
+hidden_def (__pthread_once)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S
new file mode 100644
index 0000000000..a9d8376eae
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S
@@ -0,0 +1,46 @@
+/* Copyright (C) 2005-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 <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <kernel-features.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+#ifdef __NR_vfork
+ DO_CALL (vfork, 0)
+#else
+ DO_CALL (fork, 0)
+#endif
+ addik r12,r0,-4095
+ cmpu r12,r12,r3
+ bgei r12,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ nop
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/profil-counter.h b/ports/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
new file mode 100644
index 0000000000..8a6a0bcf3d
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
@@ -0,0 +1,2 @@
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/semctl.c b/ports/sysdeps/unix/sysv/linux/microblaze/semctl.c
new file mode 100644
index 0000000000..145162909c
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/semctl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/semctl.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/setgroups.c b/ports/sysdeps/unix/sysv/linux/microblaze/setgroups.c
new file mode 100644
index 0000000000..cb9a7708e3
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/setgroups.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c b/ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c
new file mode 100644
index 0000000000..c121e99917
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/shmctl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/shmctl.c>
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/ports/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
new file mode 100644
index 0000000000..e03effa4b6
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2009-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/>. */
+
+#define SIGCONTEXT int _code, struct ucontext *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc)
+#define GET_FRAME(ctx) ((void *) (ctx)->uc_mcontext.regs.sp)
+#define GET_STACK(ctx) ((void *) (ctx)->uc_mcontext.regs.sp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/socket.S b/ports/sysdeps/unix/sysv/linux/microblaze/socket.S
new file mode 100644
index 0000000000..229f54f7e1
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/socket.S
@@ -0,0 +1,126 @@
+/* Copyright (C) 2009-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 <sysdep-cancel.h>
+#include <socketcall.h>
+
+#define P(a, b) P2(a, b)
+#define P2(a, b) a##b
+
+/* The socket-oriented system calls are handled unusally in Linux.
+ They are all gated through the single `socketcall' system call number.
+ `socketcall' takes two arguments: the first is the subcode, specifying
+ which socket function is being called; and the second is a pointer to
+ the arguments to the specific function.
+
+ The .S files for the other calls just #define socket and #include this.
+ They also #define a 'number-of-arguments' word in NARGS, which
+ defaults to 3. */
+
+#ifndef NARGS
+# ifdef socket
+# error NARGS not defined
+# endif
+# define NARGS 3
+#endif
+
+/* Stack usage:
+ 0 - r15 (return address)
+ 4 - 12 args to syscall
+ 16 - scratch for cancellation state
+ 20 - scratch for return value
+*/
+#define stackadjust 24
+
+#ifndef __socket
+# ifndef NO_WEAK_ALIAS
+# define __socket P(__,socket)
+# else
+# define __socket socket
+# endif
+#endif
+
+ .text
+ENTRY(__socket)
+ addik r1,r1,-stackadjust
+ swi r15,r1,0
+#if NARGS >= 1
+ swi r5,r1,stackadjust+4
+#endif
+#if NARGS >= 2
+ swi r6,r1,stackadjust+8
+#endif
+#if NARGS >= 3
+ swi r7,r1,stackadjust+12
+#endif
+#if NARGS >= 4
+ swi r8,r1,stackadjust+16
+#endif
+#if NARGS >= 5
+ swi r9,r1,stackadjust+20
+#endif
+#if NARGS >= 6
+ swi r10,r1,stackadjust+24
+#endif
+/* The rest of the args (if any) are on the caller's stack already. */
+
+#if defined NEED_CANCELLATION && defined CENABLE
+ SINGLE_THREAD_P
+ bnei r12,L(socket_cancel)
+#endif
+
+ addik r12,r0,SYS_ify(socketcall)
+ addik r5,r0,P(SOCKOP_,socket)
+ addik r6,r1,stackadjust+4
+ brki r14,8
+ addk r0,r0,r0
+ lwi r15,r1,0
+ addik r1,r1,stackadjust
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ addk r0,r0,r0
+
+#if defined NEED_CANCELLATION && defined CENABLE
+L(socket_cancel):
+ CENABLE
+ swi r3,r1,16
+ addik r12,r0,SYS_ify(socketcall)
+ addik r5,r0,P(SOCKOP_,socket)
+ addik r6,r1,stackadjust+4
+ brki r14,8
+ addk r0,r0,r0
+ swi r3,r1,20
+ lwi r5,r1,16
+ CDISABLE
+ lwi r3,r1,20
+ lwi r15,r1,0
+ addik r1,r1,stackadjust
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ addk r0,r0,r0
+#endif
+
+PSEUDO_END (__socket)
+
+#ifndef NO_WEAK_ALIAS
+weak_alias (__socket, socket)
+#endif
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h b/ports/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
new file mode 100644
index 0000000000..265ef682e8
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
@@ -0,0 +1,123 @@
+/* Copyright (C) 1996-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 _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing. */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h. */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/ports/sysdeps/unix/sysv/linux/microblaze/sys/user.h
new file mode 100644
index 0000000000..a633042902
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/sys/user.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 2009-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 _SYS_USER_H
+# define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct user_fpregs_struct
+{
+ long int cwd;
+ long int swd;
+ long int twd;
+ long int fip;
+ long int fcs;
+ long int foo;
+ long int fos;
+ long int st_space [20];
+};
+
+struct user_regs_struct
+{
+ unsigned int gpr[32];
+ unsigned int pc;
+ unsigned int msr;
+ unsigned int ear;
+ unsigned int esr;
+ unsigned int fsr;
+ unsigned int btr;
+ unsigned int pvr[12];
+};
+
+struct user
+{
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ struct user_fpregs_struct elf_fpregset_t;
+ unsigned long int u_tsize;
+ unsigned long int u_dsize;
+ unsigned long int u_ssize;
+ unsigned long start_code;
+ unsigned long start_stack;
+ long int signal;
+ int reserved;
+ struct user_regs_struct* u_ar0;
+ struct user_fpregs_struct* u_fpstate;
+ unsigned long int magic;
+ char u_comm [32];
+ int u_debugreg [8];
+};
+
+# define PAGE_SHIFT 12
+# define PAGE_SIZE (1UL << PAGE_SHIFT)
+# define PAGE_MASK (~(PAGE_SIZE-1))
+# define NBPG PAGE_SIZE
+# define UPAGES 1
+# define HOST_TEXT_START_ADDR (u.start_code)
+# define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* _SYS_USER_H */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/syscall.S b/ports/sysdeps/unix/sysv/linux/microblaze/syscall.S
new file mode 100644
index 0000000000..7e5cea4438
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/syscall.S
@@ -0,0 +1,37 @@
+/* Copyright (C) 2005-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 <sysdep.h>
+
+ .text
+ENTRY (syscall)
+ addk r12,r0,r5
+ addk r5,r0,r6
+ addk r6,r0,r7
+ addk r7,r0,r8
+ addk r8,r0,r9
+ addk r9,r0,r10
+ lwi r10,r1,28
+ brki r14,8
+ addk r0,r0,r0
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ nop
+PSEUDO_END (syscall)
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/syscalls.list b/ports/sysdeps/unix/sysv/linux/microblaze/syscalls.list
new file mode 100644
index 0000000000..86fd40bd15
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/syscalls.list
@@ -0,0 +1,18 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+cacheflush EXTRA cacheflush i:iiii __cacheflush cacheflush
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
+
+# Semaphore and shm system calls. msgctl, shmctl, and semctl have C
+# wrappers (to set __IPC_64).
+msgget - msgget i:ii __msgget msgget
+msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
+msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
+shmat - shmat i:ipi __shmat shmat
+shmdt - shmdt i:s __shmdt shmdt
+shmget - shmget i:iii __shmget shmget
+semop - semop i:ipi __semop semop
+semtimedop - semtimedop i:ipip semtimedop
+semget - semget i:iii __semget semget
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S b/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S
new file mode 100644
index 0000000000..44fd00a6de
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.S
@@ -0,0 +1,39 @@
+/* Copyright (C) 2009-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 <sysdep.h>
+
+
+/* The following code is only used in the shared library when we
+ compile the reentrant version. Otherwise each system call defines
+ each own version. */
+
+#ifndef PIC
+
+/* The syscall stubs jump here when they detect an error. */
+
+# undef CALL_MCOUNT
+# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %d0. */
+
+ .text
+ENTRY (__syscall_error)
+ rsubk r3,r3,r0
+ rtsd r15,8
+ addik r3,r0,-1 /* delay slot. */
+END (__syscall_error)
+#endif /* PIC. */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.h
new file mode 100755
index 0000000000..0522dc02e1
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/sysdep.h
@@ -0,0 +1,307 @@
+/* Copyright (C) 2000-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 <sysdeps/microblaze/sysdep.h>
+#include <sys/syscall.h>
+
+/* Defines RTLD_PRIVATE_ERRNO. */
+#include <dl-sysdep.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+# include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* In microblaze ABI function call arguments are passed in registers
+ r5...r10. The return value is stored in r3 (or r3:r4 regiters pair).
+ Linux syscall uses the same convention with the addition that the
+ syscall number is passed in r12. To enter the kernel "brki r14,8"
+ instruction is used.
+ None of the abovementioned registers are presumed across function call
+ or syscall.
+*/
+/* Linux uses a negative return value to indicate syscall errors, unlike
+ most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be negative
+ even if the call succeeded. E.g., the `lseek' system call might return
+ a large offset. Therefore we must not anymore test for < 0, but test
+ for a real error by making sure the value in %d0 is a real error
+ number. Linus said he will make sure the no syscall returns a value
+ in -1 .. -4095 as a valid result so we can savely test with -4095. */
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+# ifdef PIC
+# define SYSCALL_ERROR_LABEL 0f
+# else
+# define SYSCALL_ERROR_LABEL __syscall_error
+# endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ addik r12,r0,-4095; \
+ cmpu r12,r12,r3; \
+ bgei r12,SYSCALL_ERROR_LABEL;
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ SYSCALL_ERROR_HANDLER; \
+ END (name)
+
+# undef PSEUDO_NOERRNO
+# define PSEUDO_NOERRNO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args);
+
+# undef PSEUDO_END_NOERRNO
+# define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+/* The function has to return the error code. */
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+# define ret_NOERRNO \
+ rtsd r15,8; addk r0,r0,r0;
+
+# define ret_ERRVAL \
+ rtsd r15,8; rsubk r3,r3,r0;
+
+# ifdef PIC
+# define SYSCALL_ERROR_LABEL_DCL 0
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ mfs r12,rpc; \
+ addik r12,r12,_GLOBAL_OFFSET_TABLE_+8; \
+ lwi r12,r12,rtld_errno@GOT; \
+ rsubk r3,r3,r0; \
+ swi r3,r12,0; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# else /* !RTLD_PRIVATE_ERRNO. */
+/* Store (-r3) into errno through the GOT. */
+# if defined _LIBC_REENTRANT
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ addik r1,r1,-16; \
+ swi r15,r1,0; \
+ swi r20,r1,8; \
+ rsubk r3,r3,r0; \
+ swi r3,r1,12; \
+ mfs r20,rpc; \
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8; \
+ brlid r15,__errno_location@PLT; \
+ nop; \
+ lwi r4,r1,12; \
+ swi r4,r3,0; \
+ lwi r20,r1,8; \
+ lwi r15,r1,0; \
+ addik r1,r1,16; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# else /* !_LIBC_REENTRANT. */
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ mfs r12,rpc; \
+ addik r12,r12,_GLOBAL_OFFSET_TABLE_+8; \
+ lwi r12,r12,errno@GOT; \
+ rsubk r3,r3,r0; \
+ swi r3,r12,0; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# endif /* _LIBC_REENTRANT. */
+# endif /* RTLD_PRIVATE_ERRNO. */
+# else
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+# endif /* PIC. */
+
+# define DO_CALL(syscall_name, args) \
+ addik r12,r0,SYS_ify (syscall_name); \
+ brki r14,8; \
+ addk r0,r0,r0;
+
+#else /* not __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+({ INTERNAL_SYSCALL_DECL(err); \
+ unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
+ if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
+ resultvar = (unsigned long) -1; \
+ } \
+ (long) resultvar; \
+})
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back. */
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ inline_syscall##nr(SYS_ify(name), args)
+
+# undef INTERNAL_SYSCALL_NCS
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ inline_syscall##nr(name, args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= -4095U)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+# define SYSCALL_CLOBBERS_6 "r11", "r4", "memory"
+# define SYSCALL_CLOBBERS_5 "r10", SYSCALL_CLOBBERS_6
+# define SYSCALL_CLOBBERS_4 "r9", SYSCALL_CLOBBERS_5
+# define SYSCALL_CLOBBERS_3 "r8", SYSCALL_CLOBBERS_4
+# define SYSCALL_CLOBBERS_2 "r7", SYSCALL_CLOBBERS_3
+# define SYSCALL_CLOBBERS_1 "r6", SYSCALL_CLOBBERS_2
+# define SYSCALL_CLOBBERS_0 "r5", SYSCALL_CLOBBERS_1
+
+# define inline_syscall0(name,dummy) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r12) \
+ : SYSCALL_CLOBBERS_0 ); ret; \
+ })
+
+# define inline_syscall1(name,arg1) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r12) \
+ : SYSCALL_CLOBBERS_1 ); ret; \
+ })
+
+# define inline_syscall2(name,arg1,arg2) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r12) \
+ : SYSCALL_CLOBBERS_2 ); ret; \
+ })
+
+
+# define inline_syscall3(name,arg1,arg2,arg3) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r12) \
+ : SYSCALL_CLOBBERS_3 ); ret; \
+ })
+
+
+# define inline_syscall4(name,arg1,arg2,arg3,arg4) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r12) \
+ : SYSCALL_CLOBBERS_4 ); ret; \
+ })
+
+
+# define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ register long __r9 __asm__("r9") = (long)(arg5); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r12) \
+ : SYSCALL_CLOBBERS_5 ); ret; \
+ })
+
+
+# define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \
+ ({ \
+ register long ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ register long __r9 __asm__("r9") = (long)(arg5); \
+ register long __r10 __asm__("r10") = (long)(arg6); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r10), \
+ "r"(__r12) \
+ : SYSCALL_CLOBBERS_6 ); ret; \
+ })
+
+
+/* Pointer mangling is not yet supported for Microblaze. */
+# define PTR_MANGLE(var) (void) (var)
+# define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* not __ASSEMBLER__ */
diff --git a/ports/sysdeps/unix/sysv/linux/microblaze/xstat.c b/ports/sysdeps/unix/sysv/linux/microblaze/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/microblaze/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
index 56ae34c03b..a9a845a617 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
@@ -98,6 +98,7 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -122,6 +123,7 @@ typedef struct
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
@@ -209,8 +211,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h b/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
index 77ffaf68df..e870b207de 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
@@ -1,3 +1,5 @@
+#include <stdint.h>
+
/* Linux kernel RT signal frame. */
typedef struct kernel_rt_sigframe
{
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
index defa1b0b49..53812463c4 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
@@ -212,6 +212,10 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
GLIBC_2.2
GLIBC_2.2 A
__clog10 F
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
index 064eeba0b1..bb39795179 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
@@ -239,6 +239,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
__clog10 F
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
index 452c2c70eb..b2a9a95796 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
@@ -39,9 +39,7 @@
/* We don't want the label for the error handler to be visible in the symbol
table when we define it here. */
-#ifdef __PIC__
# define SYSCALL_ERROR_LABEL 99b
-#endif
#else /* ! __ASSEMBLER__ */
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
index 064eeba0b1..bb39795179 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
@@ -239,6 +239,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
__clog10 F
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
index d16ed6941c..844a7e880c 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
@@ -39,9 +39,7 @@
/* We don't want the label for the error handler to be visible in the symbol
table when we define it here. */
-#ifdef __PIC__
# define SYSCALL_ERROR_LABEL 99b
-#endif
#else /* ! __ASSEMBLER__ */
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
index 6565225662..157cc38259 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
@@ -101,13 +101,64 @@
cfi_same_value (gp); \
RESTORESTK; \
L(pseudo_end):
-
+#else
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ L(pseudo_start): \
+ cfi_startproc; \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ 99: RESTORESTK; \
+ j __syscall_error; \
+ .type __##syscall_name##_nocancel, @function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ SAVESTK; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ ret; \
+ cfi_endproc; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ ENTRY (name) \
+ SAVESTK; \
+ SINGLE_THREAD_P(v1); \
+ bne zero, v1, L(pseudo_cancel); \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ .set reorder; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ ret; \
+ L(pseudo_cancel): \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ REG_S ra, STKOFF_RA(sp); \
+ cfi_rel_offset (ra, STKOFF_RA); \
+ PUSHARGS_##args; /* save syscall args */ \
+ CENABLE; \
+ REG_S v0, STKOFF_SVMSK(sp); /* save mask */ \
+ POPARGS_##args; /* restore syscall args */ \
+ .set noreorder; \
+ li v0, SYS_ify (syscall_name); \
+ syscall; \
+ .set reorder; \
+ REG_S v0, STKOFF_SC_V0(sp); /* save syscall result */ \
+ REG_S a3, STKOFF_SC_ERR(sp); /* save syscall error flag */ \
+ REG_L a0, STKOFF_SVMSK(sp); /* pass mask as arg1 */ \
+ CDISABLE; \
+ REG_L a3, STKOFF_SC_ERR(sp); /* restore syscall error flag */ \
+ REG_L ra, STKOFF_RA(sp); /* restore return address */ \
+ REG_L v0, STKOFF_SC_V0(sp); /* restore syscall result */ \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ L(pseudo_end):
+#endif
# undef PSEUDO_END
# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym
-#endif
-
# define PUSHARGS_0 /* nothing to do */
# define PUSHARGS_1 PUSHARGS_0 REG_S a0, STKOFF_A0(sp); cfi_rel_offset (a0, STKOFF_A0);
# define PUSHARGS_2 PUSHARGS_1 REG_S a1, STKOFF_A1(sp); cfi_rel_offset (a1, STKOFF_A1);
@@ -126,7 +177,11 @@
/* Save an even number of slots. Should be 0 if an even number of slots
are used below, or SZREG if an odd number are used. */
-# define STK_PAD SZREG
+# ifdef __PIC__
+# define STK_PAD SZREG
+# else
+# define STK_PAD 0
+# endif
/* Place values that we are more likely to use later in this sequence, i.e.
closer to the SP at function entry. If you do that, the are more
@@ -141,21 +196,32 @@
# define STKOFF_SC_V0 (STKOFF_RA + SZREG) /* Used if MT. */
# define STKOFF_SC_ERR (STKOFF_SC_V0 + SZREG) /* Used if MT. */
# define STKOFF_SVMSK (STKOFF_SC_ERR + SZREG) /* Used if MT. */
-# define STKOFF_GP (STKOFF_SVMSK + SZREG) /* Always used. */
-# define STKSPACE (STKOFF_GP + SZREG)
+# ifdef __PIC__
+# define STKOFF_GP (STKOFF_SVMSK + SZREG) /* Always used. */
+# define STKSPACE (STKOFF_GP + SZREG)
+# else
+# define STKSPACE (STKOFF_SVMSK + SZREG)
+# endif
+
# define SAVESTK PTR_SUBU sp, STKSPACE; cfi_adjust_cfa_offset(STKSPACE)
# define RESTORESTK PTR_ADDU sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE)
+# ifdef __PIC__
+# define PSEUDO_JMP(sym) PTR_LA t9, sym; jalr t9
+# else
+# define PSEUDO_JMP(sym) jal sym
+# endif
+
# ifdef IS_IN_libpthread
-# define CENABLE PTR_LA t9, __pthread_enable_asynccancel; jalr t9
-# define CDISABLE PTR_LA t9, __pthread_disable_asynccancel; jalr t9
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
# elif defined IS_IN_librt
-# define CENABLE PTR_LA t9, __librt_enable_asynccancel; jalr t9
-# define CDISABLE PTR_LA t9, __librt_disable_asynccancel; jalr t9
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
# else
-# define CENABLE PTR_LA t9, __libc_enable_asynccancel; jalr t9
-# define CDISABLE PTR_LA t9, __libc_disable_asynccancel; jalr t9
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
# endif
# ifndef __ASSEMBLER__
diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
index ddc8576866..9bd593c0e9 100644
--- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
@@ -396,6 +396,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
feclearexcept F
diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
index 4ad1a5db6c..7b40f3db03 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
@@ -95,7 +95,8 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
- int si_trapno; /* TRAP # which caused the signal */
+ int si_trapno; /* TRAP # which caused the signal. */
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -129,6 +130,7 @@ typedef struct
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
# define si_trapno _sifields._sigfault.si_trapno
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -223,8 +225,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
index 601b505ead..cb0d1a4423 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
@@ -367,3 +367,7 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
index 601b505ead..cb0d1a4423 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
@@ -367,3 +367,7 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
index 601b505ead..cb0d1a4423 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
+++ b/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
@@ -367,3 +367,7 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
diff --git a/posix/Makefile b/posix/Makefile
index a728630203..54c635465c 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -40,7 +40,6 @@ routines := \
getuid geteuid getgid getegid getgroups setuid setgid group_member \
getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \
getresuid getresgid setresuid setresgid \
- getlogin getlogin_r setlogin \
pathconf sysconf fpathconf \
glob glob64 fnmatch regex \
confstr \
@@ -87,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \
tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \
bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \
bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \
- tst-pathconf
+ tst-pathconf tst-getaddrinfo4
xtests := bug-ga2
ifeq (yes,$(build-shared))
test-srcs := globtest
diff --git a/posix/Versions b/posix/Versions
index 1bc235acd2..68df3a9f39 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -52,7 +52,7 @@ libc {
# s*
sched_get_priority_max; sched_get_priority_min; sched_getparam;
sched_getscheduler; sched_rr_get_interval; sched_setparam;
- sched_setscheduler; sched_yield; setegid; seteuid; setgid; setlogin;
+ sched_setscheduler; sched_yield; setegid; seteuid; setgid;
setpgid; setpgrp; setsid; setuid; sleep; sysconf;
# t*
diff --git a/posix/bug-regex5.c b/posix/bug-regex5.c
index f199ffbfd3..fd18b19df4 100644
--- a/posix/bug-regex5.c
+++ b/posix/bug-regex5.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <string.h>
+#include <stdint.h>
#include <locale.h>
#include <locale/localeinfo.h>
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index ef3c882a61..6c4301df13 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -15,6 +15,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
struct STRUCT
{
const CHAR *pattern;
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 578044155b..0ffc2fad8b 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
size_t length, reg_syntax_t syntax);
static void re_compile_fastmap_iter (regex_t *bufp,
diff --git a/posix/regexec.c b/posix/regexec.c
index 5ca2bf67a0..f85c5e8017 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
int n) internal_function;
static void match_ctx_clean (re_match_context_t *mctx) internal_function;
diff --git a/posix/tst-getaddrinfo4.c b/posix/tst-getaddrinfo4.c
new file mode 100644
index 0000000000..10850cdc18
--- /dev/null
+++ b/posix/tst-getaddrinfo4.c
@@ -0,0 +1,67 @@
+/* Test getaddrinfo return value, [BZ #15339].
+ 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 <string.h>
+#include <stdio.h>
+#include <errno.h>
+#include <netdb.h>
+
+static int
+try (const char *service, int family, int flags)
+{
+ struct addrinfo hints, *h, *ai;
+ int res;
+
+ memset (&hints, 0, sizeof hints);
+ hints.ai_family = family;
+ hints.ai_flags = flags;
+
+ errno = 0;
+ h = (family || flags) ? &hints : NULL;
+ res = getaddrinfo ("example.net", service, h, &ai);
+ switch (res)
+ {
+ case 0:
+ case EAI_AGAIN:
+ case EAI_NONAME:
+ printf ("SUCCESS getaddrinfo(service=%s, family=%d, flags=%d): %s: %m\n",
+ service ?: "NULL", family, flags, gai_strerror (res));
+ return 0;
+ }
+ printf ("FAIL getaddrinfo(service=%s, family=%d, flags=%d): %s: %m\n",
+ service ?: "NULL", family, flags, gai_strerror (res));
+ return 1;
+}
+
+static int
+do_test (void)
+{
+ int err = 0;
+ err |= try (NULL, 0, 0);
+ err |= try (NULL, AF_UNSPEC, AI_ADDRCONFIG);
+ err |= try (NULL, AF_INET, 0);
+ err |= try (NULL, AF_INET6, 0);
+ err |= try ("http", 0, 0);
+ err |= try ("http", AF_UNSPEC, AI_ADDRCONFIG);
+ err |= try ("http", AF_INET, 0);
+ err |= try ("http", AF_INET6, 0);
+ return err;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c
index a37be36e6a..fcf8a8cd60 100644
--- a/posix/tst-rfc3484-2.c
+++ b/posix/tst-rfc3484-2.c
@@ -1,6 +1,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <ifaddrs.h>
+#include <stdint.h>
/* Internal definitions used in the libc code. */
#define __getservbyname_r getservbyname_r
diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c
index 493e76015c..86d59be1ab 100644
--- a/posix/tst-rfc3484-3.c
+++ b/posix/tst-rfc3484-3.c
@@ -1,6 +1,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <ifaddrs.h>
+#include <stdint.h>
/* Internal definitions used in the libc code. */
#define __getservbyname_r getservbyname_r
diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c
index db3ae1b7bb..2726fa0ad9 100644
--- a/posix/tst-rfc3484.c
+++ b/posix/tst-rfc3484.c
@@ -1,6 +1,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <ifaddrs.h>
+#include <stdint.h>
/* Internal definitions used in the libc code. */
#define __getservbyname_r getservbyname_r
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index 090ed7dda2..cdc61b9c6a 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -20,6 +20,7 @@
#include <netdb.h>
#include <resolv.h>
#include <stdlib.h>
+#include <stdint.h>
#include <arpa/nameser.h>
#include <nsswitch.h>
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 5c725b5f67..3c4db7eec3 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -61,6 +61,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include "nsswitch.h"
#include <arpa/inet.h>
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 3daa44e273..784343994b 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -573,7 +573,7 @@ p_option(u_long option) {
case RES_INIT: return "init";
case RES_DEBUG: return "debug";
case RES_AAONLY: return "aaonly(unimpl)";
- case RES_USEVC: return "usevc";
+ case RES_USEVC: return "use-vc";
case RES_PRIMARY: return "primry(unimpl)";
case RES_IGNTC: return "igntc";
case RES_RECURSE: return "recurs";
@@ -582,11 +582,17 @@ p_option(u_long option) {
case RES_DNSRCH: return "dnsrch";
case RES_INSECURE1: return "insecure1";
case RES_INSECURE2: return "insecure2";
+ case RES_NOALIASES: return "noaliases";
case RES_USE_INET6: return "inet6";
case RES_ROTATE: return "rotate";
- case RES_NOCHECKNAME: return "no-check-names";
- case RES_USEBSTRING: return "ip6-bytstring";
+ case RES_NOCHECKNAME: return "no-check-names(unimpl)";
+ case RES_KEEPTSIG: return "keeptsig(unimpl)";
+ case RES_BLAST: return "blast";
+ case RES_USEBSTRING: return "ip6-bytestring";
+ case RES_NOIP6DOTINT: return "no-ip6-dotint";
case RES_USE_EDNS0: return "edns0";
+ case RES_SNGLKUP: return "single-request";
+ case RES_SNGLKUPREOP: return "single-request-reopen";
case RES_USE_DNSSEC: return "dnssec";
case RES_NOTLDQUERY: return "no-tld-query";
/* XXX nonreentrant */
diff --git a/resolv/res_init.c b/resolv/res_init.c
index c58c763841..002dec5c57 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -77,6 +77,7 @@ static const char rcsid[] = "$BINDId: res_init.c,v 8.16 2000/05/09 07:10:12 vixi
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <net/if.h>
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index 2bc2d2497f..e2c6a742c0 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -83,6 +83,7 @@ static const char rcsid[] = "$BINDId: res_mkquery.c,v 8.12 1999/10/13 16:39:40 v
#ifdef _LIBC
# include <hp-timing.h>
+# include <stdint.h>
# if HP_TIMING_AVAIL
# define RANDOM_BITS(Var) { uint64_t v64; HP_TIMING_NOW (v64); Var = v64; }
# endif
diff --git a/resolv/resolv.h b/resolv/resolv.h
index ed15a702bf..53c3bba182 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -207,7 +207,7 @@ struct res_sym {
#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */
#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */
#define RES_ROTATE 0x00004000 /* rotate ns list after each query */
-#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity. */
+#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */
#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */
#define RES_BLAST 0x00020000 /* blast all recursive servers */
#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte
diff --git a/resolv/tst-aton.c b/resolv/tst-aton.c
index 6cb5960496..4e9caf96f4 100644
--- a/resolv/tst-aton.c
+++ b/resolv/tst-aton.c
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <stdint.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
diff --git a/resource/setrlimit.c b/resource/setrlimit.c
index e7924ff96f..b8496b1548 100644
--- a/resource/setrlimit.c
+++ b/resource/setrlimit.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991-2013 Free Software Foundation, Inc.
+/* Set process resource limits. Stub version.
+ Copyright (C) 1991-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
@@ -23,13 +24,11 @@
Only the super-user can increase hard limits.
Return 0 if successful, -1 if not (and sets errno). */
int
-setrlimit (resource, rlimits)
- enum __rlimit_resource resource;
- const struct rlimit *rlimits;
+__setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
{
__set_errno (ENOSYS);
return -1;
}
-
+weak_alias (__setrlimit, setrlimit)
stub_warning (setrlimit)
diff --git a/rt/tst-aio7.c b/rt/tst-aio7.c
index c156e86dd0..b25c33c153 100644
--- a/rt/tst-aio7.c
+++ b/rt/tst-aio7.c
@@ -78,7 +78,7 @@ do_test (void)
puts ("aio_cancel( -1, {-2..} ) did not return -1 or errno != EBADF");
}
- /* Test for aio_fsync() detecting bad fd, and fd not open for writing. */
+ /* Test for aio_fsync() detecting bad fd. */
{
struct aiocb cb;
int fd = -1;
@@ -98,21 +98,6 @@ do_test (void)
puts ("aio_fsync( op, {-1..} ) did not return -1 or errno != EBADF");
++result;
}
-
- if ((fd = open ("/dev/null", O_RDONLY)) < 0)
- error (1, errno, "opening /dev/null");
-
- cb.aio_fildes = fd;
- errno = 0;
-
- /* Case two: valid fd but open for read only. */
- if (aio_fsync (O_SYNC, &cb) != -1 || errno != EBADF)
- {
- puts ("aio_fsync( op, {RO..} ) did not return -1 or errno != EBADF");
- ++result;
- }
-
- close (fd);
}
/* Test for aio_suspend() suspending even if completed elements in list. */
diff --git a/scripts/bench.pl b/scripts/bench.pl
index bb7f64897e..dcf1355282 100755
--- a/scripts/bench.pl
+++ b/scripts/bench.pl
@@ -22,36 +22,48 @@ use warnings;
# Generate a benchmark source file for a given input.
if (@ARGV < 2) {
- die "Usage: bench.pl <function> <iterations> [parameter types] [return type]"
+ die "Usage: bench.pl <function> [parameter types] [return type]"
}
my $arg;
my $func = $ARGV[0];
-my $iters = $ARGV[1];
my @args;
my $ret = "void";
my $getret = "";
my $retval = "";
-if (@ARGV >= 3) {
- @args = split(':', $ARGV[2]);
+if (@ARGV >= 2) {
+ @args = split(':', $ARGV[1]);
}
-if (@ARGV == 4) {
- $ret = $ARGV[3];
+if (@ARGV == 3) {
+ $ret = $ARGV[2];
}
my $decl = "extern $ret $func (";
+# Function has no arguments.
if (@args == 0 || $args[0] eq "void") {
print "$decl void);\n";
- print "#define CALL_BENCH_FUNC(j) $func();\n";
- print "#define NUM_SAMPLES (1)\n";
+ print "#define CALL_BENCH_FUNC(i,j) $func();\n";
+ print "#define NUM_VARIANTS (1)\n";
+ print "#define NUM_SAMPLES(v) (1)\n";
+ print "#define VARIANT(v) FUNCNAME \"()\"\n"
}
+# The function has arguments, so parse them and populate the inputs.
else {
my $num = 0;
- my $bench_func = "#define CALL_BENCH_FUNC(j) $func (";
- my $struct = "struct args {";
+ my $bench_func = "#define CALL_BENCH_FUNC(v, i) $func (";
+
+ my $struct =
+ "struct _variants
+ {
+ const char *name;
+ int count;
+ struct args *in;
+ };\n";
+
+ my $arg_struct = "struct args {";
foreach $arg (@args) {
if ($num > 0) {
@@ -59,24 +71,87 @@ else {
$decl = "$decl,";
}
- $struct = "$struct $arg arg$num;";
- $bench_func = "$bench_func in[j].arg$num";
+ $arg_struct = "$arg_struct volatile $arg arg$num;";
+ $bench_func = "$bench_func variants[v].in[i].arg$num";
$decl = "$decl $arg";
$num = $num + 1;
}
- print "$decl);\n";
- print "$bench_func);\n";
- print "$struct } in[] = {";
+ $arg_struct = $arg_struct . "};\n";
+ $decl = $decl . ");\n";
+ $bench_func = $bench_func . ");\n";
+
+ # We create a hash of inputs for each variant of the test.
+ my $variant = "";
+ my @curvals;
+ my %vals;
open INPUTS, "<$func-inputs" or die $!;
- while (<INPUTS>) {
+ LINE:while (<INPUTS>) {
chomp;
- print "{$_},\n";
+
+ # New variant.
+ if (/^## (\w+): (\w+)/) {
+ #We only identify Name for now.
+ if ($1 ne "name") {
+ next LINE;
+ }
+
+ # Save values in the last variant.
+ my @copy = @curvals;
+ $vals{$variant} = \@copy;
+
+ # Prepare for the next.
+ $variant=$2;
+ undef @curvals;
+ next LINE;
+ }
+
+ # Skip over comments.
+ if (/^#/) {
+ next LINE;
+ }
+ push (@curvals, $_);
}
- print "};\n";
- print "#define NUM_SAMPLES (sizeof (in) / sizeof (struct args))\n"
+
+ $vals{$variant} = \@curvals;
+
+ # Print the definitions and macros.
+ print $decl;
+ print $bench_func;
+ print $arg_struct;
+ print $struct;
+
+ my $c = 0;
+ my $key;
+
+ # Print the input arrays.
+ foreach $key (keys %vals) {
+ my @arr = @{$vals{$key}};
+
+ print "struct args in" . $c . "[" . @arr . "] = {\n";
+ foreach (@arr) {
+ print "{$_},\n";
+ }
+ print "};\n\n";
+ $c += 1;
+ }
+
+ # The variants. Each variant then points to the appropriate input array we
+ # defined above.
+ print "struct _variants variants[" . (keys %vals) . "] = {\n";
+ $c = 0;
+ foreach $key (keys %vals) {
+ print "{\"$func($key)\", " . @{$vals{$key}} . ", in$c},\n";
+ $c += 1;
+ }
+ print "};\n\n";
+
+ # Finally, print the last set of macros.
+ print "#define NUM_VARIANTS $c\n";
+ print "#define NUM_SAMPLES(i) (variants[i].count)\n";
+ print "#define VARIANT(i) (variants[i].name)\n";
}
# In some cases not storing a return value seems to result in the function call
@@ -86,8 +161,8 @@ if ($ret ne "void") {
$getret = "ret = ";
}
-print "#define BENCH_FUNC(j) ({$getret CALL_BENCH_FUNC (j);})\n";
+# And we're done.
+print "#define BENCH_FUNC(i, j) ({$getret CALL_BENCH_FUNC (i, j);})\n";
-print "#define ITER $iters\n";
print "#define FUNCNAME \"$func\"\n";
print "#include \"bench-skeleton.c\"\n";
diff --git a/setjmp/Makefile b/setjmp/Makefile
index 2c2ead25e9..913359cf73 100644
--- a/setjmp/Makefile
+++ b/setjmp/Makefile
@@ -25,7 +25,15 @@ headers := setjmp.h bits/setjmp.h bits/setjmp2.h
routines := setjmp sigjmp bsd-setjmp bsd-_setjmp \
longjmp __longjmp jmp-unwind
-tests := tst-setjmp jmpbug bug269-setjmp
+tests := tst-setjmp jmpbug bug269-setjmp tst-setjmp-fp \
+ tst-sigsetjmp
include ../Rules
+
+ifeq ($(build-shared),yes)
+link-libm = $(common-objpfx)math/libm.so
+else
+link-libm = $(common-objpfx)math/libm.a
+endif
+$(objpfx)tst-setjmp-fp: $(link-libm)
diff --git a/setjmp/tst-setjmp-fp.c b/setjmp/tst-setjmp-fp.c
new file mode 100644
index 0000000000..dc2b4b0808
--- /dev/null
+++ b/setjmp/tst-setjmp-fp.c
@@ -0,0 +1,105 @@
+/* Test that setjmp/longjmp do not save and restore floating-point
+ exceptions and rounding modes.
+ 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 <fenv.h>
+#include <setjmp.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static jmp_buf env;
+static int result = 0;
+
+#if defined FE_TONEAREST && defined FE_TOWARDZERO
+static int expected_rounding_mode = FE_TONEAREST;
+
+static void
+change_rounding_mode (void)
+{
+ if (fesetround (FE_TOWARDZERO) == 0)
+ expected_rounding_mode = FE_TOWARDZERO;
+ else
+ puts ("fesetround (FE_TOWARDZERO) failed, continuing test");
+ longjmp (env, 1);
+}
+#endif
+
+#ifdef FE_INVALID
+static int expected_exceptions = 0;
+
+static void
+raise_exception (void)
+{
+ if (feraiseexcept (FE_INVALID) == 0)
+ expected_exceptions = FE_INVALID;
+ else
+ puts ("feraiseexcept (FE_INVALID) failed, continuing test");
+ longjmp (env, 1);
+}
+#endif
+
+static int
+do_test (void)
+{
+#if defined FE_TONEAREST && defined FE_TOWARDZERO
+ if (fesetround (FE_TONEAREST) == 0)
+ {
+ if (setjmp (env) == 0)
+ change_rounding_mode ();
+ else
+ {
+ if (fegetround () == expected_rounding_mode)
+ puts ("PASS: longjmp preserved rounding mode");
+ else
+ {
+ puts ("FAIL: longjmp changed rounding mode");
+ result = 1;
+ }
+ }
+ }
+ else
+ puts ("fesetround (FE_TONEAREST) failed, not testing rounding modes");
+#else
+ puts ("rounding mode test not supported");
+#endif
+#ifdef FE_INVALID
+ if (feclearexcept (FE_ALL_EXCEPT) == 0)
+ {
+ if (setjmp (env) == 0)
+ raise_exception ();
+ else
+ {
+ if (fetestexcept (FE_INVALID) == expected_exceptions)
+ puts ("PASS: longjmp preserved exceptions");
+ else
+ {
+ puts ("FAIL: longjmp changed exceptions");
+ result = 1;
+ }
+ }
+ }
+ else
+ puts ("feclearexcept (FE_ALL_EXCEPT) failed, not testing exceptions");
+#else
+ puts ("exception test not supported");
+#endif
+ return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/setjmp/tst-sigsetjmp.c b/setjmp/tst-sigsetjmp.c
new file mode 100644
index 0000000000..467c26a968
--- /dev/null
+++ b/setjmp/tst-sigsetjmp.c
@@ -0,0 +1,44 @@
+/* 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/>. */
+
+/* Test case for BZ #15493 */
+
+#include <stdlib.h>
+#include <signal.h>
+#include <setjmp.h>
+
+static int
+do_test (void)
+{
+ sigjmp_buf sj;
+ sigset_t m;
+
+ sigemptyset (&m);
+ sigprocmask (SIG_SETMASK, &m, NULL);
+ if (sigsetjmp (sj, 0) == 0)
+ {
+ sigaddset (&m, SIGUSR1);
+ sigprocmask (SIG_SETMASK, &m, NULL);
+ siglongjmp (sj, 1);
+ return EXIT_FAILURE;
+ }
+ sigprocmask (SIG_SETMASK, NULL, &m);
+ return sigismember (&m, SIGUSR1) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index a29cd9a8dd..8b73b58c52 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -35,6 +35,16 @@
_FP_I_TYPE X##_e; \
_FP_FRAC_DECL_##wc(X)
+/* Test whether the qNaN bit denotes a signaling NaN. */
+#define _FP_FRAC_SNANP(fs, X) \
+ ((_FP_QNANNEGATEDP) \
+ ? (_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ : !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))
+#define _FP_FRAC_SNANP_SEMIRAW(fs, X) \
+ ((_FP_QNANNEGATEDP) \
+ ? (_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs) \
+ : !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs))
+
/*
* Finish truely unpacking a native fp value by classifying the kind
* of fp value and normalizing both the exponent and the fraction.
@@ -74,7 +84,7 @@ do { \
{ \
X##_c = FP_CLS_NAN; \
/* Check for signaling NaN */ \
- if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ if (_FP_FRAC_SNANP(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
} \
break; \
@@ -112,7 +122,7 @@ do { \
do { \
if (X##_e == _FP_EXPMAX_##fs \
&& !_FP_FRAC_ZEROP_##wc(X) \
- && !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs)) \
+ && _FP_FRAC_SNANP_SEMIRAW(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
} while (0)
@@ -127,6 +137,39 @@ do { \
_FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \
} while (0)
+/* Make the fractional part a quiet NaN, preserving the payload
+ if possible, otherwise make it the canonical quiet NaN and set
+ the sign bit accordingly. */
+#define _FP_SETQNAN(fs, wc, X) \
+do { \
+ if (_FP_QNANNEGATEDP) \
+ { \
+ _FP_FRAC_HIGH_RAW_##fs(X) &= _FP_QNANBIT_##fs - 1; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ X##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ } \
+ } \
+ else \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+} while (0)
+#define _FP_SETQNAN_SEMIRAW(fs, wc, X) \
+do { \
+ if (_FP_QNANNEGATEDP) \
+ { \
+ _FP_FRAC_HIGH_##fs(X) &= _FP_QNANBIT_SH_##fs - 1; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ X##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ _FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
+ } \
+ } \
+ else \
+ _FP_FRAC_HIGH_##fs(X) |= _FP_QNANBIT_SH_##fs; \
+} while (0)
+
/* Test whether a biased exponent is normal (not zero or maximum). */
#define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1)
@@ -159,7 +202,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \
} \
else \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ _FP_SETQNAN(fs, wc, X); \
} \
} while (0)
@@ -273,7 +316,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \
} \
else \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ _FP_SETQNAN(fs, wc, X); \
break; \
} \
} while (0)
@@ -287,7 +330,7 @@ do { \
if (X##_e == _FP_EXPMAX_##fs) \
{ \
if (!_FP_FRAC_ZEROP_##wc(X) \
- && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ && _FP_FRAC_SNANP(fs, X)) \
__ret = 1; \
} \
__ret; \
@@ -973,7 +1016,7 @@ do { \
R##_s = 0; \
if (X##_s) \
{ \
- R##_c = FP_CLS_NAN; /* sNAN */ \
+ R##_c = FP_CLS_NAN; /* NAN */ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \
@@ -1199,7 +1242,7 @@ do { \
D##_e = _FP_EXPMAX_##dfs; \
if (!_FP_FRAC_ZEROP_##swc(S)) \
{ \
- if (!(_FP_FRAC_HIGH_RAW_##sfs(S) & _FP_QNANBIT_##sfs)) \
+ if (_FP_FRAC_SNANP(sfs, S)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
_FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs \
- _FP_FRACBITS_##sfs)); \
@@ -1286,7 +1329,7 @@ do { \
/* Semi-raw NaN must have all workbits cleared. */ \
_FP_FRAC_LOW_##dwc(D) \
&= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1); \
- _FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs; \
+ _FP_SETQNAN_SEMIRAW(dfs, dwc, D); \
} \
} \
} \
diff --git a/soft-fp/testit.c b/soft-fp/testit.c
index 46a50c4401..f1e9b54758 100644
--- a/soft-fp/testit.c
+++ b/soft-fp/testit.c
@@ -200,17 +200,17 @@ double gen_special_double(int i)
case 0:
X_c = FP_CLS_NAN;
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
- __FP_FRAC_SET_2(X, _FP_QNANBIT_D, 0x1234);
+ __FP_FRAC_SET_2(X, _FP_QNANNEGATEDP ? 0 : _FP_QNANBIT_D, 0x1234);
#else
- _FP_FRAC_SET_1(X, _FP_QNANBIT_D | 0x1234);
+ _FP_FRAC_SET_1(X, (_FP_QNANNEGATEDP ? 0 : _FP_QNANBIT_D) | 0x1234);
#endif
break;
case 2:
X_c = FP_CLS_NAN;
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
- __FP_FRAC_SET_2(X, _FP_QNANBIT_D, 0x1);
+ __FP_FRAC_SET_2(X, _FP_QNANNEGATEDP ? 0 : _FP_QNANBIT_D, 0x1);
#else
- _FP_FRAC_SET_1(X, _FP_QNANBIT_D | 0x1);
+ _FP_FRAC_SET_1(X, (_FP_QNANNEGATEDP ? 0 : _FP_QNANBIT_D) | 0x1);
#endif
break;
case 4:
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index f64a8ba2d9..658804bbe8 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -57,7 +57,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \
- bug25 tst-printf-round
+ bug25 tst-printf-round bug26
test-srcs = tst-unbputc tst-printf
diff --git a/stdio-common/bug26.c b/stdio-common/bug26.c
new file mode 100644
index 0000000000..a4c6bce939
--- /dev/null
+++ b/stdio-common/bug26.c
@@ -0,0 +1,37 @@
+/* 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 <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+ FILE *f;
+ int lost = 0;
+ int c;
+ double d;
+ char s[] = "+.e";
+
+ f = fmemopen (s, strlen (s), "r");
+ /* This should fail to parse a float and leave 'e' in the input. */
+ lost |= (fscanf (f, "%f", &d) != 0);
+ c = fgetc (f);
+ lost |= c != 'e';
+ puts (lost ? "Test FAILED!" : "Test succeeded.");
+ return lost;
+}
diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c
index d24c55f53c..5a25ecc9f0 100644
--- a/stdio-common/tstdiomisc.c
+++ b/stdio-common/tstdiomisc.c
@@ -47,8 +47,14 @@ t2 (void)
}
volatile double qnanval;
-volatile double infval;
volatile long double lqnanval;
+/* A sNaN is only guaranteed to be representable in variables with static (or
+ thread-local) storage duration. */
+static volatile double snanval = __builtin_nans ("");
+static volatile double msnanval = -__builtin_nans ("");
+static volatile long double lsnanval = __builtin_nansl ("");
+static volatile long double lmsnanval = -__builtin_nansl ("");
+volatile double infval;
volatile long double linfval;
@@ -57,20 +63,33 @@ F (void)
{
char buf[80];
wchar_t wbuf[40];
- int result;
+ int result = 0;
qnanval = NAN;
snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
qnanval, qnanval, qnanval, qnanval,
qnanval, qnanval, qnanval, qnanval);
- result = strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+ result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
-qnanval, -qnanval, -qnanval, -qnanval,
-qnanval, -qnanval, -qnanval, -qnanval);
- result = strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+ buf);
+
+ snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+ snanval, snanval, snanval, snanval,
+ snanval, snanval, snanval, snanval);
+ result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+ printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+ snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+ msnanval, msnanval, msnanval, msnanval,
+ msnanval, msnanval, msnanval, msnanval);
+ result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
buf);
@@ -102,6 +121,19 @@ F (void)
wbuf);
swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+ snanval, snanval, snanval, snanval,
+ snanval, snanval, snanval, snanval);
+ result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+ printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+ swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+ msnanval, msnanval, msnanval, msnanval,
+ msnanval, msnanval, msnanval, msnanval);
+ result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+ wbuf);
+
+ swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
infval, infval, infval, infval, infval, infval, infval, infval);
result |= wcscmp (wbuf, L"inf INF inf INF inf INF inf INF") != 0;
printf ("expected L\"inf INF inf INF inf INF inf INF\", got L\"%S\"\n", wbuf);
@@ -118,13 +150,26 @@ F (void)
snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
lqnanval, lqnanval, lqnanval, lqnanval,
lqnanval, lqnanval, lqnanval, lqnanval);
- result = strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+ result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
-lqnanval, -lqnanval, -lqnanval, -lqnanval,
-lqnanval, -lqnanval, -lqnanval, -lqnanval);
- result = strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+ buf);
+
+ snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+ lsnanval, lsnanval, lsnanval, lsnanval,
+ lsnanval, lsnanval, lsnanval, lsnanval);
+ result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+ printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+ snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+ lmsnanval, lmsnanval, lmsnanval, lmsnanval,
+ lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+ result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
buf);
@@ -160,6 +205,21 @@ F (void)
swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+ lsnanval, lsnanval, lsnanval, lsnanval,
+ lsnanval, lsnanval, lsnanval, lsnanval);
+ result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+ printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+ swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+ L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+ lmsnanval, lmsnanval, lmsnanval, lmsnanval,
+ lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+ result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+ printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+ wbuf);
+
+ swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+ L"%La %LA %Le %LE %Lf %LF %Lg %LG",
linfval, linfval, linfval, linfval,
linfval, linfval, linfval, linfval);
result |= wcscmp (wbuf, L"inf INF inf INF inf INF inf INF") != 0;
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 9b5c4a9c88..82f7eee192 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -222,7 +222,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
/* Errno of last failed inchar call. */
int inchar_errno = 0;
/* Status for reading F-P nums. */
- char got_dot, got_e, negative;
+ char got_digit, got_dot, got_e, negative;
/* If a [...] is a [^...]. */
CHAR_T not_in;
#define exp_char not_in
@@ -1845,7 +1845,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (__builtin_expect (c == EOF, 0))
input_error ();
- got_dot = got_e = 0;
+ got_digit = got_dot = got_e = 0;
/* Check for a sign. */
if (c == L_('-') || c == L_('+'))
@@ -1971,13 +1971,19 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
while (1)
{
if (ISDIGIT (c))
- ADDW (c);
+ {
+ ADDW (c);
+ got_digit = 1;
+ }
else if (!got_e && (flags & HEXA_FLOAT) && ISXDIGIT (c))
- ADDW (c);
+ {
+ ADDW (c);
+ got_digit = 1;
+ }
else if (got_e && wp[wpsize - 1] == exp_char
&& (c == L_('-') || c == L_('+')))
ADDW (c);
- else if (wpsize > 0 && !got_e
+ else if (got_digit && !got_e
&& (CHAR_T) TOLOWER (c) == exp_char)
{
ADDW (exp_char);
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 6f98c71c64..27765d15b7 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -157,6 +157,7 @@ $(objpfx)bug-getcontext: $(link-libm)
$(objpfx)tst-strtod-round: $(link-libm)
$(objpfx)tst-tininess: $(link-libm)
$(objpfx)tst-strtod-underflow: $(link-libm)
+$(objpfx)tst-strtod6: $(link-libm)
tst-tls-atexit-lib.so-no-z-defs = yes
diff --git a/stdlib/bits/stdlib-ldbl.h b/stdlib/bits/stdlib-ldbl.h
index 1e1bcefaac..a606fd3d09 100644
--- a/stdlib/bits/stdlib-ldbl.h
+++ b/stdlib/bits/stdlib-ldbl.h
@@ -30,12 +30,10 @@ __END_NAMESPACE_C99
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
#endif
-#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
-# ifdef __USE_MISC
+#ifdef __USE_MISC
__LDBL_REDIR1_DECL (qecvt, ecvt)
__LDBL_REDIR1_DECL (qfcvt, fcvt)
__LDBL_REDIR1_DECL (qgcvt, gcvt)
__LDBL_REDIR1_DECL (qecvt_r, ecvt_r)
__LDBL_REDIR1_DECL (qfcvt_r, fcvt_r)
-# endif
#endif
diff --git a/stdlib/cxa_atexit.c b/stdlib/cxa_atexit.c
index 82e33654f9..0a42776dbd 100644
--- a/stdlib/cxa_atexit.c
+++ b/stdlib/cxa_atexit.c
@@ -17,6 +17,7 @@
#include <assert.h>
#include <stdlib.h>
+#include <stdint.h>
#include <bits/libc-lock.h>
#include "exit.h"
diff --git a/stdlib/cxa_finalize.c b/stdlib/cxa_finalize.c
index f2a1c9b12c..2ee890f27a 100644
--- a/stdlib/cxa_finalize.c
+++ b/stdlib/cxa_finalize.c
@@ -21,6 +21,7 @@
#include "exit.h"
#include <fork.h>
#include <sysdep.h>
+#include <stdint.h>
/* If D is non-NULL, call all functions registered with `__cxa_atexit'
with the same dso handle. Otherwise, if D is NULL, call all of the
diff --git a/stdlib/cxa_thread_atexit_impl.c b/stdlib/cxa_thread_atexit_impl.c
index ebf3c4ab05..dfd4c7e694 100644
--- a/stdlib/cxa_thread_atexit_impl.c
+++ b/stdlib/cxa_thread_atexit_impl.c
@@ -76,7 +76,7 @@ __cxa_thread_atexit_impl (dtor_func func, void *obj, void *dso_symbol)
}
/* Call the destructors. This is called either when a thread returns from the
- initial function or when the process exits via the exit(3) function. */
+ initial function or when the process exits via the exit function. */
void
__call_tls_dtors (void)
{
diff --git a/stdlib/exit.c b/stdlib/exit.c
index 2e86caa2d4..270fda7b4f 100644
--- a/stdlib/exit.c
+++ b/stdlib/exit.c
@@ -34,7 +34,10 @@ __run_exit_handlers (int status, struct exit_function_list **listp,
bool run_list_atexit)
{
/* First, call the TLS destructors. */
- __call_tls_dtors ();
+#ifndef SHARED
+ if (&__call_tls_dtors != NULL)
+#endif
+ __call_tls_dtors ();
/* We do it this way to handle recursive calls to exit () made by
the functions registered with `atexit' and `on_exit'. We call
diff --git a/stdlib/gen-fpioconst.c b/stdlib/gen-fpioconst.c
index f0dd958d59..1ff1baf981 100644
--- a/stdlib/gen-fpioconst.c
+++ b/stdlib/gen-fpioconst.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <string.h>
#include <gmp.h>
+#include <stdint.h>
int
main (void)
diff --git a/stdlib/random.c b/stdlib/random.c
index 3ed610dd9c..967dec3539 100644
--- a/stdlib/random.c
+++ b/stdlib/random.c
@@ -234,16 +234,17 @@ __initstate (seed, arg_state, n)
size_t n;
{
int32_t *ostate;
+ int ret;
__libc_lock_lock (lock);
ostate = &unsafe_state.state[-1];
- __initstate_r (seed, arg_state, n, &unsafe_state);
+ ret = __initstate_r (seed, arg_state, n, &unsafe_state);
__libc_lock_unlock (lock);
- return (char *) ostate;
+ return ret == -1 ? NULL : (char *) ostate;
}
weak_alias (__initstate, initstate)
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 4b839441c3..99a830dc14 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -823,9 +823,9 @@ extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
be written to BUF. */
extern char *gcvt (double __value, int __ndigit, char *__buf)
__THROW __nonnull ((3)) __wur;
+#endif
-
-# ifdef __USE_MISC
+#ifdef __USE_MISC
/* Long double versions of above functions. */
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
@@ -854,8 +854,7 @@ extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__THROW __nonnull ((3, 4, 5));
-# endif /* misc */
-#endif /* use MISC || use X/Open Unix */
+#endif /* misc */
__BEGIN_NAMESPACE_STD
diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
index dc6829f59c..874708ab00 100644
--- a/stdlib/strtol_l.c
+++ b/stdlib/strtol_l.c
@@ -43,6 +43,7 @@
#include <string.h>
#include <locale.h>
#include <xlocale.h>
+#include <stdint.h>
#include <bits/wordsize.h>
#ifdef USE_NUMBER_GROUPING
diff --git a/stdlib/tst-strtod6.c b/stdlib/tst-strtod6.c
index fdb104f9ca..1d87266a27 100644
--- a/stdlib/tst-strtod6.c
+++ b/stdlib/tst-strtod6.c
@@ -16,6 +16,11 @@ do_test (void)
puts ("strtod did not return NAN");
result = 1;
}
+ if (issignaling (d))
+ {
+ puts ("strtod returned a sNAN");
+ result = 1;
+ }
if (strcmp (endp, "something") != 0)
{
puts ("strtod set incorrect end pointer");
@@ -28,6 +33,11 @@ do_test (void)
puts ("strtof did not return NAN");
result = 1;
}
+ if (issignaling (f))
+ {
+ puts ("strtof returned a sNAN");
+ result = 1;
+ }
if (strcmp (endp, "something") != 0)
{
puts ("strtof set incorrect end pointer");
@@ -40,6 +50,11 @@ do_test (void)
puts ("strtold did not return NAN");
result = 1;
}
+ if (issignaling (ld))
+ {
+ puts ("strtold returned a sNAN");
+ result = 1;
+ }
if (strcmp (endp, "something") != 0)
{
puts ("strtold set incorrect end pointer");
diff --git a/string/bits/string2.h b/string/bits/string2.h
index 94f5ee917f..ddd1c045a0 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -887,30 +887,7 @@ __stpcpy_small (char *__dest,
} \
__result; }))
-# define __strcmp_gc(s1, s2, l2) \
- (__extension__ ({ const unsigned char *__s1 = \
- (const unsigned char *) (const char *) (s1); \
- register int __result = \
- __s1[0] - ((const unsigned char *) \
- (const char *) (s2))[0]; \
- if (l2 > 0 && __result == 0) \
- { \
- __result = (__s1[1] \
- - ((const unsigned char *) \
- (const char *) (s2))[1]); \
- if (l2 > 1 && __result == 0) \
- { \
- __result = \
- (__s1[2] - ((const unsigned char *) \
- (const char *) (s2))[2]); \
- if (l2 > 2 && __result == 0) \
- __result = \
- (__s1[3] \
- - ((const unsigned char *) \
- (const char *) (s2))[3]); \
- } \
- } \
- __result; }))
+# define __strcmp_gc(s1, s2, l2) (- __strcmp_cg (s2, s1, l2))
#endif
diff --git a/string/tst-endian.c b/string/tst-endian.c
index c34dc456a7..8684bb232b 100644
--- a/string/tst-endian.c
+++ b/string/tst-endian.c
@@ -2,7 +2,7 @@
#include <endian.h>
#include <inttypes.h>
#include <stdio.h>
-
+#include <stdint.h>
static int
do_test (void)
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index 0408d60826..b299c456d6 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -33,6 +33,7 @@
*/
#include <string.h>
+#include <stdint.h>
#include <rpc/des_crypt.h>
#include <rpc/types.h>
#include <rpc/auth.h>
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index 8890cc6cfc..7fc077730d 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -42,6 +42,7 @@
#include <sys/ioctl.h>
#include <netdb.h>
#include <errno.h>
+#include <stdint.h>
#include <rpc/pmap_clnt.h>
#include <net/if.h>
#include <ifaddrs.h>
diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c
index 1477b43a7d..0223c9a9fc 100644
--- a/sunrpc/rpc_main.c
+++ b/sunrpc/rpc_main.c
@@ -39,6 +39,7 @@
#include <string.h>
#include <unistd.h>
#include <libintl.h>
+#include <locale.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/param.h>
@@ -173,6 +174,9 @@ main (int argc, const char *argv[])
{
struct commandline cmd;
+ setlocale (LC_ALL, "");
+ textdomain (_libc_intl_domainname);
+
(void) memset ((char *) &cmd, 0, sizeof (struct commandline));
clear_args ();
if (!parseargs (argc, argv, &cmd))
@@ -322,9 +326,9 @@ clear_args (void)
static void
find_cpp (void)
{
- struct stat buf;
+ struct stat64 buf;
- if (stat (CPP, &buf) == 0)
+ if (stat64 (CPP, &buf) == 0)
return;
if (cppDefined) /* user specified cpp but it does not exist */
@@ -1110,17 +1114,17 @@ putarg (int whereto, const char *cp)
static void
checkfiles (const char *infile, const char *outfile)
{
- struct stat buf;
+ struct stat64 buf;
if (infile) /* infile ! = NULL */
- if (stat (infile, &buf) < 0)
+ if (stat64 (infile, &buf) < 0)
{
perror (infile);
crash ();
}
if (outfile)
{
- if (stat (outfile, &buf) < 0)
+ if (stat64 (outfile, &buf) < 0)
return; /* file does not exist */
else
{
diff --git a/sunrpc/rtime.c b/sunrpc/rtime.c
index bcb280b48f..d224624f8b 100644
--- a/sunrpc/rtime.c
+++ b/sunrpc/rtime.c
@@ -39,6 +39,7 @@
*/
#include <stdio.h>
#include <unistd.h>
+#include <stdint.h>
#include <rpc/rpc.h>
#include <rpc/clnt.h>
#include <sys/types.h>
diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c
index 9609734960..a0f961db12 100644
--- a/sunrpc/svcauth_des.c
+++ b/sunrpc/svcauth_des.c
@@ -43,6 +43,7 @@
#include <limits.h>
#include <string.h>
+#include <stdint.h>
#include <sys/param.h>
#include <netinet/in.h>
#include <rpc/rpc.h>
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index 7eac2d40f0..b3f96ca4dc 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -40,6 +40,7 @@
#include <string.h>
#include <libintl.h>
#include <wchar.h>
+#include <stdint.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
diff --git a/sunrpc/xdr_intXX_t.c b/sunrpc/xdr_intXX_t.c
index 39604c95b0..9de567cab4 100644
--- a/sunrpc/xdr_intXX_t.c
+++ b/sunrpc/xdr_intXX_t.c
@@ -21,6 +21,7 @@
/* We play dirty tricks with aliases. */
#include <rpc/xdr.h>
+#include <stdint.h>
/* XDR 64bit integers */
bool_t
diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c
index f5d6ef2af9..9d79ace4b7 100644
--- a/sunrpc/xdr_rec.c
+++ b/sunrpc/xdr_rec.c
@@ -45,6 +45,7 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <stdint.h>
#include <rpc/rpc.h>
#include <libintl.h>
#include <wchar.h>
diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h
index dc97519056..95d781815b 100644
--- a/sysdeps/generic/inttypes.h
+++ b/sysdeps/generic/inttypes.h
@@ -40,11 +40,6 @@ typedef wchar_t __gwchar_t;
# define ____gwchar_t_defined 1
#endif
-
-/* The ISO C99 standard specifies that these macros must only be
- defined if explicitly requested. */
-#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
-
# if __WORDSIZE == 64
# define __PRI64_PREFIX "l"
# define __PRIPTR_PREFIX "l"
@@ -267,8 +262,6 @@ typedef wchar_t __gwchar_t;
# define SCNuPTR __PRIPTR_PREFIX "u"
# define SCNxPTR __PRIPTR_PREFIX "x"
-#endif /* C++ && format macros */
-
__BEGIN_DECLS
diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
index ca3f0e430f..d96089d492 100644
--- a/sysdeps/generic/ldconfig.h
+++ b/sysdeps/generic/ldconfig.h
@@ -19,6 +19,8 @@
#ifndef _LDCONFIG_H
#define _LDCONFIG_H
+#include <stdint.h>
+
#define FLAG_ANY -1
#define FLAG_TYPE_MASK 0x00ff
#define FLAG_LIBC4 0x0000
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 9944555dd3..3f44809802 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -26,6 +26,7 @@
#define __need_NULL
#include <stddef.h>
#include <string.h>
+#include <stdint.h>
#include <elf.h>
#include <dlfcn.h>
@@ -601,6 +602,12 @@ extern const struct rtld_global_ro _rtld_global_ro
#endif
#undef EXTERN
+#ifndef SHARED
+/* dl-support.c defines these and initializes them early on. */
+extern const ElfW(Phdr) *_dl_phdr;
+extern size_t _dl_phnum;
+#endif
+
#ifdef IS_IN_rtld
/* This is the initial value of GL(dl_error_catch_tsd).
A non-TLS libpthread will change it. */
@@ -633,6 +640,16 @@ extern char **_dl_argv
#endif
;
#ifdef IS_IN_rtld
+extern unsigned int _dl_skip_args attribute_hidden
+# ifndef DL_ARGV_NOT_RELRO
+ attribute_relro
+# endif
+ ;
+extern unsigned int _dl_skip_args_internal attribute_hidden
+# ifndef DL_ARGV_NOT_RELRO
+ attribute_relro
+# endif
+ ;
extern char **_dl_argv_internal attribute_hidden
# ifndef DL_ARGV_NOT_RELRO
attribute_relro
diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h
index 76f738ee99..da8747a944 100644
--- a/sysdeps/generic/math-tests.h
+++ b/sysdeps/generic/math-tests.h
@@ -34,3 +34,9 @@
(sizeof (x) == sizeof (float) ? SNAN_TESTS_float \
: sizeof (x) == sizeof (double) ? SNAN_TESTS_double \
: SNAN_TESTS_long_double)
+
+/* Indicate whether to run tests involving type casts of sNaN values. These
+ are run unless overridden. */
+#ifndef SNAN_TESTS_TYPE_CAST
+# define SNAN_TESTS_TYPE_CAST 1
+#endif
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h
index 7661788e6d..9d6ecade68 100644
--- a/sysdeps/generic/math_private.h
+++ b/sysdeps/generic/math_private.h
@@ -371,6 +371,18 @@ extern float __x2y2m1f (float x, float y);
extern double __x2y2m1 (double x, double y);
extern long double __x2y2m1l (long double x, long double y);
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+extern float __gamma_productf (float x, float x_eps, int n, float *eps);
+extern double __gamma_product (double x, double x_eps, int n, double *eps);
+extern long double __gamma_productl (long double x, long double x_eps,
+ int n, long double *eps);
+
#ifndef math_opt_barrier
# define math_opt_barrier(x) \
({ __typeof (x) __x = (x); __asm ("" : "+m" (__x)); __x; })
diff --git a/sysdeps/generic/memusage.h b/sysdeps/generic/memusage.h
index 849f6e6bf0..631287827a 100644
--- a/sysdeps/generic/memusage.h
+++ b/sysdeps/generic/memusage.h
@@ -18,6 +18,7 @@
#include <limits.h>
#include <atomic.h>
+#include <stdint.h>
#ifndef GETSP
# warning "GETSP is not defined for this architecture."
diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h
index 66882442ca..d5e76d56c3 100644
--- a/sysdeps/generic/not-cancel.h
+++ b/sysdeps/generic/not-cancel.h
@@ -44,3 +44,11 @@
__fcntl (fd, cmd, val)
# define waitpid_not_cancel(pid, stat_loc, options) \
__waitpid (pid, stat_loc, options)
+#define pause_not_cancel() \
+ __pause ()
+#define nanosleep_not_cancel(requested_time, remaining) \
+ __nanosleep (requested_time, remaining)
+#define sigsuspend_not_cancel(set) \
+ __sigsuspend (set)
+
+#define NO_CANCELLATION 1
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
index 15f7508078..94c3203c84 100644
--- a/sysdeps/generic/stdint.h
+++ b/sysdeps/generic/stdint.h
@@ -141,10 +141,6 @@ typedef unsigned long long int uintmax_t;
#endif
-/* The ISO C99 standard specifies that in C++ implementations these
- macros should only be defined if explicitly requested. */
-#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
-
# if __WORDSIZE == 64
# define __INT64_C(c) c ## L
# define __UINT64_C(c) c ## UL
@@ -278,13 +274,6 @@ typedef unsigned long long int uintmax_t;
# define WINT_MIN (0u)
# define WINT_MAX (4294967295u)
-#endif /* C++ && limit macros */
-
-
-/* The ISO C99 standard specifies that in C++ implementations these
- should only be defined if explicitly requested. */
-#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
/* Signed. */
# define INT8_C(c) c
# define INT16_C(c) c
@@ -314,6 +303,4 @@ typedef unsigned long long int uintmax_t;
# define UINTMAX_C(c) c ## ULL
# endif
-#endif /* C++ && constant macros */
-
#endif /* stdint.h */
diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h
index b62a696e5b..b7bf9b38d4 100644
--- a/sysdeps/gnu/netinet/tcp.h
+++ b/sysdeps/gnu/netinet/tcp.h
@@ -60,6 +60,7 @@
#define TCP_QUEUE_SEQ 21 /* Set sequence number of repaired queue. */
#define TCP_REPAIR_OPTIONS 22 /* Repair TCP connection options */
#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */
+#define TCP_TIMESTAMP 24 /* TCP time stamp */
#ifdef __USE_MISC
# include <sys/types.h>
diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure
index d81b613a81..53b6a619d3 100644
--- a/sysdeps/i386/configure
+++ b/sysdeps/i386/configure
@@ -32,6 +32,55 @@ $as_echo "$ac_res" >&6; }
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/i386.
+# We no longer support i386 since it lacks the atomic instructions
+# required to implement NPTL threading.
+if test "$config_machine" = i386; then
+ as_fn_error $? "
+*** ERROR: Support for i386 is deprecated.
+*** Please use host i786, i686, i585 or i486.
+*** For example: /src/glibc/configure --host=i686-pc-linux-gnu ...\"" "$LINENO" 5
+fi
+
+# The GNU C Library can't be built for i386. There are several reasons for
+# this restriction. The primary reason is that i386 lacks the atomic
+# operations required to support the current NPTL implementation. While it is
+# possible that such atomic operations could be emulated in the kernel to date
+# no such work has been done to enable this. Even with NPTL disabled you still
+# have no atomic.h implementation. Given the declining use of i386 we disable
+# support for building with `-march=i386' or `-mcpu=i386.' We don't explicitly
+# check for i386, instead we make sure the compiler has support for inlining
+# the builtin __sync_val_compare_and_swap. If it does then we should have no
+# problem building for i386.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler support of inlined builtin function __sync_val_compare_and_swap" >&5
+$as_echo_n "checking for compiler support of inlined builtin function __sync_val_compare_and_swap... " >&6; }
+libc_compiler_builtin_inlined=no
+cat > conftest.c <<EOF
+int _start (void) { int a, b, c; __sync_val_compare_and_swap (&a, b, c); return 0; }
+EOF
+if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
+ -O0 -nostdlib -nostartfiles
+ -S conftest.c -o - | fgrep "__sync_val_compare_and_swap"
+ 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then
+ libc_compiler_builtin_inlined=yes
+fi
+rm -f conftest*
+if test $libc_compiler_builtin_inlined = yes; then
+ libc_cv_unsupported_i386=no
+else
+ as_fn_error $? "
+*** Building with -march=i386/-mcpu=i386 is not supported.
+*** Please use host i786, i686, i586, or i486.
+*** For example: /source/glibc/configure CFLAGS='-O2 -march=i686' ..." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_compiler_builtin_inlined" >&5
+$as_echo "$libc_compiler_builtin_inlined" >&6; }
+
ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "/* No default includes. */
"
diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in
index 9967a160ba..96ab7b0f5a 100644
--- a/sysdeps/i386/configure.in
+++ b/sysdeps/i386/configure.in
@@ -1,6 +1,35 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/i386.
+# We no longer support i386 since it lacks the atomic instructions
+# required to implement NPTL threading.
+if test "$config_machine" = i386; then
+ AC_MSG_ERROR([
+*** ERROR: Support for i386 is deprecated.
+*** Please use host i786, i686, i585 or i486.
+*** For example: /src/glibc/configure --host=i686-pc-linux-gnu ..."])
+fi
+
+# The GNU C Library can't be built for i386. There are several reasons for
+# this restriction. The primary reason is that i386 lacks the atomic
+# operations required to support the current NPTL implementation. While it is
+# possible that such atomic operations could be emulated in the kernel to date
+# no such work has been done to enable this. Even with NPTL disabled you still
+# have no atomic.h implementation. Given the declining use of i386 we disable
+# support for building with `-march=i386' or `-mcpu=i386.' We don't explicitly
+# check for i386, instead we make sure the compiler has support for inlining
+# the builtin __sync_val_compare_and_swap. If it does then we should have no
+# problem building for i386.
+LIBC_COMPILER_BUILTIN_INLINED(
+ [__sync_val_compare_and_swap],
+ [int a, b, c; __sync_val_compare_and_swap (&a, b, c);],
+ [-O0],
+ [libc_cv_unsupported_i386=no],
+ [AC_MSG_ERROR([
+*** Building with -march=i386/-mcpu=i386 is not supported.
+*** Please use host i786, i686, i586, or i486.
+*** For example: /source/glibc/configure CFLAGS='-O2 -march=i686' ...])])
+
AC_CHECK_HEADER([cpuid.h], ,
[AC_MSG_ERROR([gcc must provide the <cpuid.h> header])],
[/* No default includes. */])
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 5bf58273c9..aff617c353 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1,2666 +1,4577 @@
# Begin of automatic generation
# acos
-Test "acos (0.75) == 0.722734247813415611178377352641333362":
+Test "acos (0.75)":
ildouble: 1
ldouble: 1
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
double: 1
idouble: 1
-Test "acos_upward (-0.5) == M_PI_6l*4.0":
+Test "acos_upward (-0.5)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
double: 1
idouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
double: 1
idouble: 1
-Test "acos_upward (0.5) == M_PI_6l*2.0":
+Test "acos_upward (0.5)":
ildouble: 1
ldouble: 1
# asin
-Test "asin (-0.5) == -pi/6":
+Test "asin (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffff8p0) == -1.5707810680058339712015850710748035974710":
+Test "asin (-0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffffffffffffp0) == -1.5707963264656243652399620683025688888978":
+Test "asin (-0x0.ffffffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffffffffp0) == -1.5707962425011995974432331617542781977068":
+Test "asin (-0x0.ffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013":
+Test "asin (-0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (-1.0) == -pi/2":
+Test "asin (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin (0.5) == pi/6":
+Test "asin (0.5)":
ildouble: 1
ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
+Test "asin (0.75)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710":
+Test "asin (0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffffffffffffp0) == 1.5707963264656243652399620683025688888978":
+Test "asin (0x0.ffffffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffffffffp0) == 1.5707962425011995974432331617542781977068":
+Test "asin (0x0.ffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013":
+Test "asin (0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (1.0) == pi/2":
+Test "asin (1.0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_tonearest
-Test "asin_tonearest (-0.5) == -pi/6":
+Test "asin_tonearest (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (-1.0) == -pi/2":
+Test "asin_tonearest (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (0.5) == pi/6":
+Test "asin_tonearest (0.5)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (1.0) == pi/2":
+Test "asin_tonearest (1.0)":
ildouble: 1
ldouble: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_upward
-Test "asin_upward (-0.5) == -pi/6":
+Test "asin_upward (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_upward (0.5) == pi/6":
+Test "asin_upward (0.5)":
ildouble: 1
ldouble: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
ildouble: 2
ldouble: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
-double: 2
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 1
-float: 1
idouble: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
+float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
-double: 2
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
-double: 2
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.25 - 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i) == 3.141592653377875508152537040020250564229 - 5.116146586219826555037807251857670783420e-10 i":
+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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i) == 3.141592653377875508152537040020250564229 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i) == 3.141592643999491532482601997450598791535 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i) == 3.141592643999491532482601997450598791535 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i) == 1.572134236154454360143880041170803681211 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i) == 1.572134236154454360143880041170803681211 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+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) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+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 (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
-double: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
float: 1
-idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-129 i) == 3.141592653589793238462643383279502884195 - 9.624236501192068949955178268487368462704e-1 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-16385 i) == 3.141592653589793238462643383279502884197 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-129 i) == 3.141592653589793238462643383279502884195 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i) == 3.141592653589793238462643383279502884197 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 + 1.0 i) == 1.394493894017929688812643125003661339452 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 - 1.0 i) == 1.394493894017929688812643125003661339452 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Imaginary part of: cacos (0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
double: 1
-float: 1
idouble: 1
-ifloat: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real 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-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 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)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+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 "Imaginary part of: cacos (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real 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-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
+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
+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
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i) == 0.0 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i) == 0.0 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i) == 1.569458417435338878318763342108699202986 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i) == 1.569458417435338878318763342108699202986 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442097 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442097 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+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) == 1.570796325518966635014803151387033957091 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i) == 1.570796325518966635014803151387033957091 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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 (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-1025 i) == 4.819934639999230680322935210539402497827e-309 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-129 i) == 2.546345110742945032959687790021055102355e-39 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-16385 i) == 7.282957076134209141226696333885150260319e-4933 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-1025 i) == 4.819934639999230680322935210539402497827e-309 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-129 i) == 2.546345110742945032959687790021055102355e-39 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-16385 i) == 7.282957076134209141226696333885150260319e-4933 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0.5 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0.5 - 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+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 (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
double: 1
-float: 9
+float: 1
idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+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-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+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-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 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
float: 1
idouble: 1
ifloat: 1
+Test "Real part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+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
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-
-# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
-double: 2
+Test "Imaginary part of: cacosh (0.5 - 0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 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
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
+Test "Real part of: cacosh (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
-double: 2
+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
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 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
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+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 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Real part of: cacosh (0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
-double: 2
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
-double: 2
+Test "Real part of: cacosh (0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+
+# casin
+Test "Imaginary part of: casin (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i) == -0.0 + 8.813736713132375348727889167749389235161e-1 i":
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i) == -0.0 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 + 1.0 i) == -1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 - 1.0 i) == -1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (-0.5 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (-0.5 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i) == -1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i) == -1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i) == -1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i) == -1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i) == -1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+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) == -1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+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) == -1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 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) == -1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+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) == -3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+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) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+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) == -3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+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) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i) == -2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+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) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i) == -2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+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) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i) == -1.570092458683774885078102529858632363236e-16 + 8.813735870195431822418551933572982483664e-1 i":
+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i) == -1.570092458683774885078102529858632363236e-16 - 8.813735870195431822418551933572982483664e-1 i":
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Real part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
-double: 1
+Test "Real part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
float: 1
-idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-129 i) == -1.570796326794896619231321691639751442096 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-16385 i) == -1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (0.0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-129 i) == -1.570796326794896619231321691639751442096 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i) == -1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i) == 0.0 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0.0 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i) == 0.0 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.25 + 1.0 i) == 1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.25 - 1.0 i) == 1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (0.5 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i) == 1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i) == 1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i) == 1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i) == 1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i) == 1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 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) == 1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+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) == 3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i) == 2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i) == 2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+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)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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-52 + 0x1.0000000000001p0 i) == 1.570092458683774885078102529858632363236e-16 + 8.813735870195431822418551933572982483664e-1 i":
+Test "Real part of: casin (0x1p-23 - 0.5 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i) == 1.570092458683774885078102529858632363236e-16 - 8.813735870195431822418551933572982483664e-1 i":
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Real part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
-double: 1
+Test "Real part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i)":
float: 1
-idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-129 i) == 1.570796326794896619231321691639751442096 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-16385 i) == 1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-129 i) == 1.570796326794896619231321691639751442096 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-16385 i) == 1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (+0 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (+0 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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)":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
-double: 2
+Test "Real part of: casinh (-0.5 + 1.0 i)":
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+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)":
+double: 1
+float: 1
+idouble: 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)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
-double: 2
+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i) == -8.813735870195431822418551933572982483664e-1 + 1.570092458683774885078102529858632363236e-16 i":
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i) == -8.813735870195431822418551933572982483664e-1 - 1.570092458683774885078102529858632363236e-16 i":
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-0x1.000002p0 + 0.0 i) == -8.813736713132375348727889167749389235161e-1 + 0.0 i":
+Test "Real part of: casinh (-0x1.000002p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0x1.000002p0 - 0.0 i) == -8.813736713132375348727889167749389235161e-1 - 0.0 i":
+Test "Real part of: casinh (-0x1.000002p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+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-1025 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-16385 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-16385 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1p-23 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (-0x1p-23 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
-double: 2
+Test "Real part of: casinh (-1.0 + +0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-1.0 + 0.25 i) == -8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 + 0.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 + 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+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) == -8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+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) == -8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+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) == -8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+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) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
-double: 2
+Test "Real part of: casinh (-1.0 - 0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-1.0 - 0.25 i) == -8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 - 0.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+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) == -8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+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) == -8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+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) == -8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+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) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+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 (-2 - 3 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+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)":
+double: 1
+float: 1
+idouble: 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)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+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)":
+double: 1
+float: 1
+idouble: 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)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i) == 8.813735870195431822418551933572982483664e-1 + 1.570092458683774885078102529858632363236e-16 i":
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i) == 8.813735870195431822418551933572982483664e-1 - 1.570092458683774885078102529858632363236e-16 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.000002p0 + 0.0 i) == 8.813736713132375348727889167749389235161e-1 + 0.0 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 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.000002p0 - 0.0 i) == 8.813736713132375348727889167749389235161e-1 - 0.0 i":
+Test "Real part of: casinh (0x1.000002p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+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-1025 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (0x1.fp-1025 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-129 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1.fp-129 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1.fp-16385 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 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-23 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0.5 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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) == 8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 + 0.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 + 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+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) == 8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+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) == 8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+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) == 8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+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) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+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) == 8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 - 0.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 - 0.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+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) == 8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+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) == 8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+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) == 8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+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) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+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) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+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) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x1.3p-73 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.3p-73 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1022 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1022 - 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-16382 - 0x0.ffffffffffffffffp0 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 - 0x0.ffffffffffffffffp0 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-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-64 i)":
+ildouble: 1
+ldouble: 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.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x1.3p-73 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.3p-73 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1022 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1022 - 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-16382 - 0x0.ffffffffffffffffp0 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 - 0x0.ffffffffffffffffp0 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-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-64 i)":
+ildouble: 1
+ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (-0x1p-13 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-2 - 3 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 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 - 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-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
ildouble: 1
ldouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
ildouble: 1
ldouble: 1
# ccos
-Test "Real part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# cexp
-Test "Real part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Real part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Real part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (0 + 0x1p65 i) == 0.99888622066058013610642172179340364209972 - 0.047183876212354673805106149805700013943218 i":
+Test "Imaginary part of: cexp (0 + 0x1p65 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0 - 0x1p65 i) == 0.99888622066058013610642172179340364209972 + 0.047183876212354673805106149805700013943218 i":
+Test "Imaginary part of: cexp (0 - 0x1p65 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (11356.5625 + 0.75 i) == 9.052188470850960144814815984311663764287e4931 + 8.432986734191301036267148978260970230200e4931 i":
+Test "Imaginary part of: cexp (11356.5625 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
idouble: 2
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -5.421010862427522170184200798202494495630e-20 + 3.548665303440282824232502561095699343814e-4516 i":
+Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-100 i) == 8.237022655933121125560939513260027133767e-5 + 8.974094312218060110948251664314290484113e-31 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.234566p-30 + 1.0 i) == 5.614163921211322622623353961365728040115e-19 + 1.570796325735258575254858696548386439740 i":
+Test "Real part of: clog (0x1.234566p-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i) == 89.06941264234832570836679262104313101776 + pi/4 i":
+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) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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) == 11356.60974243783798653123798337822335902 + 0.4764674194737066993385333770295162295856 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 5.0844550531823026520677817684239496041087e-32 + 1.2627468605458094918919206628466016525397 i":
+Test "Imaginary part of: clog (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-149 + 0x1p-149 i) == -102.9323563131518784484589700365392203592 + pi/4 i":
+Test "Real part of: clog (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 4.4469229730850767799109418892826021157328e-20 + 1.2046235979300843056806465045930070146351 i":
+Test "Real part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.234566p-40 - 1.0 i) == 2.325249110681915353442924915876654139373e-25 - 6.821881769213700828789403802671540158935e-1 i":
+Test "Imaginary part of: clog10 (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.fp+16383 + 0x1p-16445 i) == 4932.061660674182269085496060792589701158 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1.fp+16383 - 0x1p-16445 i) == 4932.061660674182269085496060792589701158 - 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1p-16445 + 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1p-16445 - 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -2.354315103889861110220423157644627849164e-20 + 1.541165759405643564697852372112893034397e-4516 i":
+Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 308.3031705664207720674749211936626341569 + 0.2013595981366865903254995612594728746470 i":
+Test "Real part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p-16445 i) == 4932.061660674182269085496060792589701158 + +0 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 - 0x1p-16445 i) == 4932.061660674182269085496060792589701158 - 0 i":
+Test "Real part of: clog10 (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x11682p-23 + 0x7ffed1p-23 i) == 5.0916490233953865181284669870035717560498e-13 + 0.6784968969384861816694467029319146542069 i":
+Test "Imaginary part of: clog10 (0x11682p-23 + 0x7ffed1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-16440 + 0x1p-16441 i) == -4948.884673709346821106688037612752099609 + 0.2013595981366865710389502301937289472543 i":
+Test "Real part of: clog10 (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i) == -4948.884673709346821106688037612752099609 + 0.2013595981366865710389502301937289472543 i":
+Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1p-16445 + 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1p-16445 - 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-8190 + 1.0 i) == 2.920285685286322365786846845062520925172e-4932 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Real part of: clog10 (0x1p-8190 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Imaginary part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i) == -1.0893543813872082317104059174982092534059e-30 + 0.5954257879188711495921161433751775633232 i":
+Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i) == -4.3074341162203896332989394770760901408798e-39 + 0.5709443672155660428417571212549720987784 i":
+Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -4.2289432987513243393180377141513840878196e-30 + 0.4252020027092323591068799049905597805296 i":
+Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+50) == 8.68095904660550604334592502063501320395739e-01":
+Test "cos (0x1p+50)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_downward (9)":
double: 1
float: 1
idouble: 1
@@ -2669,49 +4580,49 @@ ildouble: 1
ldouble: 1
# cos_tonearest
-Test "cos_tonearest (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_tonearest (2)":
float: 1
ifloat: 1
-Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_tonearest (8)":
ildouble: 1
ldouble: 1
-Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_tonearest (9)":
ildouble: 1
ldouble: 1
# cos_towardzero
-Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_towardzero (1)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_towardzero (4)":
double: 1
idouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
double: 1
float: 1
idouble: 1
@@ -2720,171 +4631,171 @@ ildouble: 1
ldouble: 1
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
float: 1
ifloat: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
ildouble: 1
ldouble: 1
-Test "cos_upward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_upward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_upward (5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
double: 1
idouble: 1
-Test "cos_upward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_upward (8)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 2
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 2
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 2
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 2
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
double: 1
idouble: 1
ildouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 6
ldouble: 6
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 1
idouble: 1
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
ildouble: 4
ldouble: 4
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 3
idouble: 2
@@ -2893,314 +4804,314 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Imaginary part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Imaginary part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Imaginary part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Imaginary part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Imaginary part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Real part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i) == 3.453664695497464982856905711457966660085e-162 + 1.430554756764195530630723976279903095110e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i) == 2.442109726130830256743814843868934877597e-162 + 1.011554969366634726113090867589031782487e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i) == 8.225610928685557596194006925540350401606e-23 + 3.407159605465907500737319471202779419102e-23 i":
+Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i) == 4.112805464342778798097003462770175200803e-23 + 1.703579802732953750368659735601389709551e-23 i":
+Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
float: 1
ifloat: 1
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 3
ifloat: 3
ildouble: 4
ldouble: 4
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 3
ifloat: 3
ildouble: 4
ldouble: 4
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
@@ -3209,204 +5120,204 @@ ildouble: 1
ldouble: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 3
ifloat: 3
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 3
ifloat: 3
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
double: 1
idouble: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
+Test "erfc (1.25)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# exp
-Test "exp (0.75) == 2.11700001661267466854536981983709561":
+Test "exp (0.75)":
ildouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
ildouble: 1
ldouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
ildouble: 2
ldouble: 2
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
ildouble: 8
ldouble: 8
# exp_downward
-Test "exp_downward (1) == e":
+Test "exp_downward (1)":
ildouble: 1
ldouble: 1
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
double: 1
float: 1
idouble: 1
@@ -3415,17 +5326,17 @@ ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (1) == e":
+Test "exp_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
double: 1
float: 1
idouble: 1
@@ -3434,118 +5345,132 @@ ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
# expm1
-Test "expm1 (-45.0) == -0.9999999999999999999713748141945060635553":
+Test "expm1 (-45.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
ildouble: 1
-Test "expm1 (11356.25) == 9.05128237311923300051376115753226014206e+4931":
+Test "expm1 (11356.25)":
ildouble: 1
ldouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "gamma (0.7)":
+float: 1
+ifloat: 1
+Test "gamma (1.2)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+ifloat: 1
+Test "hypot (-0.7, 12.4)":
float: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+ifloat: 1
+Test "hypot (-12.4, -0.7)":
float: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+ifloat: 1
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+ifloat: 1
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 1
ifloat: 1
-Test "j0 (0x1p1023) == -1.5665258060609012834424478437196679802783e-155":
+Test "j0 (0x1p1023)":
double: 1
idouble: 1
-Test "j0 (0x1p16382) == -1.2193782500509000574176799046642541129387e-2466":
+Test "j0 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
double: 1
idouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "j1 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
float: 1
idouble: 1
@@ -3554,174 +5479,174 @@ ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
double: 1
idouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 5
float: 2
idouble: 5
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 5
float: 2
idouble: 5
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
ildouble: 2
ldouble: 2
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 1
float: 3
idouble: 1
ifloat: 3
ildouble: 2
ldouble: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
float: 4
ifloat: 4
ildouble: 2
ldouble: 2
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -3730,116 +5655,121 @@ ildouble: 1
ldouble: 1
# log
-Test "log (e) == 1":
+Test "log (e)":
float: 1
ifloat: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
ildouble: 1
ldouble: 1
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
+ildouble: 1
+ldouble: 1
+
+# pow10
+Test "pow10 (0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_downward (1.0625, 1.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_towardzero
-Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_towardzero (1.0625, 1.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_upward (1.5, 1.03125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# sin
-Test "sin (-0x1p65) == 0.047183876212354673805106149805700013943218":
+Test "sin (-0x1p65)":
float: 1
ifloat: 1
-Test "sin (0x1.fffff8p+127) == 4.85786063130487339701113680434728152037092e-02":
+Test "sin (0x1.fffff8p+127)":
float: 1
-Test "sin (0x1p+127) == 6.23385512955870240370428801097126489001833e-01":
+Test "sin (0x1p+127)":
float: 1
-Test "sin (0x1p65) == -0.047183876212354673805106149805700013943218":
+Test "sin (0x1p65)":
float: 1
ifloat: 1
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_downward (1)":
ildouble: 1
ldouble: 1
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
double: 1
idouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_downward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_downward (7)":
ildouble: 1
ldouble: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
double: 1
float: 1
idouble: 1
@@ -3848,50 +5778,50 @@ ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_tonearest (10)":
ildouble: 1
ldouble: 1
-Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_tonearest (4)":
ildouble: 1
ldouble: 1
-Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_tonearest (9)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
double: 1
idouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_towardzero (7)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
double: 1
float: 1
idouble: 1
@@ -3900,441 +5830,1018 @@ ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sin_upward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_upward (8)":
float: 1
ifloat: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (-0x1p65, &sin_res, &cos_res) puts 0.047183876212354673805106149805700013943218 in sin_res":
+Test "sincos (-0x1p65) extra output 1":
float: 1
ifloat: 1
-Test "sincos (0x1.fffff8p+127, &sin_res, &cos_res) puts 4.85786063130487339701113680434728152037092e-02 in sin_res":
-float: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 6.23385512955870240370428801097126489001833e-01 in sin_res":
+Test "sincos (0x1.fffff8p+127) extra output 1":
float: 1
-Test "sincos (0x1p+50, &sin_res, &cos_res) puts 8.68095904660550604334592502063501320395739e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 1":
float: 1
-ifloat: 1
-Test "sincos (0x1p65, &sin_res, &cos_res) puts -0.047183876212354673805106149805700013943218 in sin_res":
+Test "sincos (0x1p+50) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
+Test "sincos (0x1p65) extra output 1":
float: 1
-idouble: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
+Test "sinh (0.75)":
double: 1
ildouble: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
double: 1
idouble: 1
# tan
-Test "tan (-0xc.90fdbp-4) == -1.0000000437113909572052640953950483705005":
+Test "tan (-0xc.90fdbp-4)":
float: 1
ifloat: 1
-Test "tan (-0xc.90fdcp-4) == -1.0000001629206928242190327320047489394217":
+Test "tan (-0xc.90fdcp-4)":
float: 1
ifloat: 1
-Test "tan (-0xc.90fep-4) == -1.0000006397580424009014454926842136804016":
+Test "tan (-0xc.90fep-4)":
float: 1
ifloat: 1
-Test "tan (-0xc.91p-4) == -1.0000044544650244953647966900221905361131":
+Test "tan (-0xc.91p-4)":
float: 1
ifloat: 1
-Test "tan (-0xc.92p-4) == -1.0004928571392300571266638743539017593717":
+Test "tan (-0xc.92p-4)":
float: 1
ifloat: 1
-Test "tan (-0xc.94p-4) == -1.0014703786820082237342656561856877993328":
+Test "tan (-0xc.94p-4)":
float: 1
ifloat: 1
-Test "tan (0x1p16383) == 0.422722393732022337800504160054440141575":
+Test "tan (0x1p16383)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.90fdbp-4) == 1.0000000437113909572052640953950483705005":
+Test "tan (0xc.90fdbp-4)":
float: 1
ifloat: 1
-Test "tan (0xc.90fdcp-4) == 1.0000001629206928242190327320047489394217":
+Test "tan (0xc.90fdcp-4)":
float: 1
ifloat: 1
-Test "tan (0xc.90fep-4) == 1.0000006397580424009014454926842136804016":
+Test "tan (0xc.90fep-4)":
float: 1
ifloat: 1
-Test "tan (0xc.91p-4) == 1.0000044544650244953647966900221905361131":
+Test "tan (0xc.91p-4)":
float: 1
ifloat: 1
-Test "tan (0xc.92p-4) == 1.0004928571392300571266638743539017593717":
+Test "tan (0xc.92p-4)":
float: 1
ifloat: 1
-Test "tan (0xc.94p-4) == 1.0014703786820082237342656561856877993328":
+Test "tan (0xc.94p-4)":
float: 1
ifloat: 1
-Test "tan (1e22) == -1.628778225606898878549375936939548513545":
+Test "tan (1e22)":
ildouble: 1
ldouble: 1
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 1
float: 1
idouble: 1
ifloat: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_downward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_downward (3)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_downward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_downward (5)":
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tan_downward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_downward (7)":
double: 1
idouble: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_tonearest
-Test "tan_tonearest (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_tonearest (1)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_tonearest (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_tonearest (6)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_tonearest (8)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_tonearest (9)":
ildouble: 1
ldouble: 1
# tan_towardzero
-Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_towardzero (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_towardzero (7)":
double: 1
idouble: 1
-Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_towardzero (8)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
double: 1
idouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_upward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_upward (8)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.ffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0a32a2p+5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.5800000080001p+7)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1.fffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffep0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x13.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000002p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1e.00002p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1f4.00000000000002p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0x1p-24)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.000004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x27.ffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.fffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.00004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.00004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ed.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x3.fffffcp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x3.ffffffffffffep0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.fffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e8.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.000008p0)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x4.fffff8p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x4e2.00000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.000008p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.fffff8p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x5db.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 3
+idouble: 3
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.ffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6d6.00000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.0000000000000008p0)":
+ildouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x7.fffffffffffffff8p0)":
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0x8.000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x8.00001p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x95.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x95.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xa.000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xa.0000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0xa.00001p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.000000000008p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb5.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb8.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbb.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.00000000000001p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xbd.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xf9.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xfa.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-1.5)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-2.5)":
+double: 1
+idouble: 1
+Test "tgamma (-4.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-5.5)":
+float: 1
+ifloat: 1
+Test "tgamma (-6.5)":
+float: 1
+ifloat: 1
+Test "tgamma (-7.5)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-8.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-9.5)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (0.5)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0x1.fffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1p-24)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1p-53)":
+double: 1
+idouble: 1
+Test "tgamma (0x1p-64)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.30a43cp+4)":
+double: 1
+idouble: 1
+Test "tgamma (0x2.fffffcp0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffcp0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.000008p0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x4.fffff8p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.ffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.000008p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.fffff8p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.ffffffffffffcp0)":
+double: 3
+idouble: 3
+Test "tgamma (0x7.0000000000000008p0)":
+ildouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (0x7.fffffffffffffff8p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (0x8.000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.0000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x8.00001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (10)":
+double: 1
+idouble: 1
+Test "tgamma (18.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (19.5)":
+double: 1
+idouble: 1
+Test "tgamma (2.5)":
+float: 1
+ifloat: 1
+Test "tgamma (23.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (29.5)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (3)":
+float: 1
+ifloat: 1
+Test "tgamma (3.5)":
+float: 1
+ifloat: 1
+Test "tgamma (30.5)":
+float: 1
+ifloat: 1
+Test "tgamma (31.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (32.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (34.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (4.5)":
+double: 1
+idouble: 1
+Test "tgamma (5.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (6.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (7.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (8)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (8.5)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+ildouble: 2
+ldouble: 2
+Test "tgamma (9)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (9.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
ildouble: 1
ldouble: 1
-Test "y0 (0.75) == -0.137172769385772397522814379396581855":
+Test "y0 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
double: 1
idouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
idouble: 1
-Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "y0 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -4343,44 +6850,44 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
float: 1
ifloat: 1
-Test "y1 (0x1p1023) == 1.5665258060609012834424478437196679802783e-155":
+Test "y1 (0x1p1023)":
double: 1
idouble: 1
-Test "y1 (0x1p16382) == 1.2193782500509000574176799046642541129387e-2466":
+Test "y1 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "y1 (1.0) == -0.781212821300288716547150000047964821":
+Test "y1 (1.0)":
double: 1
idouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -4389,108 +6896,108 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
+Test "yn (0, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
+Test "yn (1, 1.0)":
double: 1
idouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
float: 2
ifloat: 2
ildouble: 4
ldouble: 4
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
float: 3
idouble: 2
ifloat: 3
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
float: 1
idouble: 1
@@ -4568,26 +7075,26 @@ ildouble: 1
ldouble: 1
Function: Imaginary part of "cacos":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "cacosh":
double: 1
-float: 9
+float: 1
idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
+ifloat: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacosh":
double: 1
-float: 4
+float: 1
idouble: 1
-ifloat: 4
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -4596,38 +7103,40 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
Function: Imaginary part of "casin":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: Real part of "casinh":
-double: 5
+double: 1
float: 1
-idouble: 5
+idouble: 1
ifloat: 1
-ildouble: 5
-ldouble: 5
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Function: Imaginary part of "catan":
double: 1
float: 1
idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Function: Real part of "catanh":
double: 2
@@ -5012,7 +7521,9 @@ ldouble: 1
Function: "gamma":
double: 1
+float: 2
idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
@@ -5066,6 +7577,10 @@ Function: "pow":
ildouble: 1
ldouble: 1
+Function: "pow10":
+ildouble: 1
+ldouble: 1
+
Function: "pow_downward":
double: 1
float: 1
@@ -5197,12 +7712,12 @@ ildouble: 2
ldouble: 2
Function: "tgamma":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+ildouble: 4
+ldouble: 4
Function: "y0":
double: 2
diff --git a/sysdeps/i386/fpu/math-tests.h b/sysdeps/i386/fpu/math-tests.h
index 00c5f6c4d1..2245fc9012 100644
--- a/sysdeps/i386/fpu/math-tests.h
+++ b/sysdeps/i386/fpu/math-tests.h
@@ -19,7 +19,8 @@
/* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use FPU load
instructions for sNaN values, and loading a float or double sNaN value will
already raise an INVALID exception as well as turn the sNaN into a qNaN,
- rendering certain tests infeasible in this scenario. */
+ rendering certain tests infeasible in this scenario.
+ <http://gcc.gnu.org/PR56831>. */
#define SNAN_TESTS_float 0
#define SNAN_TESTS_double 0
diff --git a/sysdeps/ieee754/dbl-64/e_atan2.c b/sysdeps/ieee754/dbl-64/e_atan2.c
index bfe0b3b632..4ebe9c01f9 100644
--- a/sysdeps/ieee754/dbl-64/e_atan2.c
+++ b/sysdeps/ieee754/dbl-64/e_atan2.c
@@ -104,7 +104,7 @@ __ieee754_atan2 (double y, double x)
if (dy == 0x00000000)
{
if ((ux & 0x80000000) == 0x00000000)
- return ZERO;
+ return 0;
else
return opi.d;
}
@@ -114,14 +114,14 @@ __ieee754_atan2 (double y, double x)
if (dy == 0x00000000)
{
if ((ux & 0x80000000) == 0x00000000)
- return MZERO;
+ return -0.0;
else
return mopi.d;
}
}
/* x=+-0 */
- if (x == ZERO)
+ if (x == 0)
{
if ((uy & 0x80000000) == 0x00000000)
return hpi.d;
@@ -147,9 +147,9 @@ __ieee754_atan2 (double y, double x)
else
{
if ((uy & 0x80000000) == 0x00000000)
- return ZERO;
+ return 0;
else
- return MZERO;
+ return -0.0;
}
}
}
@@ -190,16 +190,16 @@ __ieee754_atan2 (double y, double x)
}
/* either x/y or y/x is very close to zero */
- ax = (x < ZERO) ? -x : x;
- ay = (y < ZERO) ? -y : y;
+ ax = (x < 0) ? -x : x;
+ ay = (y < 0) ? -y : y;
de = (uy & 0x7ff00000) - (ux & 0x7ff00000);
if (de >= ep)
{
- return ((y > ZERO) ? hpi.d : mhpi.d);
+ return ((y > 0) ? hpi.d : mhpi.d);
}
else if (de <= em)
{
- if (x > ZERO)
+ if (x > 0)
{
if ((z = ay / ax) < TWOM1022)
return normalized (ax, ay, y, z);
@@ -208,7 +208,7 @@ __ieee754_atan2 (double y, double x)
}
else
{
- return ((y > ZERO) ? opi.d : mopi.d);
+ return ((y > 0) ? opi.d : mopi.d);
}
}
@@ -240,7 +240,7 @@ __ieee754_atan2 (double y, double x)
du = ((ax - v) - vv) / ay;
}
- if (x > ZERO)
+ if (x > 0)
{
/* (i) x>0, abs(y)< abs(x): atan(ay/ax) */
if (ay < ax)
@@ -262,7 +262,7 @@ __ieee754_atan2 (double y, double x)
MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
s1 = v * (f11.d + v * (f13.d
+ v * (f15.d + v * (f17.d + v * f19.d))));
- ADD2 (f9.d, ff9.d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -314,7 +314,7 @@ __ieee754_atan2 (double y, double x)
+ v * (hij[i][13].d
+ v * (hij[i][14].d
+ v * hij[i][15].d))));
- ADD2 (hij[i][9].d, hij[i][10].d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -348,7 +348,7 @@ __ieee754_atan2 (double y, double x)
s1 = v * (f11.d
+ v * (f13.d
+ v * (f15.d + v * (f17.d + v * f19.d))));
- ADD2 (f9.d, ff9.d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -391,7 +391,7 @@ __ieee754_atan2 (double y, double x)
+ v * (hij[i][14].d
+ v * hij[i][15].d))));
- ADD2 (hij[i][9].d, hij[i][10].d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -426,7 +426,7 @@ __ieee754_atan2 (double y, double x)
MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
s1 = v * (f11.d
+ v * (f13.d + v * (f15.d + v * (f17.d + v * f19.d))));
- ADD2 (f9.d, ff9.d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -466,7 +466,7 @@ __ieee754_atan2 (double y, double x)
+ v * (hij[i][13].d
+ v * (hij[i][14].d
+ v * hij[i][15].d))));
- ADD2 (hij[i][9].d, hij[i][10].d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -497,7 +497,7 @@ __ieee754_atan2 (double y, double x)
MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
s1 = v * (f11.d + v * (f13.d + v * (f15.d + v * (f17.d + v * f19.d))));
- ADD2 (f9.d, ff9.d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
@@ -538,7 +538,7 @@ __ieee754_atan2 (double y, double x)
+ v * (hij[i][13].d
+ v * (hij[i][14].d + v * hij[i][15].d))));
- ADD2 (hij[i][9].d, hij[i][10].d, s1, ZERO, s2, ss2, t1, t2);
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c
index 9873551757..5b17f7b5ad 100644
--- a/sysdeps/ieee754/dbl-64/e_gamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -19,14 +19,104 @@
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+ approximation to gamma function. */
+
+static const double gamma_coeff[] =
+ {
+ 0x1.5555555555555p-4,
+ -0xb.60b60b60b60b8p-12,
+ 0x3.4034034034034p-12,
+ -0x2.7027027027028p-12,
+ 0x3.72a3c5631fe46p-12,
+ -0x7.daac36664f1f4p-12,
+ };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 184, in the form R *
+ 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+ avoid overflow or underflow in intermediate calculations. */
+
+static double
+gamma_positive (double x, int *exp2_adj)
+{
+ int local_signgam;
+ if (x < 0.5)
+ {
+ *exp2_adj = 0;
+ return __ieee754_exp (__ieee754_lgamma_r (x + 1, &local_signgam)) / x;
+ }
+ else if (x <= 1.5)
+ {
+ *exp2_adj = 0;
+ return __ieee754_exp (__ieee754_lgamma_r (x, &local_signgam));
+ }
+ else if (x < 6.5)
+ {
+ /* Adjust into the range for using exp (lgamma). */
+ *exp2_adj = 0;
+ double n = __ceil (x - 1.5);
+ double x_adj = x - n;
+ double eps;
+ double prod = __gamma_product (x_adj, 0, n, &eps);
+ return (__ieee754_exp (__ieee754_lgamma_r (x_adj, &local_signgam))
+ * prod * (1.0 + eps));
+ }
+ else
+ {
+ double eps = 0;
+ double x_eps = 0;
+ double x_adj = x;
+ double prod = 1;
+ if (x < 12.0)
+ {
+ /* Adjust into the range for applying Stirling's
+ approximation. */
+ double n = __ceil (12.0 - x);
+#if FLT_EVAL_METHOD != 0
+ volatile
+#endif
+ double x_tmp = x + n;
+ x_adj = x_tmp;
+ x_eps = (x - (x_adj - n));
+ prod = __gamma_product (x_adj - n, x_eps, n, &eps);
+ }
+ /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+ Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+ starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+ factored out. */
+ double exp_adj = -eps;
+ double x_adj_int = __round (x_adj);
+ double x_adj_frac = x_adj - x_adj_int;
+ int x_adj_log2;
+ double x_adj_mant = __frexp (x_adj, &x_adj_log2);
+ if (x_adj_mant < M_SQRT1_2)
+ {
+ x_adj_log2--;
+ x_adj_mant *= 2.0;
+ }
+ *exp2_adj = x_adj_log2 * (int) x_adj_int;
+ double ret = (__ieee754_pow (x_adj_mant, x_adj)
+ * __ieee754_exp2 (x_adj_log2 * x_adj_frac)
+ * __ieee754_exp (-x_adj)
+ * __ieee754_sqrt (2 * M_PI / x_adj)
+ / prod);
+ exp_adj += x_eps * __ieee754_log (x);
+ double bsum = gamma_coeff[NCOEFF - 1];
+ double x_adj2 = x_adj * x_adj;
+ for (size_t i = 1; i <= NCOEFF - 1; i++)
+ bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+ exp_adj += bsum / x_adj;
+ return ret + ret * __expm1 (exp_adj);
+ }
+}
double
__ieee754_gamma_r (double x, int *signgamp)
{
- /* We don't have a real gamma implementation now. We'll use lgamma
- and the exp function. But due to the required boundary
- conditions we must check some values separately. */
int32_t hx;
u_int32_t lx;
@@ -51,8 +141,48 @@ __ieee754_gamma_r (double x, int *signgamp)
*signgamp = 0;
return x - x;
}
+ if (__builtin_expect ((hx & 0x7ff00000) == 0x7ff00000, 0))
+ {
+ /* Positive infinity (return positive infinity) or NaN (return
+ NaN). */
+ *signgamp = 0;
+ return x + x;
+ }
- /* XXX FIXME. */
- return __ieee754_exp (__ieee754_lgamma_r (x, signgamp));
+ if (x >= 172.0)
+ {
+ /* Overflow. */
+ *signgamp = 0;
+ return DBL_MAX * DBL_MAX;
+ }
+ else if (x > 0.0)
+ {
+ *signgamp = 0;
+ int exp2_adj;
+ double ret = gamma_positive (x, &exp2_adj);
+ return __scalbn (ret, exp2_adj);
+ }
+ else if (x >= -DBL_EPSILON / 4.0)
+ {
+ *signgamp = 0;
+ return 1.0 / x;
+ }
+ else
+ {
+ double tx = __trunc (x);
+ *signgamp = (tx == 2.0 * __trunc (tx / 2.0)) ? -1 : 1;
+ if (x <= -184.0)
+ /* Underflow. */
+ return DBL_MIN * DBL_MIN;
+ double frac = tx - x;
+ if (frac > 0.5)
+ frac = 1.0 - frac;
+ double sinpix = (frac <= 0.25
+ ? __sin (M_PI * frac)
+ : __cos (M_PI * (0.5 - frac)));
+ int exp2_adj;
+ double ret = M_PI / (-x * sinpix * gamma_positive (-x, &exp2_adj));
+ return __scalbn (ret, -exp2_adj);
+ }
}
strong_alias (__ieee754_gamma_r, __gamma_r_finite)
diff --git a/sysdeps/ieee754/dbl-64/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c
index 58c9a8e76b..f9300f9cef 100644
--- a/sysdeps/ieee754/dbl-64/e_log.c
+++ b/sysdeps/ieee754/dbl-64/e_log.c
@@ -44,7 +44,7 @@
# define SECTION
#endif
-void __mplog(mp_no *, mp_no *, int);
+void __mplog (mp_no *, mp_no *, int);
/*********************************************************************/
/* An ultimate log routine. Given an IEEE double machine number x */
@@ -52,163 +52,201 @@ void __mplog(mp_no *, mp_no *, int);
/*********************************************************************/
double
SECTION
-__ieee754_log(double x) {
+__ieee754_log (double x)
+{
#define M 4
- static const int pr[M]={8,10,18,32};
- int i,j,n,ux,dx,p;
- double dbl_n,u,p0,q,r0,w,nln2a,luai,lubi,lvaj,lvbj,
- sij,ssij,ttij,A,B,B0,y,y1,y2,polI,polII,sa,sb,
- t1,t2,t7,t8,t,ra,rb,ww,
- a0,aa0,s1,s2,ss2,s3,ss3,a1,aa1,a,aa,b,bb,c;
+ static const int pr[M] = {8, 10, 18, 32};
+ int i, j, n, ux, dx, p;
+ double dbl_n, u, p0, q, r0, w, nln2a, luai, lubi, lvaj, lvbj,
+ sij, ssij, ttij, A, B, B0, y, y1, y2, polI, polII, sa, sb,
+ t1, t2, t7, t8, t, ra, rb, ww,
+ a0, aa0, s1, s2, ss2, s3, ss3, a1, aa1, a, aa, b, bb, c;
#ifndef DLA_FMS
- double t3,t4,t5,t6;
+ double t3, t4, t5, t6;
#endif
number num;
- mp_no mpx,mpy,mpy1,mpy2,mperr;
+ mp_no mpx, mpy, mpy1, mpy2, mperr;
#include "ulog.tbl"
#include "ulog.h"
/* Treating special values of x ( x<=0, x=INF, x=NaN etc.). */
- num.d = x; ux = num.i[HIGH_HALF]; dx = num.i[LOW_HALF];
- n=0;
- if (__builtin_expect(ux < 0x00100000, 0)) {
- if (__builtin_expect(((ux & 0x7fffffff) | dx) == 0, 0))
- return MHALF/ZERO; /* return -INF */
- if (__builtin_expect(ux < 0, 0))
- return (x-x)/ZERO; /* return NaN */
- n -= 54; x *= two54.d; /* scale x */
- num.d = x;
- }
- if (__builtin_expect(ux >= 0x7ff00000, 0))
- return x+x; /* INF or NaN */
+ num.d = x;
+ ux = num.i[HIGH_HALF];
+ dx = num.i[LOW_HALF];
+ n = 0;
+ if (__builtin_expect (ux < 0x00100000, 0))
+ {
+ if (__builtin_expect (((ux & 0x7fffffff) | dx) == 0, 0))
+ return MHALF / 0.0; /* return -INF */
+ if (__builtin_expect (ux < 0, 0))
+ return (x - x) / 0.0; /* return NaN */
+ n -= 54;
+ x *= two54.d; /* scale x */
+ num.d = x;
+ }
+ if (__builtin_expect (ux >= 0x7ff00000, 0))
+ return x + x; /* INF or NaN */
/* Regular values of x */
- w = x-ONE;
- if (__builtin_expect(ABS(w) > U03, 1)) { goto case_03; }
-
+ w = x - 1;
+ if (__builtin_expect (ABS (w) > U03, 1))
+ goto case_03;
/*--- Stage I, the case abs(x-1) < 0.03 */
- t8 = MHALF*w;
- EMULV(t8,w,a,aa,t1,t2,t3,t4,t5)
- EADD(w,a,b,bb)
-
+ t8 = MHALF * w;
+ EMULV (t8, w, a, aa, t1, t2, t3, t4, t5);
+ EADD (w, a, b, bb);
/* Evaluate polynomial II */
- polII = (b0.d+w*(b1.d+w*(b2.d+w*(b3.d+w*(b4.d+
- w*(b5.d+w*(b6.d+w*(b7.d+w*b8.d))))))))*w*w*w;
- c = (aa+bb)+polII;
+ polII = b7.d + w * b8.d;
+ polII = b6.d + w * polII;
+ polII = b5.d + w * polII;
+ polII = b4.d + w * polII;
+ polII = b3.d + w * polII;
+ polII = b2.d + w * polII;
+ polII = b1.d + w * polII;
+ polII = b0.d + w * polII;
+ polII *= w * w * w;
+ c = (aa + bb) + polII;
/* End stage I, case abs(x-1) < 0.03 */
- if ((y=b+(c+b*E2)) == b+(c-b*E2)) return y;
+ if ((y = b + (c + b * E2)) == b + (c - b * E2))
+ return y;
/*--- Stage II, the case abs(x-1) < 0.03 */
- a = d11.d+w*(d12.d+w*(d13.d+w*(d14.d+w*(d15.d+w*(d16.d+
- w*(d17.d+w*(d18.d+w*(d19.d+w*d20.d))))))));
- EMULV(w,a,s2,ss2,t1,t2,t3,t4,t5)
- ADD2(d10.d,dd10.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d9.d,dd9.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d8.d,dd8.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d7.d,dd7.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d6.d,dd6.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d5.d,dd5.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d4.d,dd4.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d3.d,dd3.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(d2.d,dd2.d,s2,ss2,s3,ss3,t1,t2)
- MUL2(w,ZERO,s3,ss3,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(w,ZERO,s2,ss2,s3,ss3,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(w,ZERO, s3,ss3, b, bb,t1,t2)
+ a = d19.d + w * d20.d;
+ a = d18.d + w * a;
+ a = d17.d + w * a;
+ a = d16.d + w * a;
+ a = d15.d + w * a;
+ a = d14.d + w * a;
+ a = d13.d + w * a;
+ a = d12.d + w * a;
+ a = d11.d + w * a;
+
+ EMULV (w, a, s2, ss2, t1, t2, t3, t4, t5);
+ ADD2 (d10.d, dd10.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d9.d, dd9.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d8.d, dd8.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d7.d, dd7.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d6.d, dd6.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d5.d, dd5.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d4.d, dd4.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d3.d, dd3.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (d2.d, dd2.d, s2, ss2, s3, ss3, t1, t2);
+ MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (w, 0, s2, ss2, s3, ss3, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (w, 0, s3, ss3, b, bb, t1, t2);
/* End stage II, case abs(x-1) < 0.03 */
- if ((y=b+(bb+b*E4)) == b+(bb-b*E4)) return y;
+ if ((y = b + (bb + b * E4)) == b + (bb - b * E4))
+ return y;
goto stage_n;
/*--- Stage I, the case abs(x-1) > 0.03 */
- case_03:
+case_03:
/* Find n,u such that x = u*2**n, 1/sqrt(2) < u < sqrt(2) */
n += (num.i[HIGH_HALF] >> 20) - 1023;
num.i[HIGH_HALF] = (num.i[HIGH_HALF] & 0x000fffff) | 0x3ff00000;
- if (num.d > SQRT_2) { num.d *= HALF; n++; }
- u = num.d; dbl_n = (double) n;
+ if (num.d > SQRT_2)
+ {
+ num.d *= HALF;
+ n++;
+ }
+ u = num.d;
+ dbl_n = (double) n;
/* Find i such that ui=1+(i-75)/2**8 is closest to u (i= 0,1,2,...,181) */
num.d += h1.d;
i = (num.i[HIGH_HALF] & 0x000fffff) >> 12;
/* Find j such that vj=1+(j-180)/2**16 is closest to v=u/ui (j= 0,...,361) */
- num.d = u*Iu[i].d + h2.d;
+ num.d = u * Iu[i].d + h2.d;
j = (num.i[HIGH_HALF] & 0x000fffff) >> 4;
/* Compute w=(u-ui*vj)/(ui*vj) */
- p0=(ONE+(i-75)*DEL_U)*(ONE+(j-180)*DEL_V);
- q=u-p0; r0=Iu[i].d*Iv[j].d; w=q*r0;
+ p0 = (1 + (i - 75) * DEL_U) * (1 + (j - 180) * DEL_V);
+ q = u - p0;
+ r0 = Iu[i].d * Iv[j].d;
+ w = q * r0;
/* Evaluate polynomial I */
- polI = w+(a2.d+a3.d*w)*w*w;
+ polI = w + (a2.d + a3.d * w) * w * w;
/* Add up everything */
- nln2a = dbl_n*LN2A;
- luai = Lu[i][0].d; lubi = Lu[i][1].d;
- lvaj = Lv[j][0].d; lvbj = Lv[j][1].d;
- EADD(luai,lvaj,sij,ssij)
- EADD(nln2a,sij,A ,ttij)
- B0 = (((lubi+lvbj)+ssij)+ttij)+dbl_n*LN2B;
- B = polI+B0;
+ nln2a = dbl_n * LN2A;
+ luai = Lu[i][0].d;
+ lubi = Lu[i][1].d;
+ lvaj = Lv[j][0].d;
+ lvbj = Lv[j][1].d;
+ EADD (luai, lvaj, sij, ssij);
+ EADD (nln2a, sij, A, ttij);
+ B0 = (((lubi + lvbj) + ssij) + ttij) + dbl_n * LN2B;
+ B = polI + B0;
/* End stage I, case abs(x-1) >= 0.03 */
- if ((y=A+(B+E1)) == A+(B-E1)) return y;
+ if ((y = A + (B + E1)) == A + (B - E1))
+ return y;
/*--- Stage II, the case abs(x-1) > 0.03 */
/* Improve the accuracy of r0 */
- EMULV(p0,r0,sa,sb,t1,t2,t3,t4,t5)
- t=r0*((ONE-sa)-sb);
- EADD(r0,t,ra,rb)
+ EMULV (p0, r0, sa, sb, t1, t2, t3, t4, t5);
+ t = r0 * ((1 - sa) - sb);
+ EADD (r0, t, ra, rb);
/* Compute w */
- MUL2(q,ZERO,ra,rb,w,ww,t1,t2,t3,t4,t5,t6,t7,t8)
+ MUL2 (q, 0, ra, rb, w, ww, t1, t2, t3, t4, t5, t6, t7, t8);
- EADD(A,B0,a0,aa0)
+ EADD (A, B0, a0, aa0);
/* Evaluate polynomial III */
- s1 = (c3.d+(c4.d+c5.d*w)*w)*w;
- EADD(c2.d,s1,s2,ss2)
- MUL2(s2,ss2,w,ww,s3,ss3,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(s3,ss3,w,ww,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(s2,ss2,w,ww,s3,ss3,t1,t2)
- ADD2(s3,ss3,a0,aa0,a1,aa1,t1,t2)
+ s1 = (c3.d + (c4.d + c5.d * w) * w) * w;
+ EADD (c2.d, s1, s2, ss2);
+ MUL2 (s2, ss2, w, ww, s3, ss3, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (s3, ss3, w, ww, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (s2, ss2, w, ww, s3, ss3, t1, t2);
+ ADD2 (s3, ss3, a0, aa0, a1, aa1, t1, t2);
/* End stage II, case abs(x-1) >= 0.03 */
- if ((y=a1+(aa1+E3)) == a1+(aa1-E3)) return y;
+ if ((y = a1 + (aa1 + E3)) == a1 + (aa1 - E3))
+ return y;
/* Final stages. Use multi-precision arithmetic. */
- stage_n:
-
- for (i=0; i<M; i++) {
- p = pr[i];
- __dbl_mp(x,&mpx,p); __dbl_mp(y,&mpy,p);
- __mplog(&mpx,&mpy,p);
- __dbl_mp(e[i].d,&mperr,p);
- __add(&mpy,&mperr,&mpy1,p); __sub(&mpy,&mperr,&mpy2,p);
- __mp_dbl(&mpy1,&y1,p); __mp_dbl(&mpy2,&y2,p);
- if (y1==y2) return y1;
- }
+stage_n:
+
+ for (i = 0; i < M; i++)
+ {
+ p = pr[i];
+ __dbl_mp (x, &mpx, p);
+ __dbl_mp (y, &mpy, p);
+ __mplog (&mpx, &mpy, p);
+ __dbl_mp (e[i].d, &mperr, p);
+ __add (&mpy, &mperr, &mpy1, p);
+ __sub (&mpy, &mperr, &mpy2, p);
+ __mp_dbl (&mpy1, &y1, p);
+ __mp_dbl (&mpy2, &y2, p);
+ if (y1 == y2)
+ return y1;
+ }
return y1;
}
+
#ifndef __ieee754_log
strong_alias (__ieee754_log, __log_finite)
#endif
diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c
index f8962a7dce..9a766e7224 100644
--- a/sysdeps/ieee754/dbl-64/e_pow.c
+++ b/sysdeps/ieee754/dbl-64/e_pow.c
@@ -71,8 +71,9 @@ __ieee754_pow(double x, double y) {
u.x=x;
if (v.i[LOW_HALF] == 0) { /* of y */
qx = u.i[HIGH_HALF]&0x7fffffff;
- /* Checking if x is not too small to compute */
- if (((qx==0x7ff00000)&&(u.i[LOW_HALF]!=0))||(qx>0x7ff00000)) return NaNQ.x;
+ /* Is x a NaN? */
+ if (((qx == 0x7ff00000) && (u.i[LOW_HALF] != 0)) || (qx > 0x7ff00000))
+ return x;
if (y == 1.0) return x;
if (y == 2.0) return x*x;
if (y == -1.0) return 1.0/x;
@@ -111,7 +112,7 @@ __ieee754_pow(double x, double y) {
if (x == 0) {
if (((v.i[HIGH_HALF] & 0x7fffffff) == 0x7ff00000 && v.i[LOW_HALF] != 0)
- || (v.i[HIGH_HALF] & 0x7fffffff) > 0x7ff00000)
+ || (v.i[HIGH_HALF] & 0x7fffffff) > 0x7ff00000) /* NaN */
return y;
if (ABS(y) > 1.0e20) return (y>0)?0:1.0/0.0;
k = checkint(y);
@@ -124,9 +125,10 @@ __ieee754_pow(double x, double y) {
qx = u.i[HIGH_HALF]&0x7fffffff; /* no sign */
qy = v.i[HIGH_HALF]&0x7fffffff; /* no sign */
- if (qx >= 0x7ff00000 && (qx > 0x7ff00000 || u.i[LOW_HALF] != 0)) return NaNQ.x;
- if (qy >= 0x7ff00000 && (qy > 0x7ff00000 || v.i[LOW_HALF] != 0))
- return x == 1.0 ? 1.0 : NaNQ.x;
+ if (qx >= 0x7ff00000 && (qx > 0x7ff00000 || u.i[LOW_HALF] != 0)) /* NaN */
+ return x;
+ if (qy >= 0x7ff00000 && (qy > 0x7ff00000 || v.i[LOW_HALF] != 0)) /* NaN */
+ return x == 1.0 ? 1.0 : y;
/* if x<0 */
if (u.i[HIGH_HALF] < 0) {
@@ -139,7 +141,7 @@ __ieee754_pow(double x, double y) {
}
else if (qx == 0x7ff00000)
return y < 0 ? 0.0 : INF.x;
- return NaNQ.x; /* y not integer and x<0 */
+ return (x - x) / (x - x); /* y not integer and x<0 */
}
else if (qx == 0x7ff00000)
{
@@ -153,8 +155,7 @@ __ieee754_pow(double x, double y) {
/* x>0 */
if (qx == 0x7ff00000) /* x= 2^-0x3ff */
- {if (y == 0) return NaNQ.x;
- return (y>0)?x:0; }
+ return y > 0 ? x : 0;
if (qy > 0x45f00000 && qy < 0x7ff00000) {
if (x == 1.0) return 1.0;
diff --git a/sysdeps/ieee754/dbl-64/e_remainder.c b/sysdeps/ieee754/dbl-64/e_remainder.c
index c4db9316c7..2d20bb1dfe 100644
--- a/sysdeps/ieee754/dbl-64/e_remainder.c
+++ b/sysdeps/ieee754/dbl-64/e_remainder.c
@@ -51,6 +51,7 @@ double __ieee754_remainder(double x, double y)
ky=t.i[HIGH_HALF];
/*------ |x| < 2^1023 and 2^-970 < |y| < 2^1024 ------------------*/
if (kx<0x7fe00000 && ky<0x7ff00000 && ky>=0x03500000) {
+ SET_RESTORE_ROUND_NOEX (FE_TONEAREST);
if (kx+0x00100000<ky) return x;
if ((kx-0x01500000)<ky) {
z=x/t.x;
@@ -111,12 +112,14 @@ double __ieee754_remainder(double x, double y)
else return (z>0)?z-y:z+y;
}
else { /* if x is too big */
- if (kx == 0x7ff00000 && u.i[LOW_HALF] == 0 && y == 1.0)
- return x / x;
- if (kx>=0x7ff00000||(ky==0&&t.i[LOW_HALF]==0)||ky>0x7ff00000||
- (ky==0x7ff00000&&t.i[LOW_HALF]!=0))
- return (u.i[HIGH_HALF]&0x80000000)?nNAN.x:NAN.x;
- else return x;
+ if (ky==0 && t.i[LOW_HALF] == 0) /* y = 0 */
+ return (x * y) / (x * y);
+ else if (kx >= 0x7ff00000 /* x not finite */
+ || (ky>0x7ff00000 /* y is NaN */
+ || (ky == 0x7ff00000 && t.i[LOW_HALF] != 0)))
+ return (x * y) / (x * y);
+ else
+ return x;
}
}
}
diff --git a/sysdeps/ieee754/dbl-64/gamma_product.c b/sysdeps/ieee754/dbl-64/gamma_product.c
new file mode 100644
index 0000000000..2a3fc1aff8
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/gamma_product.c
@@ -0,0 +1,75 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Calculate X * Y exactly and store the result in *HI + *LO. It is
+ given that the values are small enough that no overflow occurs and
+ large enough (or zero) that no underflow occurs. */
+
+static void
+mul_split (double *hi, double *lo, double x, double y)
+{
+#ifdef __FP_FAST_FMA
+ /* Fast built-in fused multiply-add. */
+ *hi = x * y;
+ *lo = __builtin_fma (x, y, -*hi);
+#elif defined FP_FAST_FMA
+ /* Fast library fused multiply-add, compiler before GCC 4.6. */
+ *hi = x * y;
+ *lo = __fma (x, y, -*hi);
+#else
+ /* Apply Dekker's algorithm. */
+ *hi = x * y;
+# define C ((1 << (DBL_MANT_DIG + 1) / 2) + 1)
+ double x1 = x * C;
+ double y1 = y * C;
+# undef C
+ x1 = (x - x1) + x1;
+ y1 = (y - y1) + y1;
+ double x2 = x - x1;
+ double y2 = y - y1;
+ *lo = (((x1 * y1 - *hi) + x1 * y2) + x2 * y1) + x2 * y2;
+#endif
+}
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+double
+__gamma_product (double x, double x_eps, int n, double *eps)
+{
+ SET_RESTORE_ROUND (FE_TONEAREST);
+ double ret = x;
+ *eps = x_eps / x;
+ for (int i = 1; i < n; i++)
+ {
+ *eps += x_eps / (x + i);
+ double lo;
+ mul_split (&ret, &lo, ret, x + i);
+ *eps += lo / ret;
+ }
+ return ret;
+}
diff --git a/sysdeps/ieee754/dbl-64/gamma_productf.c b/sysdeps/ieee754/dbl-64/gamma_productf.c
new file mode 100644
index 0000000000..46072f16ea
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/gamma_productf.c
@@ -0,0 +1,46 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+float
+__gamma_productf (float x, float x_eps, int n, float *eps)
+{
+ double x_full = (double) x + (double) x_eps;
+ double ret = x_full;
+ for (int i = 1; i < n; i++)
+ ret *= x_full + i;
+
+#if FLT_EVAL_METHOD != 0
+ volatile
+#endif
+ float fret = ret;
+ *eps = (ret - fret) / fret;
+
+ return fret;
+}
diff --git a/sysdeps/ieee754/dbl-64/mpa.h b/sysdeps/ieee754/dbl-64/mpa.h
index 54044a0586..5fad584394 100644
--- a/sysdeps/ieee754/dbl-64/mpa.h
+++ b/sysdeps/ieee754/dbl-64/mpa.h
@@ -91,12 +91,6 @@ extern const mp_no mptwo;
# define TWO52 0x1.0p52 /* 2^52 */
#endif
-#define ZERO 0.0 /* 0 */
-#define MZERO -0.0 /* 0 with the sign bit set */
-#define ONE 1.0 /* 1 */
-#define MONE -1.0 /* -1 */
-#define TWO 2.0 /* 2 */
-
#define TWO5 TWOPOW (5) /* 2^5 */
#define TWO8 TWOPOW (8) /* 2^52 */
#define TWO10 TWOPOW (10) /* 2^10 */
@@ -104,6 +98,8 @@ extern const mp_no mptwo;
#define TWO19 TWOPOW (19) /* 2^19 */
#define TWO23 TWOPOW (23) /* 2^23 */
+#define HALFRAD TWO23
+
#define TWO57 0x1.0p57 /* 2^57 */
#define TWO71 0x1.0p71 /* 2^71 */
#define TWOM1032 0x1.0p-1032 /* 2^-1032 */
@@ -111,7 +107,6 @@ extern const mp_no mptwo;
#define HALF 0x1.0p-1 /* 1/2 */
#define MHALF -0x1.0p-1 /* -1/2 */
-#define HALFRAD 0x1.0p23 /* 2^23 */
int __acr (const mp_no *, const mp_no *, int);
void __cpy (const mp_no *, mp_no *, int);
@@ -152,10 +147,10 @@ __pow_mp (int pow, mp_no *y, int p)
rem += 24;
}
/* The sign of any 2^x is always positive. */
- Y[0] = ONE;
+ Y[0] = 1;
Y[1] = 1 << rem;
- /* Everything else is ZERO. */
+ /* Everything else is 0. */
for (i = 2; i <= p; i++)
- Y[i] = ZERO;
+ Y[i] = 0;
}
diff --git a/sysdeps/ieee754/dbl-64/mpatan.c b/sysdeps/ieee754/dbl-64/mpatan.c
index cc879d8ec4..807b16a9bc 100644
--- a/sysdeps/ieee754/dbl-64/mpatan.c
+++ b/sysdeps/ieee754/dbl-64/mpatan.c
@@ -74,7 +74,7 @@ __mpatan (mp_no *x, mp_no *y, int p)
}
}
mptwoim1.e = 1;
- mptwoim1.d[0] = ONE;
+ mptwoim1.d[0] = 1;
/* Reduce x m times. */
__sqr (x, &mpsm, p);
@@ -102,7 +102,7 @@ __mpatan (mp_no *x, mp_no *y, int p)
__dvd (&mpsm, &mptwoim1, &mpt, p);
for (i = n - 1; i > 1; i--)
{
- mptwoim1.d[1] -= TWO;
+ mptwoim1.d[1] -= 2;
__dvd (&mpsm, &mptwoim1, &mpt1, p);
__mul (&mpsm, &mpt, &mpt2, p);
__sub (&mpt1, &mpt2, &mpt, p);
diff --git a/sysdeps/ieee754/dbl-64/mpatan2.c b/sysdeps/ieee754/dbl-64/mpatan2.c
index d29c2fbade..f66f9eb884 100644
--- a/sysdeps/ieee754/dbl-64/mpatan2.c
+++ b/sysdeps/ieee754/dbl-64/mpatan2.c
@@ -46,12 +46,12 @@ __mpatan2 (mp_no *y, mp_no *x, mp_no *z, int p)
{
mp_no mpt1, mpt2, mpt3;
- if (X[0] <= ZERO)
+ if (X[0] <= 0)
{
__dvd (x, y, &mpt1, p);
__mul (&mpt1, &mpt1, &mpt2, p);
- if (mpt1.d[0] != ZERO)
- mpt1.d[0] = ONE;
+ if (mpt1.d[0] != 0)
+ mpt1.d[0] = 1;
__add (&mpt2, &mpone, &mpt3, p);
__mpsqrt (&mpt3, &mpt2, p);
__add (&mpt1, &mpt2, &mpt3, p);
diff --git a/sysdeps/ieee754/dbl-64/mpexp.c b/sysdeps/ieee754/dbl-64/mpexp.c
index 565c6c8531..06347b74b8 100644
--- a/sysdeps/ieee754/dbl-64/mpexp.c
+++ b/sysdeps/ieee754/dbl-64/mpexp.c
@@ -43,7 +43,7 @@ SECTION
__mpexp (mp_no *x, mp_no *y, int p)
{
int i, j, k, m, m1, m2, n;
- double b;
+ mantissa_t b;
static const int np[33] =
{
0, 0, 0, 0, 3, 3, 4, 4, 5, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6,
@@ -80,12 +80,12 @@ __mpexp (mp_no *x, mp_no *y, int p)
b = X[1];
m2 = 24 * EX;
for (; b < HALFRAD; m2--)
- b *= TWO;
+ b *= 2;
if (b == HALFRAD)
{
for (i = 2; i <= p; i++)
{
- if (X[i] != ZERO)
+ if (X[i] != 0)
break;
}
if (i == p + 1)
diff --git a/sysdeps/ieee754/dbl-64/mptan.c b/sysdeps/ieee754/dbl-64/mptan.c
index 51b5718e73..281bfca1c3 100644
--- a/sysdeps/ieee754/dbl-64/mptan.c
+++ b/sysdeps/ieee754/dbl-64/mptan.c
@@ -56,7 +56,7 @@ __mptan (double x, mp_no *mpy, int p)
if (n)
{
__dvd (&mpc, &mps, mpy, p);
- mpy->d[0] *= MONE;
+ mpy->d[0] *= -1;
}
/* tan is negative in this area. */
else
diff --git a/sysdeps/ieee754/dbl-64/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c
index aa3564d560..7b6c83ffb6 100644
--- a/sysdeps/ieee754/dbl-64/s_atan.c
+++ b/sysdeps/ieee754/dbl-64/s_atan.c
@@ -43,177 +43,272 @@
#include "atnat.h"
#include <math.h>
-void __mpatan(mp_no *,mp_no *,int); /* see definition in mpatan.c */
-static double atanMp(double,const int[]);
+void __mpatan (mp_no *, mp_no *, int); /* see definition in mpatan.c */
+static double atanMp (double, const int[]);
/* Fix the sign of y and return */
-static double __signArctan(double x,double y){
- return __copysign(y, x);
+static double
+__signArctan (double x, double y)
+{
+ return __copysign (y, x);
}
/* An ultimate atan() routine. Given an IEEE double machine number x, */
/* routine computes the correctly rounded (to nearest) value of atan(x). */
-double atan(double x) {
-
-
- double cor,s1,ss1,s2,ss2,t1,t2,t3,t7,t8,t9,t10,u,u2,u3,
- v,vv,w,ww,y,yy,z,zz;
+double
+atan (double x)
+{
+ double cor, s1, ss1, s2, ss2, t1, t2, t3, t7, t8, t9, t10, u, u2, u3,
+ v, vv, w, ww, y, yy, z, zz;
#ifndef DLA_FMS
- double t4,t5,t6;
+ double t4, t5, t6;
#endif
- int i,ux,dx;
- static const int pr[M]={6,8,10,32};
+ int i, ux, dx;
+ static const int pr[M] = { 6, 8, 10, 32 };
number num;
- num.d = x; ux = num.i[HIGH_HALF]; dx = num.i[LOW_HALF];
+ num.d = x;
+ ux = num.i[HIGH_HALF];
+ dx = num.i[LOW_HALF];
/* x=NaN */
- if (((ux&0x7ff00000)==0x7ff00000) && (((ux&0x000fffff)|dx)!=0x00000000))
- return x+x;
+ if (((ux & 0x7ff00000) == 0x7ff00000)
+ && (((ux & 0x000fffff) | dx) != 0x00000000))
+ return x + x;
/* Regular values of x, including denormals +-0 and +-INF */
- u = (x<ZERO) ? -x : x;
- if (u<C) {
- if (u<B) {
- if (u<A) { /* u < A */
- return x; }
- else { /* A <= u < B */
- v=x*x; yy=x*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
- if ((y=x+(yy-U1*x)) == x+(yy+U1*x)) return y;
-
- EMULV(x,x,v,vv,t1,t2,t3,t4,t5) /* v+vv=x^2 */
- s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
- ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(x,ZERO,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(x,ZERO,s2,ss2,s1,ss1,t1,t2)
- if ((y=s1+(ss1-U5*s1)) == s1+(ss1+U5*s1)) return y;
-
- return atanMp(x,pr);
- } }
- else { /* B <= u < C */
- i=(TWO52+TWO8*u)-TWO52; i-=16;
- z=u-cij[i][0].d;
- yy=z*(cij[i][2].d+z*(cij[i][3].d+z*(cij[i][4].d+
- z*(cij[i][5].d+z* cij[i][6].d))));
- t1=cij[i][1].d;
- if (i<112) {
- if (i<48) u2=U21; /* u < 1/4 */
- else u2=U22; } /* 1/4 <= u < 1/2 */
- else {
- if (i<176) u2=U23; /* 1/2 <= u < 3/4 */
- else u2=U24; } /* 3/4 <= u <= 1 */
- if ((y=t1+(yy-u2*t1)) == t1+(yy+u2*t1)) return __signArctan(x,y);
-
- z=u-hij[i][0].d;
- s1=z*(hij[i][11].d+z*(hij[i][12].d+z*(hij[i][13].d+
- z*(hij[i][14].d+z* hij[i][15].d))));
- ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
- MUL2(z,ZERO,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,ZERO,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,ZERO,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,ZERO,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
- if ((y=s2+(ss2-U6*s2)) == s2+(ss2+U6*s2)) return __signArctan(x,y);
-
- return atanMp(x,pr);
- }
- }
- else {
- if (u<D) { /* C <= u < D */
- w=ONE/u;
- EMULV(w,u,t1,t2,t3,t4,t5,t6,t7)
- ww=w*((ONE-t1)-t2);
- i=(TWO52+TWO8*w)-TWO52; i-=16;
- z=(w-cij[i][0].d)+ww;
- yy=HPI1-z*(cij[i][2].d+z*(cij[i][3].d+z*(cij[i][4].d+
- z*(cij[i][5].d+z* cij[i][6].d))));
- t1=HPI-cij[i][1].d;
- if (i<112) u3=U31; /* w < 1/2 */
- else u3=U32; /* w >= 1/2 */
- if ((y=t1+(yy-u3)) == t1+(yy+u3)) return __signArctan(x,y);
-
- DIV2(ONE,ZERO,u,ZERO,w,ww,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- t1=w-hij[i][0].d;
- EADD(t1,ww,z,zz)
- s1=z*(hij[i][11].d+z*(hij[i][12].d+z*(hij[i][13].d+
- z*(hij[i][14].d+z* hij[i][15].d))));
- ADD2(hij[i][9].d,hij[i][10].d,s1,ZERO,s2,ss2,t1,t2)
- MUL2(z,zz,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][7].d,hij[i][8].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,zz,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][5].d,hij[i][6].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,zz,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][3].d,hij[i][4].d,s1,ss1,s2,ss2,t1,t2)
- MUL2(z,zz,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(hij[i][1].d,hij[i][2].d,s1,ss1,s2,ss2,t1,t2)
- SUB2(HPI,HPI1,s2,ss2,s1,ss1,t1,t2)
- if ((y=s1+(ss1-U7)) == s1+(ss1+U7)) return __signArctan(x,y);
-
- return atanMp(x,pr);
- }
- else {
- if (u<E) { /* D <= u < E */
- w=ONE/u; v=w*w;
- EMULV(w,u,t1,t2,t3,t4,t5,t6,t7)
- yy=w*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d)))));
- ww=w*((ONE-t1)-t2);
- ESUB(HPI,w,t3,cor)
- yy=((HPI1+cor)-ww)-yy;
- if ((y=t3+(yy-U4)) == t3+(yy+U4)) return __signArctan(x,y);
-
- DIV2(ONE,ZERO,u,ZERO,w,ww,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- MUL2(w,ww,w,ww,v,vv,t1,t2,t3,t4,t5,t6,t7,t8)
- s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d))));
- ADD2(f9.d,ff9.d,s1,ZERO,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f7.d,ff7.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f5.d,ff5.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(f3.d,ff3.d,s1,ss1,s2,ss2,t1,t2)
- MUL2(v,vv,s2,ss2,s1,ss1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(w,ww,s1,ss1,s2,ss2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(w,ww,s2,ss2,s1,ss1,t1,t2)
- SUB2(HPI,HPI1,s1,ss1,s2,ss2,t1,t2)
- if ((y=s2+(ss2-U8)) == s2+(ss2+U8)) return __signArctan(x,y);
-
- return atanMp(x,pr);
- }
- else {
- /* u >= E */
- if (x>0) return HPI;
- else return MHPI; }
+ u = (x < 0) ? -x : x;
+ if (u < C)
+ {
+ if (u < B)
+ {
+ if (u < A)
+ return x;
+ else
+ { /* A <= u < B */
+ v = x * x;
+ yy = d11.d + v * d13.d;
+ yy = d9.d + v * yy;
+ yy = d7.d + v * yy;
+ yy = d5.d + v * yy;
+ yy = d3.d + v * yy;
+ yy *= x * v;
+
+ if ((y = x + (yy - U1 * x)) == x + (yy + U1 * x))
+ return y;
+
+ EMULV (x, x, v, vv, t1, t2, t3, t4, t5); /* v+vv=x^2 */
+
+ s1 = f17.d + v * f19.d;
+ s1 = f15.d + v * s1;
+ s1 = f13.d + v * s1;
+ s1 = f11.d + v * s1;
+ s1 *= v;
+
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (x, 0, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7,
+ t8);
+ ADD2 (x, 0, s2, ss2, s1, ss1, t1, t2);
+ if ((y = s1 + (ss1 - U5 * s1)) == s1 + (ss1 + U5 * s1))
+ return y;
+
+ return atanMp (x, pr);
+ }
+ }
+ else
+ { /* B <= u < C */
+ i = (TWO52 + TWO8 * u) - TWO52;
+ i -= 16;
+ z = u - cij[i][0].d;
+ yy = cij[i][5].d + z * cij[i][6].d;
+ yy = cij[i][4].d + z * yy;
+ yy = cij[i][3].d + z * yy;
+ yy = cij[i][2].d + z * yy;
+ yy *= z;
+
+ t1 = cij[i][1].d;
+ if (i < 112)
+ {
+ if (i < 48)
+ u2 = U21; /* u < 1/4 */
+ else
+ u2 = U22;
+ } /* 1/4 <= u < 1/2 */
+ else
+ {
+ if (i < 176)
+ u2 = U23; /* 1/2 <= u < 3/4 */
+ else
+ u2 = U24;
+ } /* 3/4 <= u <= 1 */
+ if ((y = t1 + (yy - u2 * t1)) == t1 + (yy + u2 * t1))
+ return __signArctan (x, y);
+
+ z = u - hij[i][0].d;
+
+ s1 = hij[i][14].d + z * hij[i][15].d;
+ s1 = hij[i][13].d + z * s1;
+ s1 = hij[i][12].d + z * s1;
+ s1 = hij[i][11].d + z * s1;
+ s1 *= z;
+
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+ MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+ if ((y = s2 + (ss2 - U6 * s2)) == s2 + (ss2 + U6 * s2))
+ return __signArctan (x, y);
+
+ return atanMp (x, pr);
+ }
}
- }
+ else
+ {
+ if (u < D)
+ { /* C <= u < D */
+ w = 1 / u;
+ EMULV (w, u, t1, t2, t3, t4, t5, t6, t7);
+ ww = w * ((1 - t1) - t2);
+ i = (TWO52 + TWO8 * w) - TWO52;
+ i -= 16;
+ z = (w - cij[i][0].d) + ww;
+
+ yy = cij[i][5].d + z * cij[i][6].d;
+ yy = cij[i][4].d + z * yy;
+ yy = cij[i][3].d + z * yy;
+ yy = cij[i][2].d + z * yy;
+ yy = HPI1 - z * yy;
+ t1 = HPI - cij[i][1].d;
+ if (i < 112)
+ u3 = U31; /* w < 1/2 */
+ else
+ u3 = U32; /* w >= 1/2 */
+ if ((y = t1 + (yy - u3)) == t1 + (yy + u3))
+ return __signArctan (x, y);
+
+ DIV2 (1 , 0, u, 0, w, ww, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ t1 = w - hij[i][0].d;
+ EADD (t1, ww, z, zz);
+
+ s1 = hij[i][14].d + z * hij[i][15].d;
+ s1 = hij[i][13].d + z * s1;
+ s1 = hij[i][12].d + z * s1;
+ s1 = hij[i][11].d + z * s1;
+ s1 *= z;
+
+ ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+ MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+ SUB2 (HPI, HPI1, s2, ss2, s1, ss1, t1, t2);
+ if ((y = s1 + (ss1 - U7)) == s1 + (ss1 + U7))
+ return __signArctan (x, y);
+
+ return atanMp (x, pr);
+ }
+ else
+ {
+ if (u < E)
+ { /* D <= u < E */
+ w = 1 / u;
+ v = w * w;
+ EMULV (w, u, t1, t2, t3, t4, t5, t6, t7);
+
+ yy = d11.d + v * d13.d;
+ yy = d9.d + v * yy;
+ yy = d7.d + v * yy;
+ yy = d5.d + v * yy;
+ yy = d3.d + v * yy;
+ yy *= w * v;
+
+ ww = w * ((1 - t1) - t2);
+ ESUB (HPI, w, t3, cor);
+ yy = ((HPI1 + cor) - ww) - yy;
+ if ((y = t3 + (yy - U4)) == t3 + (yy + U4))
+ return __signArctan (x, y);
+
+ DIV2 (1 , 0, u, 0, w, ww, t1, t2, t3, t4, t5, t6, t7, t8,
+ t9, t10);
+ MUL2 (w, ww, w, ww, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+
+ s1 = f17.d + v * f19.d;
+ s1 = f15.d + v * s1;
+ s1 = f13.d + v * s1;
+ s1 = f11.d + v * s1;
+ s1 *= v;
+
+ ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+ MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (w, ww, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (w, ww, s2, ss2, s1, ss1, t1, t2);
+ SUB2 (HPI, HPI1, s1, ss1, s2, ss2, t1, t2);
+
+ if ((y = s2 + (ss2 - U8)) == s2 + (ss2 + U8))
+ return __signArctan (x, y);
+
+ return atanMp (x, pr);
+ }
+ else
+ {
+ /* u >= E */
+ if (x > 0)
+ return HPI;
+ else
+ return MHPI;
+ }
+ }
+ }
}
/* Final stages. Compute atan(x) by multiple precision arithmetic */
-static double atanMp(double x,const int pr[]){
- mp_no mpx,mpy,mpy2,mperr,mpt1,mpy1;
- double y1,y2;
- int i,p;
-
-for (i=0; i<M; i++) {
- p = pr[i];
- __dbl_mp(x,&mpx,p); __mpatan(&mpx,&mpy,p);
- __dbl_mp(u9[i].d,&mpt1,p); __mul(&mpy,&mpt1,&mperr,p);
- __add(&mpy,&mperr,&mpy1,p); __sub(&mpy,&mperr,&mpy2,p);
- __mp_dbl(&mpy1,&y1,p); __mp_dbl(&mpy2,&y2,p);
- if (y1==y2) return y1;
- }
- return y1; /*if unpossible to do exact computing */
+static double
+atanMp (double x, const int pr[])
+{
+ mp_no mpx, mpy, mpy2, mperr, mpt1, mpy1;
+ double y1, y2;
+ int i, p;
+
+ for (i = 0; i < M; i++)
+ {
+ p = pr[i];
+ __dbl_mp (x, &mpx, p);
+ __mpatan (&mpx, &mpy, p);
+ __dbl_mp (u9[i].d, &mpt1, p);
+ __mul (&mpy, &mpt1, &mperr, p);
+ __add (&mpy, &mperr, &mpy1, p);
+ __sub (&mpy, &mperr, &mpy2, p);
+ __mp_dbl (&mpy1, &y1, p);
+ __mp_dbl (&mpy2, &y2, p);
+ if (y1 == y2)
+ return y1;
+ }
+ return y1; /*if impossible to do exact computing */
}
#ifdef NO_LONG_DOUBLE
diff --git a/sysdeps/ieee754/dbl-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/s_issignaling.c
new file mode 100644
index 0000000000..f475bc7bdf
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/s_issignaling.c
@@ -0,0 +1,46 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignaling (double x)
+{
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+ u_int32_t hxi;
+ GET_HIGH_WORD (hxi, x);
+ /* We only have to care about the high-order bit of x's significand, because
+ having it set (sNaN) already makes the significand different from that
+ used to designate infinity. */
+ return (hxi & 0x7ff80000) == 0x7ff80000;
+#else
+ u_int32_t hxi, lxi;
+ EXTRACT_WORDS (hxi, lxi, x);
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ hxi ^= 0x00080000;
+ /* If lxi != 0, then set any suitable bit of the significand in hxi. */
+ hxi |= (lxi | -lxi) >> 31;
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return (hxi & 0x7fffffff) > 0x7ff80000;
+#endif
+}
+libm_hidden_def (__issignaling)
diff --git a/sysdeps/ieee754/dbl-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/s_nearbyint.c
index eb40c298bb..5017f471d2 100644
--- a/sysdeps/ieee754/dbl-64/s_nearbyint.c
+++ b/sysdeps/ieee754/dbl-64/s_nearbyint.c
@@ -47,6 +47,7 @@ double __nearbyint(double x)
libc_feholdexcept (&env);
w = TWO52[sx]+x;
t = w-TWO52[sx];
+ math_force_eval (t);
libc_fesetenv (&env);
GET_HIGH_WORD(i0,t);
SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
@@ -59,6 +60,7 @@ double __nearbyint(double x)
libc_feholdexcept (&env);
w = TWO52[sx]+x;
t = w-TWO52[sx];
+ math_force_eval (t);
libc_fesetenv (&env);
return t;
}
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index 5038b72612..5c388c8b93 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -66,299 +66,359 @@ extern const union
} __sincostab attribute_hidden;
static const double
- sn3 = -1.66666666666664880952546298448555E-01,
- sn5 = 8.33333214285722277379541354343671E-03,
- cs2 = 4.99999999999999999999950396842453E-01,
- cs4 = -4.16666666666664434524222570944589E-02,
- cs6 = 1.38888874007937613028114285595617E-03;
-
-void __dubsin(double x, double dx, double w[]);
-void __docos(double x, double dx, double w[]);
-double __mpsin(double x, double dx);
-double __mpcos(double x, double dx);
-double __mpsin1(double x);
-double __mpcos1(double x);
-static double slow(double x);
-static double slow1(double x);
-static double slow2(double x);
-static double sloww(double x, double dx, double orig);
-static double sloww1(double x, double dx, double orig);
-static double sloww2(double x, double dx, double orig, int n);
-static double bsloww(double x, double dx, double orig, int n);
-static double bsloww1(double x, double dx, double orig, int n);
-static double bsloww2(double x, double dx, double orig, int n);
-int __branred(double x, double *a, double *aa);
-static double cslow2(double x);
-static double csloww(double x, double dx, double orig);
-static double csloww1(double x, double dx, double orig);
-static double csloww2(double x, double dx, double orig, int n);
+ sn3 = -1.66666666666664880952546298448555E-01,
+ sn5 = 8.33333214285722277379541354343671E-03,
+ cs2 = 4.99999999999999999999950396842453E-01,
+ cs4 = -4.16666666666664434524222570944589E-02,
+ cs6 = 1.38888874007937613028114285595617E-03;
+
+void __dubsin (double x, double dx, double w[]);
+void __docos (double x, double dx, double w[]);
+double __mpsin (double x, double dx);
+double __mpcos (double x, double dx);
+double __mpsin1 (double x);
+double __mpcos1 (double x);
+static double slow (double x);
+static double slow1 (double x);
+static double slow2 (double x);
+static double sloww (double x, double dx, double orig);
+static double sloww1 (double x, double dx, double orig);
+static double sloww2 (double x, double dx, double orig, int n);
+static double bsloww (double x, double dx, double orig, int n);
+static double bsloww1 (double x, double dx, double orig, int n);
+static double bsloww2 (double x, double dx, double orig, int n);
+int __branred (double x, double *a, double *aa);
+static double cslow2 (double x);
+static double csloww (double x, double dx, double orig);
+static double csloww1 (double x, double dx, double orig);
+static double csloww2 (double x, double dx, double orig, int n);
+
/*******************************************************************/
/* An ultimate sin routine. Given an IEEE double machine number x */
/* it computes the correctly rounded (to nearest) value of sin(x) */
/*******************************************************************/
double
SECTION
-__sin(double x){
- double xx,res,t,cor,y,s,c,sn,ssn,cs,ccs,xn,a,da,db,eps,xn1,xn2;
- mynumber u,v;
- int4 k,m,n;
- double retval = 0;
-
- SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
-
- u.x = x;
- m = u.i[HIGH_HALF];
- k = 0x7fffffff&m; /* no sign */
- if (k < 0x3e500000) /* if x->0 =>sin(x)=x */
- { retval = x; goto ret; }
+__sin (double x)
+{
+ double xx, res, t, cor, y, s, c, sn, ssn, cs, ccs, xn, a, da, db, eps, xn1,
+ xn2;
+ mynumber u, v;
+ int4 k, m, n;
+ double retval = 0;
+
+ SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
+
+ u.x = x;
+ m = u.i[HIGH_HALF];
+ k = 0x7fffffff & m; /* no sign */
+ if (k < 0x3e500000) /* if x->0 =>sin(x)=x */
+ {
+ retval = x;
+ goto ret;
+ }
/*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/
- else if (k < 0x3fd00000){
- xx = x*x;
- /*Taylor series */
- t = ((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*(xx*x);
- res = x+t;
- cor = (x-res)+t;
- retval = (res == res + 1.07*cor)? res : slow(x);
- goto ret;
- } /* else if (k < 0x3fd00000) */
+ else if (k < 0x3fd00000)
+ {
+ xx = x * x;
+ /*Taylor series. */
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + s1.x)
+ * (xx * x));
+ res = x + t;
+ cor = (x - res) + t;
+ retval = (res == res + 1.07 * cor) ? res : slow (x);
+ goto ret;
+ } /* else if (k < 0x3fd00000) */
/*---------------------------- 0.25<|x|< 0.855469---------------------- */
- else if (k < 0x3feb6000) {
- u.x=(m>0)?big.x+x:big.x-x;
- y=(m>0)?x-(u.x-big.x):x+(u.x-big.x);
- xx=y*y;
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=(m>0)?__sincostab.x[k]:-__sincostab.x[k];
- ssn=(m>0)?__sincostab.x[k+1]:-__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- retval = (res==res+1.096*cor)? res : slow1(x);
- goto ret;
- } /* else if (k < 0x3feb6000) */
+ else if (k < 0x3feb6000)
+ {
+ u.x = (m > 0) ? big.x + x : big.x - x;
+ y = (m > 0) ? x - (u.x - big.x) : x + (u.x - big.x);
+ xx = y * y;
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = (m > 0) ? __sincostab.x[k] : -__sincostab.x[k];
+ ssn = (m > 0) ? __sincostab.x[k + 1] : -__sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ retval = (res == res + 1.096 * cor) ? res : slow1 (x);
+ goto ret;
+ } /* else if (k < 0x3feb6000) */
/*----------------------- 0.855469 <|x|<2.426265 ----------------------*/
- else if (k < 0x400368fd ) {
-
- y = (m>0)? hp0.x-x:hp0.x+x;
- if (y>=0) {
- u.x = big.x+y;
- y = (y-(u.x-big.x))+hp1.x;
- }
- else {
- u.x = big.x-y;
- y = (-hp1.x) - (y+(u.x-big.x));
- }
- xx=y*y;
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- retval = (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x);
- goto ret;
- } /* else if (k < 0x400368fd) */
+ else if (k < 0x400368fd)
+ {
+
+ y = (m > 0) ? hp0.x - x : hp0.x + x;
+ if (y >= 0)
+ {
+ u.x = big.x + y;
+ y = (y - (u.x - big.x)) + hp1.x;
+ }
+ else
+ {
+ u.x = big.x - y;
+ y = (-hp1.x) - (y + (u.x - big.x));
+ }
+ xx = y * y;
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ retval = (res == res + 1.020 * cor) ? ((m > 0) ? res : -res) : slow2 (x);
+ goto ret;
+ } /* else if (k < 0x400368fd) */
/*-------------------------- 2.426265<|x|< 105414350 ----------------------*/
- else if (k < 0x419921FB ) {
- t = (x*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- y = (x - xn*mp1.x) - xn*mp2.x;
- n =v.i[LOW_HALF]&3;
- da = xn*mp3.x;
- a=y-da;
- da = (y-a)-da;
- eps = ABS(x)*1.2e-30;
-
- switch (n) { /* quarter of unit circle */
- case 0:
- case 2:
- xx = a*a;
- if (n) {a=-a;da=-da;}
- if (xx < 0.01588) {
- /*Taylor series */
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*a - 0.5*da)*xx+da;
- res = a+t;
- cor = (a-res)+t;
- cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
- retval = (res == res + cor)? res : sloww(a,da,x);
+ else if (k < 0x419921FB)
+ {
+ t = (x * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ y = (x - xn * mp1.x) - xn * mp2.x;
+ n = v.i[LOW_HALF] & 3;
+ da = xn * mp3.x;
+ a = y - da;
+ da = (y - a) - da;
+ eps = ABS (x) * 1.2e-30;
+
+ switch (n)
+ { /* quarter of unit circle */
+ case 0:
+ case 2:
+ xx = a * a;
+ if (n)
+ {
+ a = -a;
+ da = -da;
+ }
+ if (xx < 0.01588)
+ {
+ /*Taylor series */
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx
+ + s1.x) * a - 0.5 * da) * xx + da;
+ res = a + t;
+ cor = (a - res) + t;
+ cor = (cor > 0) ? 1.02 * cor + eps : 1.02 * cor - eps;
+ retval = (res == res + cor) ? res : sloww (a, da, x);
goto ret;
}
- else {
- if (a>0)
- {m=1;t=a;db=da;}
+ else
+ {
+ if (a > 0)
+ {
+ m = 1;
+ t = a;
+ db = da;
+ }
else
- {m=0;t=-a;db=-da;}
- u.x=big.x+t;
- y=t-(u.x-big.x);
- xx=y*y;
- s = y + (db+y*xx*(sn3 +xx*sn5));
- c = y*db+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
- retval = (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x);
+ {
+ m = 0;
+ t = -a;
+ db = -da;
+ }
+ u.x = big.x + t;
+ y = t - (u.x - big.x);
+ xx = y * y;
+ s = y + (db + y * xx * (sn3 + xx * sn5));
+ c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ retval = ((res == res + cor) ? ((m) ? res : -res)
+ : sloww1 (a, da, x));
goto ret;
}
- break;
-
- case 1:
- case 3:
- if (a<0)
- {a=-a;da=-da;}
- u.x=big.x+a;
- y=a-(u.x-big.x)+da;
- xx=y*y;
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
- retval = (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n);
- goto ret;
-
- break;
-
- }
-
- } /* else if (k < 0x419921FB ) */
+ break;
+
+ case 1:
+ case 3:
+ if (a < 0)
+ {
+ a = -a;
+ da = -da;
+ }
+ u.x = big.x + a;
+ y = a - (u.x - big.x) + da;
+ xx = y * y;
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ cor = (cor > 0) ? 1.025 * cor + eps : 1.025 * cor - eps;
+ retval = ((res == res + cor) ? ((n & 2) ? -res : res)
+ : sloww2 (a, da, x, n));
+ goto ret;
+
+ break;
+ }
+
+ } /* else if (k < 0x419921FB ) */
/*---------------------105414350 <|x|< 281474976710656 --------------------*/
- else if (k < 0x42F00000 ) {
- t = (x*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- xn1 = (xn+8.0e22)-8.0e22;
- xn2 = xn - xn1;
- y = ((((x - xn1*mp1.x) - xn1*mp2.x)-xn2*mp1.x)-xn2*mp2.x);
- n =v.i[LOW_HALF]&3;
- da = xn1*pp3.x;
- t=y-da;
- da = (y-t)-da;
- da = (da - xn2*pp3.x) -xn*pp4.x;
- a = t+da;
- da = (t-a)+da;
- eps = 1.0e-24;
-
- switch (n) {
- case 0:
- case 2:
- xx = a*a;
- if (n) {a=-a;da=-da;}
- if (xx < 0.01588) {
+ else if (k < 0x42F00000)
+ {
+ t = (x * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ xn1 = (xn + 8.0e22) - 8.0e22;
+ xn2 = xn - xn1;
+ y = ((((x - xn1 * mp1.x) - xn1 * mp2.x) - xn2 * mp1.x) - xn2 * mp2.x);
+ n = v.i[LOW_HALF] & 3;
+ da = xn1 * pp3.x;
+ t = y - da;
+ da = (y - t) - da;
+ da = (da - xn2 * pp3.x) - xn * pp4.x;
+ a = t + da;
+ da = (t - a) + da;
+ eps = 1.0e-24;
+
+ switch (n)
+ {
+ case 0:
+ case 2:
+ xx = a * a;
+ if (n)
+ {
+ a = -a;
+ da = -da;
+ }
+ if (xx < 0.01588)
+ {
/* Taylor series */
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*a - 0.5*da)*xx+da;
- res = a+t;
- cor = (a-res)+t;
- cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
- retval = (res == res + cor)? res : bsloww(a,da,x,n);
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx
+ + s1.x) * a - 0.5 * da) * xx + da;
+ res = a + t;
+ cor = (a - res) + t;
+ cor = (cor > 0) ? 1.02 * cor + eps : 1.02 * cor - eps;
+ retval = (res == res + cor) ? res : bsloww (a, da, x, n);
goto ret;
}
- else {
- if (a>0) {m=1;t=a;db=da;}
- else {m=0;t=-a;db=-da;}
- u.x=big.x+t;
- y=t-(u.x-big.x);
- xx=y*y;
- s = y + (db+y*xx*(sn3 +xx*sn5));
- c = y*db+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
- retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
+ else
+ {
+ if (a > 0)
+ {
+ m = 1;
+ t = a;
+ db = da;
+ }
+ else
+ {
+ m = 0;
+ t = -a;
+ db = -da;
+ }
+ u.x = big.x + t;
+ y = t - (u.x - big.x);
+ xx = y * y;
+ s = y + (db + y * xx * (sn3 + xx * sn5));
+ c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ retval = ((res == res + cor) ? ((m) ? res : -res)
+ : bsloww1 (a, da, x, n));
goto ret;
- }
- break;
-
- case 1:
- case 3:
- if (a<0)
- {a=-a;da=-da;}
- u.x=big.x+a;
- y=a-(u.x-big.x)+da;
- xx=y*y;
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
- retval = (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n);
- goto ret;
-
- break;
-
- }
-
- } /* else if (k < 0x42F00000 ) */
+ }
+ break;
+
+ case 1:
+ case 3:
+ if (a < 0)
+ {
+ a = -a;
+ da = -da;
+ }
+ u.x = big.x + a;
+ y = a - (u.x - big.x) + da;
+ xx = y * y;
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ cor = (cor > 0) ? 1.025 * cor + eps : 1.025 * cor - eps;
+ retval = ((res == res + cor) ? ((n & 2) ? -res : res)
+ : bsloww2 (a, da, x, n));
+ goto ret;
+
+ break;
+ }
+ } /* else if (k < 0x42F00000 ) */
/* -----------------281474976710656 <|x| <2^1024----------------------------*/
- else if (k < 0x7ff00000) {
-
- n = __branred(x,&a,&da);
- switch (n) {
- case 0:
- if (a*a < 0.01588) retval = bsloww(a,da,x,n);
- else retval = bsloww1(a,da,x,n);
- goto ret;
- break;
- case 2:
- if (a*a < 0.01588) retval = bsloww(-a,-da,x,n);
- else retval = bsloww1(-a,-da,x,n);
- goto ret;
- break;
-
- case 1:
- case 3:
- retval = bsloww2(a,da,x,n);
- goto ret;
- break;
- }
-
- } /* else if (k < 0x7ff00000 ) */
+ else if (k < 0x7ff00000)
+ {
+ n = __branred (x, &a, &da);
+ switch (n)
+ {
+ case 0:
+ if (a * a < 0.01588)
+ retval = bsloww (a, da, x, n);
+ else
+ retval = bsloww1 (a, da, x, n);
+ goto ret;
+ break;
+ case 2:
+ if (a * a < 0.01588)
+ retval = bsloww (-a, -da, x, n);
+ else
+ retval = bsloww1 (-a, -da, x, n);
+ goto ret;
+ break;
-/*--------------------- |x| > 2^1024 ----------------------------------*/
- else {
- if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
- __set_errno (EDOM);
- retval = x / x;
+ case 1:
+ case 3:
+ retval = bsloww2 (a, da, x, n);
goto ret;
+ break;
}
+ } /* else if (k < 0x7ff00000 ) */
+
+/*--------------------- |x| > 2^1024 ----------------------------------*/
+ else
+ {
+ if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
+ __set_errno (EDOM);
+ retval = x / x;
+ goto ret;
+ }
- ret:
- return retval;
+ret:
+ return retval;
}
@@ -369,11 +429,12 @@ __sin(double x){
double
SECTION
-__cos(double x)
+__cos (double x)
{
- double y,xx,res,t,cor,s,c,sn,ssn,cs,ccs,xn,a,da,db,eps,xn1,xn2;
- mynumber u,v;
- int4 k,m,n;
+ double y, xx, res, t, cor, s, c, sn, ssn, cs, ccs, xn, a, da, db, eps, xn1,
+ xn2;
+ mynumber u, v;
+ int4 k, m, n;
double retval = 0;
@@ -381,251 +442,318 @@ __cos(double x)
u.x = x;
m = u.i[HIGH_HALF];
- k = 0x7fffffff&m;
-
- if (k < 0x3e400000 ) { retval = 1.0; goto ret; } /* |x|<2^-27 => cos(x)=1 */
-
- else if (k < 0x3feb6000 ) {/* 2^-27 < |x| < 0.855469 */
- y=ABS(x);
- u.x = big.x+y;
- y = y-(u.x-big.x);
- xx=y*y;
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- retval = (res==res+1.020*cor)? res : cslow2(x);
- goto ret;
-
-} /* else if (k < 0x3feb6000) */
-
- else if (k < 0x400368fd ) {/* 0.855469 <|x|<2.426265 */;
- y=hp0.x-ABS(x);
- a=y+hp1.x;
- da=(y-a)+hp1.x;
- xx=a*a;
- if (xx < 0.01588) {
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*a - 0.5*da)*xx+da;
- res = a+t;
- cor = (a-res)+t;
- cor = (cor>0)? 1.02*cor+1.0e-31 : 1.02*cor -1.0e-31;
- retval = (res == res + cor)? res : csloww(a,da,x);
- goto ret;
- }
- else {
- if (a>0) {m=1;t=a;db=da;}
- else {m=0;t=-a;db=-da;}
- u.x=big.x+t;
- y=t-(u.x-big.x);
- xx=y*y;
- s = y + (db+y*xx*(sn3 +xx*sn5));
- c = y*db+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- cor = (cor>0)? 1.035*cor+1.0e-31 : 1.035*cor-1.0e-31;
- retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
- goto ret;
-}
+ k = 0x7fffffff & m;
-} /* else if (k < 0x400368fd) */
-
-
- else if (k < 0x419921FB ) {/* 2.426265<|x|< 105414350 */
- t = (x*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- y = (x - xn*mp1.x) - xn*mp2.x;
- n =v.i[LOW_HALF]&3;
- da = xn*mp3.x;
- a=y-da;
- da = (y-a)-da;
- eps = ABS(x)*1.2e-30;
-
- switch (n) {
- case 1:
- case 3:
- xx = a*a;
- if (n == 1) {a=-a;da=-da;}
- if (xx < 0.01588) {
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*a - 0.5*da)*xx+da;
- res = a+t;
- cor = (a-res)+t;
- cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
- retval = (res == res + cor)? res : csloww(a,da,x);
- goto ret;
- }
- else {
- if (a>0) {m=1;t=a;db=da;}
- else {m=0;t=-a;db=-da;}
- u.x=big.x+t;
- y=t-(u.x-big.x);
- xx=y*y;
- s = y + (db+y*xx*(sn3 +xx*sn5));
- c = y*db+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
- retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
- goto ret;
- }
- break;
-
- case 0:
- case 2:
- if (a<0) {a=-a;da=-da;}
- u.x=big.x+a;
- y=a-(u.x-big.x)+da;
- xx=y*y;
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
- retval = (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n);
+ if (k < 0x3e400000)
+ {
+ retval = 1.0;
+ goto ret;
+ } /* |x|<2^-27 => cos(x)=1 */
+
+ else if (k < 0x3feb6000)
+ { /* 2^-27 < |x| < 0.855469 */
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ xx = y * y;
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ retval = (res == res + 1.020 * cor) ? res : cslow2 (x);
goto ret;
+ } /* else if (k < 0x3feb6000) */
+
+ else if (k < 0x400368fd)
+ { /* 0.855469 <|x|<2.426265 */ ;
+ y = hp0.x - ABS (x);
+ a = y + hp1.x;
+ da = (y - a) + hp1.x;
+ xx = a * a;
+ if (xx < 0.01588)
+ {
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + s1.x)
+ * a - 0.5 * da) * xx + da;
+ res = a + t;
+ cor = (a - res) + t;
+ cor = (cor > 0) ? 1.02 * cor + 1.0e-31 : 1.02 * cor - 1.0e-31;
+ retval = (res == res + cor) ? res : csloww (a, da, x);
+ goto ret;
+ }
+ else
+ {
+ if (a > 0)
+ {
+ m = 1;
+ t = a;
+ db = da;
+ }
+ else
+ {
+ m = 0;
+ t = -a;
+ db = -da;
+ }
+ u.x = big.x + t;
+ y = t - (u.x - big.x);
+ xx = y * y;
+ s = y + (db + y * xx * (sn3 + xx * sn5));
+ c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ cor = (cor > 0) ? 1.035 * cor + 1.0e-31 : 1.035 * cor - 1.0e-31;
+ retval = ((res == res + cor) ? ((m) ? res : -res)
+ : csloww1 (a, da, x));
+ goto ret;
+ }
- break;
+ } /* else if (k < 0x400368fd) */
- }
- } /* else if (k < 0x419921FB ) */
-
-
- else if (k < 0x42F00000 ) {
- t = (x*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- xn1 = (xn+8.0e22)-8.0e22;
- xn2 = xn - xn1;
- y = ((((x - xn1*mp1.x) - xn1*mp2.x)-xn2*mp1.x)-xn2*mp2.x);
- n =v.i[LOW_HALF]&3;
- da = xn1*pp3.x;
- t=y-da;
- da = (y-t)-da;
- da = (da - xn2*pp3.x) -xn*pp4.x;
- a = t+da;
- da = (t-a)+da;
- eps = 1.0e-24;
-
- switch (n) {
- case 1:
- case 3:
- xx = a*a;
- if (n==1) {a=-a;da=-da;}
- if (xx < 0.01588) {
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*a - 0.5*da)*xx+da;
- res = a+t;
- cor = (a-res)+t;
- cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
- retval = (res == res + cor)? res : bsloww(a,da,x,n);
- goto ret;
- }
- else {
- if (a>0) {m=1;t=a;db=da;}
- else {m=0;t=-a;db=-da;}
- u.x=big.x+t;
- y=t-(u.x-big.x);
- xx=y*y;
- s = y + (db+y*xx*(sn3 +xx*sn5));
- c = y*db+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- cor=(ssn+s*ccs-sn*c)+cs*s;
- res=sn+cor;
- cor=(sn-res)+cor;
- cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
- retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
- goto ret;
- }
- break;
-
- case 0:
- case 2:
- if (a<0) {a=-a;da=-da;}
- u.x=big.x+a;
- y=a-(u.x-big.x)+da;
- xx=y*y;
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- s = y + y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- cor=(ccs-s*ssn-cs*c)-sn*s;
- res=cs+cor;
- cor=(cs-res)+cor;
- cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
- retval = (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n);
- goto ret;
- break;
+ else if (k < 0x419921FB)
+ { /* 2.426265<|x|< 105414350 */
+ t = (x * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ y = (x - xn * mp1.x) - xn * mp2.x;
+ n = v.i[LOW_HALF] & 3;
+ da = xn * mp3.x;
+ a = y - da;
+ da = (y - a) - da;
+ eps = ABS (x) * 1.2e-30;
+
+ switch (n)
+ {
+ case 1:
+ case 3:
+ xx = a * a;
+ if (n == 1)
+ {
+ a = -a;
+ da = -da;
+ }
+ if (xx < 0.01588)
+ {
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx
+ + s1.x) * a - 0.5 * da) * xx + da;
+ res = a + t;
+ cor = (a - res) + t;
+ cor = (cor > 0) ? 1.02 * cor + eps : 1.02 * cor - eps;
+ retval = (res == res + cor) ? res : csloww (a, da, x);
+ goto ret;
+ }
+ else
+ {
+ if (a > 0)
+ {
+ m = 1;
+ t = a;
+ db = da;
+ }
+ else
+ {
+ m = 0;
+ t = -a;
+ db = -da;
+ }
+ u.x = big.x + t;
+ y = t - (u.x - big.x);
+ xx = y * y;
+ s = y + (db + y * xx * (sn3 + xx * sn5));
+ c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ retval = ((res == res + cor) ? ((m) ? res : -res)
+ : csloww1 (a, da, x));
+ goto ret;
+ }
+ break;
+
+ case 0:
+ case 2:
+ if (a < 0)
+ {
+ a = -a;
+ da = -da;
+ }
+ u.x = big.x + a;
+ y = a - (u.x - big.x) + da;
+ xx = y * y;
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ cor = (cor > 0) ? 1.025 * cor + eps : 1.025 * cor - eps;
+ retval = ((res == res + cor) ? ((n) ? -res : res)
+ : csloww2 (a, da, x, n));
+ goto ret;
- }
+ break;
+ }
+ } /* else if (k < 0x419921FB ) */
- } /* else if (k < 0x42F00000 ) */
+ else if (k < 0x42F00000)
+ {
+ t = (x * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ xn1 = (xn + 8.0e22) - 8.0e22;
+ xn2 = xn - xn1;
+ y = ((((x - xn1 * mp1.x) - xn1 * mp2.x) - xn2 * mp1.x) - xn2 * mp2.x);
+ n = v.i[LOW_HALF] & 3;
+ da = xn1 * pp3.x;
+ t = y - da;
+ da = (y - t) - da;
+ da = (da - xn2 * pp3.x) - xn * pp4.x;
+ a = t + da;
+ da = (t - a) + da;
+ eps = 1.0e-24;
+
+ switch (n)
+ {
+ case 1:
+ case 3:
+ xx = a * a;
+ if (n == 1)
+ {
+ a = -a;
+ da = -da;
+ }
+ if (xx < 0.01588)
+ {
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx
+ + s1.x) * a - 0.5 * da) * xx + da;
+ res = a + t;
+ cor = (a - res) + t;
+ cor = (cor > 0) ? 1.02 * cor + eps : 1.02 * cor - eps;
+ retval = (res == res + cor) ? res : bsloww (a, da, x, n);
+ goto ret;
+ }
+ else
+ {
+ if (a > 0)
+ {
+ m = 1;
+ t = a;
+ db = da;
+ }
+ else
+ {
+ m = 0;
+ t = -a;
+ db = -da;
+ }
+ u.x = big.x + t;
+ y = t - (u.x - big.x);
+ xx = y * y;
+ s = y + (db + y * xx * (sn3 + xx * sn5));
+ c = y * db + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ cor = (ssn + s * ccs - sn * c) + cs * s;
+ res = sn + cor;
+ cor = (sn - res) + cor;
+ cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ retval = ((res == res + cor) ? ((m) ? res : -res)
+ : bsloww1 (a, da, x, n));
+ goto ret;
+ }
+ break;
+
+ case 0:
+ case 2:
+ if (a < 0)
+ {
+ a = -a;
+ da = -da;
+ }
+ u.x = big.x + a;
+ y = a - (u.x - big.x) + da;
+ xx = y * y;
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ s = y + y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ cor = (ccs - s * ssn - cs * c) - sn * s;
+ res = cs + cor;
+ cor = (cs - res) + cor;
+ cor = (cor > 0) ? 1.025 * cor + eps : 1.025 * cor - eps;
+ retval = ((res == res + cor) ? ((n) ? -res : res)
+ : bsloww2 (a, da, x, n));
+ goto ret;
+ break;
+ }
+ } /* else if (k < 0x42F00000 ) */
+
+ else if (k < 0x7ff00000)
+ { /* 281474976710656 <|x| <2^1024 */
+
+ n = __branred (x, &a, &da);
+ switch (n)
+ {
+ case 1:
+ if (a * a < 0.01588)
+ retval = bsloww (-a, -da, x, n);
+ else
+ retval = bsloww1 (-a, -da, x, n);
+ goto ret;
+ break;
+ case 3:
+ if (a * a < 0.01588)
+ retval = bsloww (a, da, x, n);
+ else
+ retval = bsloww1 (a, da, x, n);
+ goto ret;
+ break;
- else if (k < 0x7ff00000) {/* 281474976710656 <|x| <2^1024 */
+ case 0:
+ case 2:
+ retval = bsloww2 (a, da, x, n);
+ goto ret;
+ break;
+ }
+ } /* else if (k < 0x7ff00000 ) */
- n = __branred(x,&a,&da);
- switch (n) {
- case 1:
- if (a*a < 0.01588) retval = bsloww(-a,-da,x,n);
- else retval = bsloww1(-a,-da,x,n);
+ else
+ {
+ if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
+ __set_errno (EDOM);
+ retval = x / x; /* |x| > 2^1024 */
goto ret;
- break;
- case 3:
- if (a*a < 0.01588) retval = bsloww(a,da,x,n);
- else retval = bsloww1(a,da,x,n);
- goto ret;
- break;
-
- case 0:
- case 2:
- retval = bsloww2(a,da,x,n);
- goto ret;
- break;
}
- } /* else if (k < 0x7ff00000 ) */
-
-
-
-
- else {
- if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
- __set_errno (EDOM);
- retval = x / x; /* |x| > 2^1024 */
- goto ret;
- }
-
- ret:
+ret:
return retval;
}
@@ -636,25 +764,32 @@ __cos(double x)
static double
SECTION
-slow(double x) {
-static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
- double y,x1,x2,xx,r,t,res,cor,w[2];
- x1=(x+th2_36)-th2_36;
- y = aa.x*x1*x1*x1;
- r=x+y;
- x2=x-x1;
- xx=x*x;
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + bb.x)*xx + 3.0*aa.x*x1*x2)*x +aa.x*x2*x2*x2;
- t=((x-r)+y)+t;
- res=r+t;
- cor = (r-res)+t;
- if (res == res + 1.0007*cor) return res;
- else {
- __dubsin(ABS(x),0,w);
- if (w[0] == w[0]+1.000000001*w[1]) return (x>0)?w[0]:-w[0];
- else return (x>0)?__mpsin(x,0):-__mpsin(-x,0);
- }
+slow (double x)
+{
+ static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
+ double y, x1, x2, xx, r, t, res, cor, w[2];
+ x1 = (x + th2_36) - th2_36;
+ y = aa.x * x1 * x1 * x1;
+ r = x + y;
+ x2 = x - x1;
+ xx = x * x;
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + bb.x) * xx
+ + 3.0 * aa.x * x1 * x2) * x + aa.x * x2 * x2 * x2;
+ t = ((x - r) + y) + t;
+ res = r + t;
+ cor = (r - res) + t;
+ if (res == res + 1.0007 * cor)
+ return res;
+ else
+ {
+ __dubsin (ABS (x), 0, w);
+ if (w[0] == w[0] + 1.000000001 * w[1])
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return (x > 0) ? __mpsin (x, 0) : -__mpsin (-x, 0);
+ }
}
+
/*******************************************************************************/
/* Routine compute sin(x) for 0.25<|x|< 0.855469 by __sincostab.tbl and Taylor */
/* and if result still doesn't accurate enough by mpsin or dubsin */
@@ -662,88 +797,102 @@ static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
static double
SECTION
-slow1(double x) {
+slow1 (double x)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,c1,c2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k]; /* Data */
- ssn=__sincostab.x[k+1]; /* from */
- cs=__sincostab.x[k+2]; /* tables */
- ccs=__sincostab.x[k+3]; /* __sincostab.tbl */
- y1 = (y+t22)-t22;
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k]; /* Data */
+ ssn = __sincostab.x[k + 1]; /* from */
+ cs = __sincostab.x[k + 2]; /* tables */
+ ccs = __sincostab.x[k + 3]; /* __sincostab.tbl */
+ y1 = (y + t22) - t22;
y2 = y - y1;
- c1 = (cs+t22)-t22;
- c2=(cs-c1)+ccs;
- cor=(ssn+s*ccs+cs*s+c2*y+c1*y2)-sn*c;
- y=sn+c1*y1;
- cor = cor+((sn-y)+c1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- if (res == res+1.0005*cor) return (x>0)?res:-res;
- else {
- __dubsin(ABS(x),0,w);
- if (w[0] == w[0]+1.000000005*w[1]) return (x>0)?w[0]:-w[0];
- else return (x>0)?__mpsin(x,0):-__mpsin(-x,0);
- }
+ c1 = (cs + t22) - t22;
+ c2 = (cs - c1) + ccs;
+ cor = (ssn + s * ccs + cs * s + c2 * y + c1 * y2) - sn * c;
+ y = sn + c1 * y1;
+ cor = cor + ((sn - y) + c1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+ if (res == res + 1.0005 * cor)
+ return (x > 0) ? res : -res;
+ else
+ {
+ __dubsin (ABS (x), 0, w);
+ if (w[0] == w[0] + 1.000000005 * w[1])
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return (x > 0) ? __mpsin (x, 0) : -__mpsin (-x, 0);
+ }
}
+
/**************************************************************************/
/* Routine compute sin(x) for 0.855469 <|x|<2.426265 by __sincostab.tbl */
/* and if result still doesn't accurate enough by mpsin or dubsin */
/**************************************************************************/
static double
SECTION
-slow2(double x) {
+slow2 (double x)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,e1,e2,xx,cor,res,del;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res, del;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- y = hp0.x-y;
- if (y>=0) {
- u.x = big.x+y;
- y = y-(u.x-big.x);
- del = hp1.x;
- }
- else {
- u.x = big.x-y;
- y = -(y+(u.x-big.x));
- del = -hp1.x;
- }
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = y*del+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- y1 = (y+t22)-t22;
- y2 = (y - y1)+del;
- e1 = (sn+t22)-t22;
- e2=(sn-e1)+ssn;
- cor=(ccs-cs*c-e1*y2-e2*y)-sn*s;
- y=cs-e1*y1;
- cor = cor+((cs-y)-e1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- if (res == res+1.0005*cor) return (x>0)?res:-res;
- else {
- y=ABS(x)-hp0.x;
- y1=y-hp1.x;
- y2=(y-y1)-hp1.x;
- __docos(y1,y2,w);
- if (w[0] == w[0]+1.000000005*w[1]) return (x>0)?w[0]:-w[0];
- else return (x>0)?__mpsin(x,0):-__mpsin(-x,0);
- }
+ y = ABS (x);
+ y = hp0.x - y;
+ if (y >= 0)
+ {
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ del = hp1.x;
+ }
+ else
+ {
+ u.x = big.x - y;
+ y = -(y + (u.x - big.x));
+ del = -hp1.x;
+ }
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = y * del + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + del;
+ e1 = (sn + t22) - t22;
+ e2 = (sn - e1) + ssn;
+ cor = (ccs - cs * c - e1 * y2 - e2 * y) - sn * s;
+ y = cs - e1 * y1;
+ cor = cor + ((cs - y) - e1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+ if (res == res + 1.0005 * cor)
+ return (x > 0) ? res : -res;
+ else
+ {
+ y = ABS (x) - hp0.x;
+ y1 = y - hp1.x;
+ y2 = (y - y1) - hp1.x;
+ __docos (y1, y2, w);
+ if (w[0] == w[0] + 1.000000005 * w[1])
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return (x > 0) ? __mpsin (x, 0) : -__mpsin (-x, 0);
+ }
}
+
/***************************************************************************/
/* Routine compute sin(x+dx) (Double-Length number) where x is small enough*/
/* to use Taylor series around zero and (x+dx) */
@@ -754,46 +903,74 @@ slow2(double x) {
static double
SECTION
-sloww(double x,double dx, double orig) {
- static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
- double y,x1,x2,xx,r,t,res,cor,w[2],a,da,xn;
- union {int4 i[2]; double x;} v;
+sloww (double x, double dx, double orig)
+{
+ static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
+ double y, x1, x2, xx, r, t, res, cor, w[2], a, da, xn;
+ union
+ {
+ int4 i[2];
+ double x;
+ } v;
int4 n;
- x1=(x+th2_36)-th2_36;
- y = aa.x*x1*x1*x1;
- r=x+y;
- x2=(x-x1)+dx;
- xx=x*x;
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + bb.x)*xx + 3.0*aa.x*x1*x2)*x +aa.x*x2*x2*x2+dx;
- t=((x-r)+y)+t;
- res=r+t;
- cor = (r-res)+t;
- cor = (cor>0)? 1.0005*cor+ABS(orig)*3.1e-30 : 1.0005*cor-ABS(orig)*3.1e-30;
- if (res == res + cor) return res;
- else {
- (x>0)? __dubsin(x,dx,w) : __dubsin(-x,-dx,w);
- cor = (w[1]>0)? 1.000000001*w[1] + ABS(orig)*1.1e-30 : 1.000000001*w[1] - ABS(orig)*1.1e-30;
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else {
- t = (orig*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- y = (orig - xn*mp1.x) - xn*mp2.x;
- n =v.i[LOW_HALF]&3;
- da = xn*pp3.x;
- t=y-da;
- da = (y-t)-da;
- y = xn*pp4.x;
- a = t - y;
- da = ((t-a)-y)+da;
- if (n&2) {a=-a; da=-da;}
- (a>0)? __dubsin(a,da,w) : __dubsin(-a,-da,w);
- cor = (w[1]>0)? 1.000000001*w[1] + ABS(orig)*1.1e-40 : 1.000000001*w[1] - ABS(orig)*1.1e-40;
- if (w[0] == w[0]+cor) return (a>0)?w[0]:-w[0];
- else return __mpsin1(orig);
+ x1 = (x + th2_36) - th2_36;
+ y = aa.x * x1 * x1 * x1;
+ r = x + y;
+ x2 = (x - x1) + dx;
+ xx = x * x;
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + bb.x) * xx
+ + 3.0 * aa.x * x1 * x2) * x + aa.x * x2 * x2 * x2 + dx;
+ t = ((x - r) + y) + t;
+ res = r + t;
+ cor = (r - res) + t;
+ cor =
+ (cor >
+ 0) ? 1.0005 * cor + ABS (orig) * 3.1e-30 : 1.0005 * cor -
+ ABS (orig) * 3.1e-30;
+ if (res == res + cor)
+ return res;
+ else
+ {
+ (x > 0) ? __dubsin (x, dx, w) : __dubsin (-x, -dx, w);
+ if (w[1] > 0)
+ cor = 1.000000001 * w[1] + ABS (orig) * 1.1e-30;
+ else
+ cor = 1.000000001 * w[1] - ABS (orig) * 1.1e-30;
+
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ {
+ t = (orig * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ y = (orig - xn * mp1.x) - xn * mp2.x;
+ n = v.i[LOW_HALF] & 3;
+ da = xn * pp3.x;
+ t = y - da;
+ da = (y - t) - da;
+ y = xn * pp4.x;
+ a = t - y;
+ da = ((t - a) - y) + da;
+ if (n & 2)
+ {
+ a = -a;
+ da = -da;
+ }
+ (a > 0) ? __dubsin (a, da, w) : __dubsin (-a, -da, w);
+ if (w[1] > 0)
+ cor = 1.000000001 * w[1] + ABS (orig) * 1.1e-40;
+ else
+ cor = 1.000000001 * w[1] - ABS (orig) * 1.1e-40;
+
+ if (w[0] == w[0] + cor)
+ return (a > 0) ? w[0] : -w[0];
+ else
+ return __mpsin1 (orig);
+ }
}
- }
}
+
/***************************************************************************/
/* Routine compute sin(x+dx) (Double-Length number) where x in first or */
/* third quarter of unit circle.Routine receive also (right argument) the */
@@ -803,41 +980,58 @@ sloww(double x,double dx, double orig) {
static double
SECTION
-sloww1(double x, double dx, double orig) {
+sloww1 (double x, double dx, double orig)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,c1,c2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- c1 = (cs+t22)-t22;
- c2=(cs-c1)+ccs;
- cor=(ssn+s*ccs+cs*s+c2*y+c1*y2-sn*y*dx)-sn*c;
- y=sn+c1*y1;
- cor = cor+((sn-y)+c1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+3.1e-30*ABS(orig) : 1.0005*cor-3.1e-30*ABS(orig);
- if (res == res + cor) return (x>0)?res:-res;
- else {
- __dubsin(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-30*ABS(orig) : 1.000000005*w[1]-1.1e-30*ABS(orig);
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else return __mpsin1(orig);
- }
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ c1 = (cs + t22) - t22;
+ c2 = (cs - c1) + ccs;
+ cor = (ssn + s * ccs + cs * s + c2 * y + c1 * y2 - sn * y * dx) - sn * c;
+ y = sn + c1 * y1;
+ cor = cor + ((sn - y) + c1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+
+ if (cor > 0)
+ cor = 1.0005 * cor + 3.1e-30 * ABS (orig);
+ else
+ cor = 1.0005 * cor - 3.1e-30 * ABS (orig);
+
+ if (res == res + cor)
+ return (x > 0) ? res : -res;
+ else
+ {
+ __dubsin (ABS (x), dx, w);
+
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-30 * ABS (orig);
+ else
+ cor = 1.000000005 * w[1] - 1.1e-30 * ABS (orig);
+
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return __mpsin1 (orig);
+ }
}
+
/***************************************************************************/
/* Routine compute sin(x+dx) (Double-Length number) where x in second or */
/* fourth quarter of unit circle.Routine receive also the original value */
@@ -847,42 +1041,59 @@ sloww1(double x, double dx, double orig) {
static double
SECTION
-sloww2(double x, double dx, double orig, int n) {
+sloww2 (double x, double dx, double orig, int n)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,e1,e2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = y*dx+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
-
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- e1 = (sn+t22)-t22;
- e2=(sn-e1)+ssn;
- cor=(ccs-cs*c-e1*y2-e2*y)-sn*s;
- y=cs-e1*y1;
- cor = cor+((cs-y)-e1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+3.1e-30*ABS(orig) : 1.0005*cor-3.1e-30*ABS(orig);
- if (res == res + cor) return (n&2)?-res:res;
- else {
- __docos(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-30*ABS(orig) : 1.000000005*w[1]-1.1e-30*ABS(orig);
- if (w[0] == w[0]+cor) return (n&2)?-w[0]:w[0];
- else return __mpsin1(orig);
- }
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = y * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ e1 = (sn + t22) - t22;
+ e2 = (sn - e1) + ssn;
+ cor = (ccs - cs * c - e1 * y2 - e2 * y) - sn * s;
+ y = cs - e1 * y1;
+ cor = cor + ((cs - y) - e1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+
+ if (cor > 0)
+ cor = 1.0005 * cor + 3.1e-30 * ABS (orig);
+ else
+ cor = 1.0005 * cor - 3.1e-30 * ABS (orig);
+
+ if (res == res + cor)
+ return (n & 2) ? -res : res;
+ else
+ {
+ __docos (ABS (x), dx, w);
+
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-30 * ABS (orig);
+ else
+ cor = 1.000000005 * w[1] - 1.1e-30 * ABS (orig);
+
+ if (w[0] == w[0] + cor)
+ return (n & 2) ? -w[0] : w[0];
+ else
+ return __mpsin1 (orig);
+ }
}
+
/***************************************************************************/
/* Routine compute sin(x+dx) or cos(x+dx) (Double-Length number) where x */
/* is small enough to use Taylor series around zero and (x+dx) */
@@ -893,26 +1104,36 @@ sloww2(double x, double dx, double orig, int n) {
static double
SECTION
-bsloww(double x,double dx, double orig,int n) {
- static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
- double y,x1,x2,xx,r,t,res,cor,w[2];
- x1=(x+th2_36)-th2_36;
- y = aa.x*x1*x1*x1;
- r=x+y;
- x2=(x-x1)+dx;
- xx=x*x;
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + bb.x)*xx + 3.0*aa.x*x1*x2)*x +aa.x*x2*x2*x2+dx;
- t=((x-r)+y)+t;
- res=r+t;
- cor = (r-res)+t;
- cor = (cor>0)? 1.0005*cor+1.1e-24 : 1.0005*cor-1.1e-24;
- if (res == res + cor) return res;
- else {
- (x>0)? __dubsin(x,dx,w) : __dubsin(-x,-dx,w);
- cor = (w[1]>0)? 1.000000001*w[1] + 1.1e-24 : 1.000000001*w[1] - 1.1e-24;
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else return (n&1)?__mpcos1(orig):__mpsin1(orig);
- }
+bsloww (double x, double dx, double orig, int n)
+{
+ static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
+ double y, x1, x2, xx, r, t, res, cor, w[2];
+
+ x1 = (x + th2_36) - th2_36;
+ y = aa.x * x1 * x1 * x1;
+ r = x + y;
+ x2 = (x - x1) + dx;
+ xx = x * x;
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + bb.x) * xx
+ + 3.0 * aa.x * x1 * x2) * x + aa.x * x2 * x2 * x2 + dx;
+ t = ((x - r) + y) + t;
+ res = r + t;
+ cor = (r - res) + t;
+ cor = (cor > 0) ? 1.0005 * cor + 1.1e-24 : 1.0005 * cor - 1.1e-24;
+ if (res == res + cor)
+ return res;
+ else
+ {
+ (x > 0) ? __dubsin (x, dx, w) : __dubsin (-x, -dx, w);
+ if (w[1] > 0)
+ cor = 1.000000001 * w[1] + 1.1e-24;
+ else
+ cor = 1.000000001 * w[1] - 1.1e-24;
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return (n & 1) ? __mpcos1 (orig) : __mpsin1 (orig);
+ }
}
/***************************************************************************/
@@ -924,40 +1145,51 @@ bsloww(double x,double dx, double orig,int n) {
static double
SECTION
-bsloww1(double x, double dx, double orig,int n) {
-mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,c1,c2,xx,cor,res;
- static const double t22 = 6291456.0;
- int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- c1 = (cs+t22)-t22;
- c2=(cs-c1)+ccs;
- cor=(ssn+s*ccs+cs*s+c2*y+c1*y2-sn*y*dx)-sn*c;
- y=sn+c1*y1;
- cor = cor+((sn-y)+c1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+1.1e-24 : 1.0005*cor-1.1e-24;
- if (res == res + cor) return (x>0)?res:-res;
- else {
- __dubsin(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-24: 1.000000005*w[1]-1.1e-24;
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else return (n&1)?__mpcos1(orig):__mpsin1(orig);
- }
+bsloww1 (double x, double dx, double orig, int n)
+{
+ mynumber u;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
+ static const double t22 = 6291456.0;
+ int4 k;
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ c1 = (cs + t22) - t22;
+ c2 = (cs - c1) + ccs;
+ cor = (ssn + s * ccs + cs * s + c2 * y + c1 * y2 - sn * y * dx) - sn * c;
+ y = sn + c1 * y1;
+ cor = cor + ((sn - y) + c1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+ cor = (cor > 0) ? 1.0005 * cor + 1.1e-24 : 1.0005 * cor - 1.1e-24;
+ if (res == res + cor)
+ return (x > 0) ? res : -res;
+ else
+ {
+ __dubsin (ABS (x), dx, w);
+
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-24;
+ else
+ cor = 1.000000005 * w[1] - 1.1e-24;
+
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return (n & 1) ? __mpcos1 (orig) : __mpsin1 (orig);
+ }
}
/***************************************************************************/
@@ -969,41 +1201,52 @@ mynumber u;
static double
SECTION
-bsloww2(double x, double dx, double orig, int n) {
-mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,e1,e2,xx,cor,res;
- static const double t22 = 6291456.0;
- int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = y*dx+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
-
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- e1 = (sn+t22)-t22;
- e2=(sn-e1)+ssn;
- cor=(ccs-cs*c-e1*y2-e2*y)-sn*s;
- y=cs-e1*y1;
- cor = cor+((cs-y)-e1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+1.1e-24 : 1.0005*cor-1.1e-24;
- if (res == res + cor) return (n&2)?-res:res;
- else {
- __docos(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-24 : 1.000000005*w[1]-1.1e-24;
- if (w[0] == w[0]+cor) return (n&2)?-w[0]:w[0];
- else return (n&1)?__mpsin1(orig):__mpcos1(orig);
- }
+bsloww2 (double x, double dx, double orig, int n)
+{
+ mynumber u;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
+ static const double t22 = 6291456.0;
+ int4 k;
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = y * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ e1 = (sn + t22) - t22;
+ e2 = (sn - e1) + ssn;
+ cor = (ccs - cs * c - e1 * y2 - e2 * y) - sn * s;
+ y = cs - e1 * y1;
+ cor = cor + ((cs - y) - e1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+ cor = (cor > 0) ? 1.0005 * cor + 1.1e-24 : 1.0005 * cor - 1.1e-24;
+ if (res == res + cor)
+ return (n & 2) ? -res : res;
+ else
+ {
+ __docos (ABS (x), dx, w);
+
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-24;
+ else
+ cor = 1.000000005 * w[1] - 1.1e-24;
+
+ if (w[0] == w[0] + cor)
+ return (n & 2) ? -w[0] : w[0];
+ else
+ return (n & 1) ? __mpsin1 (orig) : __mpcos1 (orig);
+ }
}
/************************************************************************/
@@ -1013,39 +1256,44 @@ mynumber u;
static double
SECTION
-cslow2(double x) {
+cslow2 (double x)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,e1,e2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x = big.x+y;
- y = y-(u.x-big.x);
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- y1 = (y+t22)-t22;
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ y1 = (y + t22) - t22;
y2 = y - y1;
- e1 = (sn+t22)-t22;
- e2=(sn-e1)+ssn;
- cor=(ccs-cs*c-e1*y2-e2*y)-sn*s;
- y=cs-e1*y1;
- cor = cor+((cs-y)-e1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- if (res == res+1.0005*cor)
+ e1 = (sn + t22) - t22;
+ e2 = (sn - e1) + ssn;
+ cor = (ccs - cs * c - e1 * y2 - e2 * y) - sn * s;
+ y = cs - e1 * y1;
+ cor = cor + ((cs - y) - e1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+ if (res == res + 1.0005 * cor)
return res;
- else {
- y=ABS(x);
- __docos(y,0,w);
- if (w[0] == w[0]+1.000000005*w[1]) return w[0];
- else return __mpcos(x,0);
- }
+ else
+ {
+ y = ABS (x);
+ __docos (y, 0, w);
+ if (w[0] == w[0] + 1.000000005 * w[1])
+ return w[0];
+ else
+ return __mpcos (x, 0);
+ }
}
/***************************************************************************/
@@ -1058,46 +1306,78 @@ cslow2(double x) {
static double
SECTION
-csloww(double x,double dx, double orig) {
- static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
- double y,x1,x2,xx,r,t,res,cor,w[2],a,da,xn;
- union {int4 i[2]; double x;} v;
+csloww (double x, double dx, double orig)
+{
+ static const double th2_36 = 206158430208.0; /* 1.5*2**37 */
+ double y, x1, x2, xx, r, t, res, cor, w[2], a, da, xn;
+ union
+ {
+ int4 i[2];
+ double x;
+ } v;
int4 n;
- x1=(x+th2_36)-th2_36;
- y = aa.x*x1*x1*x1;
- r=x+y;
- x2=(x-x1)+dx;
- xx=x*x;
- /* Taylor series */
- t = (((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + bb.x)*xx + 3.0*aa.x*x1*x2)*x +aa.x*x2*x2*x2+dx;
- t=((x-r)+y)+t;
- res=r+t;
- cor = (r-res)+t;
- cor = (cor>0)? 1.0005*cor+ABS(orig)*3.1e-30 : 1.0005*cor-ABS(orig)*3.1e-30;
- if (res == res + cor) return res;
- else {
- (x>0)? __dubsin(x,dx,w) : __dubsin(-x,-dx,w);
- cor = (w[1]>0)? 1.000000001*w[1] + ABS(orig)*1.1e-30 : 1.000000001*w[1] - ABS(orig)*1.1e-30;
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else {
- t = (orig*hpinv.x + toint.x);
- xn = t - toint.x;
- v.x = t;
- y = (orig - xn*mp1.x) - xn*mp2.x;
- n =v.i[LOW_HALF]&3;
- da = xn*pp3.x;
- t=y-da;
- da = (y-t)-da;
- y = xn*pp4.x;
- a = t - y;
- da = ((t-a)-y)+da;
- if (n==1) {a=-a; da=-da;}
- (a>0)? __dubsin(a,da,w) : __dubsin(-a,-da,w);
- cor = (w[1]>0)? 1.000000001*w[1] + ABS(orig)*1.1e-40 : 1.000000001*w[1] - ABS(orig)*1.1e-40;
- if (w[0] == w[0]+cor) return (a>0)?w[0]:-w[0];
- else return __mpcos1(orig);
+
+ x1 = (x + th2_36) - th2_36;
+ y = aa.x * x1 * x1 * x1;
+ r = x + y;
+ x2 = (x - x1) + dx;
+ xx = x * x;
+ /* Taylor series */
+ t = (((((s5.x * xx + s4.x) * xx + s3.x) * xx + s2.x) * xx + bb.x) * xx
+ + 3.0 * aa.x * x1 * x2) * x + aa.x * x2 * x2 * x2 + dx;
+ t = ((x - r) + y) + t;
+ res = r + t;
+ cor = (r - res) + t;
+
+ if (cor > 0)
+ cor = 1.0005 * cor + ABS (orig) * 3.1e-30;
+ else
+ cor = 1.0005 * cor - ABS (orig) * 3.1e-30;
+
+ if (res == res + cor)
+ return res;
+ else
+ {
+ (x > 0) ? __dubsin (x, dx, w) : __dubsin (-x, -dx, w);
+
+ if (w[1] > 0)
+ cor = 1.000000001 * w[1] + ABS (orig) * 1.1e-30;
+ else
+ cor = 1.000000001 * w[1] - ABS (orig) * 1.1e-30;
+
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ {
+ t = (orig * hpinv.x + toint.x);
+ xn = t - toint.x;
+ v.x = t;
+ y = (orig - xn * mp1.x) - xn * mp2.x;
+ n = v.i[LOW_HALF] & 3;
+ da = xn * pp3.x;
+ t = y - da;
+ da = (y - t) - da;
+ y = xn * pp4.x;
+ a = t - y;
+ da = ((t - a) - y) + da;
+ if (n == 1)
+ {
+ a = -a;
+ da = -da;
+ }
+ (a > 0) ? __dubsin (a, da, w) : __dubsin (-a, -da, w);
+
+ if (w[1] > 0)
+ cor = 1.000000001 * w[1] + ABS (orig) * 1.1e-40;
+ else
+ cor = 1.000000001 * w[1] - ABS (orig) * 1.1e-40;
+
+ if (w[0] == w[0] + cor)
+ return (a > 0) ? w[0] : -w[0];
+ else
+ return __mpcos1 (orig);
+ }
}
- }
}
/***************************************************************************/
@@ -1109,40 +1389,54 @@ csloww(double x,double dx, double orig) {
static double
SECTION
-csloww1(double x, double dx, double orig) {
+csloww1 (double x, double dx, double orig)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,c1,c2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, c1, c2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- c1 = (cs+t22)-t22;
- c2=(cs-c1)+ccs;
- cor=(ssn+s*ccs+cs*s+c2*y+c1*y2-sn*y*dx)-sn*c;
- y=sn+c1*y1;
- cor = cor+((sn-y)+c1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+3.1e-30*ABS(orig) : 1.0005*cor-3.1e-30*ABS(orig);
- if (res == res + cor) return (x>0)?res:-res;
- else {
- __dubsin(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-30*ABS(orig) : 1.000000005*w[1]-1.1e-30*ABS(orig);
- if (w[0] == w[0]+cor) return (x>0)?w[0]:-w[0];
- else return __mpcos1(orig);
- }
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ c1 = (cs + t22) - t22;
+ c2 = (cs - c1) + ccs;
+ cor = (ssn + s * ccs + cs * s + c2 * y + c1 * y2 - sn * y * dx) - sn * c;
+ y = sn + c1 * y1;
+ cor = cor + ((sn - y) + c1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+
+ if (cor > 0)
+ cor = 1.0005 * cor + 3.1e-30 * ABS (orig);
+ else
+ cor = 1.0005 * cor - 3.1e-30 * ABS (orig);
+
+ if (res == res + cor)
+ return (x > 0) ? res : -res;
+ else
+ {
+ __dubsin (ABS (x), dx, w);
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-30 * ABS (orig);
+ else
+ cor = 1.000000005 * w[1] - 1.1e-30 * ABS (orig);
+ if (w[0] == w[0] + cor)
+ return (x > 0) ? w[0] : -w[0];
+ else
+ return __mpcos1 (orig);
+ }
}
@@ -1155,41 +1449,55 @@ csloww1(double x, double dx, double orig) {
static double
SECTION
-csloww2(double x, double dx, double orig, int n) {
+csloww2 (double x, double dx, double orig, int n)
+{
mynumber u;
- double sn,ssn,cs,ccs,s,c,w[2],y,y1,y2,e1,e2,xx,cor,res;
+ double sn, ssn, cs, ccs, s, c, w[2], y, y1, y2, e1, e2, xx, cor, res;
static const double t22 = 6291456.0;
int4 k;
- y=ABS(x);
- u.x=big.x+y;
- y=y-(u.x-big.x);
- dx=(x>0)?dx:-dx;
- xx=y*y;
- s = y*xx*(sn3 +xx*sn5);
- c = y*dx+xx*(cs2 +xx*(cs4 + xx*cs6));
- k=u.i[LOW_HALF]<<2;
- sn=__sincostab.x[k];
- ssn=__sincostab.x[k+1];
- cs=__sincostab.x[k+2];
- ccs=__sincostab.x[k+3];
-
- y1 = (y+t22)-t22;
- y2 = (y - y1)+dx;
- e1 = (sn+t22)-t22;
- e2=(sn-e1)+ssn;
- cor=(ccs-cs*c-e1*y2-e2*y)-sn*s;
- y=cs-e1*y1;
- cor = cor+((cs-y)-e1*y1);
- res=y+cor;
- cor=(y-res)+cor;
- cor = (cor>0)? 1.0005*cor+3.1e-30*ABS(orig) : 1.0005*cor-3.1e-30*ABS(orig);
- if (res == res + cor) return (n)?-res:res;
- else {
- __docos(ABS(x),dx,w);
- cor = (w[1]>0)? 1.000000005*w[1]+1.1e-30*ABS(orig) : 1.000000005*w[1]-1.1e-30*ABS(orig);
- if (w[0] == w[0]+cor) return (n)?-w[0]:w[0];
- else return __mpcos1(orig);
- }
+
+ y = ABS (x);
+ u.x = big.x + y;
+ y = y - (u.x - big.x);
+ dx = (x > 0) ? dx : -dx;
+ xx = y * y;
+ s = y * xx * (sn3 + xx * sn5);
+ c = y * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
+ k = u.i[LOW_HALF] << 2;
+ sn = __sincostab.x[k];
+ ssn = __sincostab.x[k + 1];
+ cs = __sincostab.x[k + 2];
+ ccs = __sincostab.x[k + 3];
+
+ y1 = (y + t22) - t22;
+ y2 = (y - y1) + dx;
+ e1 = (sn + t22) - t22;
+ e2 = (sn - e1) + ssn;
+ cor = (ccs - cs * c - e1 * y2 - e2 * y) - sn * s;
+ y = cs - e1 * y1;
+ cor = cor + ((cs - y) - e1 * y1);
+ res = y + cor;
+ cor = (y - res) + cor;
+
+ if (cor > 0)
+ cor = 1.0005 * cor + 3.1e-30 * ABS (orig);
+ else
+ cor = 1.0005 * cor - 3.1e-30 * ABS (orig);
+
+ if (res == res + cor)
+ return (n) ? -res : res;
+ else
+ {
+ __docos (ABS (x), dx, w);
+ if (w[1] > 0)
+ cor = 1.000000005 * w[1] + 1.1e-30 * ABS (orig);
+ else
+ cor = 1.000000005 * w[1] - 1.1e-30 * ABS (orig);
+ if (w[0] == w[0] + cor)
+ return (n) ? -w[0] : w[0];
+ else
+ return __mpcos1 (orig);
+ }
}
#ifndef __cos
diff --git a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c
index faa5221e5e..54f863e544 100644
--- a/sysdeps/ieee754/dbl-64/s_tan.c
+++ b/sysdeps/ieee754/dbl-64/s_tan.c
@@ -46,459 +46,782 @@
# define SECTION
#endif
-static double tanMp(double);
-void __mptan(double, mp_no *, int);
+static double tanMp (double);
+void __mptan (double, mp_no *, int);
double
SECTION
-tan(double x) {
+tan (double x)
+{
#include "utan.h"
#include "utan.tbl"
- int ux,i,n;
- double a,da,a2,b,db,c,dc,c1,cc1,c2,cc2,c3,cc3,fi,ffi,gi,pz,s,sy,
- t,t1,t2,t3,t4,t7,t8,t9,t10,w,x2,xn,xx2,y,ya,yya,z0,z,zz,z2,zz2;
+ int ux, i, n;
+ double a, da, a2, b, db, c, dc, c1, cc1, c2, cc2, c3, cc3, fi, ffi, gi, pz,
+ s, sy, t, t1, t2, t3, t4, t7, t8, t9, t10, w, x2, xn, xx2, y, ya, yya, z0,
+ z, zz, z2, zz2;
#ifndef DLA_FMS
- double t5,t6;
+ double t5, t6;
#endif
int p;
- number num,v;
- mp_no mpa,mpt1,mpt2;
+ number num, v;
+ mp_no mpa, mpt1, mpt2;
double retval;
- int __branred(double, double *, double *);
- int __mpranred(double, mp_no *, int);
+ int __branred (double, double *, double *);
+ int __mpranred (double, mp_no *, int);
SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
/* x=+-INF, x=NaN */
- num.d = x; ux = num.i[HIGH_HALF];
- if ((ux&0x7ff00000)==0x7ff00000) {
- if ((ux&0x7fffffff)==0x7ff00000)
- __set_errno (EDOM);
- retval = x-x;
- goto ret;
- }
+ num.d = x;
+ ux = num.i[HIGH_HALF];
+ if ((ux & 0x7ff00000) == 0x7ff00000)
+ {
+ if ((ux & 0x7fffffff) == 0x7ff00000)
+ __set_errno (EDOM);
+ retval = x - x;
+ goto ret;
+ }
- w=(x<0.0) ? -x : x;
+ w = (x < 0.0) ? -x : x;
/* (I) The case abs(x) <= 1.259e-8 */
- if (w<=g1.d) { retval = x; goto ret; }
+ if (w <= g1.d)
+ {
+ retval = x;
+ goto ret;
+ }
/* (II) The case 1.259e-8 < abs(x) <= 0.0608 */
- if (w<=g2.d) {
-
- /* First stage */
- x2 = x*x;
- t2 = x*x2*(d3.d+x2*(d5.d+x2*(d7.d+x2*(d9.d+x2*d11.d))));
- if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) { retval = y; goto ret; }
-
- /* Second stage */
- c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+
- x2*a27.d))))));
- EMULV(x,x,x2,xx2,t1,t2,t3,t4,t5)
- ADD2(a13.d,aa13.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a11.d,aa11.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a9.d ,aa9.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a7.d ,aa7.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a5.d ,aa5.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d ,aa3.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(x ,0.0,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(x ,0.0,c2,cc2,c1,cc1,t1,t2)
- if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) { retval = y; goto ret; }
- retval = tanMp(x);
- goto ret;
- }
+ if (w <= g2.d)
+ {
- /* (III) The case 0.0608 < abs(x) <= 0.787 */
- if (w<=g3.d) {
-
- /* First stage */
- i = ((int) (mfftnhf.d+TWO8*w));
- z = w-xfg[i][0].d; z2 = z*z; s = (x<0.0) ? MONE : ONE;
- pz = z+z*z2*(e0.d+z2*e1.d);
- fi = xfg[i][1].d; gi = xfg[i][2].d; t2 = pz*(gi+fi)/(gi-pz);
- if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) { retval = (s*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = fi*ua3.d+t3*ub3.d;
- if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (s*y); goto ret; }
-
- /* Second stage */
- ffi = xfg[i][3].d;
- c1 = z2*(a7.d+z2*(a9.d+z2*a11.d));
- EMULV(z,z,z2,zz2,t1,t2,t3,t4,t5)
- ADD2(a5.d,aa5.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d,aa3.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(z ,0.0,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(z ,0.0,c2,cc2,c1,cc1,t1,t2)
-
- ADD2(fi ,ffi,c1,cc1,c2,cc2,t1,t2)
- MUL2(fi ,ffi,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8)
- SUB2(1.0,0.0,c3,cc3,c1,cc1,t1,t2)
- DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
-
- if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) { retval = (s*y); goto ret; }
- retval = tanMp(x);
- goto ret;
- }
+ /* First stage */
+ x2 = x * x;
- /* (---) The case 0.787 < abs(x) <= 25 */
- if (w<=g4.d) {
- /* Range reduction by algorithm i */
- t = (x*hpinv.d + toint.d);
- xn = t - toint.d;
- v.d = t;
- t1 = (x - xn*mp1.d) - xn*mp2.d;
- n =v.i[LOW_HALF] & 0x00000001;
- da = xn*mp3.d;
- a=t1-da;
- da = (t1-a)-da;
- if (a<0.0) {ya=-a; yya=-da; sy=MONE;}
- else {ya= a; yya= da; sy= ONE;}
-
- /* (IV),(V) The case 0.787 < abs(x) <= 25, abs(y) <= 1e-7 */
- if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
-
- /* (VI) The case 0.787 < abs(x) <= 25, 1e-7 < abs(y) <= 0.0608 */
- if (ya<=gy2.d) {
- a2 = a*a;
- t2 = da+a*a2*(d3.d+a2*(d5.d+a2*(d7.d+a2*(d9.d+a2*d11.d))));
- if (n) {
- /* First stage -cot */
- EADD(a,t2,b,db)
- DIV2(1.0,0.0,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) { retval = (-y); goto ret; } }
- else {
- /* First stage tan */
- if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) { retval = y; goto ret; } }
- /* Second stage */
- /* Range reduction by algorithm ii */
- t = (x*hpinv.d + toint.d);
- xn = t - toint.d;
- v.d = t;
- t1 = (x - xn*mp1.d) - xn*mp2.d;
- n =v.i[LOW_HALF] & 0x00000001;
- da = xn*pp3.d;
- t=t1-da;
- da = (t1-t)-da;
- t1 = xn*pp4.d;
- a = t - t1;
- da = ((t-a)-t1)+da;
+ t2 = d9.d + x2 * d11.d;
+ t2 = d7.d + x2 * t2;
+ t2 = d5.d + x2 * t2;
+ t2 = d3.d + x2 * t2;
+ t2 *= x * x2;
+
+ if ((y = x + (t2 - u1.d * t2)) == x + (t2 + u1.d * t2))
+ {
+ retval = y;
+ goto ret;
+ }
/* Second stage */
- EADD(a,da,t1,t2) a=t1; da=t2;
- MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+
- x2*a27.d))))));
- ADD2(a13.d,aa13.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a11.d,aa11.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a9.d ,aa9.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a7.d ,aa7.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a5.d ,aa5.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d ,aa3.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(a ,da ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a ,da ,c2,cc2,c1,cc1,t1,t2)
-
- if (n) {
- /* Second stage -cot */
- DIV2(1.0,0.0,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) { retval = (-y); goto ret; } }
- else {
- /* Second stage tan */
- if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) { retval = y; goto ret; } }
- retval = tanMp(x);
+ c1 = a25.d + x2 * a27.d;
+ c1 = a23.d + x2 * c1;
+ c1 = a21.d + x2 * c1;
+ c1 = a19.d + x2 * c1;
+ c1 = a17.d + x2 * c1;
+ c1 = a15.d + x2 * c1;
+ c1 *= x2;
+
+ EMULV (x, x, x2, xx2, t1, t2, t3, t4, t5);
+ ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (x, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (x, 0.0, c2, cc2, c1, cc1, t1, t2);
+ if ((y = c1 + (cc1 - u2.d * c1)) == c1 + (cc1 + u2.d * c1))
+ {
+ retval = y;
+ goto ret;
+ }
+ retval = tanMp (x);
goto ret;
}
- /* (VII) The case 0.787 < abs(x) <= 25, 0.0608 < abs(y) <= 0.787 */
+ /* (III) The case 0.0608 < abs(x) <= 0.787 */
+ if (w <= g3.d)
+ {
+
+ /* First stage */
+ i = ((int) (mfftnhf.d + TWO8 * w));
+ z = w - xfg[i][0].d;
+ z2 = z * z;
+ s = (x < 0.0) ? -1 : 1;
+ pz = z + z * z2 * (e0.d + z2 * e1.d);
+ fi = xfg[i][1].d;
+ gi = xfg[i][2].d;
+ t2 = pz * (gi + fi) / (gi - pz);
+ if ((y = fi + (t2 - fi * u3.d)) == fi + (t2 + fi * u3.d))
+ {
+ retval = (s * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = fi * ua3.d + t3 * ub3.d;
+ if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+ {
+ retval = (s * y);
+ goto ret;
+ }
- /* First stage */
- i = ((int) (mfftnhf.d+TWO8*ya));
- z = (z0=(ya-xfg[i][0].d))+yya; z2 = z*z;
- pz = z+z*z2*(e0.d+z2*e1.d);
- fi = xfg[i][1].d; gi = xfg[i][2].d;
+ /* Second stage */
+ ffi = xfg[i][3].d;
+ c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+ EMULV (z, z, z2, zz2, t1, t2, t3, t4, t5);
+ ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (z, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (z, 0.0, c2, cc2, c1, cc1, t1, t2);
+
+ ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+ SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+ DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+
+ if ((y = c3 + (cc3 - u4.d * c3)) == c3 + (cc3 + u4.d * c3))
+ {
+ retval = (s * y);
+ goto ret;
+ }
+ retval = tanMp (x);
+ goto ret;
+ }
- if (n) {
- /* -cot */
- t2 = pz*(fi+gi)/(fi+pz);
- if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) { retval = (-sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = gi*ua10.d+t3*ub10.d;
- if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- t2 = pz*(gi+fi)/(gi-pz);
- if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) { retval = (sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = fi*ua9.d+t3*ub9.d;
- if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
-
- /* Second stage */
- ffi = xfg[i][3].d;
- EADD(z0,yya,z,zz)
- MUL2(z,zz,z,zz,z2,zz2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = z2*(a7.d+z2*(a9.d+z2*a11.d));
- ADD2(a5.d,aa5.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d,aa3.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(z ,zz ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(z ,zz ,c2,cc2,c1,cc1,t1,t2)
-
- ADD2(fi ,ffi,c1,cc1,c2,cc2,t1,t2)
- MUL2(fi ,ffi,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8)
- SUB2(1.0,0.0,c3,cc3,c1,cc1,t1,t2)
-
- if (n) {
- /* -cot */
- DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) { retval = (sy*y); goto ret; } }
+ /* (---) The case 0.787 < abs(x) <= 25 */
+ if (w <= g4.d)
+ {
+ /* Range reduction by algorithm i */
+ t = (x * hpinv.d + toint.d);
+ xn = t - toint.d;
+ v.d = t;
+ t1 = (x - xn * mp1.d) - xn * mp2.d;
+ n = v.i[LOW_HALF] & 0x00000001;
+ da = xn * mp3.d;
+ a = t1 - da;
+ da = (t1 - a) - da;
+ if (a < 0.0)
+ {
+ ya = -a;
+ yya = -da;
+ sy = -1;
+ }
+ else
+ {
+ ya = a;
+ yya = da;
+ sy = 1;
+ }
+
+ /* (IV),(V) The case 0.787 < abs(x) <= 25, abs(y) <= 1e-7 */
+ if (ya <= gy1.d)
+ {
+ retval = tanMp (x);
+ goto ret;
+ }
+
+ /* (VI) The case 0.787 < abs(x) <= 25, 1e-7 < abs(y) <= 0.0608 */
+ if (ya <= gy2.d)
+ {
+ a2 = a * a;
+ t2 = d9.d + a2 * d11.d;
+ t2 = d7.d + a2 * t2;
+ t2 = d5.d + a2 * t2;
+ t2 = d3.d + a2 * t2;
+ t2 = da + a * a2 * t2;
+
+ if (n)
+ {
+ /* First stage -cot */
+ EADD (a, t2, b, db);
+ DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8,
+ t9, t10);
+ if ((y = c + (dc - u6.d * c)) == c + (dc + u6.d * c))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* First stage tan */
+ if ((y = a + (t2 - u5.d * a)) == a + (t2 + u5.d * a))
+ {
+ retval = y;
+ goto ret;
+ }
+ }
+ /* Second stage */
+ /* Range reduction by algorithm ii */
+ t = (x * hpinv.d + toint.d);
+ xn = t - toint.d;
+ v.d = t;
+ t1 = (x - xn * mp1.d) - xn * mp2.d;
+ n = v.i[LOW_HALF] & 0x00000001;
+ da = xn * pp3.d;
+ t = t1 - da;
+ da = (t1 - t) - da;
+ t1 = xn * pp4.d;
+ a = t - t1;
+ da = ((t - a) - t1) + da;
+
+ /* Second stage */
+ EADD (a, da, t1, t2);
+ a = t1;
+ da = t2;
+ MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+
+ c1 = a25.d + x2 * a27.d;
+ c1 = a23.d + x2 * c1;
+ c1 = a21.d + x2 * c1;
+ c1 = a19.d + x2 * c1;
+ c1 = a17.d + x2 * c1;
+ c1 = a15.d + x2 * c1;
+ c1 *= x2;
+
+ ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* Second stage -cot */
+ DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7,
+ t8, t9, t10);
+ if ((y = c2 + (cc2 - u8.d * c2)) == c2 + (cc2 + u8.d * c2))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* Second stage tan */
+ if ((y = c1 + (cc1 - u7.d * c1)) == c1 + (cc1 + u7.d * c1))
+ {
+ retval = y;
+ goto ret;
+ }
+ }
+ retval = tanMp (x);
+ goto ret;
+ }
+
+ /* (VII) The case 0.787 < abs(x) <= 25, 0.0608 < abs(y) <= 0.787 */
+
+ /* First stage */
+ i = ((int) (mfftnhf.d + TWO8 * ya));
+ z = (z0 = (ya - xfg[i][0].d)) + yya;
+ z2 = z * z;
+ pz = z + z * z2 * (e0.d + z2 * e1.d);
+ fi = xfg[i][1].d;
+ gi = xfg[i][2].d;
+
+ if (n)
+ {
+ /* -cot */
+ t2 = pz * (fi + gi) / (fi + pz);
+ if ((y = gi - (t2 - gi * u10.d)) == gi - (t2 + gi * u10.d))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = gi * ua10.d + t3 * ub10.d;
+ if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ t2 = pz * (gi + fi) / (gi - pz);
+ if ((y = fi + (t2 - fi * u9.d)) == fi + (t2 + fi * u9.d))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = fi * ua9.d + t3 * ub9.d;
+ if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
- retval = tanMp(x);
- goto ret;
- }
+ /* Second stage */
+ ffi = xfg[i][3].d;
+ EADD (z0, yya, z, zz)
+ MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+ c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+ ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+ ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+ SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* -cot */
+ DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u12.d * c3)) == c3 + (cc3 + u12.d * c3))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u11.d * c3)) == c3 + (cc3 + u11.d * c3))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
+
+ retval = tanMp (x);
+ goto ret;
+ }
/* (---) The case 25 < abs(x) <= 1e8 */
- if (w<=g5.d) {
- /* Range reduction by algorithm ii */
- t = (x*hpinv.d + toint.d);
- xn = t - toint.d;
- v.d = t;
- t1 = (x - xn*mp1.d) - xn*mp2.d;
- n =v.i[LOW_HALF] & 0x00000001;
- da = xn*pp3.d;
- t=t1-da;
- da = (t1-t)-da;
- t1 = xn*pp4.d;
- a = t - t1;
- da = ((t-a)-t1)+da;
- EADD(a,da,t1,t2) a=t1; da=t2;
- if (a<0.0) {ya=-a; yya=-da; sy=MONE;}
- else {ya= a; yya= da; sy= ONE;}
-
- /* (+++) The case 25 < abs(x) <= 1e8, abs(y) <= 1e-7 */
- if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
-
- /* (VIII) The case 25 < abs(x) <= 1e8, 1e-7 < abs(y) <= 0.0608 */
- if (ya<=gy2.d) {
- a2 = a*a;
- t2 = da+a*a2*(d3.d+a2*(d5.d+a2*(d7.d+a2*(d9.d+a2*d11.d))));
- if (n) {
- /* First stage -cot */
- EADD(a,t2,b,db)
- DIV2(1.0,0.0,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) { retval = (-y); goto ret; } }
- else {
- /* First stage tan */
- if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) { retval = y; goto ret; } }
+ if (w <= g5.d)
+ {
+ /* Range reduction by algorithm ii */
+ t = (x * hpinv.d + toint.d);
+ xn = t - toint.d;
+ v.d = t;
+ t1 = (x - xn * mp1.d) - xn * mp2.d;
+ n = v.i[LOW_HALF] & 0x00000001;
+ da = xn * pp3.d;
+ t = t1 - da;
+ da = (t1 - t) - da;
+ t1 = xn * pp4.d;
+ a = t - t1;
+ da = ((t - a) - t1) + da;
+ EADD (a, da, t1, t2);
+ a = t1;
+ da = t2;
+ if (a < 0.0)
+ {
+ ya = -a;
+ yya = -da;
+ sy = -1;
+ }
+ else
+ {
+ ya = a;
+ yya = da;
+ sy = 1;
+ }
+
+ /* (+++) The case 25 < abs(x) <= 1e8, abs(y) <= 1e-7 */
+ if (ya <= gy1.d)
+ {
+ retval = tanMp (x);
+ goto ret;
+ }
+
+ /* (VIII) The case 25 < abs(x) <= 1e8, 1e-7 < abs(y) <= 0.0608 */
+ if (ya <= gy2.d)
+ {
+ a2 = a * a;
+ t2 = d9.d + a2 * d11.d;
+ t2 = d7.d + a2 * t2;
+ t2 = d5.d + a2 * t2;
+ t2 = d3.d + a2 * t2;
+ t2 = da + a * a2 * t2;
+
+ if (n)
+ {
+ /* First stage -cot */
+ EADD (a, t2, b, db);
+ DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8,
+ t9, t10);
+ if ((y = c + (dc - u14.d * c)) == c + (dc + u14.d * c))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* First stage tan */
+ if ((y = a + (t2 - u13.d * a)) == a + (t2 + u13.d * a))
+ {
+ retval = y;
+ goto ret;
+ }
+ }
+
+ /* Second stage */
+ MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+ c1 = a25.d + x2 * a27.d;
+ c1 = a23.d + x2 * c1;
+ c1 = a21.d + x2 * c1;
+ c1 = a19.d + x2 * c1;
+ c1 = a17.d + x2 * c1;
+ c1 = a15.d + x2 * c1;
+ c1 *= x2;
+
+ ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* Second stage -cot */
+ DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7,
+ t8, t9, t10);
+ if ((y = c2 + (cc2 - u16.d * c2)) == c2 + (cc2 + u16.d * c2))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* Second stage tan */
+ if ((y = c1 + (cc1 - u15.d * c1)) == c1 + (cc1 + u15.d * c1))
+ {
+ retval = (y);
+ goto ret;
+ }
+ }
+ retval = tanMp (x);
+ goto ret;
+ }
+
+ /* (IX) The case 25 < abs(x) <= 1e8, 0.0608 < abs(y) <= 0.787 */
+ /* First stage */
+ i = ((int) (mfftnhf.d + TWO8 * ya));
+ z = (z0 = (ya - xfg[i][0].d)) + yya;
+ z2 = z * z;
+ pz = z + z * z2 * (e0.d + z2 * e1.d);
+ fi = xfg[i][1].d;
+ gi = xfg[i][2].d;
+
+ if (n)
+ {
+ /* -cot */
+ t2 = pz * (fi + gi) / (fi + pz);
+ if ((y = gi - (t2 - gi * u18.d)) == gi - (t2 + gi * u18.d))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = gi * ua18.d + t3 * ub18.d;
+ if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ t2 = pz * (gi + fi) / (gi - pz);
+ if ((y = fi + (t2 - fi * u17.d)) == fi + (t2 + fi * u17.d))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = fi * ua17.d + t3 * ub17.d;
+ if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
/* Second stage */
- MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+
- x2*a27.d))))));
- ADD2(a13.d,aa13.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a11.d,aa11.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a9.d ,aa9.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a7.d ,aa7.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a5.d ,aa5.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d ,aa3.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(a ,da ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a ,da ,c2,cc2,c1,cc1,t1,t2)
-
- if (n) {
- /* Second stage -cot */
- DIV2(1.0,0.0,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) { retval = (-y); goto ret; } }
- else {
- /* Second stage tan */
- if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) { retval = (y); goto ret; } }
- retval = tanMp(x);
+ ffi = xfg[i][3].d;
+ EADD (z0, yya, z, zz);
+ MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+ c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+ ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+ ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+ SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* -cot */
+ DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u20.d * c3)) == c3 + (cc3 + u20.d * c3))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u19.d * c3)) == c3 + (cc3 + u19.d * c3))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
+ retval = tanMp (x);
goto ret;
}
- /* (IX) The case 25 < abs(x) <= 1e8, 0.0608 < abs(y) <= 0.787 */
- /* First stage */
- i = ((int) (mfftnhf.d+TWO8*ya));
- z = (z0=(ya-xfg[i][0].d))+yya; z2 = z*z;
- pz = z+z*z2*(e0.d+z2*e1.d);
- fi = xfg[i][1].d; gi = xfg[i][2].d;
-
- if (n) {
- /* -cot */
- t2 = pz*(fi+gi)/(fi+pz);
- if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) { retval = (-sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = gi*ua18.d+t3*ub18.d;
- if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- t2 = pz*(gi+fi)/(gi-pz);
- if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) { retval = (sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = fi*ua17.d+t3*ub17.d;
- if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
-
- /* Second stage */
- ffi = xfg[i][3].d;
- EADD(z0,yya,z,zz)
- MUL2(z,zz,z,zz,z2,zz2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = z2*(a7.d+z2*(a9.d+z2*a11.d));
- ADD2(a5.d,aa5.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d,aa3.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(z ,zz ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(z ,zz ,c2,cc2,c1,cc1,t1,t2)
-
- ADD2(fi ,ffi,c1,cc1,c2,cc2,t1,t2)
- MUL2(fi ,ffi,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8)
- SUB2(1.0,0.0,c3,cc3,c1,cc1,t1,t2)
-
- if (n) {
- /* -cot */
- DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) { retval = (sy*y); goto ret; } }
- retval = tanMp(x);
- goto ret;
- }
-
/* (---) The case 1e8 < abs(x) < 2**1024 */
/* Range reduction by algorithm iii */
- n = (__branred(x,&a,&da)) & 0x00000001;
- EADD(a,da,t1,t2) a=t1; da=t2;
- if (a<0.0) {ya=-a; yya=-da; sy=MONE;}
- else {ya= a; yya= da; sy= ONE;}
+ n = (__branred (x, &a, &da)) & 0x00000001;
+ EADD (a, da, t1, t2);
+ a = t1;
+ da = t2;
+ if (a < 0.0)
+ {
+ ya = -a;
+ yya = -da;
+ sy = -1;
+ }
+ else
+ {
+ ya = a;
+ yya = da;
+ sy = 1;
+ }
/* (+++) The case 1e8 < abs(x) < 2**1024, abs(y) <= 1e-7 */
- if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
+ if (ya <= gy1.d)
+ {
+ retval = tanMp (x);
+ goto ret;
+ }
/* (X) The case 1e8 < abs(x) < 2**1024, 1e-7 < abs(y) <= 0.0608 */
- if (ya<=gy2.d) {
- a2 = a*a;
- t2 = da+a*a2*(d3.d+a2*(d5.d+a2*(d7.d+a2*(d9.d+a2*d11.d))));
- if (n) {
- /* First stage -cot */
- EADD(a,t2,b,db)
- DIV2(1.0,0.0,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) { retval = (-y); goto ret; } }
- else {
- /* First stage tan */
- if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) { retval = y; goto ret; } }
-
- /* Second stage */
- /* Reduction by algorithm iv */
- p=10; n = (__mpranred(x,&mpa,p)) & 0x00000001;
- __mp_dbl(&mpa,&a,p); __dbl_mp(a,&mpt1,p);
- __sub(&mpa,&mpt1,&mpt2,p); __mp_dbl(&mpt2,&da,p);
-
- MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+
- x2*a27.d))))));
- ADD2(a13.d,aa13.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a11.d,aa11.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a9.d ,aa9.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a7.d ,aa7.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a5.d ,aa5.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d ,aa3.d ,c1,cc1,c2,cc2,t1,t2)
- MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(a ,da ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a ,da ,c2,cc2,c1,cc1,t1,t2)
-
- if (n) {
- /* Second stage -cot */
- DIV2(1.0,0.0,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) { retval = (-y); goto ret; } }
- else {
- /* Second stage tan */
- if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) { retval = y; goto ret; } }
- retval = tanMp(x);
- goto ret;
- }
+ if (ya <= gy2.d)
+ {
+ a2 = a * a;
+ t2 = d9.d + a2 * d11.d;
+ t2 = d7.d + a2 * t2;
+ t2 = d5.d + a2 * t2;
+ t2 = d3.d + a2 * t2;
+ t2 = da + a * a2 * t2;
+ if (n)
+ {
+ /* First stage -cot */
+ EADD (a, t2, b, db);
+ DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c + (dc - u22.d * c)) == c + (dc + u22.d * c))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* First stage tan */
+ if ((y = a + (t2 - u21.d * a)) == a + (t2 + u21.d * a))
+ {
+ retval = y;
+ goto ret;
+ }
+ }
+
+ /* Second stage */
+ /* Reduction by algorithm iv */
+ p = 10;
+ n = (__mpranred (x, &mpa, p)) & 0x00000001;
+ __mp_dbl (&mpa, &a, p);
+ __dbl_mp (a, &mpt1, p);
+ __sub (&mpa, &mpt1, &mpt2, p);
+ __mp_dbl (&mpt2, &da, p);
+
+ MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+
+ c1 = a25.d + x2 * a27.d;
+ c1 = a23.d + x2 * c1;
+ c1 = a21.d + x2 * c1;
+ c1 = a19.d + x2 * c1;
+ c1 = a17.d + x2 * c1;
+ c1 = a15.d + x2 * c1;
+ c1 *= x2;
+
+ ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* Second stage -cot */
+ DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8,
+ t9, t10);
+ if ((y = c2 + (cc2 - u24.d * c2)) == c2 + (cc2 + u24.d * c2))
+ {
+ retval = (-y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* Second stage tan */
+ if ((y = c1 + (cc1 - u23.d * c1)) == c1 + (cc1 + u23.d * c1))
+ {
+ retval = y;
+ goto ret;
+ }
+ }
+ retval = tanMp (x);
+ goto ret;
+ }
/* (XI) The case 1e8 < abs(x) < 2**1024, 0.0608 < abs(y) <= 0.787 */
/* First stage */
- i = ((int) (mfftnhf.d+TWO8*ya));
- z = (z0=(ya-xfg[i][0].d))+yya; z2 = z*z;
- pz = z+z*z2*(e0.d+z2*e1.d);
- fi = xfg[i][1].d; gi = xfg[i][2].d;
-
- if (n) {
- /* -cot */
- t2 = pz*(fi+gi)/(fi+pz);
- if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) { retval = (-sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = gi*ua26.d+t3*ub26.d;
- if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- t2 = pz*(gi+fi)/(gi-pz);
- if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) { retval = (sy*y); goto ret; }
- t3 = (t2<0.0) ? -t2 : t2;
- t4 = fi*ua25.d+t3*ub25.d;
- if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
+ i = ((int) (mfftnhf.d + TWO8 * ya));
+ z = (z0 = (ya - xfg[i][0].d)) + yya;
+ z2 = z * z;
+ pz = z + z * z2 * (e0.d + z2 * e1.d);
+ fi = xfg[i][1].d;
+ gi = xfg[i][2].d;
+
+ if (n)
+ {
+ /* -cot */
+ t2 = pz * (fi + gi) / (fi + pz);
+ if ((y = gi - (t2 - gi * u26.d)) == gi - (t2 + gi * u26.d))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = gi * ua26.d + t3 * ub26.d;
+ if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ t2 = pz * (gi + fi) / (gi - pz);
+ if ((y = fi + (t2 - fi * u25.d)) == fi + (t2 + fi * u25.d))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ t3 = (t2 < 0.0) ? -t2 : t2;
+ t4 = fi * ua25.d + t3 * ub25.d;
+ if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
/* Second stage */
ffi = xfg[i][3].d;
- EADD(z0,yya,z,zz)
- MUL2(z,zz,z,zz,z2,zz2,t1,t2,t3,t4,t5,t6,t7,t8)
- c1 = z2*(a7.d+z2*(a9.d+z2*a11.d));
- ADD2(a5.d,aa5.d,c1,0.0,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(a3.d,aa3.d,c1,cc1,c2,cc2,t1,t2)
- MUL2(z2,zz2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
- MUL2(z ,zz ,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
- ADD2(z ,zz ,c2,cc2,c1,cc1,t1,t2)
-
- ADD2(fi ,ffi,c1,cc1,c2,cc2,t1,t2)
- MUL2(fi ,ffi,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8)
- SUB2(1.0,0.0,c3,cc3,c1,cc1,t1,t2)
-
- if (n) {
- /* -cot */
- DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) { retval = (-sy*y); goto ret; } }
- else {
- /* tan */
- DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
- if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) { retval = (sy*y); goto ret; } }
- retval = tanMp(x);
+ EADD (z0, yya, z, zz);
+ MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+ c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+ ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+ MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+ ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+ ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+ MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+ SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+ if (n)
+ {
+ /* -cot */
+ DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u28.d * c3)) == c3 + (cc3 + u28.d * c3))
+ {
+ retval = (-sy * y);
+ goto ret;
+ }
+ }
+ else
+ {
+ /* tan */
+ DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+ t10);
+ if ((y = c3 + (cc3 - u27.d * c3)) == c3 + (cc3 + u27.d * c3))
+ {
+ retval = (sy * y);
+ goto ret;
+ }
+ }
+ retval = tanMp (x);
goto ret;
- ret:
+ret:
return retval;
}
@@ -507,14 +830,14 @@ tan(double x) {
/* and converts result back to double */
static double
SECTION
-tanMp(double x)
+tanMp (double x)
{
int p;
double y;
mp_no mpy;
- p=32;
- __mptan(x, &mpy, p);
- __mp_dbl(&mpy,&y,p);
+ p = 32;
+ __mptan (x, &mpy, p);
+ __mp_dbl (&mpy, &y, p);
return y;
}
diff --git a/sysdeps/ieee754/dbl-64/upow.h b/sysdeps/ieee754/dbl-64/upow.h
index 67bae1aefc..130fb3296f 100644
--- a/sysdeps/ieee754/dbl-64/upow.h
+++ b/sysdeps/ieee754/dbl-64/upow.h
@@ -34,7 +34,6 @@
/**/ nZERO = {{0x80000000, 0}}, /* -0.0 */
/**/ INF = {{0x7ff00000, 0x00000000}}, /* INF */
/**/ nINF = {{0xfff00000, 0x00000000}}, /* -INF */
-/**/ NaNQ = {{0x7ff80000, 0x00000000}}, /* NaNQ */
/**/ sqrt_2 = {{0x3ff6a09e, 0x667f3bcc}}, /* sqrt(2) */
/**/ ln2a = {{0x3fe62e42, 0xfefa3800}}, /* ln(2) 43 bits */
/**/ ln2b = {{0x3d2ef357, 0x93c76730}}, /* ln(2)-ln2a */
@@ -49,7 +48,6 @@
/**/ nZERO = {{0, 0x80000000}}, /* -0.0 */
/**/ INF = {{0x00000000, 0x7ff00000}}, /* INF */
/**/ nINF = {{0x00000000, 0xfff00000}}, /* -INF */
-/**/ NaNQ = {{0x00000000, 0x7ff80000}}, /* NaNQ */
/**/ sqrt_2 = {{0x667f3bcc, 0x3ff6a09e}}, /* sqrt(2) */
/**/ ln2a = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */
/**/ ln2b = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a */
diff --git a/sysdeps/ieee754/dbl-64/urem.h b/sysdeps/ieee754/dbl-64/urem.h
index c4daa5d1ac..b576691ced 100644
--- a/sysdeps/ieee754/dbl-64/urem.h
+++ b/sysdeps/ieee754/dbl-64/urem.h
@@ -32,18 +32,14 @@ static const mynumber big = {{0x43380000, 0}}, /* 6755399441055744 */
t128 = {{0x47f00000, 0}}, /* 2^ 128 */
tm128 = {{0x37f00000, 0}}, /* 2^-128 */
ZERO = {{0, 0}}, /* 0.0 */
- nZERO = {{0x80000000, 0}}, /* -0.0 */
- NAN = {{0x7ff80000, 0}}, /* NaN */
- nNAN = {{0xfff80000, 0}}; /* -NaN */
+ nZERO = {{0x80000000, 0}}; /* -0.0 */
#else
#ifdef LITTLE_ENDI
static const mynumber big = {{0, 0x43380000}}, /* 6755399441055744 */
t128 = {{0, 0x47f00000}}, /* 2^ 128 */
tm128 = {{0, 0x37f00000}}, /* 2^-128 */
ZERO = {{0, 0}}, /* 0.0 */
- nZERO = {{0, 0x80000000}}, /* -0.0 */
- NAN = {{0, 0x7ff80000}}, /* NaN */
- nNAN = {{0, 0xfff80000}}; /* -NaN */
+ nZERO = {{0, 0x80000000}}; /* -0.0 */
#endif
#endif
diff --git a/sysdeps/ieee754/dbl-64/usncs.h b/sysdeps/ieee754/dbl-64/usncs.h
index 92a632144a..11c189ce34 100644
--- a/sysdeps/ieee754/dbl-64/usncs.h
+++ b/sysdeps/ieee754/dbl-64/usncs.h
@@ -30,7 +30,6 @@
#ifdef BIG_ENDI
static const mynumber
-/**/ NAN = {{0x7ff80000, 0x00000000 }}, /* NaN */
/**/ s1 = {{0xBFC55555, 0x55555555 }}, /* -0.16666666666666666 */
/**/ s2 = {{0x3F811111, 0x11110ECE }}, /* 0.0083333333333323288 */
/**/ s3 = {{0xBF2A01A0, 0x19DB08B8 }}, /* -0.00019841269834414642 */
@@ -53,7 +52,6 @@ static const mynumber
#ifdef LITTLE_ENDI
static const mynumber
-/**/ NAN = {{0x00000000, 0x7ff80000 }},/* NaN */
/**/ s1 = {{0x55555555, 0xBFC55555 }},/* -0.16666666666666666 */
/**/ s2 = {{0x11110ECE, 0x3F811111 }},/* 0.0083333333333323288 */
/**/ s3 = {{0x19DB08B8, 0xBF2A01A0 }},/* -0.00019841269834414642 */
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c b/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
index a630d10fe2..f686bb6706 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
@@ -18,6 +18,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
static const double one = 1.0, Zero[] = {0.0, -0.0,};
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c b/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
index 488a0efaed..dcb7b58a1b 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
@@ -45,6 +45,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
static const double two54 = 1.80143985094819840000e+16; /* 0x4350000000000000 */
static const double ivln10 = 4.34294481903251816668e-01; /* 0x3FDBCB7B1526E50E */
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/math_private.h b/sysdeps/ieee754/dbl-64/wordsize-64/math_private.h
index b66085eb1b..4f9219934a 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/math_private.h
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/math_private.h
@@ -1,6 +1,7 @@
#ifndef _MATH_PRIVATE_H_
#include_next <math_private.h>
+#include <stdint.h>
#ifndef __isnan
extern __always_inline int
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
index f25ede8f9c..fcf2e6d5b6 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
@@ -16,6 +16,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
#undef __finite
int
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
index 5beccb0acc..914a3c823a 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
@@ -32,6 +32,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
/*
* floor(x)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
index 70a620cf64..e80b84ca02 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
@@ -17,6 +17,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
#undef __isnan
int __isnan(double x)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
new file mode 100644
index 0000000000..3fa0254374
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
@@ -0,0 +1,43 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignaling (double x)
+{
+ u_int64_t xi;
+ EXTRACT_WORDS64 (xi, x);
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error untested
+ /* We only have to care about the high-order bit of x's significand, because
+ having it set (sNaN) already makes the significand different from that
+ used to designate infinity. */
+ return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000);
+#else
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ xi ^= UINT64_C (0x0008000000000000);
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000);
+#endif
+}
+libm_hidden_def (__issignaling)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
index 89743168cb..c309e56272 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
@@ -22,6 +22,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
static const double one = 1.0;
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
index e9ae82bdbb..29e62874bb 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
@@ -20,7 +20,7 @@
#include <math.h>
#include <math_private.h>
-
+#include <stdint.h>
static const double zero = 0.0;
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
index df674670ed..bea7960835 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
@@ -20,7 +20,7 @@
#include <math.h>
#include <math_private.h>
-
+#include <stdint.h>
static const double huge = 1.0e300;
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index a312957b0a..f58f4c8056 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -19,14 +19,97 @@
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+ approximation to gamma function. */
+
+static const float gamma_coeff[] =
+ {
+ 0x1.555556p-4f,
+ -0xb.60b61p-12f,
+ 0x3.403404p-12f,
+ };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 42, in the form R *
+ 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+ avoid overflow or underflow in intermediate calculations. */
+
+static float
+gammaf_positive (float x, int *exp2_adj)
+{
+ int local_signgam;
+ if (x < 0.5f)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expf (__ieee754_lgammaf_r (x + 1, &local_signgam)) / x;
+ }
+ else if (x <= 1.5f)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expf (__ieee754_lgammaf_r (x, &local_signgam));
+ }
+ else if (x < 2.5f)
+ {
+ *exp2_adj = 0;
+ float x_adj = x - 1;
+ return (__ieee754_expf (__ieee754_lgammaf_r (x_adj, &local_signgam))
+ * x_adj);
+ }
+ else
+ {
+ float eps = 0;
+ float x_eps = 0;
+ float x_adj = x;
+ float prod = 1;
+ if (x < 4.0f)
+ {
+ /* Adjust into the range for applying Stirling's
+ approximation. */
+ float n = __ceilf (4.0f - x);
+#if FLT_EVAL_METHOD != 0
+ volatile
+#endif
+ float x_tmp = x + n;
+ x_adj = x_tmp;
+ x_eps = (x - (x_adj - n));
+ prod = __gamma_productf (x_adj - n, x_eps, n, &eps);
+ }
+ /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+ Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+ starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+ factored out. */
+ float exp_adj = -eps;
+ float x_adj_int = __roundf (x_adj);
+ float x_adj_frac = x_adj - x_adj_int;
+ int x_adj_log2;
+ float x_adj_mant = __frexpf (x_adj, &x_adj_log2);
+ if (x_adj_mant < (float) M_SQRT1_2)
+ {
+ x_adj_log2--;
+ x_adj_mant *= 2.0f;
+ }
+ *exp2_adj = x_adj_log2 * (int) x_adj_int;
+ float ret = (__ieee754_powf (x_adj_mant, x_adj)
+ * __ieee754_exp2f (x_adj_log2 * x_adj_frac)
+ * __ieee754_expf (-x_adj)
+ * __ieee754_sqrtf (2 * (float) M_PI / x_adj)
+ / prod);
+ exp_adj += x_eps * __ieee754_logf (x);
+ float bsum = gamma_coeff[NCOEFF - 1];
+ float x_adj2 = x_adj * x_adj;
+ for (size_t i = 1; i <= NCOEFF - 1; i++)
+ bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+ exp_adj += bsum / x_adj;
+ return ret + ret * __expm1f (exp_adj);
+ }
+}
float
__ieee754_gammaf_r (float x, int *signgamp)
{
- /* We don't have a real gamma implementation now. We'll use lgamma
- and the exp function. But due to the required boundary
- conditions we must check some values separately. */
int32_t hx;
GET_FLOAT_WORD (hx, x);
@@ -50,8 +133,49 @@ __ieee754_gammaf_r (float x, int *signgamp)
*signgamp = 0;
return x - x;
}
+ if (__builtin_expect ((hx & 0x7f800000) == 0x7f800000, 0))
+ {
+ /* Positive infinity (return positive infinity) or NaN (return
+ NaN). */
+ *signgamp = 0;
+ return x + x;
+ }
- /* XXX FIXME. */
- return __ieee754_expf (__ieee754_lgammaf_r (x, signgamp));
+ if (x >= 36.0f)
+ {
+ /* Overflow. */
+ *signgamp = 0;
+ return FLT_MAX * FLT_MAX;
+ }
+ else if (x > 0.0f)
+ {
+ *signgamp = 0;
+ int exp2_adj;
+ float ret = gammaf_positive (x, &exp2_adj);
+ return __scalbnf (ret, exp2_adj);
+ }
+ else if (x >= -FLT_EPSILON / 4.0f)
+ {
+ *signgamp = 0;
+ return 1.0f / x;
+ }
+ else
+ {
+ float tx = __truncf (x);
+ *signgamp = (tx == 2.0f * __truncf (tx / 2.0f)) ? -1 : 1;
+ if (x <= -42.0f)
+ /* Underflow. */
+ return FLT_MIN * FLT_MIN;
+ float frac = tx - x;
+ if (frac > 0.5f)
+ frac = 1.0f - frac;
+ float sinpix = (frac <= 0.25f
+ ? __sinf ((float) M_PI * frac)
+ : __cosf ((float) M_PI * (0.5f - frac)));
+ int exp2_adj;
+ float ret = (float) M_PI / (-x * sinpix
+ * gammaf_positive (-x, &exp2_adj));
+ return __scalbnf (ret, -exp2_adj);
+ }
}
strong_alias (__ieee754_gammaf_r, __gammaf_r_finite)
diff --git a/sysdeps/ieee754/flt-32/s_issignalingf.c b/sysdeps/ieee754/flt-32/s_issignalingf.c
new file mode 100644
index 0000000000..59a189252e
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_issignalingf.c
@@ -0,0 +1,42 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignalingf (float x)
+{
+ u_int32_t xi;
+ GET_FLOAT_WORD (xi, x);
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+ /* We only have to care about the high-order bit of x's significand, because
+ having it set (sNaN) already makes the significand different from that
+ used to designate infinity. */
+ return (xi & 0x7fc00000) == 0x7fc00000;
+#else
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ xi ^= 0x00400000;
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return (xi & 0x7fffffff) > 0x7fc00000;
+#endif
+}
+libm_hidden_def (__issignalingf)
diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c
index 48debadde3..5aebefafcf 100644
--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c
+++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c
@@ -39,6 +39,7 @@ __nearbyintf(float x)
libc_feholdexceptf (&env);
w = TWO23[sx]+x;
t = w-TWO23[sx];
+ math_force_eval (t);
libc_fesetenvf (&env);
GET_FLOAT_WORD(i0,t);
SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
@@ -51,6 +52,7 @@ __nearbyintf(float x)
libc_feholdexceptf (&env);
w = TWO23[sx]+x;
t = w-TWO23[sx];
+ math_force_eval (t);
libc_fesetenvf (&env);
return t;
}
diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c
index cd3123046b..150921f90b 100644
--- a/sysdeps/ieee754/k_standard.c
+++ b/sysdeps/ieee754/k_standard.c
@@ -837,7 +837,7 @@ __kernel_standard(double x, double y, int type)
exc.type = OVERFLOW;
exc.name = type < 100 ? "tgamma" : (type < 200
? "tgammaf" : "tgammal");
- exc.retval = HUGE_VAL;
+ exc.retval = __copysign (HUGE_VAL, x);
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
else if (!matherr(&exc)) {
diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
index b6da31c13e..e8d49e9872 100644
--- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -20,14 +20,108 @@
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+ approximation to gamma function. */
+
+static const long double gamma_coeff[] =
+ {
+ 0x1.5555555555555555555555555555p-4L,
+ -0xb.60b60b60b60b60b60b60b60b60b8p-12L,
+ 0x3.4034034034034034034034034034p-12L,
+ -0x2.7027027027027027027027027028p-12L,
+ 0x3.72a3c5631fe46ae1d4e700dca8f2p-12L,
+ -0x7.daac36664f1f207daac36664f1f4p-12L,
+ 0x1.a41a41a41a41a41a41a41a41a41ap-8L,
+ -0x7.90a1b2c3d4e5f708192a3b4c5d7p-8L,
+ 0x2.dfd2c703c0cfff430edfd2c703cp-4L,
+ -0x1.6476701181f39edbdb9ce625987dp+0L,
+ 0xd.672219167002d3a7a9c886459cp+0L,
+ -0x9.cd9292e6660d55b3f712eb9e07c8p+4L,
+ 0x8.911a740da740da740da740da741p+8L,
+ -0x8.d0cc570e255bf59ff6eec24b49p+12L,
+ };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 1775, in the form R *
+ 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+ avoid overflow or underflow in intermediate calculations. */
+
+static long double
+gammal_positive (long double x, int *exp2_adj)
+{
+ int local_signgam;
+ if (x < 0.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+ }
+ else if (x <= 1.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+ }
+ else if (x < 12.5L)
+ {
+ /* Adjust into the range for using exp (lgamma). */
+ *exp2_adj = 0;
+ long double n = __ceill (x - 1.5L);
+ long double x_adj = x - n;
+ long double eps;
+ long double prod = __gamma_productl (x_adj, 0, n, &eps);
+ return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+ * prod * (1.0L + eps));
+ }
+ else
+ {
+ long double eps = 0;
+ long double x_eps = 0;
+ long double x_adj = x;
+ long double prod = 1;
+ if (x < 24.0L)
+ {
+ /* Adjust into the range for applying Stirling's
+ approximation. */
+ long double n = __ceill (24.0L - x);
+ x_adj = x + n;
+ x_eps = (x - (x_adj - n));
+ prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+ }
+ /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+ Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+ starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+ factored out. */
+ long double exp_adj = -eps;
+ long double x_adj_int = __roundl (x_adj);
+ long double x_adj_frac = x_adj - x_adj_int;
+ int x_adj_log2;
+ long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+ if (x_adj_mant < M_SQRT1_2l)
+ {
+ x_adj_log2--;
+ x_adj_mant *= 2.0L;
+ }
+ *exp2_adj = x_adj_log2 * (int) x_adj_int;
+ long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+ * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+ * __ieee754_expl (-x_adj)
+ * __ieee754_sqrtl (2 * M_PIl / x_adj)
+ / prod);
+ exp_adj += x_eps * __ieee754_logl (x);
+ long double bsum = gamma_coeff[NCOEFF - 1];
+ long double x_adj2 = x_adj * x_adj;
+ for (size_t i = 1; i <= NCOEFF - 1; i++)
+ bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+ exp_adj += bsum / x_adj;
+ return ret + ret * __expm1l (exp_adj);
+ }
+}
long double
__ieee754_gammal_r (long double x, int *signgamp)
{
- /* We don't have a real gamma implementation now. We'll use lgamma
- and the exp function. But due to the required boundary
- conditions we must check some values separately. */
int64_t hx;
u_int64_t lx;
@@ -51,8 +145,49 @@ __ieee754_gammal_r (long double x, int *signgamp)
*signgamp = 0;
return x - x;
}
+ if ((hx & 0x7fff000000000000ULL) == 0x7fff000000000000ULL)
+ {
+ /* Positive infinity (return positive infinity) or NaN (return
+ NaN). */
+ *signgamp = 0;
+ return x + x;
+ }
- /* XXX FIXME. */
- return __ieee754_expl (__ieee754_lgammal_r (x, signgamp));
+ if (x >= 1756.0L)
+ {
+ /* Overflow. */
+ *signgamp = 0;
+ return LDBL_MAX * LDBL_MAX;
+ }
+ else if (x > 0.0L)
+ {
+ *signgamp = 0;
+ int exp2_adj;
+ long double ret = gammal_positive (x, &exp2_adj);
+ return __scalbnl (ret, exp2_adj);
+ }
+ else if (x >= -LDBL_EPSILON / 4.0L)
+ {
+ *signgamp = 0;
+ return 1.0f / x;
+ }
+ else
+ {
+ long double tx = __truncl (x);
+ *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+ if (x <= -1775.0L)
+ /* Underflow. */
+ return LDBL_MIN * LDBL_MIN;
+ long double frac = tx - x;
+ if (frac > 0.5L)
+ frac = 1.0L - frac;
+ long double sinpix = (frac <= 0.25L
+ ? __sinl (M_PIl * frac)
+ : __cosl (M_PIl * (0.5L - frac)));
+ int exp2_adj;
+ long double ret = M_PIl / (-x * sinpix
+ * gammal_positive (-x, &exp2_adj));
+ return __scalbnl (ret, -exp2_adj);
+ }
}
strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
index 84846fdc3d..ee856acd5f 100644
--- a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -184,13 +184,13 @@ static const int32_t two_over_pi[] = {
};
static const long double c[] = {
-/* 93 bits of pi/2 */
+/* 113 bits of pi/2 */
#define PI_2_1 c[0]
- 1.57079632679489661923132169155131424e+00L, /* 3fff921fb54442d18469898cc5100000 */
+ 0x1.921fb54442d18469898cc51701b8p+0L,
/* pi/2 - PI_2_1 */
#define PI_2_1t c[1]
- 8.84372056613570112025531863263659260e-29L, /* 3fa1c06e0e68948127044533e63a0106 */
+ 0x3.9a252049c1114cf98e804177d4c8p-116L,
};
int32_t __ieee754_rem_pio2l(long double x, long double *y)
@@ -213,7 +213,7 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
{
if (hx > 0)
{
- /* 113 + 93 bit PI is ok */
+ /* 113 + 113 bit PI is ok */
z = x - PI_2_1;
y[0] = z - PI_2_1t;
y[1] = (z - y[0]) - PI_2_1t;
@@ -221,7 +221,7 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
}
else
{
- /* 113 + 93 bit PI is ok */
+ /* 113 + 113 bit PI is ok */
z = x + PI_2_1;
y[0] = z + PI_2_1t;
y[1] = (z - y[0]) + PI_2_1t;
diff --git a/sysdeps/ieee754/ldbl-128/gamma_productl.c b/sysdeps/ieee754/ldbl-128/gamma_productl.c
new file mode 100644
index 0000000000..157dbab9fb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/gamma_productl.c
@@ -0,0 +1,75 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Calculate X * Y exactly and store the result in *HI + *LO. It is
+ given that the values are small enough that no overflow occurs and
+ large enough (or zero) that no underflow occurs. */
+
+static inline void
+mul_split (long double *hi, long double *lo, long double x, long double y)
+{
+#ifdef __FP_FAST_FMAL
+ /* Fast built-in fused multiply-add. */
+ *hi = x * y;
+ *lo = __builtin_fmal (x, y, -*hi);
+#elif defined FP_FAST_FMAL
+ /* Fast library fused multiply-add, compiler before GCC 4.6. */
+ *hi = x * y;
+ *lo = __fmal (x, y, -*hi);
+#else
+ /* Apply Dekker's algorithm. */
+ *hi = x * y;
+# define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
+ long double x1 = x * C;
+ long double y1 = y * C;
+# undef C
+ x1 = (x - x1) + x1;
+ y1 = (y - y1) + y1;
+ long double x2 = x - x1;
+ long double y2 = y - y1;
+ *lo = (((x1 * y1 - *hi) + x1 * y2) + x2 * y1) + x2 * y2;
+#endif
+}
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+long double
+__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+{
+ SET_RESTORE_ROUNDL (FE_TONEAREST);
+ long double ret = x;
+ *eps = x_eps / x;
+ for (int i = 1; i < n; i++)
+ {
+ *eps += x_eps / (x + i);
+ long double lo;
+ mul_split (&ret, &lo, ret, x + i);
+ *eps += lo / ret;
+ }
+ return ret;
+}
diff --git a/sysdeps/ieee754/ldbl-128/s_issignalingl.c b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
new file mode 100644
index 0000000000..b69a66d0ba
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
@@ -0,0 +1,45 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignalingl (long double x)
+{
+ u_int64_t hxi, lxi __attribute__ ((unused));
+ GET_LDOUBLE_WORDS64 (hxi, lxi, x);
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+ /* We only have to care about the high-order bit of x's significand, because
+ having it set (sNaN) already makes the significand different from that
+ used to designate infinity. */
+ return ((hxi & UINT64_C (0x7fff800000000000))
+ == UINT64_C (0x7fff800000000000));
+#else
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ hxi ^= UINT64_C (0x0000800000000000);
+ /* If lxi != 0, then set any suitable bit of the significand in hxi. */
+ hxi |= (lxi | -lxi) >> 63;
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return (hxi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7fff800000000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
index d2afc10a5a..2017c04207 100644
--- a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
@@ -47,6 +47,7 @@ long double __nearbyintl(long double x)
feholdexcept (&env);
w = TWO112[sx]+x;
t = w-TWO112[sx];
+ math_force_eval (t);
fesetenv (&env);
GET_LDOUBLE_MSW64(i0,t);
SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63));
@@ -59,6 +60,7 @@ long double __nearbyintl(long double x)
feholdexcept (&env);
w = TWO112[sx]+x;
t = w-TWO112[sx];
+ math_force_eval (t);
fesetenv (&env);
return t;
}
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
index 52ade9e4a1..90d8e3f0d2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
@@ -20,14 +20,107 @@
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+ approximation to gamma function. */
+
+static const long double gamma_coeff[] =
+ {
+ 0x1.555555555555555555555555558p-4L,
+ -0xb.60b60b60b60b60b60b60b60b6p-12L,
+ 0x3.4034034034034034034034034p-12L,
+ -0x2.7027027027027027027027027p-12L,
+ 0x3.72a3c5631fe46ae1d4e700dca9p-12L,
+ -0x7.daac36664f1f207daac36664f2p-12L,
+ 0x1.a41a41a41a41a41a41a41a41a4p-8L,
+ -0x7.90a1b2c3d4e5f708192a3b4c5ep-8L,
+ 0x2.dfd2c703c0cfff430edfd2c704p-4L,
+ -0x1.6476701181f39edbdb9ce625988p+0L,
+ 0xd.672219167002d3a7a9c886459cp+0L,
+ -0x9.cd9292e6660d55b3f712eb9e08p+4L,
+ 0x8.911a740da740da740da740da74p+8L,
+ };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 191, in the form R *
+ 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+ avoid overflow or underflow in intermediate calculations. */
+
+static long double
+gammal_positive (long double x, int *exp2_adj)
+{
+ int local_signgam;
+ if (x < 0.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+ }
+ else if (x <= 1.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+ }
+ else if (x < 11.5L)
+ {
+ /* Adjust into the range for using exp (lgamma). */
+ *exp2_adj = 0;
+ long double n = __ceill (x - 1.5L);
+ long double x_adj = x - n;
+ long double eps;
+ long double prod = __gamma_productl (x_adj, 0, n, &eps);
+ return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+ * prod * (1.0L + eps));
+ }
+ else
+ {
+ long double eps = 0;
+ long double x_eps = 0;
+ long double x_adj = x;
+ long double prod = 1;
+ if (x < 23.0L)
+ {
+ /* Adjust into the range for applying Stirling's
+ approximation. */
+ long double n = __ceill (23.0L - x);
+ x_adj = x + n;
+ x_eps = (x - (x_adj - n));
+ prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+ }
+ /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+ Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+ starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+ factored out. */
+ long double exp_adj = -eps;
+ long double x_adj_int = __roundl (x_adj);
+ long double x_adj_frac = x_adj - x_adj_int;
+ int x_adj_log2;
+ long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+ if (x_adj_mant < M_SQRT1_2l)
+ {
+ x_adj_log2--;
+ x_adj_mant *= 2.0L;
+ }
+ *exp2_adj = x_adj_log2 * (int) x_adj_int;
+ long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+ * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+ * __ieee754_expl (-x_adj)
+ * __ieee754_sqrtl (2 * M_PIl / x_adj)
+ / prod);
+ exp_adj += x_eps * __ieee754_logl (x);
+ long double bsum = gamma_coeff[NCOEFF - 1];
+ long double x_adj2 = x_adj * x_adj;
+ for (size_t i = 1; i <= NCOEFF - 1; i++)
+ bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+ exp_adj += bsum / x_adj;
+ return ret + ret * __expm1l (exp_adj);
+ }
+}
long double
__ieee754_gammal_r (long double x, int *signgamp)
{
- /* We don't have a real gamma implementation now. We'll use lgamma
- and the exp function. But due to the required boundary
- conditions we must check some values separately. */
int64_t hx;
u_int64_t lx;
@@ -51,8 +144,49 @@ __ieee754_gammal_r (long double x, int *signgamp)
*signgamp = 0;
return x - x;
}
+ if ((hx & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL)
+ {
+ /* Positive infinity (return positive infinity) or NaN (return
+ NaN). */
+ *signgamp = 0;
+ return x + x;
+ }
- /* XXX FIXME. */
- return __ieee754_expl (__ieee754_lgammal_r (x, signgamp));
+ if (x >= 172.0L)
+ {
+ /* Overflow. */
+ *signgamp = 0;
+ return LDBL_MAX * LDBL_MAX;
+ }
+ else if (x > 0.0L)
+ {
+ *signgamp = 0;
+ int exp2_adj;
+ long double ret = gammal_positive (x, &exp2_adj);
+ return __scalbnl (ret, exp2_adj);
+ }
+ else if (x >= -0x1p-110L)
+ {
+ *signgamp = 0;
+ return 1.0f / x;
+ }
+ else
+ {
+ long double tx = __truncl (x);
+ *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+ if (x <= -191.0L)
+ /* Underflow. */
+ return LDBL_MIN * LDBL_MIN;
+ long double frac = tx - x;
+ if (frac > 0.5L)
+ frac = 1.0L - frac;
+ long double sinpix = (frac <= 0.25L
+ ? __sinl (M_PIl * frac)
+ : __cosl (M_PIl * (0.5L - frac)));
+ int exp2_adj;
+ long double ret = M_PIl / (-x * sinpix
+ * gammal_positive (-x, &exp2_adj));
+ return __scalbnl (ret, -exp2_adj);
+ }
}
strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
index 692ae24930..6a72d6a853 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
@@ -185,13 +185,13 @@ static const int32_t two_over_pi[] = {
};
static const long double c[] = {
-/* 93 bits of pi/2 */
+/* 106 bits of pi/2 */
#define PI_2_1 c[0]
- 1.57079632679489661923132169155131424e+00L, /* 3fff921fb54442d18469898cc5100000 */
+ 0x1.921fb54442d18469898cc517018p+0L,
/* pi/2 - PI_2_1 */
#define PI_2_1t c[1]
- 8.84372056613570112025531863263659260e-29L, /* 3fa1c06e0e68948127044533e63a0106 */
+ 0x3.839a252049c1114cf98e804178p-108L,
};
int32_t __ieee754_rem_pio2l(long double x, long double *y)
@@ -216,7 +216,7 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
{
if (hx > 0)
{
- /* 113 + 93 bit PI is ok */
+ /* 106 + 106 bit PI is ok */
z = x - PI_2_1;
y[0] = z - PI_2_1t;
y[1] = (z - y[0]) - PI_2_1t;
@@ -224,7 +224,7 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
}
else
{
- /* 113 + 93 bit PI is ok */
+ /* 106 + 106 bit PI is ok */
z = x + PI_2_1;
y[0] = z + PI_2_1t;
y[1] = (z - y[0]) + PI_2_1t;
diff --git a/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
new file mode 100644
index 0000000000..7c6186d230
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
@@ -0,0 +1,42 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+long double
+__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+{
+ long double ret = x;
+ *eps = x_eps / x;
+ for (int i = 1; i < n; i++)
+ {
+ *eps += x_eps / (x + i);
+ ret *= x + i;
+ /* FIXME: no error estimates for the multiplication. */
+ }
+ return ret;
+}
diff --git a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
index 1cce1fc4dc..58eb57cd63 100644
--- a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
@@ -4,6 +4,7 @@
#include <sysdeps/ieee754/ldbl-128/math_ldbl.h>
#include <ieee754.h>
+#include <stdint.h>
static inline void
ldbl_extract_mantissa (int64_t *hi64, uint64_t *lo64, int *exp, long double x)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
new file mode 100644
index 0000000000..96fab1aff1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
@@ -0,0 +1,45 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignalingl (long double x)
+{
+ u_int64_t xi;
+ /* For inspecting NaN status, we only have to look at the first of the pair
+ of IEEE 754 64-bit precision numbers. */
+ GET_LDOUBLE_MSW64 (xi, x);
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error untested
+ /* We only have to care about the high-order bit of x's significand, because
+ having it set (sNaN) already makes the significand different from that
+ used to designate infinity. */
+ return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000);
+#else
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ xi ^= UINT64_C (0x0008000000000000);
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
index b654bf586f..bfcd11044d 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
@@ -21,6 +21,7 @@
when it's coded in C. */
#include <math.h>
+#include <math_private.h>
#include <fenv.h>
#include <math_ldbl_opt.h>
#include <float.h>
@@ -53,6 +54,8 @@ __nearbyintl (long double x)
}
u.dd[0] = high;
u.dd[1] = 0.0;
+ math_force_eval (u.dd[0]);
+ math_force_eval (u.dd[1]);
fesetenv (&env);
}
else if (fabs (u.dd[1]) < TWO52 && u.dd[1] != 0.0)
@@ -109,6 +112,8 @@ __nearbyintl (long double x)
}
u.dd[0] = high + low;
u.dd[1] = high - u.dd[0] + low;
+ math_force_eval (u.dd[0]);
+ math_force_eval (u.dd[1]);
fesetenv (&env);
}
diff --git a/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
index 0974351a10..7cb3e8563a 100644
--- a/sysdeps/ieee754/ldbl-96/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
@@ -19,14 +19,102 @@
#include <math.h>
#include <math_private.h>
+#include <float.h>
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+ approximation to gamma function. */
+
+static const long double gamma_coeff[] =
+ {
+ 0x1.5555555555555556p-4L,
+ -0xb.60b60b60b60b60bp-12L,
+ 0x3.4034034034034034p-12L,
+ -0x2.7027027027027028p-12L,
+ 0x3.72a3c5631fe46aep-12L,
+ -0x7.daac36664f1f208p-12L,
+ 0x1.a41a41a41a41a41ap-8L,
+ -0x7.90a1b2c3d4e5f708p-8L,
+ };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 1766, in the form R *
+ 2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+ avoid overflow or underflow in intermediate calculations. */
+
+static long double
+gammal_positive (long double x, int *exp2_adj)
+{
+ int local_signgam;
+ if (x < 0.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+ }
+ else if (x <= 1.5L)
+ {
+ *exp2_adj = 0;
+ return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+ }
+ else if (x < 7.5L)
+ {
+ /* Adjust into the range for using exp (lgamma). */
+ *exp2_adj = 0;
+ long double n = __ceill (x - 1.5L);
+ long double x_adj = x - n;
+ long double eps;
+ long double prod = __gamma_productl (x_adj, 0, n, &eps);
+ return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+ * prod * (1.0L + eps));
+ }
+ else
+ {
+ long double eps = 0;
+ long double x_eps = 0;
+ long double x_adj = x;
+ long double prod = 1;
+ if (x < 13.0L)
+ {
+ /* Adjust into the range for applying Stirling's
+ approximation. */
+ long double n = __ceill (13.0L - x);
+ x_adj = x + n;
+ x_eps = (x - (x_adj - n));
+ prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+ }
+ /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+ Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+ starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+ factored out. */
+ long double exp_adj = -eps;
+ long double x_adj_int = __roundl (x_adj);
+ long double x_adj_frac = x_adj - x_adj_int;
+ int x_adj_log2;
+ long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+ if (x_adj_mant < M_SQRT1_2l)
+ {
+ x_adj_log2--;
+ x_adj_mant *= 2.0L;
+ }
+ *exp2_adj = x_adj_log2 * (int) x_adj_int;
+ long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+ * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+ * __ieee754_expl (-x_adj)
+ * __ieee754_sqrtl (2 * M_PIl / x_adj)
+ / prod);
+ exp_adj += x_eps * __ieee754_logl (x);
+ long double bsum = gamma_coeff[NCOEFF - 1];
+ long double x_adj2 = x_adj * x_adj;
+ for (size_t i = 1; i <= NCOEFF - 1; i++)
+ bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+ exp_adj += bsum / x_adj;
+ return ret + ret * __expm1l (exp_adj);
+ }
+}
long double
__ieee754_gammal_r (long double x, int *signgamp)
{
- /* We don't have a real gamma implementation now. We'll use lgamma
- and the exp function. But due to the required boundary
- conditions we must check some values separately. */
u_int32_t es, hx, lx;
GET_LDOUBLE_WORDS (es, hx, lx, x);
@@ -43,22 +131,55 @@ __ieee754_gammal_r (long double x, int *signgamp)
*signgamp = 0;
return x - x;
}
- if (__builtin_expect ((es & 0x7fff) == 0x7fff, 0)
- && ((hx & 0x7fffffff) | lx) != 0)
+ if (__builtin_expect ((es & 0x7fff) == 0x7fff, 0))
{
- /* NaN, return it. */
+ /* Positive infinity (return positive infinity) or NaN (return
+ NaN). */
*signgamp = 0;
- return x;
+ return x + x;
}
- if (__builtin_expect ((es & 0x8000) != 0, 0)
- && x < 0xffffffff && __rintl (x) == x)
+ if (__builtin_expect ((es & 0x8000) != 0, 0) && __rintl (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
return (x - x) / (x - x);
}
- /* XXX FIXME. */
- return __ieee754_expl (__ieee754_lgammal_r (x, signgamp));
+ if (x >= 1756.0L)
+ {
+ /* Overflow. */
+ *signgamp = 0;
+ return LDBL_MAX * LDBL_MAX;
+ }
+ else if (x > 0.0L)
+ {
+ *signgamp = 0;
+ int exp2_adj;
+ long double ret = gammal_positive (x, &exp2_adj);
+ return __scalbnl (ret, exp2_adj);
+ }
+ else if (x >= -LDBL_EPSILON / 4.0L)
+ {
+ *signgamp = 0;
+ return 1.0f / x;
+ }
+ else
+ {
+ long double tx = __truncl (x);
+ *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+ if (x <= -1766.0L)
+ /* Underflow. */
+ return LDBL_MIN * LDBL_MIN;
+ long double frac = tx - x;
+ if (frac > 0.5L)
+ frac = 1.0L - frac;
+ long double sinpix = (frac <= 0.25L
+ ? __sinl (M_PIl * frac)
+ : __cosl (M_PIl * (0.5L - frac)));
+ int exp2_adj;
+ long double ret = M_PIl / (-x * sinpix
+ * gammal_positive (-x, &exp2_adj));
+ return __scalbnl (ret, -exp2_adj);
+ }
}
strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/sysdeps/ieee754/ldbl-96/e_hypotl.c b/sysdeps/ieee754/ldbl-96/e_hypotl.c
index 306f92924c..7895488848 100644
--- a/sysdeps/ieee754/ldbl-96/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-96/e_hypotl.c
@@ -85,7 +85,7 @@ long double __ieee754_hypotl(long double x, long double y)
u_int32_t high,low;
GET_LDOUBLE_WORDS(exp,high,low,b);
if((high|low)==0) return a;
- SET_LDOUBLE_WORDS(t1, 0x7ffd, 0, 0); /* t1=2^16382 */
+ SET_LDOUBLE_WORDS(t1, 0x7ffd, 0x80000000, 0); /* t1=2^16382 */
b *= t1;
a *= t1;
k -= 16382;
diff --git a/sysdeps/ieee754/ldbl-96/gamma_product.c b/sysdeps/ieee754/ldbl-96/gamma_product.c
new file mode 100644
index 0000000000..d464e70842
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/gamma_product.c
@@ -0,0 +1,46 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+double
+__gamma_product (double x, double x_eps, int n, double *eps)
+{
+ long double x_full = (long double) x + (long double) x_eps;
+ long double ret = x_full;
+ for (int i = 1; i < n; i++)
+ ret *= x_full + i;
+
+#if FLT_EVAL_METHOD != 0
+ volatile
+#endif
+ double fret = ret;
+ *eps = (ret - fret) / fret;
+
+ return fret;
+}
diff --git a/sysdeps/ieee754/ldbl-96/gamma_productl.c b/sysdeps/ieee754/ldbl-96/gamma_productl.c
new file mode 100644
index 0000000000..157dbab9fb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/gamma_productl.c
@@ -0,0 +1,75 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+ 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 <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Calculate X * Y exactly and store the result in *HI + *LO. It is
+ given that the values are small enough that no overflow occurs and
+ large enough (or zero) that no underflow occurs. */
+
+static inline void
+mul_split (long double *hi, long double *lo, long double x, long double y)
+{
+#ifdef __FP_FAST_FMAL
+ /* Fast built-in fused multiply-add. */
+ *hi = x * y;
+ *lo = __builtin_fmal (x, y, -*hi);
+#elif defined FP_FAST_FMAL
+ /* Fast library fused multiply-add, compiler before GCC 4.6. */
+ *hi = x * y;
+ *lo = __fmal (x, y, -*hi);
+#else
+ /* Apply Dekker's algorithm. */
+ *hi = x * y;
+# define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
+ long double x1 = x * C;
+ long double y1 = y * C;
+# undef C
+ x1 = (x - x1) + x1;
+ y1 = (y - y1) + y1;
+ long double x2 = x - x1;
+ long double y2 = y - y1;
+ *lo = (((x1 * y1 - *hi) + x1 * y2) + x2 * y1) + x2 * y2;
+#endif
+}
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+ - 1, in the form R * (1 + *EPS) where the return value R is an
+ approximation to the product and *EPS is set to indicate the
+ approximate error in the return value. X is such that all the
+ values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+ X is small enough that factors quadratic in it can be
+ neglected. */
+
+long double
+__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+{
+ SET_RESTORE_ROUNDL (FE_TONEAREST);
+ long double ret = x;
+ *eps = x_eps / x;
+ for (int i = 1; i < n; i++)
+ {
+ *eps += x_eps / (x + i);
+ long double lo;
+ mul_split (&ret, &lo, ret, x + i);
+ *eps += lo / ret;
+ }
+ return ret;
+}
diff --git a/sysdeps/ieee754/ldbl-96/s_issignalingl.c b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
new file mode 100644
index 0000000000..107aff1516
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
@@ -0,0 +1,43 @@
+/* Test for signaling NaN.
+ 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 <math.h>
+#include <math_private.h>
+
+int
+__issignalingl (long double x)
+{
+ u_int32_t exi, hxi, lxi;
+ GET_LDOUBLE_WORDS (exi, hxi, lxi, x);
+#ifdef HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#else
+ /* To keep the following comparison simple, toggle the quiet/signaling bit,
+ so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as
+ common practice for IEEE 754-1985). */
+ hxi ^= 0x40000000;
+ /* If lxi != 0, then set any suitable bit of the significand in hxi. */
+ hxi |= (lxi | -lxi) >> 31;
+ /* We do not recognize a pseudo NaN as sNaN; they're invalid on 80387 and
+ later. */
+ /* We have to compare for greater (instead of greater or equal), because x's
+ significand being all-zero designates infinity not NaN. */
+ return ((exi & 0x7fff) == 0x7fff) && (hxi > 0xc0000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/sysdeps/ieee754/ldbl-96/s_nearbyintl.c b/sysdeps/ieee754/ldbl-96/s_nearbyintl.c
index ed9836c879..c1d77f0c02 100644
--- a/sysdeps/ieee754/ldbl-96/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-96/s_nearbyintl.c
@@ -54,6 +54,7 @@ long double __nearbyintl(long double x)
feholdexcept (&env);
w = TWO63[sx]+x;
t = w-TWO63[sx];
+ math_force_eval (t);
fesetenv (&env);
GET_LDOUBLE_EXP(i0,t);
SET_LDOUBLE_EXP(t,(i0&0x7fff)|(sx<<15));
@@ -80,6 +81,7 @@ long double __nearbyintl(long double x)
feholdexcept (&env);
w = TWO63[sx]+x;
t = w-TWO63[sx];
+ math_force_eval (t);
fesetenv (&env);
return t;
}
diff --git a/sysdeps/ieee754/s_lib_version.c b/sysdeps/ieee754/s_lib_version.c
index a377ab1f78..7abb3e07ae 100644
--- a/sysdeps/ieee754/s_lib_version.c
+++ b/sysdeps/ieee754/s_lib_version.c
@@ -25,16 +25,17 @@ static char rcsid[] = "$NetBSD: s_lib_version.c,v 1.6 1995/05/10 20:47:44 jtc Ex
* define and initialize _LIB_VERSION
*/
#ifdef _POSIX_MODE
-_LIB_VERSION_TYPE _LIB_VERSION = _POSIX_;
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _POSIX_;
#else
#ifdef _XOPEN_MODE
-_LIB_VERSION_TYPE _LIB_VERSION = _XOPEN_;
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _XOPEN_;
#else
#ifdef _SVID3_MODE
-_LIB_VERSION_TYPE _LIB_VERSION = _SVID_;
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _SVID_;
#else /* default _IEEE_MODE */
-_LIB_VERSION_TYPE _LIB_VERSION = _IEEE_;
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _IEEE_;
#endif
#endif
#endif
+weak_alias (_LIB_VERSION_INTERNAL, _LIB_VERSION)
diff --git a/sysdeps/mach/hurd/bits/ioctls.h b/sysdeps/mach/hurd/bits/ioctls.h
index 4917055f91..fe3ca08264 100644
--- a/sysdeps/mach/hurd/bits/ioctls.h
+++ b/sysdeps/mach/hurd/bits/ioctls.h
@@ -141,7 +141,7 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
/* Construct an individual type field for TYPE. */
#define _IOTS(type) \
- (sizeof (type) == 8 ? IOC_64 : (sizeof (type) >> 1))
+ (sizeof (type) == 8 ? IOC_64 : (enum __ioctl_datum) (sizeof (type) >> 1))
/* Construct a type information field for
a single argument of the scalar TYPE. */
diff --git a/sysdeps/mach/hurd/bits/statvfs.h b/sysdeps/mach/hurd/bits/statvfs.h
index ecde762f11..68bd058b4d 100644
--- a/sysdeps/mach/hurd/bits/statvfs.h
+++ b/sysdeps/mach/hurd/bits/statvfs.h
@@ -87,7 +87,9 @@ enum
,
ST_NOEXEC = 8,
# define ST_NOEXEC ST_NOEXEC
- ST_SYNCHRONOUS = 16
+ ST_SYNCHRONOUS = 16,
# define ST_SYNCHRONOUS ST_SYNCHRONOUS
+ ST_NOATIME = 32 /* Do not update access times. */
+# define ST_NOATIME ST_NOATIME
#endif
};
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index c51737b488..fc3330c1fc 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -106,10 +106,6 @@ init1 (int argc, char *arg0, ...)
char **argv = &arg0;
char **envp = &argv[argc + 1];
struct hurd_startup_data *d;
-#ifndef SHARED
- extern ElfW(Phdr) *_dl_phdr;
- extern size_t _dl_phnum;
-#endif
while (*envp)
++envp;
@@ -121,14 +117,20 @@ init1 (int argc, char *arg0, ...)
if ((void *) d == argv[0])
{
#ifndef SHARED
- /* We may need to see our own phdrs, e.g. for TLS setup.
- Try the usual kludge to find the headers without help from
- the exec server. */
- extern const void _start;
- const ElfW(Ehdr) *const ehdr = &_start;
- _dl_phdr = (ElfW(Phdr) *) ((const void *) ehdr + ehdr->e_phoff);
- _dl_phnum = ehdr->e_phnum;
- assert (ehdr->e_phentsize == sizeof (ElfW(Phdr)));
+ /* With a new enough linker (binutils-2.23 or better),
+ the magic __ehdr_start symbol will be available and
+ __libc_start_main will have done this that way already. */
+ if (_dl_phdr == NULL)
+ {
+ /* We may need to see our own phdrs, e.g. for TLS setup.
+ Try the usual kludge to find the headers without help from
+ the exec server. */
+ extern const void _start;
+ const ElfW(Ehdr) *const ehdr = &_start;
+ _dl_phdr = (const void *) ehdr + ehdr->e_phoff;
+ _dl_phnum = ehdr->e_phnum;
+ assert (ehdr->e_phentsize == sizeof (ElfW(Phdr)));
+ }
#endif
return;
}
diff --git a/sysdeps/mach/hurd/open.c b/sysdeps/mach/hurd/open.c
index 2ba2b5d6e9..49dd287c00 100644
--- a/sysdeps/mach/hurd/open.c
+++ b/sysdeps/mach/hurd/open.c
@@ -52,20 +52,9 @@ weak_alias (__libc_open, __open)
libc_hidden_weak (__open)
weak_alias (__libc_open, open)
-int
-__open_2 (file, oflag)
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid open call: O_CREAT without mode");
-
- return __open (file, oflag);
-}
/* open64 is just the same as open for us. */
weak_alias (__libc_open, __libc_open64)
weak_alias (__libc_open, __open64)
libc_hidden_weak (_open64)
weak_alias (__libc_open, open64)
-strong_alias (__open_2, __open64_2)
diff --git a/sysdeps/mach/hurd/openat.c b/sysdeps/mach/hurd/openat.c
index 9eb163f84a..e568acc875 100644
--- a/sysdeps/mach/hurd/openat.c
+++ b/sysdeps/mach/hurd/openat.c
@@ -56,20 +56,7 @@ __openat (fd, file, oflag)
libc_hidden_def (__openat)
weak_alias (__openat, openat)
-int
-__openat_2 (fd, file, oflag)
- int fd;
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
- __fortify_fail ("invalid openat call: O_CREAT without mode");
-
- return __openat (fd, file, oflag);
-}
-
/* openat64 is just the same as openat for us. */
weak_alias (__openat, __openat64)
libc_hidden_weak (__openat64)
weak_alias (__openat, openat64)
-strong_alias (__openat_2, __openat64_2)
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index d95c2d1156..7bb3ded9af 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -47,6 +47,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio_ext.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/in.h>
@@ -1035,7 +1036,15 @@ gaih_inet (const char *name, const struct gaih_service *service,
}
}
else
- status = NSS_STATUS_UNAVAIL;
+ {
+ status = NSS_STATUS_UNAVAIL;
+ /* Could not load any of the lookup functions. Indicate
+ an internal error if the failure was due to a system
+ error other than the file not being found. We use the
+ errno from the last failed callback. */
+ if (errno != 0 && errno != ENOENT)
+ __set_h_errno (NETDB_INTERNAL);
+ }
}
if (nss_next_action (nip, status) == NSS_ACTION_RETURN)
@@ -1049,7 +1058,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
_res.options |= old_res_options & RES_USE_INET6;
- if (status == NSS_STATUS_UNAVAIL)
+ if (h_errno == NETDB_INTERNAL)
{
result = GAIH_OKIFUNSPEC | -EAI_SYSTEM;
goto free_and_return;
@@ -2489,11 +2498,28 @@ getaddrinfo (const char *name, const char *service,
__typeof (once) old_once = once;
__libc_once (once, gaiconf_init);
/* Sort results according to RFC 3484. */
- struct sort_result results[nresults];
- size_t order[nresults];
+ struct sort_result *results;
+ size_t *order;
struct addrinfo *q;
struct addrinfo *last = NULL;
char *canonname = NULL;
+ bool malloc_results;
+ size_t alloc_size = nresults * (sizeof (*results) + sizeof (size_t));
+
+ malloc_results
+ = !__libc_use_alloca (alloc_size);
+ if (malloc_results)
+ {
+ results = malloc (alloc_size);
+ if (results == NULL)
+ {
+ __free_in6ai (in6ai);
+ return EAI_MEMORY;
+ }
+ }
+ else
+ results = alloca (alloc_size);
+ order = (size_t *) (results + nresults);
/* Now we definitely need the interface information. */
if (! check_pf_called)
@@ -2664,6 +2690,9 @@ getaddrinfo (const char *name, const char *service,
/* Fill in the canonical name into the new first entry. */
p->ai_canonname = canonname;
+
+ if (malloc_results)
+ free (results);
}
__free_in6ai (in6ai);
diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c
index 0efeb5d30d..ddfc3a7510 100644
--- a/sysdeps/posix/opendir.c
+++ b/sysdeps/posix/opendir.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <dirent.h>
#include <fcntl.h>
+#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
diff --git a/sysdeps/posix/timespec_get.c b/sysdeps/posix/timespec_get.c
new file mode 100644
index 0000000000..a578e8b986
--- /dev/null
+++ b/sysdeps/posix/timespec_get.c
@@ -0,0 +1,38 @@
+/* timespec_get -- C11 interface to sample a clock. Generic POSIX.1 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.
+
+ 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 <time.h>
+
+
+/* Set TS to calendar time based in time base BASE. */
+int
+timespec_get (struct timespec *ts, int base)
+{
+ switch (base)
+ {
+ case TIME_UTC:
+ if (__clock_gettime (CLOCK_REALTIME, ts) < 0)
+ return 0;
+ break;
+
+ default:
+ return 0;
+ }
+
+ return base;
+}
diff --git a/sysdeps/posix/truncate.c b/sysdeps/posix/truncate.c
index ae29be8106..7ef1400eb5 100644
--- a/sysdeps/posix/truncate.c
+++ b/sysdeps/posix/truncate.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995-2013 Free Software Foundation, Inc.
+/* Truncate a file given by name. Generic POSIX.1 version.
+ Copyright (C) 1995-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
@@ -22,20 +23,22 @@
/* Truncate PATH to LENGTH bytes. */
int
-truncate (path, length)
- const char *path;
- off_t length;
+__truncate (const char *path, off_t length)
{
int fd, ret, save;
- fd = open (path, O_WRONLY);
+ fd = __open (path, O_WRONLY | (length == 0 ? O_TRUNC : 0));
if (fd < 0)
return -1;
- ret = ftruncate (fd, length);
+ if (length == 0)
+ ret = 0;
+ else
+ ret = __ftruncate (fd, length);
save = errno;
- (void) close (fd);
+ (void) __close (fd);
if (ret < 0)
__set_errno (save);
return ret;
}
+weak_alias (__truncate, truncate)
diff --git a/sysdeps/powerpc/fpu/e_hypot.c b/sysdeps/powerpc/fpu/e_hypot.c
index f23633946f..8cf5b02d92 100644
--- a/sysdeps/powerpc/fpu/e_hypot.c
+++ b/sysdeps/powerpc/fpu/e_hypot.c
@@ -19,6 +19,7 @@
#include <math.h>
#include <math_private.h>
+#include <stdint.h>
static const double two60 = 1.152921504606847e+18;
static const double two500 = 3.2733906078961419e+150;
@@ -26,6 +27,7 @@ static const double two600 = 4.149515568880993e+180;
static const double two1022 = 4.49423283715579e+307;
static const double twoM500 = 3.054936363499605e-151;
static const double twoM600 = 2.4099198651028841e-181;
+static const double two60factor = 1.5592502418239997e+290;
static const double pdnum = 2.225073858507201e-308;
/* __ieee754_hypot(x,y)
@@ -52,13 +54,13 @@ static const double pdnum = 2.225073858507201e-308;
ieee_double_shape_type gh_u2; \
gh_u1.value = (d1); \
gh_u2.value = (d2); \
- (i1) = gh_u1.parts.msw; \
- (i2) = gh_u2.parts.msw; \
+ (i1) = gh_u1.parts.msw & 0x7fffffff; \
+ (i2) = gh_u2.parts.msw & 0x7fffffff; \
} while (0)
# define TEST_INF_NAN(x, y) \
do { \
- int32_t hx, hy; \
+ uint32_t hx, hy; \
GET_TW0_HIGH_WORD(x, y, hx, hy); \
if (hy > hx) { \
uint32_t ht = hx; hx = hy; hy = ht; \
@@ -87,9 +89,20 @@ __ieee754_hypot (double x, double y)
x = y;
y = t;
}
- if (y == 0.0 || (x / y) > two60)
+ if (y == 0.0)
+ return x;
+ /* if y is higher enough, y * 2^60 might overflow. The tests if
+ y >= 1.7976931348623157e+308/2^60 (two60factor) and uses the
+ appropriate check to avoid the overflow exception generation. */
+ if (y > two60factor)
{
- return x + y;
+ if ((x / y) > two60)
+ return x + y;
+ }
+ else
+ {
+ if (x > (y * two60))
+ return x + y;
}
if (x > two500)
{
diff --git a/sysdeps/powerpc/fpu/e_hypotf.c b/sysdeps/powerpc/fpu/e_hypotf.c
index e97f0c35e3..5fc91ee4c6 100644
--- a/sysdeps/powerpc/fpu/e_hypotf.c
+++ b/sysdeps/powerpc/fpu/e_hypotf.c
@@ -19,7 +19,7 @@
#include <math.h>
#include <math_private.h>
-
+#include <stdint.h>
static const float two30 = 1.0737418e09;
@@ -46,13 +46,13 @@ static const float two30 = 1.0737418e09;
ieee_float_shape_type gf_u2; \
gf_u1.value = (f1); \
gf_u2.value = (f2); \
- (i1) = gf_u1.word; \
- (i2) = gf_u2.word; \
+ (i1) = gf_u1.word & 0x7fffffff; \
+ (i2) = gf_u2.word & 0x7fffffff; \
} while (0)
# define TEST_INF_NAN(x, y) \
do { \
- int32_t hx, hy; \
+ uint32_t hx, hy; \
GET_TWO_FLOAT_WORD(x, y, hx, hy); \
if (hy > hx) { \
uint32_t ht = hx; hx = hy; hy = ht; \
@@ -69,22 +69,8 @@ static const float two30 = 1.0737418e09;
float
__ieee754_hypotf (float x, float y)
{
- x = fabsf (x);
- y = fabsf (y);
-
TEST_INF_NAN (x, y);
- if (y > x)
- {
- float t = y;
- y = x;
- x = t;
- }
- if (y == 0.0 || (x / y) > two30)
- {
- return x + y;
- }
-
return __ieee754_sqrt ((double) x * x + (double) y * y);
}
strong_alias (__ieee754_hypotf, __hypotf_finite)
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c
index 97bb870362..3efe277f37 100644
--- a/sysdeps/powerpc/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/fpu/e_sqrt.c
@@ -20,7 +20,7 @@
#include <math_private.h>
#include <fenv_libc.h>
#include <inttypes.h>
-
+#include <stdint.h>
#include <sysdep.h>
#include <ldsodefs.h>
diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c
index 3b2e243bb8..6e50a3cd75 100644
--- a/sysdeps/powerpc/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/fpu/e_sqrtf.c
@@ -20,7 +20,7 @@
#include <math_private.h>
#include <fenv_libc.h>
#include <inttypes.h>
-
+#include <stdint.h>
#include <sysdep.h>
#include <ldsodefs.h>
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index 5072190fd7..73b83b422f 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -1,32 +1,32 @@
# Begin of automatic generation
# acos
-Test "acos (-0x0.ffffffff8p0) == 3.1415773948007305904329067627145550395696":
+Test "acos (-0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "acos (-0x0.ffffffp0) == 3.1412473866050770348750401337968641476999":
+Test "acos (-0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "acos (2e-17) == 1.57079632679489659923132169163975144":
+Test "acos (2e-17)":
ildouble: 1
ldouble: 1
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -35,21 +35,21 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -58,1241 +58,5038 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 2
ldouble: 2
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 2
ldouble: 2
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 2
ldouble: 2
# asin
-Test "asin (-0x0.ffffffff8p0) == -1.5707810680058339712015850710748035974710":
+Test "asin (-0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffp0) == -1.5704510598101804156437184421571127056013":
+Test "asin (-0x0.ffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
+Test "asin (0.75)":
ildouble: 2
ldouble: 2
-Test "asin (0x0.ffffffff8p0) == 1.5707810680058339712015850710748035974710":
+Test "asin (0x0.ffffffff8p0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffp0) == 1.5704510598101804156437184421571127056013":
+Test "asin (0x0.ffffffp0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cabs
-Test "cabs (-0.75 + 12.390625 i) == 12.4133028598606664302388810868156657":
+Test "cabs (-0.75 + 12.390625 i)":
float: 1
ifloat: 1
-Test "cabs (-0.75 - 12.390625 i) == 12.4133028598606664302388810868156657":
+Test "cabs (-0.75 - 12.390625 i)":
float: 1
ifloat: 1
-Test "cabs (-12.390625 + 0.75 i) == 12.4133028598606664302388810868156657":
+Test "cabs (-12.390625 + 0.75 i)":
float: 1
ifloat: 1
-Test "cabs (-12.390625 - 0.75 i) == 12.4133028598606664302388810868156657":
+Test "cabs (-12.390625 - 0.75 i)":
float: 1
ifloat: 1
-Test "cabs (0.75 + 1.25 i) == 1.45773797371132511771853821938639577":
+Test "cabs (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cabs (0.75 + 12.390625 i) == 12.4133028598606664302388810868156657":
+Test "cabs (0.75 + 12.390625 i)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (-0.5 + +0 i) == 2.094395102393195492308428922186335256131 - 0 i":
+Test "Imaginary part of: cacos (-0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+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
+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
+Test "Real part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (-0x0.ffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Real part of: cacos (-1.0 + 0.5 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (-1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacos (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (0.5 + 0x1p-52 i)":
+ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 - 0 i) == 2.094395102393195492308428922186335256131 + +0 i":
+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
+ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+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 "Imaginary part of: cacos (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.75 + 1.25 i)":
+float: 1
ifloat: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0x0.fffffffffffff8p0 + 0.0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0.0 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0x1.fp-1025 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.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+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 "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
ldouble: 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
+ildouble: 2
+ldouble: 2
+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
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-105 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-105 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (1.5 + +0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+ildouble: 1
+ldouble: 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 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 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
+Test "Imaginary part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (-0x0.ffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (-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 "Imaginary part of: cacosh (-1.0 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacosh (-1.0 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 + +0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 - 0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-2 - 3 i)":
double: 1
float: 7
idouble: 1
ifloat: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
double: 1
float: 3
idouble: 1
ifloat: 3
-Test "Imaginary part of: cacosh (0.5 + +0 i) == +0 + 1.047197551196597746154214461093167628066 i":
+Test "Real part of: cacosh (0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+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 "Real part of: cacosh (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1.fp-1025 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.fffffffffffff8p0 - 0.0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1.fp-1025 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.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (0.5 - 0 i) == +0 - 1.047197551196597746154214461093167628066 i":
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
double: 1
idouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+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
+ildouble: 2
+ldouble: 2
+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 "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.5 + +0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 + 0.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + +0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (-0x0.ffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 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 "Imaginary part of: casin (-0x1.fp-1025 - 0x1.000000000000000000000000008p0 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 "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 "Real part of: casin (-0x1.fp-30 + 1.0 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 "Real part of: casin (-0x1.fp-30 - 1.0 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 (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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)":
+float: 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-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
+float: 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-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: casin (-2 - 3 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0.5 + +0 i) == -0.5235987755982988730771072305465838140329 + +0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 - 0 i) == -0.5235987755982988730771072305465838140329 - 0 i":
+Test "Real part of: casin (0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Real part of: casin (0.5 - 0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 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 "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 + +0 i) == 0.5235987755982988730771072305465838140329 + +0 i":
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (0x0.ffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 - 0 i) == 0.5235987755982988730771072305465838140329 - 0 i":
+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
+ildouble: 1
+ldouble: 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 + 0x1.000000000000000000000000008p0 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 "Imaginary part of: casin (0x1.fp-1025 - 0x1.000000000000000000000000008p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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 "Real part of: casin (0x1.fp-30 + 1.0 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 "Real part of: casin (0x1.fp-30 - 1.0 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.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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)":
+float: 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-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-23 - 0.5 i)":
+float: 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-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casinh
-Test "Imaginary part of: casinh (+0 + 0.5 i) == +0 + 0.5235987755982988730771072305465838140329 i":
+Test "Imaginary part of: casinh (+0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (+0 - 0.5 i) == +0 - 0.5235987755982988730771072305465838140329 i":
+Test "Imaginary part of: casinh (+0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0 + 0.5 i) == -0 + 0.5235987755982988730771072305465838140329 i":
+Test "Imaginary part of: casinh (-0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casinh (-0 - 0.5 i) == -0 - 0.5235987755982988730771072305465838140329 i":
+Test "Imaginary part of: casinh (-0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (-0 - 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+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)":
+float: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+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)":
+float: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (-0x1.000000000000000000000000008p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000000000000000000000000008p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000000000000000000000000008p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000000000000000000000000008p0 - 0x1.fp-1025 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.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)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-63 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 + 0.25 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.0 - 0.25 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+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: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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 (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 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)":
+float: 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
+ildouble: 1
+ldouble: 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)":
+float: 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 "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (0x1.000000000000000000000000008p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000000000000000000000000008p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000000000000000000000000008p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000000000000000000000000008p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-105 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-105 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-52 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-52 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-63 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (1.0 + 0x1.fp-30 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 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 "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+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 "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: catan (-0x1.000000000000000000000000008p0 + 0x1p-54 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1.000000000000000000000000008p0 - 0x1p-54 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: catan (-0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real 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 "Real 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 "Real 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 (-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-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 + 0x1p-57 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-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-2 - 3 i)":
float: 3
ifloat: 3
ildouble: 1
ldouble: 1
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Real part of: catan (0.75 + 1.25 i)":
float: 4
ifloat: 4
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: catan (0x1.000000000000000000000000008p0 + 0x1p-54 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1.000000000000000000000000008p0 - 0x1p-54 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: catan (0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real 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 "Real 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 "Real 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 (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-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 + 0x1p-57 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-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-54 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-54 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-57 - 1.0 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 "Imaginary part of: catanh (-1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary 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 "Imaginary part of: catanh (-1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary 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 "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Imaginary part of: catanh (-2 - 3 i)":
float: 4
ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
float: 6
ifloat: 6
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Imaginary part of: catanh (0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-54 + 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-54 - 0x1.000000000000000000000000008p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-57 - 1.0 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 "Imaginary part of: catanh (1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary 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 "Imaginary part of: catanh (1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary part of: catanh (1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Imaginary part of: cexp (500 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
+Test "Imaginary part of: clog (-2 - 3 i)":
float: 3
ifloat: 3
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Imaginary part of: clog (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 709.8942846690411016323109979483151967689 + 0.4636476090008061606231772164674799632783 i":
+Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i) == 1.1723955140027907954461000991619077811832e-12 + 1.5622968405332756349813737986164832897108 i":
+Test "Imaginary part of: clog (0x11682p-23 + 0x7ffed1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i) == -4.7775669192897997174762089350332738583822e-50 + 0.8393953487996880419413728440067635213372 i":
+Test "Imaginary part of: clog (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 1.0168910106364605304135563536838075568606e-30 + 0.8208373755522359859870890246475340086663 i":
+Test "Imaginary part of: clog (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x187190c1a334497bdbde5a95f48p-106 + 0x3b25f08062d0a095c4cfbbc338dp-106 i) == -1.7471844652198029695350765775994001163767e-63 + 1.1789110097072986038243729592318526094314 i":
+Test "Imaginary part of: clog (0x187190c1a334497bdbde5a95f48p-106 + 0x3b25f08062d0a095c4cfbbc338dp-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i) == -1.6298145321400412054744424587143483169412e-08 + 0.9223574537155056772124552172295398141249 i":
+Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 6.4064442119814669184296141278612389400075e-37 + 0.9193591364645830864185131402313014890145 i":
+Test "Imaginary part of: clog (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 4.3299788920664682288477984749202524623248e-63 + 1.4746938237585656250866370987773473745867 i":
+Test "Imaginary part of: clog (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i) == -1.0480505352462576151523512837107080269981e-13 + 0.8858771987699967480545613322309315260313 i":
+Test "Imaginary part of: clog (0xa1f2c1p-24 + 0xc643aep-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i) == -6.2122796286154679676173624516405339768606e-30 + 1.4904138780720095276446375492434049214172 i":
+Test "Imaginary part of: clog (0xa4722f19346cp-51 + 0x7f9631c5e7f07p-51 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xf2p-10 + 0x3e3p-10 i) == 6.1988446308070710970664736815277450078106e-06 + 1.3322126499153926210226335249558203898460 i":
+Test "Imaginary part of: clog (0xf2p-10 + 0x3e3p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 308.3031705664207720674749211936626341569 + 0.2013595981366865903254995612594728746470 i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Imaginary part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i) == -2.0748709499710785084693619097712106753591e-50 + 0.3645447681189598740620098186365764884771 i":
+Test "Imaginary part of: clog10 (0x155f8afc4c48685bf63610p-85 + 0x17d0cf2652cdbeb1294e19p-85 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x15d8ab6ed05ca514086ac3a1e84p-105 + 0x1761e480aa094c0b10b34b09ce9p-105 i) == 4.3548095442952115860848857519953610343042e-63 + 0.3558376234889641500775150477035448866763 i":
+Test "Real part of: clog10 (0x15d8ab6ed05ca514086ac3a1e84p-105 + 0x1761e480aa094c0b10b34b09ce9p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -5.1816837072162316773907242302011632570857e-37 + 0.5386167838952956925896424154370364458140 i":
+Test "Imaginary part of: clog10 (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i) == -4.3074341162203896332989394770760901408798e-39 + 0.5709443672155660428417571212549720987784 i":
+Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
@@ -1301,227 +5098,227 @@ ildouble: 1
ldouble: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (16.0) == -0.9576594803233846418996372326511034717803":
+Test "cos (16.0)":
ildouble: 2
ldouble: 2
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "cos (pi/2) == 0":
+Test "cos (pi/2)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_downward (9)":
ildouble: 1
ldouble: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
-Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_towardzero (4)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
ildouble: 2
ldouble: 2
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_upward (5)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_tonearest (24)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 2
ldouble: 2
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 2
ldouble: 2
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 2
ldouble: 2
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 4
idouble: 2
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1530,273 +5327,273 @@ ildouble: 2
ldouble: 2
# csin
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Imaginary part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Imaginary part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0 - 1 i) == M_SQRT_2_2 - M_SQRT_2_2 i":
+Test "Real part of: csqrt (0 - 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0 - 1 i) == M_SQRT_2_2 - M_SQRT_2_2 i":
+Test "Imaginary part of: csqrt (0 - 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1p-1073 + 0x1p-1073 i) == 3.453664695497464982856905711457966660085e-162 + 1.430554756764195530630723976279903095110e-162 i":
+Test "Real part of: csqrt (0x1p-1073 + 0x1p-1073 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i) == 3.453664695497464982856905711457966660085e-162 + 1.430554756764195530630723976279903095110e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i) == 2.442109726130830256743814843868934877597e-162 + 1.011554969366634726113090867589031782487e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1p-147 + 0x1p-147 i) == 8.225610928685557596194006925540350401606e-23 + 3.407159605465907500737319471202779419102e-23 i":
+Test "Real part of: csqrt (0x1p-147 + 0x1p-147 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i) == 8.225610928685557596194006925540350401606e-23 + 3.407159605465907500737319471202779419102e-23 i":
+Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (0x1p-149 + 0x1p-149 i) == 4.112805464342778798097003462770175200803e-23 + 1.703579802732953750368659735601389709551e-23 i":
+Test "Real part of: csqrt (0x1p-149 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i) == 4.112805464342778798097003462770175200803e-23 + 1.703579802732953750368659735601389709551e-23 i":
+Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+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) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
# ctan_tonearest
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 13
ldouble: 13
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 6
ldouble: 6
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 10
ldouble: 10
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
@@ -1805,71 +5602,71 @@ ildouble: 1
ldouble: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
@@ -1878,52 +5675,52 @@ ildouble: 4
ldouble: 4
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 13
ldouble: 13
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 10
ldouble: 10
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 6
ldouble: 6
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
@@ -1932,205 +5729,208 @@ ildouble: 3
ldouble: 3
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
-Test "erfc (0x1.ffff56789abcdef0123456789a8p+2) == 1.123161416304655390092138725253789378459e-29":
+Test "erfc (0x1.ffff56789abcdef0123456789a8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp
-Test "exp (0.75) == 2.11700001661267466854536981983709561":
+Test "exp (0.75)":
ildouble: 1
ldouble: 1
-Test "exp (50.0) == 5184705528587072464087.45332293348538":
+Test "exp (50.0)":
ildouble: 1
ldouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# exp2
-Test "exp2 (10) == 1024":
+Test "exp2 (10)":
ildouble: 2
ldouble: 2
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (0.75, 1.25) == 1.45773797371132511771853821938639577":
+Test "hypot (0.75, 1.25)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "hypot (0x1.234566p-126, 0x1.234566p-126) == 1.891441686191081936598531534017449451173e-38":
+Test "hypot (0x1.234566p-126, 0x1.234566p-126)":
double: 1
idouble: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "j0 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -2139,182 +5939,185 @@ ildouble: 1
ldouble: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 4
ldouble: 4
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
idouble: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 4
ldouble: 4
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 2
ldouble: 2
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 4
ldouble: 4
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 2
float: 2
idouble: 2
@@ -2323,12 +6126,12 @@ ildouble: 7
ldouble: 7
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -2337,481 +6140,918 @@ ildouble: 3
ldouble: 3
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (e) == M_LOG2El":
+Test "log2 (e)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
# pow_downward
-Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_downward (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_towardzero (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
-Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_upward (1.5, 1.03125)":
ildouble: 1
ldouble: 1
# sin
-Test "sin (16.0) == -0.2879033166650652947844562482186175296207":
+Test "sin (16.0)":
ildouble: 2
ldouble: 2
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_downward (1)":
ildouble: 4
ldouble: 4
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (pi/2) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh
-Test "sinh (0.75) == 0.822316731935829980703661634446913849":
+Test "sinh (0.75)":
ildouble: 1
ldouble: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_upward
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# sqrt
-Test "sqrt (0.75) == 0.866025403784438646763723170752936183":
+Test "sqrt (0.75)":
double: 1
idouble: 1
-Test "sqrt (2) == M_SQRT2l":
+Test "sqrt (2)":
double: 1
idouble: 1
# tan
-Test "tan (-0xc.908p-4) == -0.9997603425502441410973077452249560802034":
+Test "tan (-0xc.908p-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90cp-4) == -0.9998823910588060302788513970802357770031":
+Test "tan (-0xc.90cp-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90ep-4) == -0.9999434208994808753305784795924711152508":
+Test "tan (-0xc.90ep-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90f8p-4) == -0.9999891957244072765118898375645469865764":
+Test "tan (-0xc.90f8p-4)":
ildouble: 2
ldouble: 2
-Test "tan (-0xc.90fcp-4) == -0.9999968250656122402859679132395522927393":
+Test "tan (-0xc.90fcp-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.90fd8p-4) == -0.9999996860835706212861509874451585282616":
+Test "tan (-0xc.90fd8p-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.90fdap-4) == -0.9999999245021033010474530133665235922808":
+Test "tan (-0xc.90fdap-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.92p-4) == -1.0004928571392300571266638743539017593717":
+Test "tan (-0xc.92p-4)":
ildouble: 1
ldouble: 1
-Test "tan (-0xc.9p-4) == -0.9995162902115457818029468900654150261381":
+Test "tan (-0xc.9p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.908p-4) == 0.9997603425502441410973077452249560802034":
+Test "tan (0xc.908p-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90cp-4) == 0.9998823910588060302788513970802357770031":
+Test "tan (0xc.90cp-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90ep-4) == 0.9999434208994808753305784795924711152508":
+Test "tan (0xc.90ep-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90f8p-4) == 0.9999891957244072765118898375645469865764":
+Test "tan (0xc.90f8p-4)":
ildouble: 2
ldouble: 2
-Test "tan (0xc.90fcp-4) == 0.9999968250656122402859679132395522927393":
+Test "tan (0xc.90fcp-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.90fd8p-4) == 0.9999996860835706212861509874451585282616":
+Test "tan (0xc.90fd8p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.90fdap-4) == 0.9999999245021033010474530133665235922808":
+Test "tan (0xc.90fdap-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.92p-4) == 1.0004928571392300571266638743539017593717":
+Test "tan (0xc.92p-4)":
ildouble: 1
ldouble: 1
-Test "tan (0xc.9p-4) == 0.9995162902115457818029468900654150261381":
+Test "tan (0xc.9p-4)":
ildouble: 1
ldouble: 1
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_tonearest
-Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_tonearest (10)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_tonearest (4)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_tonearest (7)":
ildouble: 1
ldouble: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_towardzero (7)":
ildouble: 2
ldouble: 2
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_upward (7)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.ffffffp0)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (-0x1.000002p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0a32a2p+5)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x13.ffffep0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x13.ffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.000000000001p0)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x14.00002p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.ffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.00000000000000000000000008p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1e.000000000001p0)":
+double: 3
+idouble: 3
+ildouble: 3
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x29.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.00004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.fffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 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 (-0x32.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.000008p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x4.fffff8p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.000008p0)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.0000000000004p0)":
+double: 3
+idouble: 3
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x7.fffff8p0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "tgamma (-0x7.ffffffffffffcp0)":
+double: 3
+idouble: 3
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0x8.00000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x9.fffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0xa.00001p0)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-2.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-3.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-4.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (0.5)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7)":
+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
+idouble: 1
+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.fffff8p0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x5.000008p0)":
+float: 3
+ifloat: 3
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.0000000000004p0)":
+double: 4
+idouble: 4
+Test "tgamma (0x7.000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x7.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "tgamma (0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f4p+4)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (18.5)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (19.5)":
+double: 2
+idouble: 2
+Test "tgamma (2.5)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+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 (33.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (34.5)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 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
float: 1
idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
ildouble: 1
ldouble: 1
-Test "y0 (0.75) == -0.137172769385772397522814379396581855":
+Test "y0 (0.75)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-100) == -4.420092432563900590456563035154802121284e+1":
+Test "y0 (0x1p-100)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
double: 1
idouble: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
idouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
+Test "y0 (2.0)":
double: 1
idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -2820,41 +7060,44 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (0x1p-20) == -6.6754421443450423911167962313100637952285e+05":
+Test "y1 (0x1p-20)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (0x1p1023)":
+ildouble: 1
+ldouble: 1
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 2
float: 1
idouble: 2
ifloat: 2
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -2863,105 +7106,105 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
+Test "yn (0, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
+Test "yn (0, 2.0)":
double: 1
idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 2
ifloat: 2
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
float: 2
ifloat: 2
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
float: 1
ifloat: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
@@ -3050,35 +7293,27 @@ ldouble: 1
Function: Real part of "cacos":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
Function: Imaginary part of "cacos":
double: 3
-float: 1
+float: 2
idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
Function: Real part of "cacosh":
double: 1
float: 7
idouble: 1
ifloat: 7
-ildouble: 1
-ldouble: 1
Function: Imaginary part of "cacosh":
double: 1
float: 3
idouble: 1
ifloat: 3
-ildouble: 1
-ldouble: 1
Function: Real part of "casin":
double: 1
@@ -3090,25 +7325,21 @@ ldouble: 1
Function: Imaginary part of "casin":
double: 3
-float: 1
+float: 2
idouble: 3
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
Function: Real part of "casinh":
double: 5
-float: 1
+float: 2
idouble: 5
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
Function: Imaginary part of "casinh":
double: 3
-float: 6
+float: 1
idouble: 3
-ifloat: 6
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -3128,11 +7359,17 @@ ldouble: 1
Function: Real part of "catanh":
double: 4
+float: 1
idouble: 4
+ifloat: 1
+ildouble: 1
+ldouble: 1
Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Function: "cbrt":
double: 1
@@ -3225,8 +7462,6 @@ double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 1
-ldouble: 1
Function: "cos_downward":
float: 1
@@ -3661,8 +7896,6 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
Function: "sinh":
ildouble: 1
@@ -3725,12 +7958,12 @@ ildouble: 1
ldouble: 1
Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 3
+ldouble: 3
Function: "y0":
double: 2
diff --git a/sysdeps/powerpc/math-tests.h b/sysdeps/powerpc/math-tests.h
new file mode 100644
index 0000000000..d87dc9a7f6
--- /dev/null
+++ b/sysdeps/powerpc/math-tests.h
@@ -0,0 +1,27 @@
+/* Configuration for math tests. PowerPC 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/>. */
+
+/* On PowerPC, in versions of GCC up to at least 4.7.2, a type cast -- which is
+ a IEEE 754-2008 general-computational convertFormat operation (IEEE
+ 754-2008, 5.4.2) -- does not turn a sNaN into a qNaN (whilst raising an
+ INVALID exception), which is contrary to IEEE 754-2008 5.1 and 7.2. This
+ renders certain tests infeasible in this scenario.
+ <http://gcc.gnu.org/PR56828>. */
+#define SNAN_TESTS_TYPE_CAST 0
+
+#include_next <math-tests.h>
diff --git a/sysdeps/powerpc/power4/fpu/mpa-arch.h b/sysdeps/powerpc/power4/fpu/mpa-arch.h
index 9007c9d0ca..43175bbcdf 100644
--- a/sysdeps/powerpc/power4/fpu/mpa-arch.h
+++ b/sysdeps/powerpc/power4/fpu/mpa-arch.h
@@ -40,7 +40,7 @@ typedef double mantissa_store_t;
({ \
double u = ((x) + TWO52) - TWO52; \
if (u > (x)) \
- u -= ONE; \
+ u -= 1; \
(r) = u; \
(x) -= u; \
})
diff --git a/sysdeps/powerpc/power4/fpu/mpa.c b/sysdeps/powerpc/power4/fpu/mpa.c
index 1858c97407..9d4d644cf9 100644
--- a/sysdeps/powerpc/power4/fpu/mpa.c
+++ b/sysdeps/powerpc/power4/fpu/mpa.c
@@ -35,15 +35,15 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
double u, zk, zk2;
/* Is z=0? */
- if (__glibc_unlikely (X[0] * Y[0] == ZERO))
+ if (__glibc_unlikely (X[0] * Y[0] == 0))
{
- Z[0] = ZERO;
+ Z[0] = 0;
return;
}
/* Multiply, add and carry */
k2 = (p2 < 3) ? p2 + p2 : p2 + 3;
- zk = Z[k2] = ZERO;
+ zk = Z[k2] = 0;
for (k = k2; k > 1;)
{
if (k > p2)
@@ -101,7 +101,7 @@ __mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
int e = EX + EY;
/* Is there a carry beyond the most significant digit? */
- if (Z[1] == ZERO)
+ if (Z[1] == 0)
{
for (i = 1; i <= p2; i++)
Z[i] = Z[i + 1];
@@ -123,24 +123,24 @@ __sqr (const mp_no *x, mp_no *y, int p)
double u, yk;
/* Is z=0? */
- if (__glibc_unlikely (X[0] == ZERO))
+ if (__glibc_unlikely (X[0] == 0))
{
- Y[0] = ZERO;
+ Y[0] = 0;
return;
}
/* We need not iterate through all X's since it's pointless to
multiply zeroes. */
for (ip = p; ip > 0; ip--)
- if (X[ip] != ZERO)
+ if (X[ip] != 0)
break;
k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
while (k > 2 * ip + 1)
- Y[k--] = ZERO;
+ Y[k--] = 0;
- yk = ZERO;
+ yk = 0;
while (k > p)
{
@@ -204,7 +204,7 @@ __sqr (const mp_no *x, mp_no *y, int p)
int e = EX * 2;
/* Is there a carry beyond the most significant digit? */
- if (__glibc_unlikely (Y[1] == ZERO))
+ if (__glibc_unlikely (Y[1] == 0))
{
for (i = 1; i <= p; i++)
Y[i] = Y[i + 1];
diff --git a/sysdeps/powerpc/power5+/fpu/s_modf.c b/sysdeps/powerpc/power5+/fpu/s_modf.c
new file mode 100644
index 0000000000..b45bf66169
--- /dev/null
+++ b/sysdeps/powerpc/power5+/fpu/s_modf.c
@@ -0,0 +1,58 @@
+/* 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+double
+__modf (double x, double *iptr)
+{
+ if (__builtin_isinf (x))
+ {
+ *iptr = x;
+ return __copysign (0.0, x);
+ }
+ else if (__builtin_isnan (x))
+ {
+ *iptr = NAN;
+ return NAN;
+ }
+
+ if (x >= 0.0)
+ {
+ *iptr = __floor (x);
+ return (x - *iptr);
+ }
+ else
+ {
+ *iptr = __ceil (x);
+ return (x - *iptr);
+ }
+}
+weak_alias (__modf, modf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__modf, __modfl)
+weak_alias (__modf, modfl)
+#endif
+#ifdef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __modf, modfl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __modf, modfl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/powerpc/power5+/fpu/s_modff.c b/sysdeps/powerpc/power5+/fpu/s_modff.c
new file mode 100644
index 0000000000..55759cde05
--- /dev/null
+++ b/sysdeps/powerpc/power5+/fpu/s_modff.c
@@ -0,0 +1,46 @@
+/* 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_private.h>
+
+float
+__modff (float x, float *iptr)
+{
+ if (__builtin_isinff (x))
+ {
+ *iptr = x;
+ return __copysignf (0.0, x);
+ }
+ else if (__builtin_isnanf (x))
+ {
+ *iptr = NAN;
+ return NAN;
+ }
+
+ if (x >= 0.0)
+ {
+ *iptr = __floorf (x);
+ return (x - *iptr);
+ }
+ else
+ {
+ *iptr = __ceilf (x);
+ return (x - *iptr);
+ }
+}
+weak_alias (__modff, modff)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rint.S b/sysdeps/powerpc/powerpc32/fpu/s_rint.S
index f3cd036680..f04055f461 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_rint.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_rint.S
@@ -45,14 +45,14 @@ ENTRY (__rint)
fsub fp12,fp13,fp13 /* generate 0.0 */
fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnllr- cr7
- bng- cr6,.L4
+ bnllr cr7
+ bng cr6,.L4
fadd fp1,fp1,fp13 /* x+= TWO52; */
fsub fp1,fp1,fp13 /* x-= TWO52; */
fabs fp1,fp1 /* if (x == 0.0) */
blr /* x = 0.0; */
.L4:
- bnllr- cr6 /* if (x < 0.0) */
+ bnllr cr6 /* if (x < 0.0) */
fsub fp1,fp1,fp13 /* x-= TWO52; */
fadd fp1,fp1,fp13 /* x+= TWO52; */
fnabs fp1,fp1 /* if (x == 0.0) */
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S b/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
index 247dd4a14d..e0301af2e7 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
@@ -41,14 +41,14 @@ ENTRY (__rintf)
fsubs fp12,fp13,fp13 /* generate 0.0 */
fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnllr- cr7
- bng- cr6,.L4
+ bnllr cr7
+ bng cr6,.L4
fadds fp1,fp1,fp13 /* x+= TWO23; */
fsubs fp1,fp1,fp13 /* x-= TWO23; */
fabs fp1,fp1 /* if (x == 0.0) */
blr /* x = 0.0; */
.L4:
- bnllr- cr6 /* if (x < 0.0) */
+ bnllr cr6 /* if (x < 0.0) */
fsubs fp1,fp1,fp13 /* x-= TWO23; */
fadds fp1,fp1,fp13 /* x+= TWO23; */
fnabs fp1,fp1 /* if (x == 0.0) */
diff --git a/sysdeps/powerpc/powerpc32/power5+/Implies b/sysdeps/powerpc/powerpc32/power5+/Implies
index a51d2fdf95..02d222d22a 100644
--- a/sysdeps/powerpc/powerpc32/power5+/Implies
+++ b/sysdeps/powerpc/powerpc32/power5+/Implies
@@ -1,2 +1,4 @@
+powerpc/power5+/fpu
+powerpc/power5+
powerpc/powerpc32/power5/fpu
powerpc/powerpc32/power5
diff --git a/sysdeps/powerpc/powerpc32/power5/Implies b/sysdeps/powerpc/powerpc32/power5/Implies
index 17139bf21c..17949d41c5 100644
--- a/sysdeps/powerpc/powerpc32/power5/Implies
+++ b/sysdeps/powerpc/powerpc32/power5/Implies
@@ -1,2 +1,4 @@
+powerpc/power5/fpu
+powerpc/power5
powerpc/powerpc32/power4/fpu
powerpc/powerpc32/power4
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_rint.S b/sysdeps/powerpc/powerpc64/fpu/s_rint.S
index f3339727f4..57e3759bf0 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_rint.S
+++ b/sysdeps/powerpc/powerpc64/fpu/s_rint.S
@@ -34,14 +34,14 @@ EALIGN (__rint, 4, 0)
fsub fp12,fp13,fp13 /* generate 0.0 */
fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnllr- cr7
- bng- cr6,.L4
+ bnllr cr7
+ bng cr6,.L4
fadd fp1,fp1,fp13 /* x+= TWO52; */
fsub fp1,fp1,fp13 /* x-= TWO52; */
fabs fp1,fp1 /* if (x == 0.0) */
blr /* x = 0.0; */
.L4:
- bnllr- cr6 /* if (x < 0.0) */
+ bnllr cr6 /* if (x < 0.0) */
fsub fp1,fp1,fp13 /* x-= TWO52; */
fadd fp1,fp1,fp13 /* x+= TWO52; */
fnabs fp1,fp1 /* if (x == 0.0) */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_rintf.S b/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
index 26b08721c7..cb28ec748d 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
+++ b/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
@@ -30,14 +30,14 @@ EALIGN (__rintf, 4, 0)
fsubs fp12,fp13,fp13 /* generate 0.0 */
fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnllr- cr7
- bng- cr6,.L4
+ bnllr cr7
+ bng cr6,.L4
fadds fp1,fp1,fp13 /* x+= TWO23; */
fsubs fp1,fp1,fp13 /* x-= TWO23; */
fabs fp1,fp1 /* if (x == 0.0) */
blr /* x = 0.0; */
.L4:
- bnllr- cr6 /* if (x < 0.0) */
+ bnllr cr6 /* if (x < 0.0) */
fsubs fp1,fp1,fp13 /* x-= TWO23; */
fadds fp1,fp1,fp13 /* x+= TWO23; */
fnabs fp1,fp1 /* if (x == 0.0) */
diff --git a/sysdeps/powerpc/powerpc64/power5+/Implies b/sysdeps/powerpc/powerpc64/power5+/Implies
index a01a13ab12..565bc94471 100644
--- a/sysdeps/powerpc/powerpc64/power5+/Implies
+++ b/sysdeps/powerpc/powerpc64/power5+/Implies
@@ -1,2 +1,4 @@
+powerpc/power5+/fpu
+powerpc/power5+
powerpc/powerpc64/power5/fpu
powerpc/powerpc64/power5
diff --git a/sysdeps/powerpc/powerpc64/power5/Implies b/sysdeps/powerpc/powerpc64/power5/Implies
index bedb20b65c..b36831e287 100644
--- a/sysdeps/powerpc/powerpc64/power5/Implies
+++ b/sysdeps/powerpc/powerpc64/power5/Implies
@@ -1,2 +1,4 @@
+powerpc/power5/fpu
+powerpc/power5
powerpc/powerpc64/power4/fpu
powerpc/powerpc64/power4
diff --git a/sysdeps/powerpc/sys/platform/ppc.h b/sysdeps/powerpc/sys/platform/ppc.h
index 740831e677..81f3bf9bff 100644
--- a/sysdeps/powerpc/sys/platform/ppc.h
+++ b/sysdeps/powerpc/sys/platform/ppc.h
@@ -50,4 +50,66 @@ __ppc_get_timebase (void)
#endif
}
+/* The following functions provide hints about the usage of shared processor
+ resources, as defined in ISA 2.06 and newer. */
+
+/* Provides a hint that performance will probably be improved if shared
+ resources dedicated to the executing processor are released for use by other
+ processors. */
+static inline void
+__ppc_yield (void)
+{
+ __asm__ volatile ("or 27,27,27");
+}
+
+/* Provides a hint that performance will probably be improved if shared
+ resources dedicated to the executing processor are released until
+ all outstanding storage accesses to caching-inhibited storage have been
+ completed. */
+static inline void
+__ppc_mdoio (void)
+{
+ __asm__ volatile ("or 29,29,29");
+}
+
+/* Provides a hint that performance will probably be improved if shared
+ resources dedicated to the executing processor are released until all
+ outstanding storage accesses to cacheable storage for which the data is not
+ in the cache have been completed. */
+static inline void
+__ppc_mdoom (void)
+{
+ __asm__ volatile ("or 30,30,30");
+}
+
+
+/* ISA 2.05 and beyond support the Program Priority Register (PPR) to adjust
+ thread priorities based on lock acquisition, wait and release. The ISA
+ defines the use of form 'or Rx,Rx,Rx' as the way to modify the PRI field.
+ The unprivileged priorities are:
+ Rx = 1 (low)
+ Rx = 2 (medium)
+ Rx = 6 (medium-low/normal)
+ The 'or' instruction form is a nop in previous hardware, so it is safe to
+ use unguarded. The default value is 'medium'.
+ */
+
+static inline void
+__ppc_set_ppr_med (void)
+{
+ __asm__ volatile ("or 2,2,2");
+}
+
+static inline void
+__ppc_set_ppr_med_low (void)
+{
+ __asm__ volatile ("or 6,6,6");
+}
+
+static inline void
+__ppc_set_ppr_low (void)
+{
+ __asm__ volatile ("or 1,1,1");
+}
+
#endif /* sys/platform/ppc.h */
diff --git a/sysdeps/powerpc/test-gettimebase.c b/sysdeps/powerpc/test-gettimebase.c
index 88049c69c7..3ce55c7f0f 100644
--- a/sysdeps/powerpc/test-gettimebase.c
+++ b/sysdeps/powerpc/test-gettimebase.c
@@ -22,6 +22,7 @@
#include <inttypes.h>
#include <stdio.h>
+#include <stdint.h>
#include <sys/platform/ppc.h>
diff --git a/sysdeps/pthread/aio_fsync.c b/sysdeps/pthread/aio_fsync.c
index 79b3583bd1..1e5a2584fb 100644
--- a/sysdeps/pthread/aio_fsync.c
+++ b/sysdeps/pthread/aio_fsync.c
@@ -36,17 +36,14 @@
int
aio_fsync (int op, struct aiocb *aiocbp)
{
- int flags;
-
if (op != O_DSYNC && __builtin_expect (op != O_SYNC, 0))
{
__set_errno (EINVAL);
return -1;
}
- flags = fcntl (aiocbp->aio_fildes, F_GETFL);
- if (__builtin_expect (flags == -1, 0)
- || __builtin_expect ((flags & O_ACCMODE) == O_RDONLY, 0))
+ /* Verify that this is an open file descriptor. */
+ if (__glibc_unlikely (fcntl (aiocbp->aio_fildes, F_GETFL) == -1))
{
__set_errno (EBADF);
return -1;
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
index 1015ca0159..cc5349bbbf 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -1,19 +1,19 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -22,19 +22,19 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -43,181 +43,181 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 1
ldouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+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 (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+Test "Real part of: cacos (0.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Real part of: cacos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -226,236 +226,236 @@ ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (+0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (-0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 + +0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+Test "Imaginary part of: cacosh (-0.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Real part of: cacosh (-1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-1.5 - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (1.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (1.5 - 0 i)":
float: 1
ifloat: 1
# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 + 1.135753137836666928715489992987020363057e4 i":
+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -464,1012 +464,1012 @@ ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (-0.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 + 1.0 i) == -3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 - 1.0 i) == -3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 + 1.0 i) == -3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 - 1.0 i) == -3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p500 i) == -3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p500 i) == -3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 + +0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i) == 1.135753137836666928715489992987020363057e4 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 + 1.0 i) == 3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 - 1.0 i) == 3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 + 1.0 i) == 3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 - 1.0 i) == 3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p500 i) == 3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p500 i) == 3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Imaginary part of: catan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
# cbrt
-Test "cbrt (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i) == inf - 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+Test "Imaginary part of: cexp (-720 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i":
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 709.8942846690411016323109979483151967689 + 0.4636476090008061606231772164674799632783 i":
+Test "Imaginary part of: clog (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i":
+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i":
+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i":
+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i":
+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i) == -1.6298145321400412054744424587143483169412e-08 + 0.9223574537155056772124552172295398141249 i":
+Test "Imaginary part of: clog (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i":
+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i":
+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i":
+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i":
+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i":
+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i":
+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i":
+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 308.3031705664207720674749211936626341569 + 0.2013595981366865903254995612594728746470 i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i":
+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i":
+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i":
+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Imaginary part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i":
+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i":
+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i":
+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i":
+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i":
+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 i":
+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -1478,192 +1478,192 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
ildouble: 1
ldouble: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -1672,910 +1672,910 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 11357.25 i) == -8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i) == -8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i) == 8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i) == 8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i) == 1.217853148905605987081057582351152052687e4924 + inf i":
+Test "Real part of: csin (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i) == -9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i) == -9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i) == 1.106698967236475180613254276996359485630e+2466 + 2.687568007603946993388538156299100955642e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i) == 3.514690655930285351254618340783294558136e-2475 + 8.297059146828716918029689466551384219370e-2476 i":
+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Real part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 355 i) == 8.140551093483276762350406321792653551513e-309 + 1.0 i":
+Test "Real part of: ctan (1 + 355 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 365 i) == 1.677892637497921890115075995898773550884e-317 + 1.0 i":
+Test "Real part of: ctan (1 + 365 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Imaginary part of: ctanh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i) == 1.0 + 8.140551093483276762350406321792653551513e-309 i":
+Test "Imaginary part of: ctanh (355 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i) == 1.0 + 1.677892637497921890115075995898773550884e-317 i":
+Test "Imaginary part of: ctanh (365 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
+Test "erfc (0.75)":
float: 1
ifloat: 1
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
+Test "erfc (27.0)":
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 1
idouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 1
idouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
-Test "exp10 (4932) == 1.0e4932":
+Test "exp10 (4932)":
ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+Test "exp2 (100.5)":
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (-79.0) == -0.9999999999999999999999999999999999509391":
+Test "expm1 (-79.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
ildouble: 2
ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
ildouble: 2
ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 8
ldouble: 8
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -2584,17 +2584,17 @@ ildouble: 3
ldouble: 3
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -2603,433 +2603,433 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (10.0, -4930.0) == 1e-4930":
+Test "pow (10.0, -4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4929.0) == 1e4929":
+Test "pow (10.0, 4929.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4930.0) == 1e4930":
+Test "pow (10.0, 4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4931.0) == 1e4931":
+Test "pow (10.0, 4931.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4932.0) == 1e4932":
+Test "pow (10.0, 4932.0)":
ildouble: 1
ldouble: 1
-Test "pow (1e4932, 0.75) == 1e3699":
+Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_tonearest (3)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
ildouble: 1
ldouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
+Test "tanh (-1.0)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
+Test "tanh (1.0)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
+Test "tgamma (4)":
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
+Test "y0 (2.0)":
double: 1
idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -3038,46 +3038,46 @@ ildouble: 3
ldouble: 3
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
+Test "y1 (0.75)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-30) == -6.8356527557643159612937462812258975438856e+08":
+Test "y1 (0x1p-30)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -3086,110 +3086,110 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
+Test "yn (0, 2.0)":
double: 1
idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 5
ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/sysdeps/s390/s390-32/sysdep.h b/sysdeps/s390/s390-32/sysdep.h
index d6296c13bd..aa438bd9d3 100644
--- a/sysdeps/s390/s390-32/sysdep.h
+++ b/sysdeps/s390/s390-32/sysdep.h
@@ -65,6 +65,7 @@
#define syscall_error __syscall_error
#define mcount _mcount
+#undef PSEUDO
#define PSEUDO(name, syscall_name, args) \
lose: SYSCALL_PIC_SETUP \
basr %r1,0; \
diff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/s390-64/sysdep.h
index 46ad85ab1a..57827f39e2 100644
--- a/sysdeps/s390/s390-64/sysdep.h
+++ b/sysdeps/s390/s390-64/sysdep.h
@@ -63,6 +63,7 @@
#define syscall_error __syscall_error
#define mcount _mcount
+#undef PSEUDO
#define PSEUDO(name, syscall_name, args) \
lose: SYSCALL_PIC_SETUP \
jg JUMPTARGET(syscall_error); \
diff --git a/sysdeps/sh/sh4/fpu/libm-test-ulps b/sysdeps/sh/sh4/fpu/libm-test-ulps
index eb17664c11..d517ea9e26 100644
--- a/sysdeps/sh/sh4/fpu/libm-test-ulps
+++ b/sysdeps/sh/sh4/fpu/libm-test-ulps
@@ -1,764 +1,764 @@
# Begin of automatic generation
# asin
-Test "asin (-0.5) == -pi/6":
+Test "asin (-0.5)":
float: 2
ifloat: 2
-Test "asin (0.5) == pi/6":
+Test "asin (0.5)":
float: 2
ifloat: 2
-Test "asin (0.7) == 0.7753974966107530637":
+Test "asin (0.7)":
double: 1
float: 2
idouble: 1
ifloat: 2
# atan2
-Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
+Test "atan2 (-0.7, -1.0)":
float: 3
ifloat: 3
-Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
+Test "atan2 (0.7, -1.0)":
float: 3
ifloat: 3
-Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
+Test "atan2 (1.4, -0.93)":
float: 4
ifloat: 4
# atanh
-Test "atanh (0.7) == 0.8673005276940531944":
+Test "atanh (0.7)":
double: 1
idouble: 1
# cabs
-Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
+Test "cabs (-0.7 + 12.4 i)":
float: 1
ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
+Test "cabs (-0.7 - 12.4 i)":
float: 1
ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
+Test "cabs (-12.4 + 0.7 i)":
float: 1
ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
+Test "cabs (-12.4 - 0.7 i)":
float: 1
ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
+Test "cabs (0.7 + 1.2 i)":
double: 1
idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
+Test "cabs (0.7 + 12.4 i)":
float: 1
ifloat: 1
# cacos
-Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
+Test "Real part of: cacos (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
+Test "Imaginary part of: cacos (0.7 + 1.2 i)":
float: 1
ifloat: 1
# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-2 - 3 i)":
double: 1
float: 7
idouble: 1
ifloat: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (-2 - 3 i)":
double: 1
float: 3
idouble: 1
ifloat: 3
-Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
+Test "Real part of: cacosh (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# casin
-Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
+Test "Real part of: casin (0.7 + 1.2 i)":
double: 3
float: 2
idouble: 3
ifloat: 2
-Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
+Test "Imaginary part of: casin (0.7 + 1.2 i)":
float: 1
ifloat: 1
# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
-Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
+Test "Real part of: casinh (0.7 + 1.2 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
+Test "Imaginary part of: casinh (0.7 + 1.2 i)":
float: 1
ifloat: 1
# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Real part of: catan (-2 - 3 i)":
float: 3
ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
+Test "Real part of: catan (0.7 + 1.2 i)":
float: 4
ifloat: 4
-Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
+Test "Imaginary part of: catan (0.7 + 1.2 i)":
double: 1
idouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Imaginary part of: catanh (-2 - 3 i)":
float: 4
ifloat: 4
-Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
+Test "Real part of: catanh (0.7 + 1.2 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
+Test "Imaginary part of: catanh (0.7 + 1.2 i)":
double: 1
float: 6
idouble: 1
ifloat: 6
# cbrt
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.970299) == 0.99":
+Test "cbrt (0.970299)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
+Test "Real part of: ccos (0.7 + 1.2 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
+Test "Imaginary part of: ccos (0.7 + 1.2 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
+Test "Real part of: ccosh (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
+Test "Imaginary part of: ccosh (0.7 + 1.2 i)":
double: 1
idouble: 1
# cexp
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
+Test "Real part of: cexp (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
+Test "Imaginary part of: cexp (0.7 + 1.2 i)":
float: 1
ifloat: 1
# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
+Test "Imaginary part of: clog (-2 - 3 i)":
double: 1
float: 3
idouble: 1
ifloat: 3
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
+Test "Real part of: clog10 (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
+Test "Imaginary part of: clog10 (0.7 + 1.2 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1
# cos
-Test "cos (0.7) == 0.7648421872844884262":
+Test "cos (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 0.5
idouble: 1
ifloat: 0.5
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "cos (pi/2) == 0":
+Test "cos (pi/2)":
double: 0.2758
float: 0.3667
idouble: 0.2758
ifloat: 0.3667
# cpow
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 1.1031
float: 1.5
idouble: 1.1031
ifloat: 1.5
# csin
-Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
+Test "Imaginary part of: csin (0.7 + 1.2 i)":
float: 1
ifloat: 1
# csinh
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
+Test "Real part of: csinh (0.7 + 1.2 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
+Test "Imaginary part of: csinh (0.7 + 1.2 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
+Test "Real part of: csqrt (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
+Test "Imaginary part of: csqrt (0.7 + 1.2 i)":
float: 1
ifloat: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
-Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
+Test "Real part of: ctan (0.7 + 1.2 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
+Test "Imaginary part of: ctan (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
+Test "Real part of: ctanh (0.7 + 1.2 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
+Test "Imaginary part of: ctanh (0.7 + 1.2 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
# erfc
-Test "erfc (0.7) == 0.32219880616258152702":
+Test "erfc (0.7)":
double: 1
idouble: 1
-Test "erfc (1.2) == 0.089686021770364619762":
+Test "erfc (1.2)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "erfc (2.0) == 0.0046777349810472658379":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.1) == 0.67000276540848983727e-8":
+Test "erfc (4.1)":
double: 24
float: 12
idouble: 24
ifloat: 12
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "exp10 (0.7) == 5.0118723362727228500":
+Test "exp10 (0.7)":
float: 1
ifloat: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2
# expm1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
float: 1
ifloat: 1
# fmod
-Test "fmod (-6.5, -2.3) == -1.9":
+Test "fmod (-6.5, -2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "fmod (-6.5, 2.3) == -1.9":
+Test "fmod (-6.5, 2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "fmod (6.5, -2.3) == 1.9":
+Test "fmod (6.5, -2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "fmod (6.5, 2.3) == 1.9":
+Test "fmod (6.5, 2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
+Test "hypot (0.7, 1.2)":
double: 1
idouble: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (10.0) == -0.24593576445134833520":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.22389077914123566805":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (8.0) == 0.17165080713755390609":
+Test "j0 (8.0)":
float: 1
ifloat: 1
# j1
-Test "j1 (10.0) == 0.043472746168861436670":
+Test "j1 (10.0)":
float: 2
ifloat: 2
-Test "j1 (2.0) == 0.57672480775687338720":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.23463634685391462438":
+Test "j1 (8.0)":
double: 1
idouble: 1
# jn
-Test "jn (0, 10.0) == -0.24593576445134833520":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.22389077914123566805":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 8.0) == 0.17165080713755390609":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
-Test "jn (1, 10.0) == 0.043472746168861436670":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
-Test "jn (1, 2.0) == 0.57672480775687338720":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.23463634685391462438":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
-Test "jn (10, 0.1) == 0.26905328954342155795e-19":
+Test "jn (10, 0.1)":
double: 6
float: 4
idouble: 6
ifloat: 4
-Test "jn (10, 0.7) == 0.75175911502153953928e-11":
+Test "jn (10, 0.7)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (10, 10.0) == 0.20748610663335885770":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
-Test "jn (10, 2.0) == 0.25153862827167367096e-6":
+Test "jn (10, 2.0)":
float: 4
ifloat: 4
-Test "jn (3, 0.1) == 0.000020820315754756261429":
+Test "jn (3, 0.1)":
double: 1
idouble: 1
-Test "jn (3, 0.7) == 0.0069296548267508408077":
+Test "jn (3, 0.7)":
float: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.058379379305186812343":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "jn (3, 2.0) == 0.12894324947440205110":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# lgamma
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2
# log
-Test "log (0.7) == -0.35667494393873237891263871124118447":
+Test "log (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# log10
-Test "log10 (0.7) == -0.15490195998574316929":
+Test "log10 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
# log1p
-Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
+Test "log1p (-0.3)":
double: 1
float: 1
idouble: 1
ifloat: 1
# log2
-Test "log2 (0.7) == -0.51457317282975824043":
+Test "log2 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# sincos
-Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
+Test "sincos (0.7) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 0.5
-idouble: 1
-ifloat: 0.5
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+float: 0.5
+idouble: 1
+ifloat: 0.5
+Test "sincos (pi/2) extra output 2":
double: 0.2758
float: 0.3667
idouble: 0.2758
ifloat: 0.3667
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh
-Test "sinh (0.7) == 0.75858370183953350346":
+Test "sinh (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# tan
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 0.5
idouble: 0.5
# tanh
-Test "tanh (0.7) == 0.60436777711716349631":
+Test "tanh (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0.5)":
float: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y0
-Test "y0 (0.7) == -0.19066492933739506743":
+Test "y0 (0.7)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.0) == 0.088256964215676957983":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.38244892379775884396":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.055671167283599391424":
+Test "y0 (10.0)":
float: 1
ifloat: 1
-Test "y0 (8.0) == 0.22352148938756622053":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
# y1
-Test "y1 (0.1) == -6.4589510947020269877":
+Test "y1 (0.1)":
double: 1
idouble: 1
-Test "y1 (0.7) == -1.1032498719076333697":
+Test "y1 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (1.5) == -0.41230862697391129595":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.24901542420695388392":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.10703243154093754689":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y1 (8.0) == -0.15806046173124749426":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
# yn
-Test "yn (0, 0.7) == -0.19066492933739506743":
+Test "yn (0, 0.7)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.0) == 0.088256964215676957983":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.38244892379775884396":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.055671167283599391424":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
-Test "yn (0, 8.0) == 0.22352148938756622053":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 0.1) == -6.4589510947020269877":
+Test "yn (1, 0.1)":
double: 1
idouble: 1
-Test "yn (1, 0.7) == -1.1032498719076333697":
+Test "yn (1, 0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 1.5) == -0.41230862697391129595":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.24901542420695388392":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.10703243154093754689":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (1, 8.0) == -0.15806046173124749426":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "yn (10, 0.1) == -0.11831335132045197885e19":
+Test "yn (10, 0.1)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "yn (10, 0.7) == -0.42447194260703866924e10":
+Test "yn (10, 0.7)":
double: 3
idouble: 3
-Test "yn (10, 1.0) == -0.12161801427868918929e9":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.35981415218340272205":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.54220803928264":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.1) == -5099.3323786129048894":
+Test "yn (3, 0.1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 0.7) == -15.819479052819633505":
+Test "yn (3, 0.7)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (3, 10.0) == -0.25136265718383732978":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.1277837768404277861":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps
index 4620af6976..2226b44878 100644
--- a/sysdeps/sparc/fpu/libm-test-ulps
+++ b/sysdeps/sparc/fpu/libm-test-ulps
@@ -1,19 +1,19 @@
# Begin of automatic generation
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
@@ -22,19 +22,19 @@ ildouble: 1
ldouble: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
@@ -43,631 +43,1471 @@ ildouble: 1
ldouble: 1
# acos_upward
-Test "acos_upward (-0) == pi/2":
+Test "acos_upward (-0)":
ildouble: 1
ldouble: 1
-Test "acos_upward (-1) == pi":
+Test "acos_upward (-1)":
ildouble: 1
ldouble: 1
-Test "acos_upward (0) == pi/2":
+Test "acos_upward (0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (-1.0) == -pi/2":
+Test "asin_downward (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
# asin_upward
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
-Test "asin_upward (1.0) == pi/2":
+Test "asin_upward (1.0)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
+Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
ildouble: 1
ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+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) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 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) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 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) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 + +0 i) == 2.094395102393195492308428922186335256131 - 0 i":
+Test "Real part of: cacos (-0.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 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) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 - 0 i) == 2.094395102393195492308428922186335256131 + +0 i":
+Test "Real part of: cacos (-0.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i) == 1.572134236154454360143880041170803681211 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i) == 1.572134236154454360143880041170803681211 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+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
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+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
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-30 + 1.0 i) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+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) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+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) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p500 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.472667374605326000180332928505464606058e2 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p500 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i) == 3.141592653589793238462643383279502884197 - 3.466429049980286492395577839412341016946e3 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i) == 3.141592653589793238462643383279502884197 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+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 "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
float: 1
ifloat: 1
+Test "Real part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 + 0x1p50 i) == 1.570796326794897507409741391764983781004 - 3.535050620855721078027883819436759661753e1 i":
+Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+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
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 + 4.350501469856803800217957402220976497152e-2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
+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
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 - 0x1p50 i) == 1.570796326794897507409741391764983781004 + 3.535050620855721078027883819436759661753e1 i":
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+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) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+Test "Real part of: cacos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 + 1.0 i) == 1.394493894017929688812643125003661339452 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 - 1.0 i) == 1.394493894017929688812643125003661339452 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+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
+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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + 0x1p-63 i)":
double: 1
idouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (0.5 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+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
+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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+Test "Real part of: cacos (0.5 - 0x1p-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: cacos (0.5 - 0x1p-63 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Real part of: cacos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i) == 1.569458417435338878318763342108699202986 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i) == 1.569458417435338878318763342108699202986 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442097 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442097 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i) == 1.570796325518966635014803151387033957091 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i) == 1.570796325518966635014803151387033957091 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 - 1.135753137836666928715489992987020363057e4 i":
+Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x1p-63 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 + 1.0 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p500 - 1.0 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 + 1.0 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1p5000 - 1.0 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 + 0.25 i) == 4.890443302710802929202843732146540079124e-1 - 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: cacos (1.0 + 0.25 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: cacos (1.0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+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) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-100 i) == 1.236292038260260888664514866456887257525e-15 - 1.236292038260260888664514866457202186027e-15 i":
+Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p500 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1p5000 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0.25 i) == 4.890443302710802929202843732146540079124e-1 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: cacos (1.0 - 0.25 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: cacos (1.0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+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) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+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) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-100 i) == 1.236292038260260888664514866456887257525e-15 + 1.236292038260260888664514866457202186027e-15 i":
+Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p500 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1p5000 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -676,640 +1516,2637 @@ ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (+0 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
double: 1
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)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+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.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+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
+ildouble: 1
+ldouble: 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
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ifloat: 1
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 (-0x1p-23 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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 (-0x1p-23 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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 (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
+ildouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p500 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p500 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1p500 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1p500 i)":
+ildouble: 1
+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) == +0 + 0.4812118250596034474977589134243684231352 i":
+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) == +0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (+0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (+0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+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) == -0 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: casin (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 + 1.0 i) == -1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 - 1.0 i) == -1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+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) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+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) == -1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i) == -1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i) == -1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i) == -1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i) == -6.867047849047171855399183659351043150871e-3011 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i) == -6.867047849047171855399183659351043150871e-3011 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i) == -3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i) == -3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i) == -2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i) == -2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i) == -5.757683115456107044131264955348448954458e-4933 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i) == -4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i) == -5.757683115456107044131264955348448954458e-4933 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i) == -4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (-0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Real part of: casin (-0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p500 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 + 1.0 i) == -1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1p5000 - 1.0 i) == -1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 + 0.25 i) == -1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 + 0.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+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) == -1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 + 0x1.fp-129 i) == -1.570796326794896619177965338869929107115 + 5.335635276982233498398987585285818977933e-20 i":
+Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 - 0.25 i) == -1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (-1.0 - 0.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (-1.0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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) == -1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 - 0x1.fp-129 i) == -1.570796326794896619177965338869929107115 - 5.335635276982233498398987585285818977933e-20 i":
+Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p500 i) == -3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1p5000 i) == -7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+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.25 + 1.0 i) == 1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.25 - 1.0 i) == 1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Real part of: casin (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Real part of: casin (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+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
+Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+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) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+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) == 1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i) == 1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i) == 1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i) == 1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i) == 6.867047849047171855399183659351043150871e-3011 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i) == 6.867047849047171855399183659351043150871e-3011 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i) == 3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i) == 3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i) == 2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i) == 2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i) == 5.757683115456107044131264955348448954458e-4933 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i) == 4.516698239814521372306784062043266700598e-4933 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i) == 5.757683115456107044131264955348448954458e-4933 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i) == 4.516698239814521372306784062043266700598e-4933 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 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-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-23 + 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Real part of: casin (0x1p-23 - 0.5 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i) == 7.853981633974483096156608458198757210493e-1 + 1.135753137836666928715489992987020363057e4 i":
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p500 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 + 1.0 i) == 1.570796326794896619231321691639751442099 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1p5000 - 1.0 i) == 1.570796326794896619231321691639751442099 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 + 0.25 i) == 1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 + 0.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+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) == 1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 + 0x1.fp-129 i) == 1.570796326794896619177965338869929107115 + 5.335635276982233498398987585285818977933e-20 i":
+Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 + 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 + 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 - 0.25 i) == 1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (1.0 - 0.25 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (1.0 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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) == 1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 - 0x1.fp-129 i) == 1.570796326794896619177965338869929107115 - 5.335635276982233498398987585285818977933e-20 i":
+Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p500 i) == 3.054936363499604682051979393213617699789e-151 - 3.472667374605326000180332928505464606058e2 i":
+Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1p5000 i) == 7.079811261048172892385615158694057552948e-1506 - 3.466429049980286492395577839412341016946e3 i":
+Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 + +0 i)":
double: 1
float: 1
idouble: 1
@@ -1318,1392 +4155,2646 @@ ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+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) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+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.25 + 1.0 i) == -5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.25 - 1.0 i) == -5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (-0.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+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
-Test "Real part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+ildouble: 1
+ldouble: 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) == -4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-10 - 1.0 i) == -4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i) == -5.335635276982233498398987585285818977933e-20 + 1.570796326794896619177965338869929107115 i":
+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 (-0x1p-63 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i) == -5.335635276982233498398987585285818977933e-20 - 1.570796326794896619177965338869929107115 i":
+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 + 1.0 i) == -3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p500 - 1.0 i) == -3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (-0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 + 1.0 i) == -3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p5000 - 1.0 i) == -3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (-1.0 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 + 0.25 i) == -8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 + 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+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) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i) == -8.813735870195430252326093249797923090282e-1 + 6.867047849047171855399183659351043150871e-3011 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i) == -8.813735870195430252326093249797923090282e-1 + 5.757683115456107044131264955348448954458e-4933 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p500 i) == -3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (-1.0 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: casinh (-1.0 - 0.25 i) == -8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 - 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+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) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-100 i) == -8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i) == -8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i) == -8.813735870195430252326093249797923090282e-1 - 6.867047849047171855399183659351043150871e-3011 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i) == -8.813735870195430252326093249797923090282e-1 - 5.757683115456107044131264955348448954458e-4933 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p500 i) == -3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1p5000 i) == -3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i) == -1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
+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.25 + 1.0 i) == 5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.25 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.25 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.25 - 1.0 i) == 5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+Test "Real part of: casinh (0.5 + +0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
double: 1
+float: 1
idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 - 0x1p-105 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+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
+ildouble: 2
+ldouble: 2
+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 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (0.5 - 0x1p-52 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-10 + 1.0 i) == 4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-10 - 1.0 i) == 4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i) == 5.335635276982233498398987585285818977933e-20 + 1.570796326794896619177965338869929107115 i":
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i) == 5.335635276982233498398987585285818977933e-20 - 1.570796326794896619177965338869929107115 i":
+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
+float: 2
+ifloat: 2
+Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i) == 1.135753137836666928715489992987020363057e4 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1p-63 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 + 1.0 i) == 3.472667374605326000180332928505464606058e2 + 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p500 - 1.0 i) == 3.472667374605326000180332928505464606058e2 - 3.054936363499604682051979393213617699789e-151 i":
+Test "Real part of: casinh (0x1p500 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 + 1.0 i) == 3.466429049980286492395577839412341016946e3 + 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (0x1p500 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p5000 - 1.0 i) == 3.466429049980286492395577839412341016946e3 - 7.079811261048172892385615158694057552948e-1506 i":
+Test "Real part of: casinh (0x1p5000 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+Test "Real part of: casinh (0x1p5000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (1.0 + +0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0.25 i) == 8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 + 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+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) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10000 i) == 8.813735870195430252326093249797923090282e-1 + 6.867047849047171855399183659351043150871e-3011 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-10000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-16385 i) == 8.813735870195430252326093249797923090282e-1 + 5.757683115456107044131264955348448954458e-4933 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p500 i) == 3.472667374605326000180332928505464606058e2 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 + 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 + 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+Test "Real part of: casinh (1.0 - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0.25 i) == 8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 - 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+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) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-100 i) == 8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1000 i) == 8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10000 i) == 8.813735870195430252326093249797923090282e-1 - 6.867047849047171855399183659351043150871e-3011 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-16385 i) == 8.813735870195430252326093249797923090282e-1 - 5.757683115456107044131264955348448954458e-4933 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p500 i) == 3.472667374605326000180332928505464606058e2 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1p500 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1p5000 i) == 3.466429049980286492395577839412341016946e3 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (1.0 - 0x1p5000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 + 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-129 i) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-16385 i) == 1.194763217287109304111930828519090523536 - 4.516698239814521372306784062043266700598e-4933 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# catan
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (-0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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-16380 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real 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
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-2 - 3 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: catan (0.75 + 1.25 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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-16380 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real 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
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 - 0x1p-13 i)":
+float: 1
ifloat: 1
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
ildouble: 1
ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 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.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 "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 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 (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
+ildouble: 1
+ldouble: 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) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary 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
+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 "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0 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 - 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
+Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 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-16380 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+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-16380 i)":
ildouble: 1
ldouble: 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 (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 11357.25 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 11357.25 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccos (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0x1p-16434 + 22730 i) == inf - 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# ccosh
-Test "Imaginary part of: ccosh (-11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: ccosh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cexp
-Test "Imaginary part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Real part of: cexp (-2.0 - 3.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-720 + 0.75 i) == 1.486960657116368433685753325516638551722e-313 + 1.385247284245720590980701226843815229385e-313 i":
+Test "Imaginary part of: cexp (-720 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (22730 + 0x1p-16434 i) == inf + 2.435706297811211974162115164702304105374e4924 i":
+Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+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) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+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) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i":
+Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i":
+Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i":
+Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i":
+Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i":
+Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i":
+Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i":
+Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i":
+Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i":
+Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i":
+Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i":
+Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i":
+Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i":
+Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i":
+Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Real part of: clog10 (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i":
+Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i":
+Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i":
+Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i":
+Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+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) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i":
+Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i":
+Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i":
+Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i":
+Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i":
+Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i":
+Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 i":
+Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0x1p+120) == -9.25879022854837867303861764107414946730833e-01":
+Test "cos (0x1p+120)":
float: 1
ifloat: 1
-Test "cos (0x1p+127) == 7.81914638714960072263910298466369236613162e-01":
+Test "cos (0x1p+127)":
float: 1
ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
@@ -2712,194 +6803,194 @@ ildouble: 1
ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_downward (6)":
ildouble: 1
ldouble: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
# cos_towardzero
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
ildouble: 1
ldouble: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
-Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_upward (24)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 4
ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 11
ldouble: 11
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+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) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -2908,941 +6999,941 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 11357.25 i) == -8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 11357.25 i) == -8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (-0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (-0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 11357.25 i) == 8.385498349388321535962327491346664141020e4931 + 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 + 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 + 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 11357.25 i) == 8.385498349388321535962327491346664141020e4931 - 9.001213196851067077465606717616495588201e4931 i":
+Test "Real part of: csin (0.75 - 11357.25 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Imaginary part of: csin (0.75 - 89.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0x1p-16434 + 22730 i) == 1.217853148905605987081057582351152052687e4924 + inf i":
+Test "Real part of: csin (0x1p-16434 + 22730 i)":
ildouble: 1
ldouble: 1
# csinh
-Test "Imaginary part of: csinh (-11357.25 + 0.75 i) == -9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-11357.25 - 0.75 i) == -9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (-89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (11357.25 + 0.75 i) == 9.001213196851067077465606717616495588201e4931 + 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (11357.25 - 0.75 i) == 9.001213196851067077465606717616495588201e4931 - 8.385498349388321535962327491346664141020e4931 i":
+Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (22730 + 0x1p-16434 i) == inf + 1.217853148905605987081057582351152052687e4924 i":
+Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Real part of: csinh (89.5 - 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.344545284118961663847948339519226074126e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i) == 1.106698967236475180613254276996359485630e+2466 + 2.687568007603946993388538156299100955642e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i) == 3.514690655930285351254618340783294558136e-2475 + 8.297059146828716918029689466551384219370e-2476 i":
+Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Real part of: ctan (0x1p16383 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p16383 + 1 i) == 0.1608598776370396607204448234354670036772 + 0.8133818522051542536316746743877629761488 i":
+Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 355 i) == 8.140551093483276762350406321792653551513e-309 + 1.0 i":
+Test "Real part of: ctan (1 + 355 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 365 i) == 1.677892637497921890115075995898773550884e-317 + 1.0 i":
+Test "Real part of: ctan (1 + 365 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 1
ldouble: 1
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+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) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+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) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Real part of: ctanh (1 + 0x1p16383 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (1 + 0x1p16383 i) == 0.8133818522051542536316746743877629761488 + 0.1608598776370396607204448234354670036772 i":
+Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (355 + 1 i) == 1.0 + 8.140551093483276762350406321792653551513e-309 i":
+Test "Imaginary part of: ctanh (355 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (365 + 1 i) == 1.0 + 1.677892637497921890115075995898773550884e-317 i":
+Test "Imaginary part of: ctanh (365 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 1
ldouble: 1
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffffc8p+2) == 1.122671365033056305522366683719541099329e-29":
+Test "erfc (0x1.ffffc8p+2)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
+Test "erfc (27.0)":
ildouble: 1
ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2
ildouble: 1
ldouble: 1
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
-Test "exp10 (4932) == 1.0e4932":
+Test "exp10 (4932)":
ildouble: 1
ldouble: 1
# exp2
-Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
+Test "exp2 (100.5)":
ildouble: 1
ldouble: 1
# exp_downward
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# expm1
-Test "expm1 (-79.0) == -0.9999999999999999999999999999999999509391":
+Test "expm1 (-79.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j0 (0x1p1023) == -1.5665258060609012834424478437196679802783e-155":
+Test "j0 (0x1p1023)":
ildouble: 1
ldouble: 1
-Test "j0 (0x1p16383) == 9.5859502826270374691362975419147645151233e-2467":
+Test "j0 (0x1p16383)":
ildouble: 2
ldouble: 2
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
+Test "j1 (-1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+Test "j1 (0.75)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1p1023) == 8.2687542933709649327986678723012001545638e-155":
+Test "j1 (0x1p1023)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "j1 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "j1 (0x1p16383) == -3.8895531955766020648617743624167352352217e-2467":
+Test "j1 (0x1p16383)":
ildouble: 2
ldouble: 2
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
+Test "j1 (1.0)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
+Test "jn (1, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
+Test "jn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
+Test "jn (1, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 4
ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
float: 1
ifloat: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 5
ldouble: 5
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 8
ldouble: 8
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -3851,17 +7942,17 @@ ildouble: 3
ldouble: 3
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -3870,431 +7961,1278 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
+Test "log2 (0.75)":
ildouble: 1
ldouble: 1
# pow
-Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+Test "pow (0x1.000002p0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (10.0, -4930.0) == 1e-4930":
+Test "pow (10.0, -4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4929.0) == 1e4929":
+Test "pow (10.0, 4929.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4930.0) == 1e4930":
+Test "pow (10.0, 4930.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4931.0) == 1e4931":
+Test "pow (10.0, 4931.0)":
ildouble: 1
ldouble: 1
-Test "pow (10.0, 4932.0) == 1e4932":
+Test "pow (10.0, 4932.0)":
ildouble: 1
ldouble: 1
-Test "pow (1e4932, 0.75) == 1e3699":
+Test "pow (1e4932, 0.75)":
ildouble: 1
ldouble: 1
# pow_downward
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_towardzero
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
-Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_downward (2)":
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_tonearest (3)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
ildouble: 1
ldouble: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0x1p+120, &sin_res, &cos_res) puts -9.25879022854837867303861764107414946730833e-01 in cos_res":
+Test "sincos (0x1p+120) extra output 2":
float: 1
ifloat: 1
-Test "sincos (0x1p+127, &sin_res, &cos_res) puts 7.81914638714960072263910298466369236613162e-01 in cos_res":
+Test "sincos (0x1p+127) extra output 2":
float: 1
ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
+double: 1
+idouble: 1
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_upward (24)":
ildouble: 1
ldouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_towardzero
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_upward (4)":
ildouble: 1
ldouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
+Test "tanh (-0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
+Test "tanh (-1.0)":
ildouble: 1
ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
+Test "tanh (0.75)":
ildouble: 1
ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
+Test "tanh (1.0)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.ffffffp0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.000002p0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x1.0a32a2p+5)":
+float: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1.5800000080001p+7)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.fffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffep0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x14.000000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.000000000001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.00002p0)":
+float: 1
+ifloat: 1
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.ffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1e.00000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000001p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x1e.00002p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1p-24)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.000004p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 2
+idouble: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x28.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.0000000000000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x29.00004p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x29.fffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ee.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.00000000000000000000000001p0)":
+ildouble: 1
+ldouble: 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 (-0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x31.fffffffffffep0)":
+double: 3
+idouble: 3
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x31.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x32.000000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.0000000000000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e8.00000000000000000000000002p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x3e8.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.000008p0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x5.fffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.fffffffffffffff8p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5db.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5dc.00000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.00000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (-0x63.ffffffffffffff8p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x64.000000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x64.0000000000000000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6d5.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6d6.00000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6e3.00000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x7.0000000000000008p0)":
+ildouble: 1
+ldouble: 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 (-0x7.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.0000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.00000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x8.00001p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.fffffp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x95.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0xa.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xa.00001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb5.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xb7.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb7.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb8.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0xbc.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbc.0000000000000000000000004p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbd.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbd.00000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbd.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbe.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.0000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xf9.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xfa.000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-2.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-3.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+Test "tgamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (0x1.fffffep0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.fffffffffffffp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1p-113)":
+ildouble: 1
+ldouble: 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
+ildouble: 2
+ldouble: 2
+Test "tgamma (0x2.fffffcp0)":
+float: 3
+ifloat: 3
+Test "tgamma (0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffcp0)":
+float: 1
+ifloat: 1
+Test "tgamma (0x3.ffffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 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 (0x5.ffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.ffffffffffffcp0)":
+double: 4
+idouble: 4
+Test "tgamma (0x6.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.0000000000000000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.0000000000000000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.0000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.00001p0)":
+double: 2
+idouble: 2
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
+ildouble: 2
+ldouble: 2
+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
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "tgamma (30.5)":
+float: 1
+ifloat: 1
+Test "tgamma (32.5)":
+ildouble: 1
+ldouble: 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
+Test "tgamma (4)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+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 (0.7) == 1.29805533264755778568117117915281162":
+Test "tgamma (8)":
+double: 1
+idouble: 1
+Test "tgamma (8.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "tgamma (4) == 6":
+Test "tgamma (9)":
+double: 1
+idouble: 1
+Test "tgamma (9.5)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+Test "y0 (0x1p-60)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p1023) == 8.2687542933709649327986678723012001545638e-155":
+Test "y0 (0x1p1023)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "y0 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1p16383) == -3.8895531955766020648617743624167352352217e-2467":
+Test "y0 (0x1p16383)":
ildouble: 2
ldouble: 2
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -4303,50 +9241,50 @@ ildouble: 3
ldouble: 3
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
+Test "y1 (0.75)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
idouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-30) == -6.8356527557643159612937462812258975438856e+08":
+Test "y1 (0x1p-30)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1p1023) == 1.5665258060609012834424478437196679802783e-155":
+Test "y1 (0x1p1023)":
ildouble: 1
ldouble: 1
-Test "y1 (0x1p16383) == -9.5859502826270374691362975419147645151233e-2467":
+Test "y1 (0x1p16383)":
ildouble: 2
ldouble: 2
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -4355,105 +9293,105 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
+Test "yn (1, 0.75)":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 5
ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
ildouble: 2
ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
@@ -4513,65 +9451,71 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacos":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacosh":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "casin":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "casin":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Real part of "casinh":
double: 5
-float: 1
+float: 2
idouble: 5
-ifloat: 1
+ifloat: 2
ildouble: 4
ldouble: 4
Function: Imaginary part of "casinh":
double: 3
-float: 6
+float: 1
idouble: 3
-ifloat: 6
+ifloat: 1
ildouble: 2
ldouble: 2
+Function: Real part of "catan":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
Function: Imaginary part of "catan":
double: 1
float: 1
@@ -4582,11 +9526,15 @@ ldouble: 1
Function: Real part of "catanh":
double: 4
+float: 1
idouble: 4
+ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "catanh":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
@@ -5123,12 +10071,12 @@ ildouble: 1
ldouble: 1
Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 4
+ldouble: 4
Function: "y0":
double: 2
diff --git a/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h b/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
index 17c4cd125f..35bd2ccc4a 100644
--- a/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
+++ b/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
@@ -47,6 +47,7 @@
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
/* If one NaN is signaling and the other is not,
* we choose that one, otherwise we choose X.
diff --git a/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h b/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
index f2d106ec09..562fdfc1cf 100644
--- a/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
+++ b/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
@@ -60,6 +60,7 @@ do { \
#define _FP_NANSIGN_Q 0
#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
/* If one NaN is signaling and the other is not,
* we choose that one, otherwise we choose Y.
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index f82c94982e..f580635c84 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -152,7 +152,7 @@ endif
ifeq ($(subdir),io)
sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
- sync_file_range open_2 open64_2 fallocate fallocate64
+ sync_file_range fallocate fallocate64
sysdep_headers += bits/fcntl-linux.h
endif
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index 5e8057b62e..e42dee8e62 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -144,21 +144,21 @@ typedef struct
# define __CPU_SET_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
- __cpu < 8 * (setsize) \
+ __cpu / 8 < (setsize) \
? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
|= __CPUMASK (__cpu)) \
: 0; }))
# define __CPU_CLR_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
- __cpu < 8 * (setsize) \
+ __cpu / 8 < (setsize) \
? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
&= ~__CPUMASK (__cpu)) \
: 0; }))
# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
- __cpu < 8 * (setsize) \
+ __cpu / 8 < (setsize) \
? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
& __CPUMASK (__cpu))) != 0 \
: 0; }))
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h
index a67bd5c0d1..160378457e 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h
@@ -95,6 +95,7 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -127,6 +128,7 @@ typedef struct
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -217,8 +219,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index eadd7d9326..9312849d03 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -79,7 +79,8 @@ typedef __socklen_t socklen_t;
#define PF_CAIF 37 /* CAIF sockets. */
#define PF_ALG 38 /* Algorithm sockets. */
#define PF_NFC 39 /* NFC sockets. */
-#define PF_MAX 40 /* For now.. */
+#define PF_VSOCK 40 /* vSockets. */
+#define PF_MAX 41 /* For now.. */
/* Address families. */
#define AF_UNSPEC PF_UNSPEC
@@ -123,6 +124,7 @@ typedef __socklen_t socklen_t;
#define AF_CAIF PF_CAIF
#define AF_ALG PF_ALG
#define AF_NFC PF_NFC
+#define AF_VSOCK PF_VSOCK
#define AF_MAX PF_MAX
/* Socket level values. Others are defined in the appropriate headers.
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 8bc025b041..34c21461bb 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -24,6 +24,7 @@
#include <string.h>
#include <time.h>
#include <unistd.h>
+#include <stdint.h>
#include <sys/socket.h>
#include <asm/types.h>
diff --git a/sysdeps/unix/sysv/linux/dl-writev.h b/sysdeps/unix/sysv/linux/dl-writev.h
new file mode 100644
index 0000000000..b682e0c4b6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/dl-writev.h
@@ -0,0 +1,38 @@
+/* Message-writing for the dynamic linker. Linux 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 <sys/uio.h>
+#include <sysdep.h>
+
+/* This is used from only one place: dl-misc.c:_dl_debug_vdprintf.
+ Hence it's in a header with the expectation it will be inlined.
+
+ This is writev, but with a constraint added and others loosened:
+
+ 1. Under RTLD_PRIVATE_ERRNO, it must not clobber the private errno
+ when another thread holds the dl_load_lock.
+ 2. It is not obliged to detect and report errors at all.
+ 3. It's not really obliged to deliver a single atomic write
+ (though it may be preferable). */
+
+static inline void
+_dl_writev (int fd, const struct iovec *iov, size_t niov)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (writev, err, 3, fd, iov, niov);
+}
diff --git a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
index 5c90caa8af..99082483ba 100644
--- a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
@@ -21,6 +21,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <netinet/in.h>
#include <sys/param.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.c b/sysdeps/unix/sysv/linux/getsourcefilter.c
index 063d6c6509..682f424899 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.c
@@ -22,6 +22,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <netatalk/at.h>
#include <netax25/ax25.h>
#include <netinet/in.h>
diff --git a/sysdeps/unix/sysv/linux/i386/nptl/libm.abilist b/sysdeps/unix/sysv/linux/i386/nptl/libm.abilist
index 401a2c6ddf..c185f0b205 100644
--- a/sysdeps/unix/sysv/linux/i386/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/nptl/libm.abilist
@@ -396,6 +396,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
__expl F
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 8fdff7e381..ccd4c5918b 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -221,3 +221,9 @@
#if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
# define __ASSUME_GETCPU_SYSCALL 1
#endif
+
+/* 2.6.29 removed the XFS restricted_chown sysctl, so it is pointless looking
+ for it in newer kernels. */
+#if __LINUX_KERNEL_VERSION >= 0x02061d
+# define __ASSUME_XFS_RESTRICTED_CHOWN 1
+#endif
diff --git a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
index 7c1deb9b7a..e0da57a0c5 100644
--- a/sysdeps/unix/sysv/linux/netlinkaccess.h
+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h
@@ -18,6 +18,7 @@
#ifndef _NETLINKACCESS_H
#define _NETLINKACCESS_H 1
+#include <stdint.h>
#include <asm/types.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
index d2ef429736..6e838dfd0c 100644
--- a/sysdeps/unix/sysv/linux/openat.c
+++ b/sysdeps/unix/sysv/linux/openat.c
@@ -29,7 +29,6 @@
#ifndef OPENAT
# define OPENAT openat
-# define __OPENAT_2 __openat_2
# ifndef __ASSUME_ATFCTS
/* Set errno after a failed call. If BUF is not null,
@@ -179,18 +178,3 @@ __OPENAT (fd, file, oflag)
}
libc_hidden_def (__OPENAT)
weak_alias (__OPENAT, OPENAT)
-
-
-int
-__OPENAT_2 (fd, file, oflag)
- int fd;
- const char *file;
- int oflag;
-{
- if (oflag & O_CREAT)
-#define MSG(s) MSG2 (s)
-#define MSG2(s) "invalid " #s " call: O_CREAT without mode"
- __fortify_fail (MSG (OPENAT));
-
- return __OPENAT (fd, file, oflag);
-}
diff --git a/sysdeps/unix/sysv/linux/openat64.c b/sysdeps/unix/sysv/linux/openat64.c
index 013a13effa..9e7a2b3737 100644
--- a/sysdeps/unix/sysv/linux/openat64.c
+++ b/sysdeps/unix/sysv/linux/openat64.c
@@ -1,5 +1,4 @@
#define OPENAT openat64
-#define __OPENAT_2 __openat64_2
#define MORE_OFLAGS O_LARGEFILE
#include "openat.c"
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index de91a4541b..723d234538 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -289,11 +289,16 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf)
return -1;
}
+#if __ASSUME_XFS_RESTRICTED_CHOWN
+ return 1;
+#else
int fd;
+ int save_errno;
long int retval = 1;
switch (fsbuf->f_type)
{
case XFS_SUPER_MAGIC:
+ save_errno = errno;
/* Read the value from /proc/sys/fs/xfs/restrict_chown. If we cannot
read it default to assume the restriction is in place. */
fd = open_not_cancel_2 ("/proc/sys/fs/xfs/restrict_chown", O_RDONLY);
@@ -306,6 +311,7 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf)
close_not_cancel_no_status (fd);
}
+ __set_errno (save_errno);
break;
default:
@@ -313,4 +319,5 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf)
}
return retval;
+#endif
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
index 396a4236c1..289c4fe9b7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/Versions
@@ -4,5 +4,6 @@ libc {
__vdso_clock_gettime;
__vdso_clock_getres;
__vdso_getcpu;
+ __vdso_time;
}
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
index 5f5fc1eb3a..8b195db1bf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
@@ -32,14 +32,16 @@ extern void *__vdso_get_tbfreq;
extern void *__vdso_getcpu;
+extern void *__vdso_time;
+
/* This macro is needed for PPC64 to return a skeleton OPD entry of a vDSO
symbol. This works because _dl_vdso_vsym always return the function
address, and no vDSO symbols use the TOC or chain pointers from the OPD
so we can allow them to be garbage. */
#if defined(__PPC64__) || defined(__powerpc64__)
-#define VDSO_IFUNC_RET(value) &value
+#define VDSO_IFUNC_RET(value) ((void *) &(value))
#else
-#define VDSO_IFUNC_RET(value) value
+#define VDSO_IFUNC_RET(value) ((void *) (value))
#endif
#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/init-first.c b/sysdeps/unix/sysv/linux/powerpc/init-first.c
index 204c0c60a4..f6f05f0ba2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/init-first.c
+++ b/sysdeps/unix/sysv/linux/powerpc/init-first.c
@@ -28,7 +28,7 @@ void *__vdso_clock_gettime;
void *__vdso_clock_getres;
void *__vdso_get_tbfreq;
void *__vdso_getcpu;
-
+void *__vdso_time;
static inline void
_libc_vdso_platform_setup (void)
@@ -44,6 +44,8 @@ _libc_vdso_platform_setup (void)
__vdso_get_tbfreq = _dl_vdso_vsym ("__kernel_get_tbfreq", &linux2615);
__vdso_getcpu = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
+
+ __vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615);
}
# define VDSO_SETUP _libc_vdso_platform_setup
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libm.abilist
index 620aff9e94..76a4ba31db 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libm.abilist
@@ -397,6 +397,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
feclearexcept F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist
index 89422ab9f4..d309a6fa1a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist
@@ -81,6 +81,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.3
GLIBC_2.3 A
_LIB_VERSION D 0x4
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
index 779ea49c8e..344496b7ea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
@@ -22,6 +22,7 @@
#include <inttypes.h>
#include <stdio.h>
+#include <stdint.h>
#include <sys/platform/ppc.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c
new file mode 100644
index 0000000000..66b4eb3049
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/time.c
@@ -0,0 +1,62 @@
+/* time system call for Linux/PowerPC.
+ 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/>. */
+
+#ifdef SHARED
+
+# include <time.h>
+# include <sysdep.h>
+# include <bits/libc-vdso.h>
+
+void *time_ifunc (void) asm ("time");
+
+static time_t
+time_syscall (time_t *t)
+{
+ struct timeval tv;
+ time_t result;
+
+ if (INLINE_VSYSCALL (gettimeofday, 2, &tv, NULL) < 0)
+ result = (time_t) -1;
+ else
+ result = (time_t) tv.tv_sec;
+
+ if (t != NULL)
+ *t = result;
+ return result;
+}
+
+void *
+time_ifunc (void)
+{
+ /* If the vDSO is not available we fall back to the syscall. */
+ return (__vdso_time ? VDSO_IFUNC_RET (__vdso_time)
+ : time_syscall);
+}
+asm (".type time, %gnu_indirect_function");
+
+/* This is doing "libc_hidden_def (time)" but the compiler won't
+ * let us do it in C because it doesn't know we're defining time
+ * here in this file. */
+asm (".globl __GI_time\n"
+ "__GI_time = time");
+
+#else
+
+#include <sysdeps/posix/time.c>
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
index 219c6632ae..e92af92eb9 100644
--- a/sysdeps/unix/sysv/linux/preadv.c
+++ b/sysdeps/unix/sysv/linux/preadv.c
@@ -18,6 +18,7 @@
#include <errno.h>
#include <stddef.h>
#include <sys/param.h>
+#include <stdint.h>
#if __WORDSIZE == 64
/* Hide the preadv64 declaration. */
# define preadv64 __redirect_preadv64
diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
index 51b46d66b2..8dcd21675e 100644
--- a/sysdeps/unix/sysv/linux/pwritev.c
+++ b/sysdeps/unix/sysv/linux/pwritev.c
@@ -17,6 +17,7 @@
#include <errno.h>
#include <stddef.h>
+#include <stdint.h>
#include <sys/param.h>
#if __WORDSIZE == 64 && !defined PWRITEV
/* Hide the pwritev64 declaration. */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/siginfo.h b/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
index ad122084c5..19c94e77bc 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
@@ -95,7 +95,7 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
- int si_trapno;
+ short si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -128,7 +128,7 @@ typedef struct
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
-# define si_trapno _sifields._sigfault.si_trapno
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -219,8 +219,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/statfs.h b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
index ff54607fa2..91dde15339 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
@@ -23,8 +23,8 @@
struct statfs
{
- int f_type;
- int f_bsize;
+ unsigned int f_type;
+ unsigned int f_bsize;
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
@@ -39,27 +39,27 @@ struct statfs
__fsfilcnt64_t f_ffree;
#endif
__fsid_t f_fsid;
- int f_namelen;
- int f_frsize;
- int f_flags;
- int f_spare[4];
+ unsigned int f_namelen;
+ unsigned int f_frsize;
+ unsigned int f_flags;
+ unsigned int f_spare[4];
};
#ifdef __USE_LARGEFILE64
struct statfs64
{
- int f_type;
- int f_bsize;
+ unsigned int f_type;
+ unsigned int f_bsize;
__fsblkcnt64_t f_blocks;
__fsblkcnt64_t f_bfree;
__fsblkcnt64_t f_bavail;
__fsfilcnt64_t f_files;
__fsfilcnt64_t f_ffree;
__fsid_t f_fsid;
- int f_namelen;
- int f_frsize;
- int f_flags;
- int f_spare[4];
+ unsigned int f_namelen;
+ unsigned int f_frsize;
+ unsigned int f_flags;
+ unsigned int f_spare[4];
};
#endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist
index ae8af50eb8..f836c90d94 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist
@@ -393,6 +393,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
fedisableexcept F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist
index acf4d68514..a0891ad252 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist
@@ -81,6 +81,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
_LIB_VERSION D 0x4
diff --git a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
index ff32863102..a9b4d3b4b7 100644
--- a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
@@ -21,6 +21,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <netinet/in.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/setsourcefilter.c b/sysdeps/unix/sysv/linux/setsourcefilter.c
index 5ae37314bb..f50f293cf0 100644
--- a/sysdeps/unix/sysv/linux/setsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setsourcefilter.c
@@ -21,6 +21,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <netinet/in.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/sh/getgid.c b/sysdeps/unix/sysv/linux/sh/getgid.c
new file mode 100644
index 0000000000..0a4d6061f0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/getgid.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getgid.c>
diff --git a/sysdeps/unix/sysv/linux/sh/nptl/libm.abilist b/sysdeps/unix/sysv/linux/sh/nptl/libm.abilist
index d85192910f..92821fdbb9 100644
--- a/sysdeps/unix/sysv/linux/sh/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/nptl/libm.abilist
@@ -54,6 +54,10 @@ GLIBC_2.15
__y1f_finite F
__yn_finite F
__ynf_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
GLIBC_2.2
GLIBC_2.2 A
_LIB_VERSION D 0x4
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
index 85a54625e1..88fa1dfd5e 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
@@ -96,6 +96,7 @@ typedef struct
{
void *si_addr; /* Faulting insn/memory ref. */
int si_trapno;
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -129,6 +130,7 @@ typedef struct
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
# define si_trapno _sifields._sigfault.si_trapno
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -219,8 +221,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist
index 4c6ec6b712..9a1fcb1b46 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist
@@ -388,6 +388,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
feclearexcept F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist
index 22fb92aec5..2b41d34225 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist
@@ -81,6 +81,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2
GLIBC_2.2 A
_LIB_VERSION D 0x4
diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h
index f844a5ff0e..7590313b19 100644
--- a/sysdeps/unix/sysv/linux/sys/fsuid.h
+++ b/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -25,10 +25,10 @@ __BEGIN_DECLS
/* Change uid used for file access control to UID, without affecting
other privileges (such as who can send signals at the process). */
-extern int setfsuid (__uid_t __uid) __THROW __wur;
+extern int setfsuid (__uid_t __uid) __THROW;
/* Ditto for group id. */
-extern int setfsgid (__gid_t __gid) __THROW __wur;
+extern int setfsgid (__gid_t __gid) __THROW;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/glob64.c b/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
index 33918ea6a5..eab7703d5c 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
@@ -1 +1,2 @@
-/* glob64 is in glob.c */
+/* This file is here so sysdeps/gnu/glob64.c doesn't take precedence. */
+#include <sysdeps/wordsize-64/glob64.c>
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/openat.c b/sysdeps/unix/sysv/linux/wordsize-64/openat.c
index 4921fca335..12e027158c 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/openat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/openat.c
@@ -1,16 +1,14 @@
#define __openat64 __rename___openat64
-#define __openat64_2 __rename___openat64_2
#define __openat64_nocancel __rename___openat64_nocancel
#define openat64 __rename_openat64
#include "../openat.c"
#undef __openat64
-#undef __openat64_2
#undef __openat64_nocancel
#undef openat64
-weak_alias (__openat, __openat64)
-weak_alias (__openat_2, __openat64_2)
-weak_alias (__openat_nocancel, __openat64_nocancel)
+strong_alias (__openat, __openat64)
+hidden_ver (__openat, __openat64)
+strong_alias (__openat_nocancel, __openat64_nocancel)
weak_alias (openat, openat64)
diff --git a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
index 48aef6db64..bfc6aa3b5f 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
@@ -107,6 +107,7 @@ typedef struct
struct
{
void *si_addr; /* Faulting insn/memory ref. */
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
} _sigfault;
/* SIGPOLL. */
@@ -139,6 +140,7 @@ typedef struct
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
@@ -229,8 +231,12 @@ enum
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
- BUS_OBJERR /* Object specific hardware error. */
+ BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
};
/* `si_code' values for SIGTRAP signal. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libm.abilist
index 7bf568c51c..2390934678 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libm.abilist
@@ -81,6 +81,11 @@ GLIBC_2.15
__yn_finite F
__ynf_finite F
__ynl_finite F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
GLIBC_2.2.5
GLIBC_2.2.5 A
_LIB_VERSION D 0x4
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index 7f6dee309f..32cb0aa074 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -20,6 +20,7 @@
#include <sys/prctl.h>
#include <sys/syscall.h>
#include <sysdep.h>
+#include <stdint.h>
/* Since x32 arch_prctl stores 32-bit base address of segment registers
%fs and %gs as unsigned 64-bit value via ARCH_GET_FS and ARCH_GET_GS,
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libm.abilist
index 0f3ea4ba40..1825adb1b3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libm.abilist
@@ -395,3 +395,8 @@ GLIBC_2.16
yn F
ynf F
ynl F
+GLIBC_2.18
+ GLIBC_2.18 A
+ __issignaling F
+ __issignalingf F
+ __issignalingl F
diff --git a/sysdeps/wordsize-64/glob64.c b/sysdeps/wordsize-64/glob64.c
new file mode 100644
index 0000000000..33918ea6a5
--- /dev/null
+++ b/sysdeps/wordsize-64/glob64.c
@@ -0,0 +1 @@
+/* glob64 is in glob.c */
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index 78c98e7c5e..08db331923 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -37,6 +37,50 @@ tests-pie += $(quad-pie-test)
$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
+
+tests += tst-audit3 tst-audit4 tst-audit5
+ifeq (yes,$(config-cflags-avx))
+tests += tst-audit6 tst-audit7
+endif
+modules-names += tst-auditmod3a tst-auditmod3b \
+ tst-auditmod4a tst-auditmod4b \
+ tst-auditmod5a tst-auditmod5b \
+ tst-auditmod6a tst-auditmod6b tst-auditmod6c \
+ tst-auditmod7a tst-auditmod7b
+
+$(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
+$(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
+tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
+
+$(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so
+$(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so
+tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so
+
+$(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
+$(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
+tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so
+
+$(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
+$(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
+ $(objpfx)tst-auditmod6c.so
+tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
+
+$(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
+$(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
+tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
+
+ifeq (yes,$(config-cflags-avx))
+AVX-CFLAGS=-mavx
+ifeq (yes,$(config-cflags-novzeroupper))
+AVX-CFLAGS+=-mno-vzeroupper
+endif
+CFLAGS-tst-audit4.c += $(AVX-CFLAGS)
+CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS)
+CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS)
+CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
+CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
+CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
+endif
endif
ifeq ($(subdir),csu)
diff --git a/sysdeps/x86_64/dl-tls.h b/sysdeps/x86_64/dl-tls.h
index 2bb3e6fe62..af861c0ad4 100644
--- a/sysdeps/x86_64/dl-tls.h
+++ b/sysdeps/x86_64/dl-tls.h
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
/* Type used for the representation of TLS information in the GOT. */
typedef struct dl_tls_index
diff --git a/sysdeps/x86_64/dl-tlsdesc.h b/sysdeps/x86_64/dl-tlsdesc.h
index ea584bf5a1..a6c0596219 100644
--- a/sysdeps/x86_64/dl-tlsdesc.h
+++ b/sysdeps/x86_64/dl-tlsdesc.h
@@ -17,6 +17,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdint.h>
+
#ifndef _X86_64_DL_TLSDESC_H
# define _X86_64_DL_TLSDESC_H 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index f370aebcbb..db46ae127b 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1,2947 +1,5919 @@
# Begin of automatic generation
# acos
-Test "acos (0.75) == 0.722734247813415611178377352641333362":
+Test "acos (0.75)":
ildouble: 1
ldouble: 1
# acos_downward
-Test "acos_downward (-0) == pi/2":
+Test "acos_downward (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (-0.5) == M_PI_6l*4.0":
+Test "acos_downward (-0.5)":
double: 1
idouble: 1
-Test "acos_downward (-1) == pi":
+Test "acos_downward (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0) == pi/2":
+Test "acos_downward (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_downward (0.5) == M_PI_6l*2.0":
+Test "acos_downward (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_towardzero
-Test "acos_towardzero (-0) == pi/2":
+Test "acos_towardzero (-0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
+Test "acos_towardzero (-0.5)":
double: 1
idouble: 1
-Test "acos_towardzero (-1) == pi":
+Test "acos_towardzero (-1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0) == pi/2":
+Test "acos_towardzero (0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "acos_towardzero (0.5) == M_PI_6l*2.0":
+Test "acos_towardzero (0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
# acos_upward
-Test "acos_upward (-0.5) == M_PI_6l*4.0":
+Test "acos_upward (-0.5)":
ildouble: 1
ldouble: 1
-Test "acos_upward (0.5) == M_PI_6l*2.0":
+Test "acos_upward (0.5)":
ildouble: 1
ldouble: 1
# asin
-Test "asin (-0.5) == -pi/6":
+Test "asin (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffffffffffffp0) == -1.5707963264656243652399620683025688888978":
+Test "asin (-0x0.ffffffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (-0x0.ffffffffffffp0) == -1.5707962425011995974432331617542781977068":
+Test "asin (-0x0.ffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (-1.0) == -pi/2":
+Test "asin (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin (0.5) == pi/6":
+Test "asin (0.5)":
ildouble: 1
ldouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
+Test "asin (0.75)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffffffffffffp0) == 1.5707963264656243652399620683025688888978":
+Test "asin (0x0.ffffffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (0x0.ffffffffffffp0) == 1.5707962425011995974432331617542781977068":
+Test "asin (0x0.ffffffffffffp0)":
ildouble: 1
ldouble: 1
-Test "asin (1.0) == pi/2":
+Test "asin (1.0)":
ildouble: 1
ldouble: 1
# asin_downward
-Test "asin_downward (-0.5) == -pi/6":
+Test "asin_downward (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (0.5) == pi/6":
+Test "asin_downward (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_downward (1.0) == pi/2":
+Test "asin_downward (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_tonearest
-Test "asin_tonearest (-0.5) == -pi/6":
+Test "asin_tonearest (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (-1.0) == -pi/2":
+Test "asin_tonearest (-1.0)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (0.5) == pi/6":
+Test "asin_tonearest (0.5)":
ildouble: 1
ldouble: 1
-Test "asin_tonearest (1.0) == pi/2":
+Test "asin_tonearest (1.0)":
ildouble: 1
ldouble: 1
# asin_towardzero
-Test "asin_towardzero (-0.5) == -pi/6":
+Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (-1.0) == -pi/2":
+Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (0.5) == pi/6":
+Test "asin_towardzero (0.5)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "asin_towardzero (1.0) == pi/2":
+Test "asin_towardzero (1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# asin_upward
-Test "asin_upward (-0.5) == -pi/6":
+Test "asin_upward (-0.5)":
ildouble: 1
ldouble: 1
-Test "asin_upward (-1.0) == -pi/2":
+Test "asin_upward (-1.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "asin_upward (0.5) == pi/6":
+Test "asin_upward (0.5)":
ildouble: 1
ldouble: 1
# atan2
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+Test "atan2 (-0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (-max_value, -min_value) == -pi/2":
+Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+Test "atan2 (0.75, -1.0)":
float: 1
ifloat: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+Test "atanh (0.75)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cacos
-Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
-double: 2
+Test "Imaginary part of: cacos (+0 + 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacos (+0 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i)":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (+0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (+0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
-double: 2
+Test "Imaginary part of: cacos (-0 + 0.5 i)":
float: 1
-idouble: 2
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacos (-0 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+Test "Imaginary part of: cacos (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i)":
float: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+Test "Imaginary part of: cacos (-0 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 + 1.0 i) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.747098759571863549650000258275841544745 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.25 - 1.0 i) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 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) == 1.747098759571863549650000258275841544745 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 + 1.0 i) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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) == 1.920235389652109912858733517715121394831 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0.5 - 1.0 i) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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) == 1.920235389652109912858733517715121394831 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (-0.5 - 1.0 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.fffffffffffff8p0 - 0x1p-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i) == 3.141592653377875508152537040020250564229 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i) == 3.141592653377875508152537040020250564229 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (-0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i) == 3.141592643999491532482601997450598791535 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i) == 3.141592643999491532482601997450598791535 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (-0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i) == 3.141370441751352383825802745874586120521 - 5.364668491573609633134147164031476452679e-4 i":
+Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i) == 3.141370441751352383825802745874586120521 + 5.364668491573609633134147164031476452679e-4 i":
+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) == 1.572134236154454360143880041170803681211 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i) == 1.572134236154454360143880041170803681211 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691640832196834 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691640832196834 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 - 8.813736713132375348727889167749389235161e-1 i":
+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 "Imaginary part of: cacos (-0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442101 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442100 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442101 + 8.813736713132375348727889167749389235161e-1 i":
+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 "Imaginary part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442101 + 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+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 "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i) == 1.570796326794896619231321691639751442100 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: cacos (-0x1.fp-30 + 1.0 i) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+ifloat: 1
+ildouble: 1
+ldouble: 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) == 1.570796328070826603447840231892468927106 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+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 (-0x1.fp-30 - 1.0 i) == 1.570796328070826603447840231892468927106 + 8.813735870195430258081932989769495326854e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0.5 i) == 2.466703808003786858297978415967328452322 - 7.328576759736452608886724437653071523305e-1 i":
+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
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 - 4.350501469856803800217957402220976497152e-2 i":
+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 "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i) == 3.141550174918818561961484385371624132331 - 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 + 0x1p50 i) == 1.570796326794897507409741391764983781004 - 3.535050620855721078027883819436759661753e1 i":
+Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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 (-1.0 - 0.5 i) == 2.466703808003786858297978415967328452322 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i) == 3.098101355958774410750062883737683164607 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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-30 i) == 3.141550174918818561961484385371624132331 + 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-1.0 - 0x1p50 i) == 1.570796326794897507409741391764983781004 + 3.535050620855721078027883819436759661753e1 i":
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
-double: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (-1.0 - 0x1p50 i)":
float: 1
-idouble: 1
ifloat: 1
+Test "Imaginary part of: cacos (-1.5 + +0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-129 i) == 3.141592653589793238462643383279502884195 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 + 0x1.fp-16385 i) == 3.141592653589793238462643383279502884197 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (-1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-1025 i) == 3.141592653589793238462643383279502884197 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-129 i) == 3.141592653589793238462643383279502884195 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i) == 3.141592653589793238462643383279502884197 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+Test "Real part of: cacos (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442099 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 + 1.0 i) == 1.394493894017929688812643125003661339452 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0.25 - 1.0 i) == 1.394493894017929688812643125003661339452 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: cacos (0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+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 "Imaginary part of: cacos (0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 + 1.0 i) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: cacos (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 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) == 1.221357263937683325603909865564381489366 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (0.5 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+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 "Imaginary part of: cacos (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0.5 - 1.0 i) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+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 "Imaginary part of: cacos (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 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) == 1.221357263937683325603909865564381489366 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: cacos (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0.75 + 1.25 i)":
+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 "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+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
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
float: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
+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.0000000000000002p0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 + 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i) == 0.0 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i) == 0.0 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.557178503953494342609835913586108008322e-301 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i) == 9.590301705980041385828904092662391018164e-9 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 - 5.364668491573609633134147164031476452679e-4 i":
+Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 - 5.364668491573609633134147164031476452679e-4 i":
+Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 + 5.364668491573609633134147164031476452679e-4 i":
+Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
float: 2
ifloat: 2
-Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i) == 2.222118384408546368406374049167636760903e-4 + 5.364668491573609633134147164031476452679e-4 i":
+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) == 1.569458417435338878318763342108699202986 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i) == 1.569458417435338878318763342108699202986 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i) == 1.570796326794896619231321691638670687364 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691638670687364 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 - 1.194763217287109304111930828519090523536 i":
+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) == 1.570796326794896619231321691639751442099 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442099 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i) == 1.570796326794896619231321691639751442097 - 8.813735870195430252326093249797923090282e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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) == 1.570796326794896619231321691639751442097 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 0x1.000002p0 i) == 1.570796326794896619231321691639751442097 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i) == 1.570796326794896619231321691639751442097 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.570796326794896619231321691639751442097 + 1.194763217287109304111930828519090523536 i":
+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) == 1.570796325518966635014803151387033957091 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i) == 1.570796325518966635014803151387033957091 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 - 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 - 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Real part of: cacos (1.0 + 0.25 i) == 4.890443302710802929202843732146540079124e-1 - 5.097911466811016354623559941115413499164e-1 i":
+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
+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 "Real part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+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)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 + 0.5 i) == 6.748888455860063801646649673121744318756e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
+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)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
-float: 2
-ifloat: 2
+Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 - 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0.25 i) == 4.890443302710802929202843732146540079124e-1 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: cacos (1.0 + 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0.5 i) == 6.748888455860063801646649673121744318756e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: cacos (1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i) == 4.349129763101882771258049954181971959031e-2 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i) == 4.247867097467650115899790787875186617316e-5 + 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0.25 i)":
double: 1
-float: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-1025 i) == 4.819934639999230680322935210539402497827e-309 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-129 i) == 2.546345110742945032959687790021055102355e-39 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 + 0x1.fp-16385 i) == 7.282957076134209141226696333885150260319e-4933 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: cacos (1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-1025 i) == 4.819934639999230680322935210539402497827e-309 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-129 i) == 2.546345110742945032959687790021055102355e-39 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cacos (1.5 - 0x1.fp-16385 i) == 7.282957076134209141226696333885150260319e-4933 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: cacos (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# cacosh
-Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+Test "Real part of: cacosh (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
double: 1
-idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
float: 1
+idouble: 1
ifloat: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
+double: 1
idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
+float: 1
ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+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
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+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
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+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 "Real part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+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 "Real part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+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 (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+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 "Real part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+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 "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
float: 1
ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+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: 7
+float: 1
idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+ifloat: 1
+ildouble: 1
+ldouble: 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
-float: 3
idouble: 1
-ifloat: 3
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+Test "Real part of: cacosh (-0x1p-23 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 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
ildouble: 1
ldouble: 1
-
-# casin
-Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
-double: 2
+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
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
-double: 2
+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
-idouble: 2
ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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 (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-2 - 3 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "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
+Test "Real part of: cacosh (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "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
+Test "Real part of: cacosh (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0.75 + 1.25 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
+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.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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 "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
-double: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
float: 1
-idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
double: 1
+float: 1
idouble: 1
-Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
-double: 2
+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
-idouble: 2
ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
-double: 2
+Test "Real part of: cacosh (0x1.fp-129 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
-double: 2
+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
-idouble: 2
ifloat: 1
-Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+Test "Real part of: cacosh (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 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-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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
+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)":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
+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)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+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)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+
+# casin
+Test "Imaginary part of: casin (+0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (+0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0 + 1.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i) == -0.0 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i) == -0.0 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 + 1.0 i) == -1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.25 - 1.0 i) == -1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (-0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0.5 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (-0.5 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 + 1.0 i) == -3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
double: 1
idouble: 1
+Test "Imaginary part of: casin (-0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0.5 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0.5 - 1.0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0.5 - 1.0 i) == -3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i) == -1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
+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
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i) == -1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: casin (-0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i) == -1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i) == -1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (-0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i) == -1.570574114956455764594481054234834678422 + 5.364668491573609633134147164031476452679e-4 i":
+Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i) == -1.570574114956455764594481054234834678422 - 5.364668491573609633134147164031476452679e-4 i":
+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) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+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) == -1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-10 - 1.0 i) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+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) == -1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i) == -1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (-0x1.fp-100 - 1.0 i) == -1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i) == -1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i) == -1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i) == -3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+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) == -2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+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) == -3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+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) == -2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i) == -2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+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
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i) == -1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (-0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 i) == -2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i) == -2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+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
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i) == -1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i) == -1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i) == -1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+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 "Real part of: casin (-0x1p-23 - 0x1.000002p0 i) == -8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+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
+ildouble: 1
+ldouble: 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-63 + 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
+Test "Imaginary part of: casin (-0x1p-23 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i) == -7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 + 0.25 i) == -1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+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)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0.5 i) == -8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i) == -1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (-1.0 - 0.25 i) == -1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 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) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0.5 i) == -8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (-1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i) == -1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i) == -1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-1.0 - 0.25 i)":
double: 1
-float: 1
idouble: 1
+Test "Real part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-129 i) == -1.570796326794896619231321691639751442096 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 + +0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 + 0x1.fp-16385 i) == -1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-1025 i) == -1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-129 i) == -1.570796326794896619231321691639751442096 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i) == -1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i) == 0.0 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i) == 0.0 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (-1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.25 + 1.0 i) == 1.763024327769669304186785666360901026468e-1 + 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.25 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.25 - 1.0 i) == 1.763024327769669304186785666360901026468e-1 - 8.924633639033482359562124741744951972772e-1 i":
+Test "Imaginary part of: casin (0.25 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 + 1.0 i) == 3.494390628572132936274118260753699527325e-1 + 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+Test "Imaginary part of: casin (0.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0.5 - 1.0 i) == 3.494390628572132936274118260753699527325e-1 - 9.261330313501824245501244453057873152694e-1 i":
+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 "Real part of: casin (0.5 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
double: 1
-float: 1
idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+Test "Imaginary part of: casin (0.5 + 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 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 "Real part of: casin (0.5 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (0.5 - 0x1p-52 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.5 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0.5 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
+Test "Imaginary part of: casin (0.75 + 1.25 i)":
+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.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
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 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.0000000000000002p0 + 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i) == 1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i) == 1.570796326582978888921215348380499122131 - 5.116146586219826555037807251857670783420e-10 i":
+Test "Imaginary part of: casin (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i) == 1.570796317204594913251280305810847349436 + 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 + 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 2.107342425544701550354780375182800088393e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i) == 1.570796317204594913251280305810847349436 - 2.315303644582684770975188768022139415020e-8 i":
+Test "Imaginary part of: casin (0x1.0000000000001p0 - 0x1p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i) == 1.570574114956455764594481054234834678422 + 5.364668491573609633134147164031476452679e-4 i":
+Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i) == 1.570574114956455764594481054234834678422 - 5.364668491573609633134147164031476452679e-4 i":
+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) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+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) == 1.337909359557740912558349531052239112857e-3 + 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-10 - 1.0 i) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+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) == 1.337909359557740912558349531052239112857e-3 - 8.813742198809567991336704287826445879025e-1 i":
+Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i) == 1.080754735021050612990719608916167354321e-30 + 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (0x1.fp-100 - 1.0 i) == 1.080754735021050612990719608916167354321e-30 - 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (0x1.fp-1000 + 1.0 i) == 1.278589251976747242280879285935084814093e-301 + 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (0x1.fp-1000 - 1.0 i) == 1.278589251976747242280879285935084814093e-301 - 8.813735870195430252326093249797923090282e-1 i":
+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 "Imaginary part of: casin (0x1.fp-1025 + 1.0 i) == 3.810492908885321743133304375216617626230e-309 + 8.813735870195430252326093249797923090282e-1 i":
+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) == 2.989196569048182929051881765490354365918e-309 + 1.194763217287109304111930828519090523536 i":
+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) == 3.810492908885321743133304375216617626230e-309 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 2.989196569048182929051881765490354365918e-309 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-129 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 + 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i) == 2.013062564695348242280482517399205554874e-39 + 8.813735870195430252326093249797923090282e-1 i":
+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
idouble: 1
ifloat: 1
-Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i) == 1.579176199917649005841160751101628985741e-39 + 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
+float: 1
+ifloat: 1
+Test "Real part of: casin (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-129 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-129 - 0x1.000002p0 i) == 2.013062444707472738895109955455676357057e-39 - 8.813736713132375348727889167749389235161e-1 i":
+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) == 2.013062564695348242280482517399205554874e-39 - 8.813735870195430252326093249797923090282e-1 i":
+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) == 1.579176199917649005841160751101628985741e-39 - 1.194763217287109304111930828519090523536 i":
+Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i) == 1.275929984216518540252717485007112529021e-9 + 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i) == 1.275929984216518540252717485007112529021e-9 - 8.813735870195430258081932989769495326854e-1 i":
+Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i) == 7.853981633974483096156608458198757210493e-1 + 7.107906849659093345062145442726115449315e2 i":
+Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i) == 7.853981633974483096156608458198757210493e-1 + 8.973081118419833726837456344608533993585e1 i":
+Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
double: 1
idouble: 1
-Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 + 8.813736713132400470205730751186547909968e-1 i":
+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
+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 "Real part of: casin (0x1p-23 - 0x1.000002p0 i) == 8.429369199749229560964789467980644296420e-8 - 8.813736713132400470205730751186547909968e-1 i":
+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
+ildouble: 1
+ldouble: 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-63 + 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 + 8.813735870195430253092739958139610131001e-1 i":
+Test "Imaginary part of: casin (0x1p-23 + 0x1.000002p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i) == 7.666467083416870406778649849746878368519e-20 - 8.813735870195430253092739958139610131001e-1 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 + 0.25 i) == 1.081751996523816326311037318425097434186 + 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
double: 1
+float: 1
idouble: 1
-Test "Real part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+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)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0.5 i) == 8.959074812088902390666567243275770102229e-1 + 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i) == 1.527305029163877791518741192097931722508 + 4.350501469856803800217957402220976497152e-2 i":
+Test "Real part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 + 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casin (1.0 - 0.25 i) == 1.081751996523816326311037318425097434186 - 5.097911466811016354623559941115413499164e-1 i":
+Test "Real part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 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) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Real part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0.5 i) == 8.959074812088902390666567243275770102229e-1 - 7.328576759736452608886724437653071523305e-1 i":
+Test "Imaginary part of: casin (1.0 + 0.5 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i) == 1.527305029163877791518741192097931722508 - 4.350501469856803800217957402220976497152e-2 i":
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i) == 1.570753848123921942730162693731872690232 - 4.247867098745151888768727039216644758847e-5 i":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (1.0 - 0.25 i)":
double: 1
-float: 1
idouble: 1
+Test "Real part of: casin (1.0 - 0.5 i)":
+float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.0 - 0.5 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + +0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casin (1.5 + 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-129 i) == 1.570796326794896619231321691639751442096 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 + 0x1.fp-16385 i) == 1.570796326794896619231321691639751442099 + 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
+Test "Imaginary part of: casin (1.5 - 0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-1025 i) == 1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-1025 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-129 i) == 1.570796326794896619231321691639751442096 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casin (1.5 - 0x1.fp-16385 i) == 1.570796326794896619231321691639751442099 - 9.624236501192068949955178268487368462704e-1 i":
+Test "Imaginary part of: casin (1.5 - 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
# casinh
-Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
+Test "Real part of: casinh (+0 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
+Test "Real part of: casinh (+0 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
+Test "Real part of: casinh (-0 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
+Test "Real part of: casinh (-0 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0.0 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0.0 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.25 + 1.0 i) == -5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: casinh (-0.25 - 1.0 i) == -5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
-double: 2
+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
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.5 + 1.0 i) == -7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
-double: 2
+Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
float: 1
-idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+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
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0.5 - 1.0 i) == -7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (-0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i) == -8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.000002p0 + 0.0 i) == -8.813736713132375348727889167749389235161e-1 + 0.0 i":
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
+ildouble: 1
+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.000002p0 - 0.0 i) == -8.813736713132375348727889167749389235161e-1 - 0.0 i":
+Test "Real part of: casinh (-0x1.000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i) == -8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i) == -8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+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) == -4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+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) == -4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i) == -2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-1025 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (-0x1.fp-1025 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-129 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 + 1.5 i) == -9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-1025 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i) == -9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-129 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 + 1.0 i) == -4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1.fp-30 - 1.0 i) == -4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (-0x1.fp-16385 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i) == -5.364668491573609633134147164031476452679e-4 + 1.570574114956455764594481054234834678422 i":
+Test "Real part of: casinh (-0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 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.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i) == -5.364668491573609633134147164031476452679e-4 - 1.570574114956455764594481054234834678422 i":
+Test "Real part of: casinh (-0x1p-23 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 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 + 0x1.0000000000001p0 i) == -2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (-0x1p-23 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-52 + 0.5 i)":
+ildouble: 1
+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) == -2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (-0x1p-52 - 0.5 i)":
+ildouble: 1
+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
+Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i) == -5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
-double: 2
+Test "Real part of: casinh (-1.0 + +0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-1.0 + 0.25 i) == -8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 + 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0.5 i) == -9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+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) == -8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+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) == -8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+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 "Real part of: casinh (-1.0 + 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+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 "Real part of: casinh (-1.0 + 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+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 "Real part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+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
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
-double: 2
+Test "Real part of: casinh (-1.0 - 0 i)":
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (-1.0 - 0.25 i) == -8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (-1.0 - 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (-1.0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0.5 i) == -9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i) == -8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+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) == -8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+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) == -8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+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 "Real part of: casinh (-1.0 - 0x1.fp-1025 i) == -8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+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 "Real part of: casinh (-1.0 - 0x1.fp-129 i) == -8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+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 "Real part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+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
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i) == -8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 + 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i) == -1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-1.5 - 0x1.fp-129 i) == -1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (-1.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
-Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
+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 (-2 - 3 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.0 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0.0 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.25 + 1.0 i) == 5.097911466811016354623559941115413499164e-1 + 1.081751996523816326311037318425097434186 i":
+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 "Imaginary part of: casinh (0.25 - 1.0 i) == 5.097911466811016354623559941115413499164e-1 - 1.081751996523816326311037318425097434186 i":
+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
-Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+ifloat: 1
+Test "Real part of: casinh (0.5 + 0x1p-52 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 0x1p-63 i)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (0.5 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.5 + 1.0 i) == 7.328576759736452608886724437653071523305e-1 + 8.959074812088902390666567243275770102229e-1 i":
+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
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+Test "Real part of: casinh (0.5 - 0x1p-63 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Real part of: casinh (0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0.5 - 1.0 i) == 7.328576759736452608886724437653071523305e-1 - 8.959074812088902390666567243275770102229e-1 i":
+Test "Imaginary part of: casinh (0.5 - 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Real part of: casinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+Test "Imaginary part of: casinh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 + 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i) == 8.813735870195430253092739958139610131001e-1 - 7.666467083416870406778649849746878368519e-20 i":
+Test "Real part of: casinh (0x1.000002p0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.000002p0 + 0.0 i) == 8.813736713132375348727889167749389235161e-1 + 0.0 i":
+Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 + 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (0x1.000002p0 + 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 + 8.429369199749229560964789467980644296420e-8 i":
+Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: casinh (0x1.000002p0 - 0.0 i) == 8.813736713132375348727889167749389235161e-1 - 0.0 i":
+Test "Real part of: casinh (0x1.000002p0 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i) == 8.813736713132375348727889167749389235161e-1 - 2.013062444707472738895109955455676357057e-39 i":
+Test "Real part of: casinh (0x1.000002p0 - 0x1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i) == 8.813736713132400470205730751186547909968e-1 - 8.429369199749229560964789467980644296420e-8 i":
+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) == 4.350501469856803800217957402220976497152e-2 + 1.527305029163877791518741192097931722508 i":
+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) == 4.350501469856803800217957402220976497152e-2 - 1.527305029163877791518741192097931722508 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 + 1.570796326794896619231321691639751442099 i":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i) == 2.107342425544701550354780375182800088393e-8 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-1025 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (0x1.fp-1025 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-129 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442096 i":
+Test "Real part of: casinh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 + 1.5 i) == 9.624236501192068949955178268487368462704e-1 + 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-1025 - 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-16385 - 1.5 i) == 9.624236501192068949955178268487368462704e-1 - 1.570796326794896619231321691639751442099 i":
+Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 + 1.0 i) == 4.247867098745151888768727039216644758847e-5 + 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1.fp-129 + 1.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp-30 - 1.0 i) == 4.247867098745151888768727039216644758847e-5 - 1.570753848123921942730162693731872690232 i":
+Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1.fp-129 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 + 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-16385 - 1.5 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
+ildouble: 1
+ldouble: 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 (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 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 (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+Test "Real part of: casinh (0x1p-112 - 0.5 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i) == 5.364668491573609633134147164031476452679e-4 + 1.570574114956455764594481054234834678422 i":
+Test "Real part of: casinh (0x1p-23 + 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 + 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
+ildouble: 1
+ldouble: 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 - 0x1.000002p0 i) == 5.364668491573609633134147164031476452679e-4 - 1.570574114956455764594481054234834678422 i":
+Test "Real part of: casinh (0x1p-23 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-23 - 0.5 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
+ildouble: 1
+ldouble: 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 + 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 + 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (0x1p-23 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i) == 2.315303644582684770975188768022139415020e-8 - 1.570796317204594913251280305810847349436 i":
+Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 + 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-52 - 0.5 i)":
+ildouble: 1
+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
+Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 + 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i) == 5.116146586219826555037807251857670783420e-10 - 1.570796326582978888921215348380499122131 i":
+Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1p-63 - 0x1.0000000000000002p0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+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) == 8.924633639033482359562124741744951972772e-1 + 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 + 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 + 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0.5 i) == 9.261330313501824245501244453057873152694e-1 + 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 + 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 + 1.337909359557740912558349531052239112857e-3 i":
+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) == 8.813735870195430252326093249797923090282e-1 + 1.080754735021050612990719608916167354321e-30 i":
+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) == 8.813735870195430252326093249797923090282e-1 + 1.278589251976747242280879285935084814093e-301 i":
+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 "Real part of: casinh (1.0 + 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 + 3.810492908885321743133304375216617626230e-309 i":
+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 "Real part of: casinh (1.0 + 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 + 2.013062564695348242280482517399205554874e-39 i":
+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 "Real part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+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
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 + 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+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) == 8.924633639033482359562124741744951972772e-1 - 1.763024327769669304186785666360901026468e-1 i":
+Test "Real part of: casinh (1.0 - 0.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Real part of: casinh (1.0 - 0.5 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0.5 i) == 9.261330313501824245501244453057873152694e-1 - 3.494390628572132936274118260753699527325e-1 i":
+Test "Imaginary part of: casinh (1.0 - 0.5 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i) == 8.813742198809567991336704287826445879025e-1 - 1.337909359557740912558349531052239112857e-3 i":
+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) == 8.813735870195430252326093249797923090282e-1 - 1.080754735021050612990719608916167354321e-30 i":
+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) == 8.813735870195430252326093249797923090282e-1 - 1.278589251976747242280879285935084814093e-301 i":
+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 "Real part of: casinh (1.0 - 0x1.fp-1025 i) == 8.813735870195430252326093249797923090282e-1 - 3.810492908885321743133304375216617626230e-309 i":
+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 "Real part of: casinh (1.0 - 0x1.fp-129 i) == 8.813735870195430252326093249797923090282e-1 - 2.013062564695348242280482517399205554874e-39 i":
+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 "Real part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+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
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i) == 8.813735870195430258081932989769495326854e-1 - 1.275929984216518540252717485007112529021e-9 i":
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+Test "Real part of: casinh (1.5 + +0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 + 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 + 2.989196569048182929051881765490354365918e-309 i":
+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) == 1.194763217287109304111930828519090523536 + 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+Test "Real part of: casinh (1.5 - 0 i)":
double: 1
idouble: 1
-Test "Real part of: casinh (1.5 - 0x1.fp-1025 i) == 1.194763217287109304111930828519090523536 - 2.989196569048182929051881765490354365918e-309 i":
+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) == 1.194763217287109304111930828519090523536 - 1.579176199917649005841160751101628985741e-39 i":
+Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
double: 1
idouble: 1
# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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.3p-73 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.3p-73 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1022 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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-16382 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real 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 "Real 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 "Real 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 (-0x1p-57 - 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-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (-1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (-1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (-2 - 3 i)":
float: 3
ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
+Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+Test "Real part of: catan (0.75 + 1.25 i)":
float: 4
ifloat: 4
+Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catan (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 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)":
+ildouble: 1
+ldouble: 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.3p-73 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.3p-73 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1022 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 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-16382 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real 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 "Real 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 "Real 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 (0x1p-57 - 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-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catan (1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catan (1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catan (1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 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.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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 "Real part of: catanh (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 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 "Real part of: catanh (-0x1p-13 - 1.0 i)":
+ildouble: 1
+ldouble: 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 "Imaginary part of: catanh (-0x1p-27 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (-0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-0x1p-57 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-0x1p-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary part of: catanh (-1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (-1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary part of: catanh (-1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
ildouble: 1
ldouble: 1
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
+Test "Imaginary part of: catanh (-2 - 3 i)":
float: 4
ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+Test "Real part of: catanh (0.75 + 1.25 i)":
double: 1
idouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0.75 + 1.25 i)":
float: 6
ifloat: 6
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-1022 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-16382 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 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 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-27 + 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 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-27 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-33 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (0x1p-33 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-54 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-54 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-57 + 1.0 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (0x1p-57 - 1.0 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (0x1p-64 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1p-64 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 + 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 + 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 + 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary part of: catanh (1.0 + 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 + 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1.3p-73 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 - 0x1p-27 i)":
+float: 1
+ifloat: 1
+Test "Imaginary part of: catanh (1.0 - 0x1p-33 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-54 i)":
+float: 1
+ifloat: 1
+Test "Imaginary 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 "Imaginary part of: catanh (1.0 - 0x1p-57 i)":
+float: 1
+ifloat: 1
+Test "Real part of: catanh (1.0 - 0x1p-64 i)":
+ildouble: 1
+ldouble: 1
# cbrt
-Test "cbrt (-0.001) == -0.1":
+Test "cbrt (-0.001)":
ildouble: 1
ldouble: 1
-Test "cbrt (-27.0) == -3.0":
+Test "cbrt (-27.0)":
double: 1
idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+Test "cbrt (0.75)":
double: 1
idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+Test "cbrt (0.9921875)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# ccos
-Test "Imaginary part of: ccos (-0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (-0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Real part of: ccos (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
+Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Real part of: ccos (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+Test "Imaginary part of: ccos (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccos (0.75 + 710.5 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 + 89.5 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0.75 - 710.5 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccos (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccos (0.75 - 89.5 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccos (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccos (0x1p-1074 + 1440 i) == inf - 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
+Test "Imaginary part of: ccosh (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ccosh (-710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (-89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (-89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Real part of: ccosh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: ccosh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ccosh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# cexp
-Test "Real part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i":
+Test "Real part of: cexp (-10000 + 0x1p16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
+Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
-Test "Real part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Real part of: cexp (-95 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i":
+Test "Imaginary part of: cexp (-95 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Real part of: cexp (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+Test "Imaginary part of: cexp (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (11356.5625 + 0.75 i) == 9.052188470850960144814815984311663764287e4931 + 8.432986734191301036267148978260970230200e4931 i":
+Test "Imaginary part of: cexp (11356.5625 + 0.75 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (1440 + 0x1p-1074 i) == inf + 1.196295853897226111293303155636183216483e302 i":
+Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Real part of: cexp (50 + 0x1p127 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i":
+Test "Imaginary part of: cexp (50 + 0x1p127 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: cexp (500 + 0x1p1023 i) == -1.159886268932754433233243794561351783426e217 + 7.904017694554466595359379965081774849708e216 i":
+Test "Real part of: cexp (500 + 0x1p1023 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Real part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i":
+Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
double: 1
idouble: 1
-Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Real part of: cexp (88.75 + 0.75 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i":
+Test "Imaginary part of: cexp (88.75 + 0.75 i)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# clog
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 2.649094276923003995420209214900915462737e-10 + 3.141592653589793238462643383279502884197 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 2.649094282537168795982991778475646793277e-10 + 3.141592652530155111500161671113150737892 i":
+Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i) == 5.354083939753840089583620652120903838944e-25 - 1.570796326795931422008642456283782656359 i":
+Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + pi i":
+Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - pi i":
+Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i":
+Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i":
+Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
+Test "Imaginary part of: clog (-2 - 3 i)":
float: 3
ifloat: 3
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+Test "Real part of: clog (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -5.421010862427522170184200798202494495630e-20 + 3.548665303440282824232502561095699343814e-4516 i":
+Test "Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -5.960464655174753498633255797994360530379e-8 + 7.888609052210118054117285652827862296732e-31 i":
+Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i":
+Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.234566p-30 + 1.0 i) == 5.614163921211322622623353961365728040115e-19 + 1.570796325735258575254858696548386439740 i":
+Test "Real part of: clog (0x1.234566p-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i) == 89.06941264234832570836679262104313101776 + pi/4 i":
+Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i) == 88.69109041335841930424871526389807508374 + +0 i":
+Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i) == 88.69109041335841930424871526389807508374 - 0 i":
+Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i) == 11356.83823118610934184548269774874545400 + pi/4 i":
+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) == 11356.60974243783798653123798337822335902 + 0.4764674194737066993385333770295162295856 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + +0 i":
+Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i":
+Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 5.0844550531823026520677817684239496041087e-32 + 1.2627468605458094918919206628466016525397 i":
+Test "Imaginary part of: clog (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i) == -744.0934983311012896593986823853525458290 + pi/4 i":
+Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-147 + 0x1p-147 i) == -101.5460619520319878296245057936228672231 + pi/4 i":
+Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 + pi/2 i":
+Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-149 + 0x1p-149 i) == -102.9323563131518784484589700365392203592 + pi/4 i":
+Test "Real part of: clog (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i) == 88.69109041335841930424871526389807508374 - pi/2 i":
+Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i":
+Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i":
+Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i":
+Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
-Test "Real part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 4.4469229730850767799109418892826021157328e-20 + 1.2046235979300843056806465045930070146351 i":
+Test "Real part of: clog (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog (1.0 + 0x1.234566p-10 i) == 6.172834701221959432440126967147726538097e-7 + 1.111110564353742042376451655136933182201e-3 i":
+Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
float: 1
ifloat: 1
# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
+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) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 2
idouble: 2
-Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i":
+Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i) == 308.2409272754311106024666378243768099991 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i) == 308.2409272754311106024666378243768099991 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i) == 38.51805116050395969095658815123105801479 + 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i) == 38.51805116050395969095658815123105801479 - 1.364376353841841347485783625431355770210 i":
+Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (-0x1.fp+16383 + 0x1p-16445 i) == 4932.061660674182269085496060792589701158 + 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1.fp+16383 - 0x1p-16445 i) == 4932.061660674182269085496060792589701158 - 1.364376353841841347485783625431355770210 i":
+Test "Real part of: clog10 (-0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (-0x1p-16445 + 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (-0x1p-16445 - 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (-0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i) == 2.556638434669064077889576526006849923281e-13 + 1.364375882602207106407956770293808181427 i":
+Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
+Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (-3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf + inf i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
+Test "Imaginary part of: clog10 (-inf - 1 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (0 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+Test "Real part of: clog10 (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -2.354315103889861110220423157644627849164e-20 + 1.541165759405643564697852372112893034397e-4516 i":
+Test "Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i":
+Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Real part of: clog10 (0x1.234566p-30 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i) == 2.438200411482400072282924063740535840474e-19 + 6.821881764607257184291586401763604544928e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i":
+Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i) == 38.68235441693561449174780668781319348761 + pi/4*log10(e) i":
+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) == 38.53183941910362389414093724045094697423 + 1.276276851248440096917018665609900318458e-39 i":
+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) == 308.4052305577487344482591243175787477115 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 308.3031705664207720674749211936626341569 + 0.2013595981366865903254995612594728746470 i":
+Test "Real part of: clog10 (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i) == 4932.212175672014259683102930239951947672 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i) == 4932.112944269463028900262609694408579449 + 0.2069271710841128115912940666587802677383 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 + 0x1p-16445 i) == 4932.061660674182269085496060792589701158 + +0 i":
+Test "Real part of: clog10 (0x1.fp+16383 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1.fp+16383 - 0x1p-16445 i) == 4932.061660674182269085496060792589701158 - 0 i":
+Test "Real part of: clog10 (0x1.fp+16383 - 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x11682p-23 + 0x7ffed1p-23 i) == 5.0916490233953865181284669870035717560498e-13 + 0.6784968969384861816694467029319146542069 i":
+Test "Imaginary part of: clog10 (0x11682p-23 + 0x7ffed1p-23 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Real part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i) == -322.8546703496198318667349645920187712089 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
+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) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i) == -323.1557003452838130619487034867432642357 + pi/4*log10(e) i":
+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) == 308.2409272754311106024666378243768099991 - 0.6821881769209206737428918127156778851051 i":
+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) == -44.10089436477324509881274807713822842154 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 + 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Real part of: clog10 (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i) == -44.70295435610120748924022586658721447508 + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i) == 38.51805116050395969095658815123105801479 - 0.6821881769209206737428918127156778851051 i":
+Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-16440 + 0x1p-16441 i) == -4948.884673709346821106688037612752099609 + 0.2013595981366865710389502301937289472543 i":
+Test "Real part of: clog10 (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i) == -4948.884673709346821106688037612752099609 + 0.2013595981366865710389502301937289472543 i":
+Test "Imaginary part of: clog10 (0x1p-16440 + 0x1p-16441 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1p-16445 + 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 + 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-16445 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x1p-16445 - 0x1.fp+16383 i) == 4932.061660674182269085496060792589701158 - 0.6821881769209206737428918127156778851051 i":
+Test "Real part of: clog10 (0x1p-16445 - 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i) == 7.730698388614835910296270976605350994446e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i) == 1.932674597153708977574067744151337748612e-308 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i) == 4.831686492884272443935169360378344371529e-309 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i) == 4.084085680564517578238994467153626207224e-38 + 6.821881769209206735545466044044889962925e-1 i":
+Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i) == 1.021021420141129394559748616788406551878e-38 + 6.821881769209206736487192085600834406988e-1 i":
+Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i) == 2.552553550352823486399371541971016379740e-39 + 6.821881769209206736958055106378806629019e-1 i":
+Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Real part of: clog10 (0x1p-8190 + 1.0 i) == 2.920285685286322365786846845062520925172e-4932 + 6.821881769209206737428918127156778851051e-1 i":
+Test "Real part of: clog10 (0x1p-8190 + 1.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+Test "Imaginary part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+Test "Imaginary part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i":
+Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i) == -1.0893543813872082317104059174982092534059e-30 + 0.5954257879188711495921161433751775633232 i":
+Test "Imaginary part of: clog10 (0x659b70ab7971bp-53 + 0x1f5d111e08abecp-53 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i":
+Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i":
+Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i) == -4.3074341162203896332989394770760901408798e-39 + 0.5709443672155660428417571212549720987784 i":
+Test "Imaginary part of: clog10 (0x81b7efa81fc35ad1p-65 + 0x1ef4b835f1c79d812p-65 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -4.2289432987513243393180377141513840878196e-30 + 0.4252020027092323591068799049905597805296 i":
+Test "Real part of: clog10 (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
double: 1
idouble: 1
-Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
double: 1
idouble: 1
-Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
+Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
+Test "Imaginary part of: clog10 (3 - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf + inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
+Test "Imaginary part of: clog10 (inf - inf i)":
double: 1
float: 1
idouble: 1
ifloat: 1
# cos
-Test "cos (0.80190127184058835) == 0.69534156199418473":
+Test "cos (0.80190127184058835)":
double: 1
idouble: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
+Test "cos (M_PI_6l * 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
+Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
# cos_downward
-Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_downward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_downward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_downward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_downward (5)":
float: 1
ifloat: 1
-Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_downward (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_downward (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cos_tonearest
-Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_tonearest (7)":
float: 1
ifloat: 1
-Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_tonearest (8)":
ildouble: 1
ldouble: 1
-Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_tonearest (9)":
ildouble: 1
ldouble: 1
# cos_towardzero
-Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_towardzero (10)":
ildouble: 1
ldouble: 1
-Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_towardzero (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_towardzero (5)":
float: 1
ifloat: 1
-Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_towardzero (7)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_towardzero (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cos_upward
-Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
+Test "cos_upward (1)":
float: 1
ifloat: 1
-Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
+Test "cos_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (2) == -0.4161468365471423869975682295007621897660":
+Test "cos_upward (2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (3) == -0.9899924966004454572715727947312613023937":
+Test "cos_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
+Test "cos_upward (4)":
ildouble: 1
ldouble: 1
-Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
+Test "cos_upward (5)":
ildouble: 1
ldouble: 1
-Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
+Test "cos_upward (6)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
+Test "cos_upward (7)":
float: 1
ifloat: 1
-Test "cos_upward (8) == -0.1455000338086135258688413818311946826093":
+Test "cos_upward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
+Test "cos_upward (9)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
# cosh_downward
-Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_downward (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_downward (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_downward (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_tonearest
-Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
-Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
+Test "cosh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
+Test "cosh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# cosh_upward
-Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
+Test "cosh_upward (23)":
ildouble: 1
ldouble: 1
# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+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) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 5
ldouble: 5
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
double: 2
float: 3
idouble: 2
ifloat: 3
ildouble: 3
ldouble: 3
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
ildouble: 1
ldouble: 1
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
+Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
ildouble: 4
ldouble: 4
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
+Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 2
float: 2
idouble: 2
@@ -2950,284 +5922,284 @@ ildouble: 1
ldouble: 1
# csin
-Test "Real part of: csin (-0.75 + 710.5 i) == -1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 + 89.5 i) == -2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (-0.75 - 710.5 i) == -1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (-0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (-0.75 - 89.5 i) == -2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (-0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
+Test "Imaginary part of: csin (-2 - 3 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Real part of: csin (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+Test "Imaginary part of: csin (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 + 710.5 i) == 1.255317763348154410745082950806112487736e308 + 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 + 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 + 89.5 i) == 2.522786001038096774676288412995370563339e38 + 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 + 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0.75 - 710.5 i) == 1.255317763348154410745082950806112487736e308 - 1.347490911916428129246890157395342279438e308 i":
+Test "Real part of: csin (0.75 - 710.5 i)":
double: 1
idouble: 1
-Test "Real part of: csin (0.75 - 89.5 i) == 2.522786001038096774676288412995370563339e38 - 2.708024460708609732016532185663087200560e38 i":
+Test "Real part of: csin (0.75 - 89.5 i)":
float: 1
ifloat: 1
-Test "Real part of: csin (0x1p-1074 + 1440 i) == 5.981479269486130556466515778180916082415e301 + inf i":
+Test "Real part of: csin (0x1p-1074 + 1440 i)":
double: 1
idouble: 1
# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Real part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
+Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: csinh (-710.5 + 0.75 i) == -1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-710.5 - 0.75 i) == -1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (-89.5 + 0.75 i) == -2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (-89.5 - 0.75 i) == -2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
float: 1
ifloat: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Real part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (1440 + 0x1p-1074 i) == inf + 5.981479269486130556466515778180916082415e301 i":
+Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 + 0.75 i) == 1.347490911916428129246890157395342279438e308 + 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 + 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (710.5 - 0.75 i) == 1.347490911916428129246890157395342279438e308 - 1.255317763348154410745082950806112487736e308 i":
+Test "Imaginary part of: csinh (710.5 - 0.75 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csinh (89.5 + 0.75 i) == 2.708024460708609732016532185663087200560e38 + 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 + 0.75 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: csinh (89.5 - 0.75 i) == 2.708024460708609732016532185663087200560e38 - 2.522786001038096774676288412995370563339e38 i":
+Test "Imaginary part of: csinh (89.5 - 0.75 i)":
float: 1
ifloat: 1
# csqrt
-Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i":
+Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i":
+Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i) == 4.934094449071842328766868579214125217132e-20 - 1.191195773697904627170323731331667740087e-19 i":
+Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i":
+Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i":
+Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i) == 1.191195773697904627170323731331667740087e-19 + 4.934094449071842328766868579214125217132e-20 i":
+Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i) == 1.844674352395372953599975585936590505260e+19 + 2.710505511993121390769065968615872097053e-20 i":
+Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
float: 1
ifloat: 1
-Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i) == 1.473094556905565378990473658199034571917e+154 + 6.101757441282702188537080005372547713595e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
double: 1
idouble: 1
-Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i) == 1.379778091031440685006200821918878702861e+154 + 3.257214233483129514781233066898042490248e+153 i":
+Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i) == 1.179514222452201722651836720466795901016e+2466 + 4.885707879516577666702435054303191575148e+2465 i":
+Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i) == 3.453664695497464982856905711457966660085e-162 + 1.430554756764195530630723976279903095110e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1073 + 0x1p-1073 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i) == 2.442109726130830256743814843868934877597e-162 + 1.011554969366634726113090867589031782487e-162 i":
+Test "Imaginary part of: csqrt (0x1p-1074 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i) == 8.225610928685557596194006925540350401606e-23 + 3.407159605465907500737319471202779419102e-23 i":
+Test "Imaginary part of: csqrt (0x1p-147 + 0x1p-147 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i) == 4.112805464342778798097003462770175200803e-23 + 1.703579802732953750368659735601389709551e-23 i":
+Test "Imaginary part of: csqrt (0x1p-149 + 0x1p-149 i)":
ildouble: 1
ldouble: 1
# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Real part of: ctan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
+Test "Imaginary part of: ctan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Real part of: ctan (0.75 + 1.25 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Real part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Real part of: ctan (0x1p1023 + 1 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan (0x1p1023 + 1 i) == -0.2254627924997545057926782581695274244229 + 0.8786063118883068695462540226219865087189 i":
+Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Real part of: ctan (0x1p127 + 1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan (0x1p127 + 1 i) == 0.2446359391192790896381501310437708987204 + 0.9101334047676183761532873794426475906201 i":
+Test "Imaginary part of: ctan (0x1p127 + 1 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Real part of: ctan (0x3.243f6cp-1 + 0 i) == -2.287733242885645987394874673945769518150e7 + 0.0 i":
+Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctan (1 + 45 i) == 1.490158918874345552942703234806348520895e-39 + 1.000000000000000000000000000000000000001 i":
+Test "Real part of: ctan (1 + 45 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan (1 + 47 i) == 2.729321264492904590777293425576722354636e-41 + 1.0 i":
+Test "Real part of: ctan (1 + 47 i)":
ildouble: 2
ldouble: 2
# ctan_downward
-Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 3
ldouble: 3
-Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
# ctan_tonearest
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctan_towardzero
-Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
# ctan_upward
-Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
ildouble: 4
ldouble: 4
-Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i":
+Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
double: 1
float: 2
idouble: 1
@@ -3236,521 +6208,533 @@ ildouble: 1
ldouble: 1
# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
+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) == 0.0 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
+Test "Imaginary part of: ctanh (0 + pi/4 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Real part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Real part of: ctanh (1 + 0x1p1023 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (1 + 0x1p1023 i) == 0.8786063118883068695462540226219865087189 - 0.2254627924997545057926782581695274244229 i":
+Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Real part of: ctanh (1 + 0x1p127 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
-Test "Imaginary part of: ctanh (1 + 0x1p127 i) == 0.9101334047676183761532873794426475906201 + 0.2446359391192790896381501310437708987204 i":
+Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
float: 1
ifloat: 1
-Test "Imaginary part of: ctanh (45 + 1 i) == 1.000000000000000000000000000000000000001 + 1.490158918874345552942703234806348520895e-39 i":
+Test "Imaginary part of: ctanh (45 + 1 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh (47 + 1 i) == 1.0 + 2.729321264492904590777293425576722354636e-41 i":
+Test "Imaginary part of: ctanh (47 + 1 i)":
ildouble: 2
ldouble: 2
# ctanh_downward
-Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 3
ldouble: 3
-Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_tonearest
-Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
-Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
# ctanh_towardzero
-Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# ctanh_upward
-Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
ildouble: 4
ldouble: 4
-Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i":
+Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i":
+Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
-Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 1
ldouble: 1
-Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i":
+Test "Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
ildouble: 2
ldouble: 2
# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
+Test "erf (1.25)":
double: 1
idouble: 1
# erfc
-Test "erfc (0x1.f7303cp+1) == 2.705500297238986897105236321218861842255e-8":
+Test "erfc (0x1.f7303cp+1)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "erfc (0x1.ffa002p+2) == 1.233585992097580296336099501489175967033e-29":
+Test "erfc (0x1.ffa002p+2)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
+Test "erfc (1.25)":
ildouble: 1
ldouble: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+Test "erfc (2.0)":
double: 1
idouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+Test "erfc (4.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# exp10
-Test "exp10 (-1) == 0.1":
+Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "exp10 (-305) == 1.0e-305":
+Test "exp10 (-305)":
double: 1
idouble: 1
-Test "exp10 (-36) == 1.0e-36":
+Test "exp10 (-36)":
double: 1
idouble: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+Test "exp10 (0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp10 (3) == 1000":
+Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2
ildouble: 8
ldouble: 8
-Test "exp10 (36) == 1.0e36":
+Test "exp10 (36)":
double: 1
idouble: 1
# exp_downward
-Test "exp_downward (1) == e":
+Test "exp_downward (1)":
ildouble: 1
ldouble: 1
-Test "exp_downward (2) == e^2":
+Test "exp_downward (2)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp_downward (3) == e^3":
+Test "exp_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_towardzero
-Test "exp_towardzero (1) == e":
+Test "exp_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "exp_towardzero (2) == e^2":
+Test "exp_towardzero (2)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "exp_towardzero (3) == e^3":
+Test "exp_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# exp_upward
-Test "exp_upward (1) == e":
+Test "exp_upward (1)":
float: 1
ifloat: 1
# expm1
-Test "expm1 (-45.0) == -0.9999999999999999999713748141945060635553":
+Test "expm1 (-45.0)":
ildouble: 1
ldouble: 1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+Test "expm1 (0.75)":
double: 1
idouble: 1
-Test "expm1 (1) == M_El - 1.0":
+Test "expm1 (1)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "expm1 (11356.25) == 9.05128237311923300051376115753226014206e+4931":
+Test "expm1 (11356.25)":
ildouble: 1
ldouble: 1
-Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+Test "expm1 (500.0)":
double: 1
idouble: 1
# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
+Test "gamma (-0.5)":
+ildouble: 1
+ldouble: 1
+Test "gamma (0.7)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (1.2)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
+Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
+Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1
# j0
-Test "j0 (-0x1.001000001p+593) == -3.927269966354206207832593635798954916263e-90":
+Test "j0 (-0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (-4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+Test "j0 (0.75)":
float: 1
ifloat: 1
-Test "j0 (0x1.d7ce3ap+107) == 2.775523647291230802651040996274861694514e-17":
+Test "j0 (0x1.d7ce3ap+107)":
float: 2
ifloat: 2
-Test "j0 (0x1p16382) == -1.2193782500509000574176799046642541129387e-2466":
+Test "j0 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+Test "j0 (2.0)":
float: 2
ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "j0 (4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+Test "j0 (8.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
# j1
-Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12":
+Test "j1 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "j1 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "j1 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "j1 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+Test "j1 (10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+Test "j1 (2.0)":
double: 1
idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+Test "j1 (8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, -4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+Test "jn (0, 0.75)":
float: 1
ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+Test "jn (0, 2.0)":
float: 2
ifloat: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+Test "jn (0, 4.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+Test "jn (0, 8.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+Test "jn (1, 10.0)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+Test "jn (1, 2.0)":
double: 1
idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+Test "jn (1, 8.0)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+Test "jn (10, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+Test "jn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+Test "jn (10, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 2
ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+Test "jn (10, 2.0)":
double: 1
float: 4
idouble: 1
ifloat: 4
ildouble: 1
ldouble: 1
-Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16":
+Test "jn (2, 0x1.ffff62p+99)":
double: 2
float: 2
idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (2, 2.4048255576957729) == 0.43175480701968038399746111312430703":
+Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+Test "jn (3, -1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+Test "jn (3, 0.125)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+Test "jn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+Test "jn (3, 1.0)":
ildouble: 1
ldouble: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 1
ldouble: 1
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "jn (3, 2.4048255576957729) == 0.19899990535769083404042146764530813":
+Test "jn (3, 2.4048255576957729)":
double: 3
idouble: 3
ildouble: 1
ldouble: 1
-Test "jn (4, 2.4048255576957729) == 0.647466661641779720084932282551219891E-1":
+Test "jn (4, 2.4048255576957729)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "jn (5, 2.4048255576957729) == 0.163892432048058525099230549946147698E-1":
+Test "jn (5, 2.4048255576957729)":
double: 3
float: 1
idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
-Test "jn (6, 2.4048255576957729) == 0.34048184720278336646673682895929161E-2":
+Test "jn (6, 2.4048255576957729)":
double: 4
float: 3
idouble: 4
ifloat: 3
ildouble: 1
ldouble: 1
-Test "jn (7, 2.4048255576957729) == 0.60068836573295394221291569249883076E-3":
+Test "jn (7, 2.4048255576957729)":
double: 3
float: 5
idouble: 3
ifloat: 5
-Test "jn (8, 2.4048255576957729) == 0.92165786705344923232879022467054148E-4":
+Test "jn (8, 2.4048255576957729)":
double: 3
float: 2
idouble: 3
ifloat: 2
ildouble: 2
ldouble: 2
-Test "jn (9, 2.4048255576957729) == 0.12517270977961513005428966643852564E-4":
+Test "jn (9, 2.4048255576957729)":
double: 1
float: 2
idouble: 1
@@ -3759,15 +6743,15 @@ ildouble: 2
ldouble: 2
# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
+Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
+Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
+Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
@@ -3776,484 +6760,1161 @@ ildouble: 1
ldouble: 1
# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+Test "log10 (0.75)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "log10 (e) == log10(e)":
+Test "log10 (e)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+Test "log1p (-0.25)":
float: 1
ifloat: 1
# pow
-Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+Test "pow (0x0.ffffffp0, -0x1p24)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+Test "pow (0x0.ffffffp0, 0x1p24)":
float: 1
ifloat: 1
-Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+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 (0.75)":
+ildouble: 1
+ldouble: 1
+Test "pow10 (3)":
+double: 1
+idouble: 1
+Test "pow10 (36)":
+double: 1
+idouble: 1
+
# pow_downward
-Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_downward (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_downward (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_towardzero
-Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_towardzero (1.0625, 1.125)":
ildouble: 1
ldouble: 1
-Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_towardzero (1.5, 1.03125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# pow_upward
-Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
+Test "pow_upward (1.0625, 1.125)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
+Test "pow_upward (1.5, 1.03125)":
ildouble: 1
ldouble: 1
# sin_downward
-Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_downward (1)":
ildouble: 1
ldouble: 1
-Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_downward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_downward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_downward (4)":
ildouble: 1
ldouble: 1
-Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_downward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_downward (6)":
float: 1
ifloat: 1
-Test "sin_downward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_downward (7)":
ildouble: 1
ldouble: 1
-Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_downward (8)":
ildouble: 1
ldouble: 1
-Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_downward (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_tonearest
-Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_tonearest (1)":
float: 1
ifloat: 1
-Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_tonearest (10)":
ildouble: 1
ldouble: 1
-Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_tonearest (4)":
ildouble: 1
ldouble: 1
-Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_tonearest (9)":
ildouble: 1
ldouble: 1
# sin_towardzero
-Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_towardzero (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_towardzero (10)":
float: 1
ifloat: 1
-Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_towardzero (3)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_towardzero (4)":
float: 1
ifloat: 1
-Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_towardzero (5)":
float: 1
ifloat: 1
-Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_towardzero (7)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_towardzero (8)":
ildouble: 1
ldouble: 1
-Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# sin_upward
-Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
+Test "sin_upward (1)":
float: 1
ifloat: 1
-Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
+Test "sin_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
+Test "sin_upward (2)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
+Test "sin_upward (3)":
float: 2
ifloat: 2
ildouble: 1
ldouble: 1
-Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
+Test "sin_upward (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (5) == -0.9589242746631384688931544061559939733525":
+Test "sin_upward (5)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
+Test "sin_upward (6)":
ildouble: 1
ldouble: 1
-Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
+Test "sin_upward (7)":
float: 1
ifloat: 1
-Test "sin_upward (8) == 0.9893582466233817778081235982452886721164":
+Test "sin_upward (8)":
float: 1
ifloat: 1
-Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
+Test "sin_upward (9)":
float: 1
ifloat: 1
# sincos
-Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res":
-double: 1
-idouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
+Test "sincos (0.80190127184058835) extra output 2":
double: 1
-float: 1
idouble: 1
-ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
+Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
+Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
+Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1
# sinh_downward
-Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_downward (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_downward (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_downward (24)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# sinh_towardzero
-Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_towardzero (22)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_towardzero (23)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
+Test "sinh_towardzero (24)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
# sinh_upward
-Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
+Test "sinh_upward (22)":
ildouble: 1
ldouble: 1
-Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
+Test "sinh_upward (23)":
ildouble: 1
ldouble: 1
# tan
-Test "tan (0x1p16383) == 0.422722393732022337800504160054440141575":
+Test "tan (0x1p16383)":
ildouble: 1
ldouble: 1
-Test "tan (1e22) == -1.628778225606898878549375936939548513545":
+Test "tan (1e22)":
ildouble: 1
ldouble: 1
-Test "tan (pi/4) == 1":
+Test "tan (pi/4)":
double: 1
idouble: 1
# tan_downward
-Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_downward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_downward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_downward (2)":
float: 1
ifloat: 1
-Test "tan_downward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_downward (3)":
ildouble: 1
ldouble: 1
-Test "tan_downward (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_downward (4)":
ildouble: 1
ldouble: 1
-Test "tan_downward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_downward (5)":
ildouble: 1
ldouble: 1
-Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_downward (6)":
float: 1
ifloat: 1
-Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_downward (8)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_downward (9)":
float: 1
ifloat: 1
# tan_tonearest
-Test "tan_tonearest (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_tonearest (1)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_tonearest (2)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_tonearest (6)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_tonearest (8)":
ildouble: 1
ldouble: 1
-Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_tonearest (9)":
ildouble: 1
ldouble: 1
# tan_towardzero
-Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_towardzero (1)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_towardzero (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_towardzero (2)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_towardzero (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
+Test "tan_towardzero (4)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_towardzero (5)":
float: 1
ifloat: 1
-Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_towardzero (6)":
ildouble: 1
ldouble: 1
-Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_towardzero (8)":
ildouble: 2
ldouble: 2
-Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_towardzero (9)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
# tan_upward
-Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
+Test "tan_upward (1)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
+Test "tan_upward (10)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
+Test "tan_upward (2)":
ildouble: 1
ldouble: 1
-Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
+Test "tan_upward (3)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
+Test "tan_upward (5)":
float: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
+Test "tan_upward (6)":
ildouble: 1
ldouble: 1
-Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
+Test "tan_upward (7)":
ildouble: 1
ldouble: 1
-Test "tan_upward (8) == -6.7997114552203786999252627596086333648814":
+Test "tan_upward (8)":
ildouble: 2
ldouble: 2
-Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
+Test "tan_upward (9)":
ildouble: 1
ldouble: 1
# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
+Test "tgamma (-0.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.fffffffffffff8p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x0.ffffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x0.ffffffp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x1.000002p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.0a32a2p+5)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1.5800000080001p+7)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1.fffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffep0)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x13.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x13.ffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x14.000000000001p0)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x14.00002p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x1d.ffffep0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1d.ffffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1e.000000000000002p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x1e.000000000001p0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x1e.00002p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x1f4.00000000000002p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0x1p-24)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.0000000000002p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.000004p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2.fffffcp0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (-0x27.ffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x27.fffffffffffep0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.000000000002p0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x28.00004p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.fffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x28.ffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.00004p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x29.ffffcp0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2a.00004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x2ed.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 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 (-0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x31.fffffffffffep0)":
+double: 3
+idouble: 3
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x32.000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e7.fffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x3e8.00000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.000008p0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x4.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x4e2.00000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.0000000000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x5.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (-0x5db.fffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x6.000008p0)":
+float: 2
+ifloat: 2
+Test "tgamma (-0x6.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6.ffffffffffffcp0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.fffffffffffcp0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x63.ffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x64.000000000004p0)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x6d6.00000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.0000000000004p0)":
+double: 3
+idouble: 3
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.000008p0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.fffff8p0)":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x7.ffffffffffffcp0)":
+double: 3
+idouble: 3
+Test "tgamma (-0x7.fffffffffffffff8p0)":
+ildouble: 4
+ldouble: 4
+Test "tgamma (-0x8.000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0x8.00001p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.ffffffffffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x9.fffffp0)":
+float: 1
+ifloat: 1
+Test "tgamma (-0x95.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x95.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0x96.000000000008p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xa.000000000000001p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xa.00001p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb4.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb5.000000000008p0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb5.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb6.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.fffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xb7.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xb8.000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbb.ffffffffffffffp0)":
+ildouble: 2
+ldouble: 2
+Test "tgamma (-0xbc.00000000000001p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (-0xbd.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbe.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xbf.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xf9.ffffffffffffffp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-0xfa.00000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (-1.5)":
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 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
+ildouble: 1
+ldouble: 1
+Test "tgamma (-8.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (-9.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (0.5)":
+float: 1
+ifloat: 1
+Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "tgamma (0x1.fffffep0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x1.fffffffffffffffep0)":
+ildouble: 1
+ldouble: 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 (0x1p-64)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.000004p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.30a43cp+4)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+Test "tgamma (0x2.fffffcp0)":
+float: 3
+ifloat: 3
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x2.ffffffffffffep0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.0000000000002p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.fffffcp0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x3.ffffffffffffep0)":
+double: 1
+idouble: 1
+Test "tgamma (0x3.fffffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.fffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x4.ffffffffffffcp0)":
+double: 1
+idouble: 1
+Test "tgamma (0x4.fffffffffffffff8p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.0000000000000008p0)":
ildouble: 1
ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
+Test "tgamma (0x5.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x5.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.fffff8p0)":
+double: 1
float: 1
+idouble: 1
ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x5.ffffffffffffcp0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000000008p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.0000000000004p0)":
+double: 1
+idouble: 1
+Test "tgamma (0x6.000008p0)":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.fffff8p0)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x6.ffffffffffffcp0)":
+double: 3
+idouble: 3
+Test "tgamma (0x7.0000000000000008p0)":
+ildouble: 1
+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 (4) == 6":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.fffff8p0)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x7.ffffffffffffcp0)":
+double: 2
+idouble: 2
+Test "tgamma (0x7.fffffffffffffff8p0)":
+ildouble: 3
+ldouble: 3
+Test "tgamma (0x8.000000000000001p0)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (0x8.00001p0)":
+double: 2
+idouble: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (0xa.b9fd72b0fb238p+4)":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (10)":
+double: 1
+float: 1
+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
+Test "tgamma (2.5)":
+float: 2
+ifloat: 2
+Test "tgamma (23.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (29.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 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 (32.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (33.5)":
+float: 1
+ifloat: 1
+Test "tgamma (34.5)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "tgamma (4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (4.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "tgamma (5.5)":
+ildouble: 1
+ldouble: 1
+Test "tgamma (6)":
+float: 1
+ifloat: 1
+Test "tgamma (6.5)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (7)":
+double: 1
+idouble: 1
+Test "tgamma (7.5)":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (8)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (8.5)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "tgamma (9)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "tgamma (9.5)":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
# y0
-Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+Test "y0 (0.125)":
ildouble: 1
ldouble: 1
-Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12":
+Test "y0 (0x1.3ffp+74)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127":
+Test "y0 (0x1.ff00000000002p+840)":
double: 1
idouble: 1
-Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+Test "y0 (0x1p-10)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+Test "y0 (0x1p-110)":
double: 1
idouble: 1
-Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+Test "y0 (0x1p-20)":
float: 1
ifloat: 1
-Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+Test "y0 (0x1p-30)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+Test "y0 (0x1p-40)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p-50) == -2.2137364310373846564919987139743760738155e+1":
+Test "y0 (0x1p-50)":
float: 1
ifloat: 1
-Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+Test "y0 (0x1p-70)":
double: 1
idouble: 1
-Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+Test "y0 (0x1p-80)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "y0 (0x1p16382) == 8.0839224448726336195866026476176740513439e-2467":
+Test "y0 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+Test "y0 (10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
@@ -4262,43 +7923,43 @@ ildouble: 1
ldouble: 1
# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+Test "y1 (0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1.001000001p+593) == 3.927269966354206207832593635798954916263e-90":
+Test "y1 (0x1.001000001p+593)":
ildouble: 2
ldouble: 2
-Test "y1 (0x1.27e204p+99) == -8.881610148467797208469612080785210013461e-16":
+Test "y1 (0x1.27e204p+99)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+Test "y1 (0x1p-10)":
double: 1
idouble: 1
-Test "y1 (0x1p16382) == 1.2193782500509000574176799046642541129387e-2466":
+Test "y1 (0x1p16382)":
ildouble: 1
ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+Test "y1 (1.5)":
float: 1
ifloat: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
@@ -4307,101 +7968,101 @@ ildouble: 1
ldouble: 1
# yn
-Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+Test "yn (0, 0.125)":
ildouble: 1
ldouble: 1
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+Test "yn (0, 10.0)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+Test "yn (1, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+Test "yn (1, 1.5)":
float: 1
ifloat: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
ildouble: 1
ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+Test "yn (10, 0.125)":
double: 1
idouble: 1
ildouble: 2
ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+Test "yn (10, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 4
ldouble: 4
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+Test "yn (10, 1.0)":
double: 1
idouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+Test "yn (10, 2.0)":
double: 2
idouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+Test "yn (3, 0.125)":
double: 1
idouble: 1
ildouble: 1
ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+Test "yn (3, 0.75)":
double: 1
float: 1
idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+Test "yn (3, 2.0)":
double: 1
idouble: 1
@@ -4479,26 +8140,26 @@ ildouble: 1
ldouble: 1
Function: Imaginary part of "cacos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "cacosh":
double: 1
-float: 7
+float: 2
idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "cacosh":
double: 1
-float: 3
+float: 2
idouble: 1
-ifloat: 3
+ifloat: 2
ildouble: 1
ldouble: 1
@@ -4507,32 +8168,32 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
Function: Imaginary part of "casin":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 2
ldouble: 2
Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 5
-ldouble: 5
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 5
-ldouble: 5
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Function: Real part of "catan":
float: 4
@@ -4543,16 +8204,20 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
Function: Real part of "catanh":
double: 4
+float: 1
idouble: 4
+ifloat: 1
ildouble: 1
ldouble: 1
Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
+float: 1
+ifloat: 1
Function: "cbrt":
double: 1
@@ -4931,6 +8596,10 @@ ildouble: 1
ldouble: 1
Function: "gamma":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 1
ldouble: 1
@@ -4988,6 +8657,12 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "pow10":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
Function: "pow_downward":
float: 1
ifloat: 1
@@ -5083,12 +8758,12 @@ ildouble: 2
ldouble: 2
Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 4
+ldouble: 4
Function: "y0":
double: 2
diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h
index 63a699e8fc..027a6a3a4d 100644
--- a/sysdeps/x86_64/fpu/math_private.h
+++ b/sysdeps/x86_64/fpu/math_private.h
@@ -5,15 +5,17 @@
#if defined __AVX__ || defined SSE2AVX
# define MOVD "vmovd"
+# define MOVQ "vmovq"
#else
# define MOVD "movd"
+# define MOVQ "movq"
#endif
/* Direct movement of float into integer register. */
#define EXTRACT_WORDS64(i, d) \
do { \
int64_t i_; \
- asm (MOVD " %1, %0" : "=rm" (i_) : "x" ((double) (d))); \
+ asm (MOVQ " %1, %0" : "=rm" (i_) : "x" ((double) (d))); \
(i) = i_; \
} while (0)
@@ -22,7 +24,7 @@
do { \
int64_t i_ = i; \
double d__; \
- asm (MOVD " %1, %0" : "=x" (d__) : "rm" (i_)); \
+ asm (MOVQ " %1, %0" : "=x" (d__) : "rm" (i_)); \
d = d__; \
} while (0)
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fma.c b/sysdeps/x86_64/fpu/multiarch/s_fma.c
index ea185590d3..25a306f86a 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fma.c
@@ -38,7 +38,7 @@ __fma_fma3 (double x, double y, double z)
static double
__fma_fma4 (double x, double y, double z)
{
- asm ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "xm" (y), "xm" (z));
+ asm ("vfmaddsd %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
return x;
}
# else
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
index 9647d79e70..063be692d1 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
@@ -37,7 +37,7 @@ __fmaf_fma3 (float x, float y, float z)
static float
__fmaf_fma4 (float x, float y, float z)
{
- asm ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "xm" (y), "xm" (z));
+ asm ("vfmaddss %3, %2, %1, %0" : "=x" (x) : "x" (x), "x" (y), "x" (z));
return x;
}
# else
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
index b393efe445..6c69f4b442 100644
--- a/sysdeps/x86_64/memset.S
+++ b/sysdeps/x86_64/memset.S
@@ -19,17 +19,31 @@
#include <sysdep.h>
-#define __STOS_LOWER_BOUNDARY $8192
-#define __STOS_UPPER_BOUNDARY $65536
+#ifndef ALIGN
+# define ALIGN(n) .p2align n
+#endif
.text
#if !defined NOT_IN_libc
ENTRY(__bzero)
- mov %rsi,%rdx /* Adjust parameter. */
- xorl %esi,%esi /* Fill with 0s. */
- jmp L(memset_entry)
+ movq %rdi, %rax /* Set return value. */
+ movq %rsi, %rdx /* Set n. */
+ pxor %xmm8, %xmm8
+ jmp L(entry_from_bzero)
END(__bzero)
weak_alias (__bzero, bzero)
+
+/* Like memset but takes additional parameter with return value. */
+ENTRY(__memset_tail)
+ movq %rcx, %rax /* Set return value. */
+
+ movd %esi, %xmm8
+ punpcklbw %xmm8, %xmm8
+ punpcklwd %xmm8, %xmm8
+ pshufd $0, %xmm8, %xmm8
+
+ jmp L(entry_from_bzero)
+END(__memset_tail)
#endif
#if defined PIC && !defined NOT_IN_libc
@@ -38,1318 +52,79 @@ ENTRY_CHK (__memset_chk)
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (__memset_chk)
#endif
-ENTRY (memset)
-L(memset_entry):
- cmp $0x1,%rdx
- mov %rdi,%rax /* memset returns the dest address. */
- jne L(ck2)
- mov %sil,(%rdi)
- retq
-L(ck2):
- mov $0x101010101010101,%r9
- mov %rdx,%r8
- movzbq %sil,%rdx
- imul %r9,%rdx
-L(now_dw_aligned):
- cmp $0x90,%r8
- ja L(ck_mem_ops_method)
-L(now_dw_aligned_small):
- add %r8,%rdi
-#ifndef PIC
- lea L(setPxQx)(%rip),%r11
- jmpq *(%r11,%r8,8)
-#else
- lea L(Got0)(%rip),%r11
- lea L(setPxQx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-#endif
-
-L(Got0):
- retq
-
- .pushsection .rodata
- .balign 16
-#ifndef PIC
-L(setPxQx):
- .quad L(Got0), L(P1Q0), L(P2Q0), L(P3Q0)
- .quad L(P4Q0), L(P5Q0), L(P6Q0), L(P7Q0)
- .quad L(P0Q1), L(P1Q1), L(P2Q1), L(P3Q1)
- .quad L(P4Q1), L(P5Q1), L(P6Q1), L(P7Q1)
- .quad L(P0Q2), L(P1Q2), L(P2Q2), L(P3Q2)
- .quad L(P4Q2), L(P5Q2), L(P6Q2), L(P7Q2)
- .quad L(P0Q3), L(P1Q3), L(P2Q3), L(P3Q3)
- .quad L(P4Q3), L(P5Q3), L(P6Q3), L(P7Q3)
- .quad L(P0Q4), L(P1Q4), L(P2Q4), L(P3Q4)
- .quad L(P4Q4), L(P5Q4), L(P6Q4), L(P7Q4)
- .quad L(P0Q5), L(P1Q5), L(P2Q5), L(P3Q5)
- .quad L(P4Q5), L(P5Q5), L(P6Q5), L(P7Q5)
- .quad L(P0Q6), L(P1Q6), L(P2Q6), L(P3Q6)
- .quad L(P4Q6), L(P5Q6), L(P6Q6), L(P7Q6)
- .quad L(P0Q7), L(P1Q7), L(P2Q7), L(P3Q7)
- .quad L(P4Q7), L(P5Q7), L(P6Q7), L(P7Q7)
- .quad L(P0Q8), L(P1Q8), L(P2Q8), L(P3Q8)
- .quad L(P4Q8), L(P5Q8), L(P6Q8), L(P7Q8)
- .quad L(P0Q9), L(P1Q9), L(P2Q9), L(P3Q9)
- .quad L(P4Q9), L(P5Q9), L(P6Q9), L(P7Q9)
- .quad L(P0QA), L(P1QA), L(P2QA), L(P3QA)
- .quad L(P4QA), L(P5QA), L(P6QA), L(P7QA)
- .quad L(P0QB), L(P1QB), L(P2QB), L(P3QB)
- .quad L(P4QB), L(P5QB), L(P6QB), L(P7QB)
- .quad L(P0QC), L(P1QC), L(P2QC), L(P3QC)
- .quad L(P4QC), L(P5QC), L(P6QC), L(P7QC)
- .quad L(P0QD), L(P1QD), L(P2QD), L(P3QD)
- .quad L(P4QD), L(P5QD), L(P6QD), L(P7QD)
- .quad L(P0QE), L(P1QE), L(P2QE), L(P3QE)
- .quad L(P4QE), L(P5QE), L(P6QE), L(P7QE)
- .quad L(P0QF), L(P1QF), L(P2QF), L(P3QF)
- .quad L(P4QF), L(P5QF), L(P6QF), L(P7QF)
- .quad L(P0QG), L(P1QG), L(P2QG), L(P3QG)
- .quad L(P4QG), L(P5QG), L(P6QG), L(P7QG)
- .quad L(P0QH), L(P1QH), L(P2QH), L(P3QH)
- .quad L(P4QH), L(P5QH), L(P6QH), L(P7QH)
- .quad L(P0QI)
-# ifdef USE_EXTRA_TABLE
- .quad L(P1QI), L(P2QI), L(P3QI), L(P4QI)
- .quad L(P5QI), L(P6QI), L(P7QI)
-# endif
-#else
-L(setPxQx):
- .short L(Got0)-L(Got0)
- .short L(P1Q0)-L(Got0)
- .short L(P2Q0)-L(Got0)
- .short L(P3Q0)-L(Got0)
- .short L(P4Q0)-L(Got0)
- .short L(P5Q0)-L(Got0)
- .short L(P6Q0)-L(Got0)
- .short L(P7Q0)-L(Got0)
-
- .short L(P0Q1)-L(Got0)
- .short L(P1Q1)-L(Got0)
- .short L(P2Q1)-L(Got0)
- .short L(P3Q1)-L(Got0)
- .short L(P4Q1)-L(Got0)
- .short L(P5Q1)-L(Got0)
- .short L(P6Q1)-L(Got0)
- .short L(P7Q1)-L(Got0)
-
- .short L(P0Q2)-L(Got0)
- .short L(P1Q2)-L(Got0)
- .short L(P2Q2)-L(Got0)
- .short L(P3Q2)-L(Got0)
- .short L(P4Q2)-L(Got0)
- .short L(P5Q2)-L(Got0)
- .short L(P6Q2)-L(Got0)
- .short L(P7Q2)-L(Got0)
-
- .short L(P0Q3)-L(Got0)
- .short L(P1Q3)-L(Got0)
- .short L(P2Q3)-L(Got0)
- .short L(P3Q3)-L(Got0)
- .short L(P4Q3)-L(Got0)
- .short L(P5Q3)-L(Got0)
- .short L(P6Q3)-L(Got0)
- .short L(P7Q3)-L(Got0)
-
- .short L(P0Q4)-L(Got0)
- .short L(P1Q4)-L(Got0)
- .short L(P2Q4)-L(Got0)
- .short L(P3Q4)-L(Got0)
- .short L(P4Q4)-L(Got0)
- .short L(P5Q4)-L(Got0)
- .short L(P6Q4)-L(Got0)
- .short L(P7Q4)-L(Got0)
-
- .short L(P0Q5)-L(Got0)
- .short L(P1Q5)-L(Got0)
- .short L(P2Q5)-L(Got0)
- .short L(P3Q5)-L(Got0)
- .short L(P4Q5)-L(Got0)
- .short L(P5Q5)-L(Got0)
- .short L(P6Q5)-L(Got0)
- .short L(P7Q5)-L(Got0)
-
- .short L(P0Q6)-L(Got0)
- .short L(P1Q6)-L(Got0)
- .short L(P2Q6)-L(Got0)
- .short L(P3Q6)-L(Got0)
- .short L(P4Q6)-L(Got0)
- .short L(P5Q6)-L(Got0)
- .short L(P6Q6)-L(Got0)
- .short L(P7Q6)-L(Got0)
-
- .short L(P0Q7)-L(Got0)
- .short L(P1Q7)-L(Got0)
- .short L(P2Q7)-L(Got0)
- .short L(P3Q7)-L(Got0)
- .short L(P4Q7)-L(Got0)
- .short L(P5Q7)-L(Got0)
- .short L(P6Q7)-L(Got0)
- .short L(P7Q7)-L(Got0)
-
- .short L(P0Q8)-L(Got0)
- .short L(P1Q8)-L(Got0)
- .short L(P2Q8)-L(Got0)
- .short L(P3Q8)-L(Got0)
- .short L(P4Q8)-L(Got0)
- .short L(P5Q8)-L(Got0)
- .short L(P6Q8)-L(Got0)
- .short L(P7Q8)-L(Got0)
-
- .short L(P0Q9)-L(Got0)
- .short L(P1Q9)-L(Got0)
- .short L(P2Q9)-L(Got0)
- .short L(P3Q9)-L(Got0)
- .short L(P4Q9)-L(Got0)
- .short L(P5Q9)-L(Got0)
- .short L(P6Q9)-L(Got0)
- .short L(P7Q9)-L(Got0)
-
- .short L(P0QA)-L(Got0)
- .short L(P1QA)-L(Got0)
- .short L(P2QA)-L(Got0)
- .short L(P3QA)-L(Got0)
- .short L(P4QA)-L(Got0)
- .short L(P5QA)-L(Got0)
- .short L(P6QA)-L(Got0)
- .short L(P7QA)-L(Got0)
-
- .short L(P0QB)-L(Got0)
- .short L(P1QB)-L(Got0)
- .short L(P2QB)-L(Got0)
- .short L(P3QB)-L(Got0)
- .short L(P4QB)-L(Got0)
- .short L(P5QB)-L(Got0)
- .short L(P6QB)-L(Got0)
- .short L(P7QB)-L(Got0)
-
- .short L(P0QC)-L(Got0)
- .short L(P1QC)-L(Got0)
- .short L(P2QC)-L(Got0)
- .short L(P3QC)-L(Got0)
- .short L(P4QC)-L(Got0)
- .short L(P5QC)-L(Got0)
- .short L(P6QC)-L(Got0)
- .short L(P7QC)-L(Got0)
-
- .short L(P0QD)-L(Got0)
- .short L(P1QD)-L(Got0)
- .short L(P2QD)-L(Got0)
- .short L(P3QD)-L(Got0)
- .short L(P4QD)-L(Got0)
- .short L(P5QD)-L(Got0)
- .short L(P6QD)-L(Got0)
- .short L(P7QD)-L(Got0)
-
- .short L(P0QE)-L(Got0)
- .short L(P1QE)-L(Got0)
- .short L(P2QE)-L(Got0)
- .short L(P3QE)-L(Got0)
- .short L(P4QE)-L(Got0)
- .short L(P5QE)-L(Got0)
- .short L(P6QE)-L(Got0)
- .short L(P7QE)-L(Got0)
-
- .short L(P0QF)-L(Got0)
- .short L(P1QF)-L(Got0)
- .short L(P2QF)-L(Got0)
- .short L(P3QF)-L(Got0)
- .short L(P4QF)-L(Got0)
- .short L(P5QF)-L(Got0)
- .short L(P6QF)-L(Got0)
- .short L(P7QF)-L(Got0)
-
- .short L(P0QG)-L(Got0)
- .short L(P1QG)-L(Got0)
- .short L(P2QG)-L(Got0)
- .short L(P3QG)-L(Got0)
- .short L(P4QG)-L(Got0)
- .short L(P5QG)-L(Got0)
- .short L(P6QG)-L(Got0)
- .short L(P7QG)-L(Got0)
-
- .short L(P0QH)-L(Got0)
- .short L(P1QH)-L(Got0)
- .short L(P2QH)-L(Got0)
- .short L(P3QH)-L(Got0)
- .short L(P4QH)-L(Got0)
- .short L(P5QH)-L(Got0)
- .short L(P6QH)-L(Got0)
- .short L(P7QH)-L(Got0)
-
- .short L(P0QI)-L(Got0)
-# ifdef USE_EXTRA_TABLE
- .short L(P1QI)-L(Got0)
- .short L(P2QI)-L(Got0)
- .short L(P3QI)-L(Got0)
- .short L(P4QI)-L(Got0)
- .short L(P5QI)-L(Got0)
- .short L(P6QI)-L(Got0)
- .short L(P7QI)-L(Got0)
-# endif
-#endif
- .popsection
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P1QI): mov %rdx,-0x91(%rdi)
-#endif
-L(P1QH): mov %rdx,-0x89(%rdi)
-L(P1QG): mov %rdx,-0x81(%rdi)
-# .balign 16
-L(P1QF): mov %rdx,-0x79(%rdi)
-L(P1QE): mov %rdx,-0x71(%rdi)
-L(P1QD): mov %rdx,-0x69(%rdi)
-L(P1QC): mov %rdx,-0x61(%rdi)
-L(P1QB): mov %rdx,-0x59(%rdi)
-L(P1QA): mov %rdx,-0x51(%rdi)
-L(P1Q9): mov %rdx,-0x49(%rdi)
-L(P1Q8): mov %rdx,-0x41(%rdi)
-L(P1Q7): mov %rdx,-0x39(%rdi)
-L(P1Q6): mov %rdx,-0x31(%rdi)
-L(P1Q5): mov %rdx,-0x29(%rdi)
-L(P1Q4): mov %rdx,-0x21(%rdi)
-L(P1Q3): mov %rdx,-0x19(%rdi)
-L(P1Q2): mov %rdx,-0x11(%rdi)
-L(P1Q1): mov %rdx,-0x9(%rdi)
-L(P1Q0): mov %dl,-0x1(%rdi)
- retq
-
- .balign 16
-L(P0QI): mov %rdx,-0x90(%rdi)
-L(P0QH): mov %rdx,-0x88(%rdi)
-# .balign 16
-L(P0QG): mov %rdx,-0x80(%rdi)
-L(P0QF): mov %rdx,-0x78(%rdi)
-L(P0QE): mov %rdx,-0x70(%rdi)
-L(P0QD): mov %rdx,-0x68(%rdi)
-L(P0QC): mov %rdx,-0x60(%rdi)
-L(P0QB): mov %rdx,-0x58(%rdi)
-L(P0QA): mov %rdx,-0x50(%rdi)
-L(P0Q9): mov %rdx,-0x48(%rdi)
-L(P0Q8): mov %rdx,-0x40(%rdi)
-L(P0Q7): mov %rdx,-0x38(%rdi)
-L(P0Q6): mov %rdx,-0x30(%rdi)
-L(P0Q5): mov %rdx,-0x28(%rdi)
-L(P0Q4): mov %rdx,-0x20(%rdi)
-L(P0Q3): mov %rdx,-0x18(%rdi)
-L(P0Q2): mov %rdx,-0x10(%rdi)
-L(P0Q1): mov %rdx,-0x8(%rdi)
-L(P0Q0): retq
-
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P2QI): mov %rdx,-0x92(%rdi)
-#endif
-L(P2QH): mov %rdx,-0x8a(%rdi)
-L(P2QG): mov %rdx,-0x82(%rdi)
-# .balign 16
-L(P2QF): mov %rdx,-0x7a(%rdi)
-L(P2QE): mov %rdx,-0x72(%rdi)
-L(P2QD): mov %rdx,-0x6a(%rdi)
-L(P2QC): mov %rdx,-0x62(%rdi)
-L(P2QB): mov %rdx,-0x5a(%rdi)
-L(P2QA): mov %rdx,-0x52(%rdi)
-L(P2Q9): mov %rdx,-0x4a(%rdi)
-L(P2Q8): mov %rdx,-0x42(%rdi)
-L(P2Q7): mov %rdx,-0x3a(%rdi)
-L(P2Q6): mov %rdx,-0x32(%rdi)
-L(P2Q5): mov %rdx,-0x2a(%rdi)
-L(P2Q4): mov %rdx,-0x22(%rdi)
-L(P2Q3): mov %rdx,-0x1a(%rdi)
-L(P2Q2): mov %rdx,-0x12(%rdi)
-L(P2Q1): mov %rdx,-0xa(%rdi)
-L(P2Q0): mov %dx,-0x2(%rdi)
- retq
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P3QI): mov %rdx,-0x93(%rdi)
-#endif
-L(P3QH): mov %rdx,-0x8b(%rdi)
-L(P3QG): mov %rdx,-0x83(%rdi)
-# .balign 16
-L(P3QF): mov %rdx,-0x7b(%rdi)
-L(P3QE): mov %rdx,-0x73(%rdi)
-L(P3QD): mov %rdx,-0x6b(%rdi)
-L(P3QC): mov %rdx,-0x63(%rdi)
-L(P3QB): mov %rdx,-0x5b(%rdi)
-L(P3QA): mov %rdx,-0x53(%rdi)
-L(P3Q9): mov %rdx,-0x4b(%rdi)
-L(P3Q8): mov %rdx,-0x43(%rdi)
-L(P3Q7): mov %rdx,-0x3b(%rdi)
-L(P3Q6): mov %rdx,-0x33(%rdi)
-L(P3Q5): mov %rdx,-0x2b(%rdi)
-L(P3Q4): mov %rdx,-0x23(%rdi)
-L(P3Q3): mov %rdx,-0x1b(%rdi)
-L(P3Q2): mov %rdx,-0x13(%rdi)
-L(P3Q1): mov %rdx,-0xb(%rdi)
-L(P3Q0): mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P4QI): mov %rdx,-0x94(%rdi)
-#endif
-L(P4QH): mov %rdx,-0x8c(%rdi)
-L(P4QG): mov %rdx,-0x84(%rdi)
-# .balign 16
-L(P4QF): mov %rdx,-0x7c(%rdi)
-L(P4QE): mov %rdx,-0x74(%rdi)
-L(P4QD): mov %rdx,-0x6c(%rdi)
-L(P4QC): mov %rdx,-0x64(%rdi)
-L(P4QB): mov %rdx,-0x5c(%rdi)
-L(P4QA): mov %rdx,-0x54(%rdi)
-L(P4Q9): mov %rdx,-0x4c(%rdi)
-L(P4Q8): mov %rdx,-0x44(%rdi)
-L(P4Q7): mov %rdx,-0x3c(%rdi)
-L(P4Q6): mov %rdx,-0x34(%rdi)
-L(P4Q5): mov %rdx,-0x2c(%rdi)
-L(P4Q4): mov %rdx,-0x24(%rdi)
-L(P4Q3): mov %rdx,-0x1c(%rdi)
-L(P4Q2): mov %rdx,-0x14(%rdi)
-L(P4Q1): mov %rdx,-0xc(%rdi)
-L(P4Q0): mov %edx,-0x4(%rdi)
- retq
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P5QI): mov %rdx,-0x95(%rdi)
-#endif
-L(P5QH): mov %rdx,-0x8d(%rdi)
-L(P5QG): mov %rdx,-0x85(%rdi)
-# .balign 16
-L(P5QF): mov %rdx,-0x7d(%rdi)
-L(P5QE): mov %rdx,-0x75(%rdi)
-L(P5QD): mov %rdx,-0x6d(%rdi)
-L(P5QC): mov %rdx,-0x65(%rdi)
-L(P5QB): mov %rdx,-0x5d(%rdi)
-L(P5QA): mov %rdx,-0x55(%rdi)
-L(P5Q9): mov %rdx,-0x4d(%rdi)
-L(P5Q8): mov %rdx,-0x45(%rdi)
-L(P5Q7): mov %rdx,-0x3d(%rdi)
-L(P5Q6): mov %rdx,-0x35(%rdi)
-L(P5Q5): mov %rdx,-0x2d(%rdi)
-L(P5Q4): mov %rdx,-0x25(%rdi)
-L(P5Q3): mov %rdx,-0x1d(%rdi)
-L(P5Q2): mov %rdx,-0x15(%rdi)
-L(P5Q1): mov %rdx,-0xd(%rdi)
-L(P5Q0): mov %edx,-0x5(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P6QI): mov %rdx,-0x96(%rdi)
-#endif
-L(P6QH): mov %rdx,-0x8e(%rdi)
-L(P6QG): mov %rdx,-0x86(%rdi)
-# .balign 16
-L(P6QF): mov %rdx,-0x7e(%rdi)
-L(P6QE): mov %rdx,-0x76(%rdi)
-L(P6QD): mov %rdx,-0x6e(%rdi)
-L(P6QC): mov %rdx,-0x66(%rdi)
-L(P6QB): mov %rdx,-0x5e(%rdi)
-L(P6QA): mov %rdx,-0x56(%rdi)
-L(P6Q9): mov %rdx,-0x4e(%rdi)
-L(P6Q8): mov %rdx,-0x46(%rdi)
-L(P6Q7): mov %rdx,-0x3e(%rdi)
-L(P6Q6): mov %rdx,-0x36(%rdi)
-L(P6Q5): mov %rdx,-0x2e(%rdi)
-L(P6Q4): mov %rdx,-0x26(%rdi)
-L(P6Q3): mov %rdx,-0x1e(%rdi)
-L(P6Q2): mov %rdx,-0x16(%rdi)
-L(P6Q1): mov %rdx,-0xe(%rdi)
-L(P6Q0): mov %edx,-0x6(%rdi)
- mov %dx,-0x2(%rdi)
- retq
-
- .balign 16
-#ifdef USE_EXTRA_TABLE
-L(P7QI): mov %rdx,-0x97(%rdi)
-#endif
-L(P7QH): mov %rdx,-0x8f(%rdi)
-L(P7QG): mov %rdx,-0x87(%rdi)
-# .balign 16
-L(P7QF): mov %rdx,-0x7f(%rdi)
-L(P7QE): mov %rdx,-0x77(%rdi)
-L(P7QD): mov %rdx,-0x6f(%rdi)
-L(P7QC): mov %rdx,-0x67(%rdi)
-L(P7QB): mov %rdx,-0x5f(%rdi)
-L(P7QA): mov %rdx,-0x57(%rdi)
-L(P7Q9): mov %rdx,-0x4f(%rdi)
-L(P7Q8): mov %rdx,-0x47(%rdi)
-L(P7Q7): mov %rdx,-0x3f(%rdi)
-L(P7Q6): mov %rdx,-0x37(%rdi)
-L(P7Q5): mov %rdx,-0x2f(%rdi)
-L(P7Q4): mov %rdx,-0x27(%rdi)
-L(P7Q3): mov %rdx,-0x1f(%rdi)
-L(P7Q2): mov %rdx,-0x17(%rdi)
-L(P7Q1): mov %rdx,-0xf(%rdi)
-L(P7Q0): mov %edx,-0x7(%rdi)
- mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
- .balign 16
-L(ck_mem_ops_method):
-
-# align to 16 byte boundary first
- #test $0xf,%rdi
- #jz L(aligned_now)
- mov $0x10,%r10
- mov %rdi,%r9
- and $0xf,%r9
- sub %r9,%r10
- and $0xf,%r10
- add %r10,%rdi
- sub %r10,%r8
-#ifndef PIC
- lea L(AliPxQx)(%rip),%r11
- jmpq *(%r11,%r10,8)
-#else
- lea L(aligned_now)(%rip), %r11
- lea L(AliPxQx)(%rip),%rcx
- movswq (%rcx,%r10,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-#endif
-
- .pushsection .rodata
- .balign 16
-#ifndef PIC
-L(AliPxQx):
- .quad L(aligned_now), L(A1Q0), L(A2Q0), L(A3Q0)
- .quad L(A4Q0), L(A5Q0), L(A6Q0), L(A7Q0)
- .quad L(A0Q1), L(A1Q1), L(A2Q1), L(A3Q1)
- .quad L(A4Q1), L(A5Q1), L(A6Q1), L(A7Q1)
-#else
-L(AliPxQx):
- .short L(aligned_now)-L(aligned_now)
- .short L(A1Q0)-L(aligned_now)
- .short L(A2Q0)-L(aligned_now)
- .short L(A3Q0)-L(aligned_now)
- .short L(A4Q0)-L(aligned_now)
- .short L(A5Q0)-L(aligned_now)
- .short L(A6Q0)-L(aligned_now)
- .short L(A7Q0)-L(aligned_now)
-
- .short L(A0Q1)-L(aligned_now)
- .short L(A1Q1)-L(aligned_now)
- .short L(A2Q1)-L(aligned_now)
- .short L(A3Q1)-L(aligned_now)
- .short L(A4Q1)-L(aligned_now)
- .short L(A5Q1)-L(aligned_now)
- .short L(A6Q1)-L(aligned_now)
- .short L(A7Q1)-L(aligned_now)
-#endif
- .popsection
-
- .balign 16
-L(A5Q1): mov %dl,-0xd(%rdi)
-L(A4Q1): mov %edx,-0xc(%rdi)
-L(A0Q1): mov %rdx,-0x8(%rdi)
-L(A0Q0): jmp L(aligned_now)
-
- .balign 16
-L(A1Q1): mov %dl,-0x9(%rdi)
- mov %rdx,-0x8(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A1Q0): mov %dl,-0x1(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A3Q1): mov %dl,-0xb(%rdi)
-L(A2Q1): mov %dx,-0xa(%rdi)
- mov %rdx,-0x8(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A3Q0): mov %dl,-0x3(%rdi)
-L(A2Q0): mov %dx,-0x2(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A5Q0): mov %dl,-0x5(%rdi)
-L(A4Q0): mov %edx,-0x4(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A7Q1): mov %dl,-0xf(%rdi)
-L(A6Q1): mov %dx,-0xe(%rdi)
- mov %edx,-0xc(%rdi)
- mov %rdx,-0x8(%rdi)
- jmp L(aligned_now)
-
- .balign 16
-L(A7Q0): mov %dl,-0x7(%rdi)
-L(A6Q0): mov %dx,-0x6(%rdi)
- mov %edx,-0x4(%rdi)
-
-#ifndef USE_MULTIARCH
- jmp L(aligned_now)
-
-L(SSE_pre):
-#else
-L(aligned_now):
-#endif
-#if !defined USE_MULTIARCH || defined USE_SSE2
- # fill RegXMM0 with the pattern
- movd %rdx,%xmm0
- punpcklqdq %xmm0,%xmm0
-
- cmp $0xb0,%r8 # 176
- jae L(byte32sse2_pre)
-
- add %r8,%rdi
-# ifndef PIC
- lea L(SSExDx)(%rip),%r9
- jmpq *(%r9,%r8,8)
-# else
- lea L(SSE0Q0)(%rip),%r9
- lea L(SSExDx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r9,1),%r9
- jmpq *%r9
-# endif
-
-L(SSE0QB): movdqa %xmm0,-0xb0(%rdi)
-L(SSE0QA): movdqa %xmm0,-0xa0(%rdi)
-L(SSE0Q9): movdqa %xmm0,-0x90(%rdi)
-L(SSE0Q8): movdqa %xmm0,-0x80(%rdi)
-L(SSE0Q7): movdqa %xmm0,-0x70(%rdi)
-L(SSE0Q6): movdqa %xmm0,-0x60(%rdi)
-L(SSE0Q5): movdqa %xmm0,-0x50(%rdi)
-L(SSE0Q4): movdqa %xmm0,-0x40(%rdi)
-L(SSE0Q3): movdqa %xmm0,-0x30(%rdi)
-L(SSE0Q2): movdqa %xmm0,-0x20(%rdi)
-L(SSE0Q1): movdqa %xmm0,-0x10(%rdi)
-L(SSE0Q0): retq
-
-L(SSE1QB): movdqa %xmm0,-0xb1(%rdi)
-L(SSE1QA): movdqa %xmm0,-0xa1(%rdi)
-L(SSE1Q9): movdqa %xmm0,-0x91(%rdi)
-L(SSE1Q8): movdqa %xmm0,-0x81(%rdi)
-L(SSE1Q7): movdqa %xmm0,-0x71(%rdi)
-L(SSE1Q6): movdqa %xmm0,-0x61(%rdi)
-L(SSE1Q5): movdqa %xmm0,-0x51(%rdi)
-L(SSE1Q4): movdqa %xmm0,-0x41(%rdi)
-L(SSE1Q3): movdqa %xmm0,-0x31(%rdi)
-L(SSE1Q2): movdqa %xmm0,-0x21(%rdi)
-L(SSE1Q1): movdqa %xmm0,-0x11(%rdi)
-L(SSE1Q0): mov %dl,-0x1(%rdi)
- retq
-
-L(SSE2QB): movdqa %xmm0,-0xb2(%rdi)
-L(SSE2QA): movdqa %xmm0,-0xa2(%rdi)
-L(SSE2Q9): movdqa %xmm0,-0x92(%rdi)
-L(SSE2Q8): movdqa %xmm0,-0x82(%rdi)
-L(SSE2Q7): movdqa %xmm0,-0x72(%rdi)
-L(SSE2Q6): movdqa %xmm0,-0x62(%rdi)
-L(SSE2Q5): movdqa %xmm0,-0x52(%rdi)
-L(SSE2Q4): movdqa %xmm0,-0x42(%rdi)
-L(SSE2Q3): movdqa %xmm0,-0x32(%rdi)
-L(SSE2Q2): movdqa %xmm0,-0x22(%rdi)
-L(SSE2Q1): movdqa %xmm0,-0x12(%rdi)
-L(SSE2Q0): mov %dx,-0x2(%rdi)
- retq
-
-L(SSE3QB): movdqa %xmm0,-0xb3(%rdi)
-L(SSE3QA): movdqa %xmm0,-0xa3(%rdi)
-L(SSE3Q9): movdqa %xmm0,-0x93(%rdi)
-L(SSE3Q8): movdqa %xmm0,-0x83(%rdi)
-L(SSE3Q7): movdqa %xmm0,-0x73(%rdi)
-L(SSE3Q6): movdqa %xmm0,-0x63(%rdi)
-L(SSE3Q5): movdqa %xmm0,-0x53(%rdi)
-L(SSE3Q4): movdqa %xmm0,-0x43(%rdi)
-L(SSE3Q3): movdqa %xmm0,-0x33(%rdi)
-L(SSE3Q2): movdqa %xmm0,-0x23(%rdi)
-L(SSE3Q1): movdqa %xmm0,-0x13(%rdi)
-L(SSE3Q0): mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-L(SSE4QB): movdqa %xmm0,-0xb4(%rdi)
-L(SSE4QA): movdqa %xmm0,-0xa4(%rdi)
-L(SSE4Q9): movdqa %xmm0,-0x94(%rdi)
-L(SSE4Q8): movdqa %xmm0,-0x84(%rdi)
-L(SSE4Q7): movdqa %xmm0,-0x74(%rdi)
-L(SSE4Q6): movdqa %xmm0,-0x64(%rdi)
-L(SSE4Q5): movdqa %xmm0,-0x54(%rdi)
-L(SSE4Q4): movdqa %xmm0,-0x44(%rdi)
-L(SSE4Q3): movdqa %xmm0,-0x34(%rdi)
-L(SSE4Q2): movdqa %xmm0,-0x24(%rdi)
-L(SSE4Q1): movdqa %xmm0,-0x14(%rdi)
-L(SSE4Q0): mov %edx,-0x4(%rdi)
- retq
-
-L(SSE5QB): movdqa %xmm0,-0xb5(%rdi)
-L(SSE5QA): movdqa %xmm0,-0xa5(%rdi)
-L(SSE5Q9): movdqa %xmm0,-0x95(%rdi)
-L(SSE5Q8): movdqa %xmm0,-0x85(%rdi)
-L(SSE5Q7): movdqa %xmm0,-0x75(%rdi)
-L(SSE5Q6): movdqa %xmm0,-0x65(%rdi)
-L(SSE5Q5): movdqa %xmm0,-0x55(%rdi)
-L(SSE5Q4): movdqa %xmm0,-0x45(%rdi)
-L(SSE5Q3): movdqa %xmm0,-0x35(%rdi)
-L(SSE5Q2): movdqa %xmm0,-0x25(%rdi)
-L(SSE5Q1): movdqa %xmm0,-0x15(%rdi)
-L(SSE5Q0): mov %edx,-0x5(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-
-L(SSE6QB): movdqa %xmm0,-0xb6(%rdi)
-L(SSE6QA): movdqa %xmm0,-0xa6(%rdi)
-L(SSE6Q9): movdqa %xmm0,-0x96(%rdi)
-L(SSE6Q8): movdqa %xmm0,-0x86(%rdi)
-L(SSE6Q7): movdqa %xmm0,-0x76(%rdi)
-L(SSE6Q6): movdqa %xmm0,-0x66(%rdi)
-L(SSE6Q5): movdqa %xmm0,-0x56(%rdi)
-L(SSE6Q4): movdqa %xmm0,-0x46(%rdi)
-L(SSE6Q3): movdqa %xmm0,-0x36(%rdi)
-L(SSE6Q2): movdqa %xmm0,-0x26(%rdi)
-L(SSE6Q1): movdqa %xmm0,-0x16(%rdi)
-L(SSE6Q0): mov %edx,-0x6(%rdi)
- mov %dx,-0x2(%rdi)
- retq
-
-L(SSE7QB): movdqa %xmm0,-0xb7(%rdi)
-L(SSE7QA): movdqa %xmm0,-0xa7(%rdi)
-L(SSE7Q9): movdqa %xmm0,-0x97(%rdi)
-L(SSE7Q8): movdqa %xmm0,-0x87(%rdi)
-L(SSE7Q7): movdqa %xmm0,-0x77(%rdi)
-L(SSE7Q6): movdqa %xmm0,-0x67(%rdi)
-L(SSE7Q5): movdqa %xmm0,-0x57(%rdi)
-L(SSE7Q4): movdqa %xmm0,-0x47(%rdi)
-L(SSE7Q3): movdqa %xmm0,-0x37(%rdi)
-L(SSE7Q2): movdqa %xmm0,-0x27(%rdi)
-L(SSE7Q1): movdqa %xmm0,-0x17(%rdi)
-L(SSE7Q0): mov %edx,-0x7(%rdi)
- mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-L(SSE8QB): movdqa %xmm0,-0xb8(%rdi)
-L(SSE8QA): movdqa %xmm0,-0xa8(%rdi)
-L(SSE8Q9): movdqa %xmm0,-0x98(%rdi)
-L(SSE8Q8): movdqa %xmm0,-0x88(%rdi)
-L(SSE8Q7): movdqa %xmm0,-0x78(%rdi)
-L(SSE8Q6): movdqa %xmm0,-0x68(%rdi)
-L(SSE8Q5): movdqa %xmm0,-0x58(%rdi)
-L(SSE8Q4): movdqa %xmm0,-0x48(%rdi)
-L(SSE8Q3): movdqa %xmm0,-0x38(%rdi)
-L(SSE8Q2): movdqa %xmm0,-0x28(%rdi)
-L(SSE8Q1): movdqa %xmm0,-0x18(%rdi)
-L(SSE8Q0): mov %rdx,-0x8(%rdi)
- retq
-
-L(SSE9QB): movdqa %xmm0,-0xb9(%rdi)
-L(SSE9QA): movdqa %xmm0,-0xa9(%rdi)
-L(SSE9Q9): movdqa %xmm0,-0x99(%rdi)
-L(SSE9Q8): movdqa %xmm0,-0x89(%rdi)
-L(SSE9Q7): movdqa %xmm0,-0x79(%rdi)
-L(SSE9Q6): movdqa %xmm0,-0x69(%rdi)
-L(SSE9Q5): movdqa %xmm0,-0x59(%rdi)
-L(SSE9Q4): movdqa %xmm0,-0x49(%rdi)
-L(SSE9Q3): movdqa %xmm0,-0x39(%rdi)
-L(SSE9Q2): movdqa %xmm0,-0x29(%rdi)
-L(SSE9Q1): movdqa %xmm0,-0x19(%rdi)
-L(SSE9Q0): mov %rdx,-0x9(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-L(SSE10QB): movdqa %xmm0,-0xba(%rdi)
-L(SSE10QA): movdqa %xmm0,-0xaa(%rdi)
-L(SSE10Q9): movdqa %xmm0,-0x9a(%rdi)
-L(SSE10Q8): movdqa %xmm0,-0x8a(%rdi)
-L(SSE10Q7): movdqa %xmm0,-0x7a(%rdi)
-L(SSE10Q6): movdqa %xmm0,-0x6a(%rdi)
-L(SSE10Q5): movdqa %xmm0,-0x5a(%rdi)
-L(SSE10Q4): movdqa %xmm0,-0x4a(%rdi)
-L(SSE10Q3): movdqa %xmm0,-0x3a(%rdi)
-L(SSE10Q2): movdqa %xmm0,-0x2a(%rdi)
-L(SSE10Q1): movdqa %xmm0,-0x1a(%rdi)
-L(SSE10Q0): mov %rdx,-0xa(%rdi)
- mov %dx,-0x2(%rdi)
- retq
-
-L(SSE11QB): movdqa %xmm0,-0xbb(%rdi)
-L(SSE11QA): movdqa %xmm0,-0xab(%rdi)
-L(SSE11Q9): movdqa %xmm0,-0x9b(%rdi)
-L(SSE11Q8): movdqa %xmm0,-0x8b(%rdi)
-L(SSE11Q7): movdqa %xmm0,-0x7b(%rdi)
-L(SSE11Q6): movdqa %xmm0,-0x6b(%rdi)
-L(SSE11Q5): movdqa %xmm0,-0x5b(%rdi)
-L(SSE11Q4): movdqa %xmm0,-0x4b(%rdi)
-L(SSE11Q3): movdqa %xmm0,-0x3b(%rdi)
-L(SSE11Q2): movdqa %xmm0,-0x2b(%rdi)
-L(SSE11Q1): movdqa %xmm0,-0x1b(%rdi)
-L(SSE11Q0): mov %rdx,-0xb(%rdi)
- mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-L(SSE12QB): movdqa %xmm0,-0xbc(%rdi)
-L(SSE12QA): movdqa %xmm0,-0xac(%rdi)
-L(SSE12Q9): movdqa %xmm0,-0x9c(%rdi)
-L(SSE12Q8): movdqa %xmm0,-0x8c(%rdi)
-L(SSE12Q7): movdqa %xmm0,-0x7c(%rdi)
-L(SSE12Q6): movdqa %xmm0,-0x6c(%rdi)
-L(SSE12Q5): movdqa %xmm0,-0x5c(%rdi)
-L(SSE12Q4): movdqa %xmm0,-0x4c(%rdi)
-L(SSE12Q3): movdqa %xmm0,-0x3c(%rdi)
-L(SSE12Q2): movdqa %xmm0,-0x2c(%rdi)
-L(SSE12Q1): movdqa %xmm0,-0x1c(%rdi)
-L(SSE12Q0): mov %rdx,-0xc(%rdi)
- mov %edx,-0x4(%rdi)
- retq
-
-L(SSE13QB): movdqa %xmm0,-0xbd(%rdi)
-L(SSE13QA): movdqa %xmm0,-0xad(%rdi)
-L(SSE13Q9): movdqa %xmm0,-0x9d(%rdi)
-L(SSE13Q8): movdqa %xmm0,-0x8d(%rdi)
-L(SSE13Q7): movdqa %xmm0,-0x7d(%rdi)
-L(SSE13Q6): movdqa %xmm0,-0x6d(%rdi)
-L(SSE13Q5): movdqa %xmm0,-0x5d(%rdi)
-L(SSE13Q4): movdqa %xmm0,-0x4d(%rdi)
-L(SSE13Q3): movdqa %xmm0,-0x3d(%rdi)
-L(SSE13Q2): movdqa %xmm0,-0x2d(%rdi)
-L(SSE13Q1): movdqa %xmm0,-0x1d(%rdi)
-L(SSE13Q0): mov %rdx,-0xd(%rdi)
- mov %edx,-0x5(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
-L(SSE14QB): movdqa %xmm0,-0xbe(%rdi)
-L(SSE14QA): movdqa %xmm0,-0xae(%rdi)
-L(SSE14Q9): movdqa %xmm0,-0x9e(%rdi)
-L(SSE14Q8): movdqa %xmm0,-0x8e(%rdi)
-L(SSE14Q7): movdqa %xmm0,-0x7e(%rdi)
-L(SSE14Q6): movdqa %xmm0,-0x6e(%rdi)
-L(SSE14Q5): movdqa %xmm0,-0x5e(%rdi)
-L(SSE14Q4): movdqa %xmm0,-0x4e(%rdi)
-L(SSE14Q3): movdqa %xmm0,-0x3e(%rdi)
-L(SSE14Q2): movdqa %xmm0,-0x2e(%rdi)
-L(SSE14Q1): movdqa %xmm0,-0x1e(%rdi)
-L(SSE14Q0): mov %rdx,-0xe(%rdi)
- mov %edx,-0x6(%rdi)
- mov %dx,-0x2(%rdi)
- retq
-
-L(SSE15QB): movdqa %xmm0,-0xbf(%rdi)
-L(SSE15QA): movdqa %xmm0,-0xaf(%rdi)
-L(SSE15Q9): movdqa %xmm0,-0x9f(%rdi)
-L(SSE15Q8): movdqa %xmm0,-0x8f(%rdi)
-L(SSE15Q7): movdqa %xmm0,-0x7f(%rdi)
-L(SSE15Q6): movdqa %xmm0,-0x6f(%rdi)
-L(SSE15Q5): movdqa %xmm0,-0x5f(%rdi)
-L(SSE15Q4): movdqa %xmm0,-0x4f(%rdi)
-L(SSE15Q3): movdqa %xmm0,-0x3f(%rdi)
-L(SSE15Q2): movdqa %xmm0,-0x2f(%rdi)
-L(SSE15Q1): movdqa %xmm0,-0x1f(%rdi)
-L(SSE15Q0): mov %rdx,-0xf(%rdi)
- mov %edx,-0x7(%rdi)
- mov %dx,-0x3(%rdi)
- mov %dl,-0x1(%rdi)
- retq
-
- .balign 16
-L(byte32sse2_pre):
-
- mov __x86_shared_cache_size(%rip),%r9d # The largest cache size
- cmp %r9,%r8
- ja L(sse2_nt_move_pre)
- #jmp L(byte32sse2)
- .balign 16
-L(byte32sse2):
- lea -0x80(%r8),%r8 # 128
- cmp $0x80,%r8 # 128
- movdqa %xmm0,(%rdi)
- movdqa %xmm0,0x10(%rdi)
- movdqa %xmm0,0x20(%rdi)
- movdqa %xmm0,0x30(%rdi)
- movdqa %xmm0,0x40(%rdi)
- movdqa %xmm0,0x50(%rdi)
- movdqa %xmm0,0x60(%rdi)
- movdqa %xmm0,0x70(%rdi)
-
- lea 0x80(%rdi),%rdi
- jae L(byte32sse2)
- add %r8,%rdi
-# ifndef PIC
- lea L(SSExDx)(%rip),%r11
- jmpq *(%r11,%r8,8)
-# else
- lea L(SSE0Q0)(%rip),%r11
- lea L(SSExDx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-# endif
-
- .balign 16
-L(sse2_nt_move_pre):
- cmp $0x0,%r9
- je L(byte32sse2)
- jmp L(sse2_nt_move)
-
- .balign 16
-L(sse2_nt_move):
- lea -0x80(%r8),%r8
- cmp $0x80,%r8
-
- movntdq %xmm0,(%rdi)
- movntdq %xmm0,0x10(%rdi)
- movntdq %xmm0,0x20(%rdi)
- movntdq %xmm0,0x30(%rdi)
- movntdq %xmm0,0x40(%rdi)
- movntdq %xmm0,0x50(%rdi)
- movntdq %xmm0,0x60(%rdi)
- movntdq %xmm0,0x70(%rdi)
-
- lea 0x80(%rdi),%rdi
- jae L(sse2_nt_move)
- sfence
- add %r8,%rdi
-# ifndef PIC
- lea L(SSExDx)(%rip),%r11
- jmpq *(%r11,%r8,8)
-# else
- lea L(SSE0Q0)(%rip),%r11
- lea L(SSExDx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-# endif
-
- .pushsection .rodata
- .balign 16
-# ifndef PIC
-L(SSExDx):
- .quad L(SSE0Q0), L(SSE1Q0), L(SSE2Q0), L(SSE3Q0)
- .quad L(SSE4Q0), L(SSE5Q0), L(SSE6Q0), L(SSE7Q0)
- .quad L(SSE8Q0), L(SSE9Q0), L(SSE10Q0), L(SSE11Q0)
- .quad L(SSE12Q0), L(SSE13Q0), L(SSE14Q0), L(SSE15Q0)
- .quad L(SSE0Q1), L(SSE1Q1), L(SSE2Q1), L(SSE3Q1)
- .quad L(SSE4Q1), L(SSE5Q1), L(SSE6Q1), L(SSE7Q1)
- .quad L(SSE8Q1), L(SSE9Q1), L(SSE10Q1), L(SSE11Q1)
- .quad L(SSE12Q1), L(SSE13Q1), L(SSE14Q1), L(SSE15Q1)
- .quad L(SSE0Q2), L(SSE1Q2), L(SSE2Q2), L(SSE3Q2)
- .quad L(SSE4Q2), L(SSE5Q2), L(SSE6Q2), L(SSE7Q2)
- .quad L(SSE8Q2), L(SSE9Q2), L(SSE10Q2), L(SSE11Q2)
- .quad L(SSE12Q2), L(SSE13Q2), L(SSE14Q2), L(SSE15Q2)
- .quad L(SSE0Q3), L(SSE1Q3), L(SSE2Q3), L(SSE3Q3)
- .quad L(SSE4Q3), L(SSE5Q3), L(SSE6Q3), L(SSE7Q3)
- .quad L(SSE8Q3), L(SSE9Q3), L(SSE10Q3), L(SSE11Q3)
- .quad L(SSE12Q3), L(SSE13Q3), L(SSE14Q3), L(SSE15Q3)
- .quad L(SSE0Q4), L(SSE1Q4), L(SSE2Q4), L(SSE3Q4)
- .quad L(SSE4Q4), L(SSE5Q4), L(SSE6Q4), L(SSE7Q4)
- .quad L(SSE8Q4), L(SSE9Q4), L(SSE10Q4), L(SSE11Q4)
- .quad L(SSE12Q4), L(SSE13Q4), L(SSE14Q4), L(SSE15Q4)
- .quad L(SSE0Q5), L(SSE1Q5), L(SSE2Q5), L(SSE3Q5)
- .quad L(SSE4Q5), L(SSE5Q5), L(SSE6Q5), L(SSE7Q5)
- .quad L(SSE8Q5), L(SSE9Q5), L(SSE10Q5), L(SSE11Q5)
- .quad L(SSE12Q5), L(SSE13Q5), L(SSE14Q5), L(SSE15Q5)
- .quad L(SSE0Q6), L(SSE1Q6), L(SSE2Q6), L(SSE3Q6)
- .quad L(SSE4Q6), L(SSE5Q6), L(SSE6Q6), L(SSE7Q6)
- .quad L(SSE8Q6), L(SSE9Q6), L(SSE10Q6), L(SSE11Q6)
- .quad L(SSE12Q6), L(SSE13Q6), L(SSE14Q6), L(SSE15Q6)
- .quad L(SSE0Q7), L(SSE1Q7), L(SSE2Q7), L(SSE3Q7)
- .quad L(SSE4Q7), L(SSE5Q7), L(SSE6Q7), L(SSE7Q7)
- .quad L(SSE8Q7), L(SSE9Q7), L(SSE10Q7), L(SSE11Q7)
- .quad L(SSE12Q7), L(SSE13Q7), L(SSE14Q7), L(SSE15Q7)
- .quad L(SSE0Q8), L(SSE1Q8), L(SSE2Q8), L(SSE3Q8)
- .quad L(SSE4Q8), L(SSE5Q8), L(SSE6Q8), L(SSE7Q8)
- .quad L(SSE8Q8), L(SSE9Q8), L(SSE10Q8), L(SSE11Q8)
- .quad L(SSE12Q8), L(SSE13Q8), L(SSE14Q8), L(SSE15Q8)
- .quad L(SSE0Q9), L(SSE1Q9), L(SSE2Q9), L(SSE3Q9)
- .quad L(SSE4Q9), L(SSE5Q9), L(SSE6Q9), L(SSE7Q9)
- .quad L(SSE8Q9), L(SSE9Q9), L(SSE10Q9), L(SSE11Q9)
- .quad L(SSE12Q9), L(SSE13Q9), L(SSE14Q9), L(SSE15Q9)
- .quad L(SSE0QA), L(SSE1QA), L(SSE2QA), L(SSE3QA)
- .quad L(SSE4QA), L(SSE5QA), L(SSE6QA), L(SSE7QA)
- .quad L(SSE8QA), L(SSE9QA), L(SSE10QA), L(SSE11QA)
- .quad L(SSE12QA), L(SSE13QA), L(SSE14QA), L(SSE15QA)
- .quad L(SSE0QB), L(SSE1QB), L(SSE2QB), L(SSE3QB)
- .quad L(SSE4QB), L(SSE5QB), L(SSE6QB), L(SSE7QB)
- .quad L(SSE8QB), L(SSE9QB), L(SSE10QB), L(SSE11QB)
- .quad L(SSE12QB), L(SSE13QB), L(SSE14QB), L(SSE15QB)
-# else
-L(SSExDx):
- .short L(SSE0Q0) -L(SSE0Q0)
- .short L(SSE1Q0) -L(SSE0Q0)
- .short L(SSE2Q0) -L(SSE0Q0)
- .short L(SSE3Q0) -L(SSE0Q0)
- .short L(SSE4Q0) -L(SSE0Q0)
- .short L(SSE5Q0) -L(SSE0Q0)
- .short L(SSE6Q0) -L(SSE0Q0)
- .short L(SSE7Q0) -L(SSE0Q0)
-
- .short L(SSE8Q0) -L(SSE0Q0)
- .short L(SSE9Q0) -L(SSE0Q0)
- .short L(SSE10Q0)-L(SSE0Q0)
- .short L(SSE11Q0)-L(SSE0Q0)
- .short L(SSE12Q0)-L(SSE0Q0)
- .short L(SSE13Q0)-L(SSE0Q0)
- .short L(SSE14Q0)-L(SSE0Q0)
- .short L(SSE15Q0)-L(SSE0Q0)
-
- .short L(SSE0Q1) -L(SSE0Q0)
- .short L(SSE1Q1) -L(SSE0Q0)
- .short L(SSE2Q1) -L(SSE0Q0)
- .short L(SSE3Q1) -L(SSE0Q0)
- .short L(SSE4Q1) -L(SSE0Q0)
- .short L(SSE5Q1) -L(SSE0Q0)
- .short L(SSE6Q1) -L(SSE0Q0)
- .short L(SSE7Q1) -L(SSE0Q0)
-
- .short L(SSE8Q1) -L(SSE0Q0)
- .short L(SSE9Q1) -L(SSE0Q0)
- .short L(SSE10Q1)-L(SSE0Q0)
- .short L(SSE11Q1)-L(SSE0Q0)
- .short L(SSE12Q1)-L(SSE0Q0)
- .short L(SSE13Q1)-L(SSE0Q0)
- .short L(SSE14Q1)-L(SSE0Q0)
- .short L(SSE15Q1)-L(SSE0Q0)
-
- .short L(SSE0Q2) -L(SSE0Q0)
- .short L(SSE1Q2) -L(SSE0Q0)
- .short L(SSE2Q2) -L(SSE0Q0)
- .short L(SSE3Q2) -L(SSE0Q0)
- .short L(SSE4Q2) -L(SSE0Q0)
- .short L(SSE5Q2) -L(SSE0Q0)
- .short L(SSE6Q2) -L(SSE0Q0)
- .short L(SSE7Q2) -L(SSE0Q0)
-
- .short L(SSE8Q2) -L(SSE0Q0)
- .short L(SSE9Q2) -L(SSE0Q0)
- .short L(SSE10Q2)-L(SSE0Q0)
- .short L(SSE11Q2)-L(SSE0Q0)
- .short L(SSE12Q2)-L(SSE0Q0)
- .short L(SSE13Q2)-L(SSE0Q0)
- .short L(SSE14Q2)-L(SSE0Q0)
- .short L(SSE15Q2)-L(SSE0Q0)
-
- .short L(SSE0Q3) -L(SSE0Q0)
- .short L(SSE1Q3) -L(SSE0Q0)
- .short L(SSE2Q3) -L(SSE0Q0)
- .short L(SSE3Q3) -L(SSE0Q0)
- .short L(SSE4Q3) -L(SSE0Q0)
- .short L(SSE5Q3) -L(SSE0Q0)
- .short L(SSE6Q3) -L(SSE0Q0)
- .short L(SSE7Q3) -L(SSE0Q0)
-
- .short L(SSE8Q3) -L(SSE0Q0)
- .short L(SSE9Q3) -L(SSE0Q0)
- .short L(SSE10Q3)-L(SSE0Q0)
- .short L(SSE11Q3)-L(SSE0Q0)
- .short L(SSE12Q3)-L(SSE0Q0)
- .short L(SSE13Q3)-L(SSE0Q0)
- .short L(SSE14Q3)-L(SSE0Q0)
- .short L(SSE15Q3)-L(SSE0Q0)
-
- .short L(SSE0Q4) -L(SSE0Q0)
- .short L(SSE1Q4) -L(SSE0Q0)
- .short L(SSE2Q4) -L(SSE0Q0)
- .short L(SSE3Q4) -L(SSE0Q0)
- .short L(SSE4Q4) -L(SSE0Q0)
- .short L(SSE5Q4) -L(SSE0Q0)
- .short L(SSE6Q4) -L(SSE0Q0)
- .short L(SSE7Q4) -L(SSE0Q0)
-
- .short L(SSE8Q4) -L(SSE0Q0)
- .short L(SSE9Q4) -L(SSE0Q0)
- .short L(SSE10Q4)-L(SSE0Q0)
- .short L(SSE11Q4)-L(SSE0Q0)
- .short L(SSE12Q4)-L(SSE0Q0)
- .short L(SSE13Q4)-L(SSE0Q0)
- .short L(SSE14Q4)-L(SSE0Q0)
- .short L(SSE15Q4)-L(SSE0Q0)
-
- .short L(SSE0Q5) -L(SSE0Q0)
- .short L(SSE1Q5) -L(SSE0Q0)
- .short L(SSE2Q5) -L(SSE0Q0)
- .short L(SSE3Q5) -L(SSE0Q0)
- .short L(SSE4Q5) -L(SSE0Q0)
- .short L(SSE5Q5) -L(SSE0Q0)
- .short L(SSE6Q5) -L(SSE0Q0)
- .short L(SSE7Q5) -L(SSE0Q0)
-
- .short L(SSE8Q5) -L(SSE0Q0)
- .short L(SSE9Q5) -L(SSE0Q0)
- .short L(SSE10Q5)-L(SSE0Q0)
- .short L(SSE11Q5)-L(SSE0Q0)
- .short L(SSE12Q5)-L(SSE0Q0)
- .short L(SSE13Q5)-L(SSE0Q0)
- .short L(SSE14Q5)-L(SSE0Q0)
- .short L(SSE15Q5)-L(SSE0Q0)
-
- .short L(SSE0Q6) -L(SSE0Q0)
- .short L(SSE1Q6) -L(SSE0Q0)
- .short L(SSE2Q6) -L(SSE0Q0)
- .short L(SSE3Q6) -L(SSE0Q0)
- .short L(SSE4Q6) -L(SSE0Q0)
- .short L(SSE5Q6) -L(SSE0Q0)
- .short L(SSE6Q6) -L(SSE0Q0)
- .short L(SSE7Q6) -L(SSE0Q0)
-
- .short L(SSE8Q6) -L(SSE0Q0)
- .short L(SSE9Q6) -L(SSE0Q0)
- .short L(SSE10Q6)-L(SSE0Q0)
- .short L(SSE11Q6)-L(SSE0Q0)
- .short L(SSE12Q6)-L(SSE0Q0)
- .short L(SSE13Q6)-L(SSE0Q0)
- .short L(SSE14Q6)-L(SSE0Q0)
- .short L(SSE15Q6)-L(SSE0Q0)
-
- .short L(SSE0Q7) -L(SSE0Q0)
- .short L(SSE1Q7) -L(SSE0Q0)
- .short L(SSE2Q7) -L(SSE0Q0)
- .short L(SSE3Q7) -L(SSE0Q0)
- .short L(SSE4Q7) -L(SSE0Q0)
- .short L(SSE5Q7) -L(SSE0Q0)
- .short L(SSE6Q7) -L(SSE0Q0)
- .short L(SSE7Q7) -L(SSE0Q0)
-
- .short L(SSE8Q7) -L(SSE0Q0)
- .short L(SSE9Q7) -L(SSE0Q0)
- .short L(SSE10Q7)-L(SSE0Q0)
- .short L(SSE11Q7)-L(SSE0Q0)
- .short L(SSE12Q7)-L(SSE0Q0)
- .short L(SSE13Q7)-L(SSE0Q0)
- .short L(SSE14Q7)-L(SSE0Q0)
- .short L(SSE15Q7)-L(SSE0Q0)
-
- .short L(SSE0Q8) -L(SSE0Q0)
- .short L(SSE1Q8) -L(SSE0Q0)
- .short L(SSE2Q8) -L(SSE0Q0)
- .short L(SSE3Q8) -L(SSE0Q0)
- .short L(SSE4Q8) -L(SSE0Q0)
- .short L(SSE5Q8) -L(SSE0Q0)
- .short L(SSE6Q8) -L(SSE0Q0)
- .short L(SSE7Q8) -L(SSE0Q0)
-
- .short L(SSE8Q8) -L(SSE0Q0)
- .short L(SSE9Q8) -L(SSE0Q0)
- .short L(SSE10Q8)-L(SSE0Q0)
- .short L(SSE11Q8)-L(SSE0Q0)
- .short L(SSE12Q8)-L(SSE0Q0)
- .short L(SSE13Q8)-L(SSE0Q0)
- .short L(SSE14Q8)-L(SSE0Q0)
- .short L(SSE15Q8)-L(SSE0Q0)
-
- .short L(SSE0Q9) -L(SSE0Q0)
- .short L(SSE1Q9) -L(SSE0Q0)
- .short L(SSE2Q9) -L(SSE0Q0)
- .short L(SSE3Q9) -L(SSE0Q0)
- .short L(SSE4Q9) -L(SSE0Q0)
- .short L(SSE5Q9) -L(SSE0Q0)
- .short L(SSE6Q9) -L(SSE0Q0)
- .short L(SSE7Q9) -L(SSE0Q0)
-
- .short L(SSE8Q9) -L(SSE0Q0)
- .short L(SSE9Q9) -L(SSE0Q0)
- .short L(SSE10Q9)-L(SSE0Q0)
- .short L(SSE11Q9)-L(SSE0Q0)
- .short L(SSE12Q9)-L(SSE0Q0)
- .short L(SSE13Q9)-L(SSE0Q0)
- .short L(SSE14Q9)-L(SSE0Q0)
- .short L(SSE15Q9)-L(SSE0Q0)
-
- .short L(SSE0QA) -L(SSE0Q0)
- .short L(SSE1QA) -L(SSE0Q0)
- .short L(SSE2QA) -L(SSE0Q0)
- .short L(SSE3QA) -L(SSE0Q0)
- .short L(SSE4QA) -L(SSE0Q0)
- .short L(SSE5QA) -L(SSE0Q0)
- .short L(SSE6QA) -L(SSE0Q0)
- .short L(SSE7QA) -L(SSE0Q0)
-
- .short L(SSE8QA) -L(SSE0Q0)
- .short L(SSE9QA) -L(SSE0Q0)
- .short L(SSE10QA)-L(SSE0Q0)
- .short L(SSE11QA)-L(SSE0Q0)
- .short L(SSE12QA)-L(SSE0Q0)
- .short L(SSE13QA)-L(SSE0Q0)
- .short L(SSE14QA)-L(SSE0Q0)
- .short L(SSE15QA)-L(SSE0Q0)
-
- .short L(SSE0QB) -L(SSE0Q0)
- .short L(SSE1QB) -L(SSE0Q0)
- .short L(SSE2QB) -L(SSE0Q0)
- .short L(SSE3QB) -L(SSE0Q0)
- .short L(SSE4QB) -L(SSE0Q0)
- .short L(SSE5QB) -L(SSE0Q0)
- .short L(SSE6QB) -L(SSE0Q0)
- .short L(SSE7QB) -L(SSE0Q0)
-
- .short L(SSE8QB) -L(SSE0Q0)
- .short L(SSE9QB) -L(SSE0Q0)
- .short L(SSE10QB)-L(SSE0Q0)
- .short L(SSE11QB)-L(SSE0Q0)
- .short L(SSE12QB)-L(SSE0Q0)
- .short L(SSE13QB)-L(SSE0Q0)
- .short L(SSE14QB)-L(SSE0Q0)
- .short L(SSE15QB)-L(SSE0Q0)
-# endif
- .popsection
-#endif /* !defined USE_MULTIARCH || defined USE_SSE2 */
-
- .balign 16
-#ifndef USE_MULTIARCH
-L(aligned_now):
-
- cmpl $0x1,__x86_preferred_memory_instruction(%rip)
- jg L(SSE_pre)
-#endif /* USE_MULTIARCH */
-
-L(8byte_move_try):
- cmpq __STOS_LOWER_BOUNDARY,%r8
- jae L(8byte_stos_try)
-
- .balign 16
-L(8byte_move):
- movq %r8,%rcx
- shrq $7,%rcx
- jz L(8byte_move_skip)
-
- .p2align 4
-
-L(8byte_move_loop):
- decq %rcx
-
- movq %rdx, (%rdi)
- movq %rdx, 8 (%rdi)
- movq %rdx, 16 (%rdi)
- movq %rdx, 24 (%rdi)
- movq %rdx, 32 (%rdi)
- movq %rdx, 40 (%rdi)
- movq %rdx, 48 (%rdi)
- movq %rdx, 56 (%rdi)
- movq %rdx, 64 (%rdi)
- movq %rdx, 72 (%rdi)
- movq %rdx, 80 (%rdi)
- movq %rdx, 88 (%rdi)
- movq %rdx, 96 (%rdi)
- movq %rdx, 104 (%rdi)
- movq %rdx, 112 (%rdi)
- movq %rdx, 120 (%rdi)
-
- leaq 128 (%rdi),%rdi
-
- jnz L(8byte_move_loop)
-
-L(8byte_move_skip):
- andl $127,%r8d
- lea (%rdi,%r8,1),%rdi
-
-#ifndef PIC
- lea L(setPxQx)(%rip),%r11
- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
-#else
- lea L(Got0)(%rip),%r11
- lea L(setPxQx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-#endif
-
- .balign 16
-L(8byte_stos_try):
- mov __x86_shared_cache_size(%rip),%r9d // ck largest cache size
- cmpq %r8,%r9 // calculate the lesser of remaining
- cmovaq %r8,%r9 // bytes and largest cache size
- jbe L(8byte_stos)
-
-L(8byte_move_reuse_try):
- cmp __STOS_UPPER_BOUNDARY,%r8
- jae L(8byte_move)
-
- .balign 16
-L(8byte_stos):
- movq %r9,%rcx
- andq $-8,%r9
-
- shrq $3,%rcx
- jz L(8byte_stos_skip)
-
- xchgq %rax,%rdx
+ENTRY (memset)
+ movd %esi, %xmm8
+ movq %rdi, %rax
+ punpcklbw %xmm8, %xmm8
+ punpcklwd %xmm8, %xmm8
+ pshufd $0, %xmm8, %xmm8
+L(entry_from_bzero):
+ cmpq $64, %rdx
+ ja L(loop_start)
+ cmpq $16, %rdx
+ jbe L(less_16_bytes)
+ cmpq $32, %rdx
+ movdqu %xmm8, (%rdi)
+ movdqu %xmm8, -16(%rdi,%rdx)
+ ja L(between_32_64_bytes)
+L(return):
rep
- stosq
-
- xchgq %rax,%rdx
-
-L(8byte_stos_skip):
- subq %r9,%r8
- ja L(8byte_nt_move)
-
- andl $7,%r8d
- lea (%rdi,%r8,1),%rdi
-#ifndef PIC
- lea L(setPxQx)(%rip),%r11
- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
-#else
- lea L(Got0)(%rip),%r11
- lea L(setPxQx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-#endif
-
- .balign 16
-L(8byte_nt_move):
- movq %r8,%rcx
- shrq $7,%rcx
- jz L(8byte_nt_move_skip)
-
- .balign 16
-L(8byte_nt_move_loop):
- decq %rcx
-
- movntiq %rdx, (%rdi)
- movntiq %rdx, 8 (%rdi)
- movntiq %rdx, 16 (%rdi)
- movntiq %rdx, 24 (%rdi)
- movntiq %rdx, 32 (%rdi)
- movntiq %rdx, 40 (%rdi)
- movntiq %rdx, 48 (%rdi)
- movntiq %rdx, 56 (%rdi)
- movntiq %rdx, 64 (%rdi)
- movntiq %rdx, 72 (%rdi)
- movntiq %rdx, 80 (%rdi)
- movntiq %rdx, 88 (%rdi)
- movntiq %rdx, 96 (%rdi)
- movntiq %rdx, 104 (%rdi)
- movntiq %rdx, 112 (%rdi)
- movntiq %rdx, 120 (%rdi)
-
- leaq 128 (%rdi),%rdi
-
- jnz L(8byte_nt_move_loop)
-
- sfence
-
-L(8byte_nt_move_skip):
- andl $127,%r8d
-
- lea (%rdi,%r8,1),%rdi
-#ifndef PIC
- lea L(setPxQx)(%rip),%r11
- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
-#else
- lea L(Got0)(%rip),%r11
- lea L(setPxQx)(%rip),%rcx
- movswq (%rcx,%r8,2),%rcx
- lea (%rcx,%r11,1),%r11
- jmpq *%r11
-#endif
+ ret
+ ALIGN (4)
+L(between_32_64_bytes):
+ movdqu %xmm8, 16(%rdi)
+ movdqu %xmm8, -32(%rdi,%rdx)
+ ret
+ ALIGN (4)
+L(loop_start):
+ leaq 64(%rdi), %rcx
+ movdqu %xmm8, (%rdi)
+ andq $-64, %rcx
+ movdqu %xmm8, -16(%rdi,%rdx)
+ movdqu %xmm8, 16(%rdi)
+ movdqu %xmm8, -32(%rdi,%rdx)
+ movdqu %xmm8, 32(%rdi)
+ movdqu %xmm8, -48(%rdi,%rdx)
+ movdqu %xmm8, 48(%rdi)
+ movdqu %xmm8, -64(%rdi,%rdx)
+ addq %rdi, %rdx
+ andq $-64, %rdx
+ cmpq %rdx, %rcx
+ je L(return)
+ ALIGN (4)
+L(loop):
+ movdqa %xmm8, (%rcx)
+ movdqa %xmm8, 16(%rcx)
+ movdqa %xmm8, 32(%rcx)
+ movdqa %xmm8, 48(%rcx)
+ addq $64, %rcx
+ cmpq %rcx, %rdx
+ jne L(loop)
+ rep
+ ret
+L(less_16_bytes):
+ movq %xmm8, %rcx
+ testb $24, %dl
+ jne L(between8_16bytes)
+ testb $4, %dl
+ jne L(between4_7bytes)
+ testb $1, %dl
+ je L(odd_byte)
+ movb %cl, (%rdi)
+L(odd_byte):
+ testb $2, %dl
+ je L(return)
+ movw %cx, -2(%rax,%rdx)
+ ret
+L(between4_7bytes):
+ movl %ecx, (%rdi)
+ movl %ecx, -4(%rdi,%rdx)
+ ret
+L(between8_16bytes):
+ movq %rcx, (%rdi)
+ movq %rcx, -8(%rdi,%rdx)
+ ret
END (memset)
libc_hidden_builtin_def (memset)
diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
index 86787ee6ea..203d16eed3 100644
--- a/sysdeps/x86_64/multiarch/Makefile
+++ b/sysdeps/x86_64/multiarch/Makefile
@@ -7,7 +7,7 @@ endif
ifeq ($(subdir),string)
sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
- strend-sse4 memcmp-sse4 memcpy-ssse3 mempcpy-ssse3 \
+ strend-sse4 memcmp-sse4 memcpy-ssse3 memcpy-sse2-unaligned mempcpy-ssse3 \
memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \
memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \
strncase_l-ssse3 strcat-ssse3 strncat-ssse3\
diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index 05315fdd7a..28d35793c5 100644
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -227,6 +227,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, memcpy, HAS_SSSE3,
__memcpy_ssse3_back)
IFUNC_IMPL_ADD (array, i, memcpy, HAS_SSSE3, __memcpy_ssse3)
+ IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_sse2))
/* Support sysdeps/x86_64/multiarch/mempcpy_chk.S. */
diff --git a/sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S b/sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S
new file mode 100644
index 0000000000..efdfea238f
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S
@@ -0,0 +1,175 @@
+/* memcpy with unaliged loads
+ 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 <sysdep.h>
+
+#include "asm-syntax.h"
+
+#ifndef ALIGN
+# define ALIGN(n) .p2align n
+#endif
+
+
+ENTRY(__memcpy_sse2_unaligned)
+ movq %rsi, %rax
+ leaq (%rdx,%rdx), %rcx
+ subq %rdi, %rax
+ subq %rdx, %rax
+ cmpq %rcx, %rax
+ jb L(overlapping)
+ cmpq $16, %rdx
+ jbe L(less_16)
+ movdqu (%rsi), %xmm8
+ cmpq $32, %rdx
+ movdqu %xmm8, (%rdi)
+ movdqu -16(%rsi,%rdx), %xmm8
+ movdqu %xmm8, -16(%rdi,%rdx)
+ ja .L31
+L(return):
+ movq %rdi, %rax
+ ret
+ .p2align 4,,10
+ ALIGN(4)
+.L31:
+ movdqu 16(%rsi), %xmm8
+ cmpq $64, %rdx
+ movdqu %xmm8, 16(%rdi)
+ movdqu -32(%rsi,%rdx), %xmm8
+ movdqu %xmm8, -32(%rdi,%rdx)
+ jbe L(return)
+ movdqu 32(%rsi), %xmm8
+ cmpq $128, %rdx
+ movdqu %xmm8, 32(%rdi)
+ movdqu -48(%rsi,%rdx), %xmm8
+ movdqu %xmm8, -48(%rdi,%rdx)
+ movdqu 48(%rsi), %xmm8
+ movdqu %xmm8, 48(%rdi)
+ movdqu -64(%rsi,%rdx), %xmm8
+ movdqu %xmm8, -64(%rdi,%rdx)
+ jbe L(return)
+ leaq 64(%rdi), %rcx
+ addq %rdi, %rdx
+ andq $-64, %rdx
+ andq $-64, %rcx
+ movq %rcx, %rax
+ subq %rdi, %rax
+ addq %rax, %rsi
+ cmpq %rdx, %rcx
+ je L(return)
+ movq %rsi, %r10
+ subq %rcx, %r10
+ leaq 16(%r10), %r9
+ leaq 32(%r10), %r8
+ leaq 48(%r10), %rax
+ .p2align 4,,10
+ ALIGN(4)
+L(loop):
+ movdqu (%rcx,%r10), %xmm8
+ movdqa %xmm8, (%rcx)
+ movdqu (%rcx,%r9), %xmm8
+ movdqa %xmm8, 16(%rcx)
+ movdqu (%rcx,%r8), %xmm8
+ movdqa %xmm8, 32(%rcx)
+ movdqu (%rcx,%rax), %xmm8
+ movdqa %xmm8, 48(%rcx)
+ addq $64, %rcx
+ cmpq %rcx, %rdx
+ jne L(loop)
+ jmp L(return)
+L(overlapping):
+ cmpq %rsi, %rdi
+ jae .L3
+ testq %rdx, %rdx
+ .p2align 4,,5
+ je L(return)
+ movq %rdx, %r9
+ leaq 16(%rsi), %rcx
+ leaq 16(%rdi), %r8
+ shrq $4, %r9
+ movq %r9, %rax
+ salq $4, %rax
+ cmpq %rcx, %rdi
+ setae %cl
+ cmpq %r8, %rsi
+ setae %r8b
+ orl %r8d, %ecx
+ cmpq $15, %rdx
+ seta %r8b
+ testb %r8b, %cl
+ je .L16
+ testq %rax, %rax
+ je .L16
+ xorl %ecx, %ecx
+ xorl %r8d, %r8d
+.L7:
+ movdqu (%rsi,%rcx), %xmm8
+ addq $1, %r8
+ movdqu %xmm8, (%rdi,%rcx)
+ addq $16, %rcx
+ cmpq %r8, %r9
+ ja .L7
+ cmpq %rax, %rdx
+ je L(return)
+.L21:
+ movzbl (%rsi,%rax), %ecx
+ movb %cl, (%rdi,%rax)
+ addq $1, %rax
+ cmpq %rax, %rdx
+ ja .L21
+ jmp L(return)
+L(less_16):
+ testb $24, %dl
+ jne L(between_9_16)
+ testb $4, %dl
+ .p2align 4,,5
+ jne L(between_5_8)
+ testq %rdx, %rdx
+ .p2align 4,,2
+ je L(return)
+ movzbl (%rsi), %eax
+ testb $2, %dl
+ movb %al, (%rdi)
+ je L(return)
+ movzwl -2(%rsi,%rdx), %eax
+ movw %ax, -2(%rdi,%rdx)
+ jmp L(return)
+.L3:
+ leaq -1(%rdx), %rax
+ .p2align 4,,10
+ ALIGN(4)
+.L11:
+ movzbl (%rsi,%rax), %edx
+ movb %dl, (%rdi,%rax)
+ subq $1, %rax
+ jmp .L11
+L(between_9_16):
+ movq (%rsi), %rax
+ movq %rax, (%rdi)
+ movq -8(%rsi,%rdx), %rax
+ movq %rax, -8(%rdi,%rdx)
+ jmp L(return)
+.L16:
+ xorl %eax, %eax
+ jmp .L21
+L(between_5_8):
+ movl (%rsi), %eax
+ movl %eax, (%rdi)
+ movl -4(%rsi,%rdx), %eax
+ movl %eax, -4(%rdi,%rdx)
+ jmp L(return)
+END(__memcpy_sse2_unaligned)
diff --git a/sysdeps/x86_64/multiarch/memcpy.S b/sysdeps/x86_64/multiarch/memcpy.S
index b452f5304b..a1e5031376 100644
--- a/sysdeps/x86_64/multiarch/memcpy.S
+++ b/sysdeps/x86_64/multiarch/memcpy.S
@@ -33,13 +33,14 @@ ENTRY(__new_memcpy)
jne 1f
call __init_cpu_features
1: leaq __memcpy_sse2(%rip), %rax
- testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
- jz 2f
- leaq __memcpy_ssse3(%rip), %rax
- testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
- jz 2f
- leaq __memcpy_ssse3_back(%rip), %rax
-2: ret
+ testl $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip)
+ jnz 2f
+ leaq __memcpy_sse2_unaligned(%rip), %rax
+ ret
+2: testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
+ jz 3f
+ leaq __memcpy_ssse3(%rip), %rax
+3: ret
END(__new_memcpy)
# undef ENTRY
diff --git a/elf/tst-audit3.c b/sysdeps/x86_64/tst-audit3.c
index d00db9972b..d00db9972b 100644
--- a/elf/tst-audit3.c
+++ b/sysdeps/x86_64/tst-audit3.c
diff --git a/elf/tst-audit4.c b/sysdeps/x86_64/tst-audit4.c
index c4f1d5bdb9..c4f1d5bdb9 100644
--- a/elf/tst-audit4.c
+++ b/sysdeps/x86_64/tst-audit4.c
diff --git a/elf/tst-audit5.c b/sysdeps/x86_64/tst-audit5.c
index 0094fee61f..0094fee61f 100644
--- a/elf/tst-audit5.c
+++ b/sysdeps/x86_64/tst-audit5.c
diff --git a/elf/tst-audit6.c b/sysdeps/x86_64/tst-audit6.c
index 64209a152e..64209a152e 100644
--- a/elf/tst-audit6.c
+++ b/sysdeps/x86_64/tst-audit6.c
diff --git a/elf/tst-audit7.c b/sysdeps/x86_64/tst-audit7.c
index 1d2a7de439..1d2a7de439 100644
--- a/elf/tst-audit7.c
+++ b/sysdeps/x86_64/tst-audit7.c
diff --git a/elf/tst-auditmod3a.c b/sysdeps/x86_64/tst-auditmod3a.c
index 9514aba505..9514aba505 100644
--- a/elf/tst-auditmod3a.c
+++ b/sysdeps/x86_64/tst-auditmod3a.c
diff --git a/elf/tst-auditmod3b.c b/sysdeps/x86_64/tst-auditmod3b.c
index 1a41ca80c0..1a41ca80c0 100644
--- a/elf/tst-auditmod3b.c
+++ b/sysdeps/x86_64/tst-auditmod3b.c
diff --git a/elf/tst-auditmod4a.c b/sysdeps/x86_64/tst-auditmod4a.c
index c9c24c04a8..c9c24c04a8 100644
--- a/elf/tst-auditmod4a.c
+++ b/sysdeps/x86_64/tst-auditmod4a.c
diff --git a/elf/tst-auditmod4b.c b/sysdeps/x86_64/tst-auditmod4b.c
index 80aaedcd3e..80aaedcd3e 100644
--- a/elf/tst-auditmod4b.c
+++ b/sysdeps/x86_64/tst-auditmod4b.c
diff --git a/elf/tst-auditmod5a.c b/sysdeps/x86_64/tst-auditmod5a.c
index 8511a70747..8511a70747 100644
--- a/elf/tst-auditmod5a.c
+++ b/sysdeps/x86_64/tst-auditmod5a.c
diff --git a/elf/tst-auditmod5b.c b/sysdeps/x86_64/tst-auditmod5b.c
index 576183d722..576183d722 100644
--- a/elf/tst-auditmod5b.c
+++ b/sysdeps/x86_64/tst-auditmod5b.c
diff --git a/elf/tst-auditmod6a.c b/sysdeps/x86_64/tst-auditmod6a.c
index c3a850ce98..c3a850ce98 100644
--- a/elf/tst-auditmod6a.c
+++ b/sysdeps/x86_64/tst-auditmod6a.c
diff --git a/elf/tst-auditmod6b.c b/sysdeps/x86_64/tst-auditmod6b.c
index b1c155a26e..b1c155a26e 100644
--- a/elf/tst-auditmod6b.c
+++ b/sysdeps/x86_64/tst-auditmod6b.c
diff --git a/elf/tst-auditmod6c.c b/sysdeps/x86_64/tst-auditmod6c.c
index 88adb21aa1..88adb21aa1 100644
--- a/elf/tst-auditmod6c.c
+++ b/sysdeps/x86_64/tst-auditmod6c.c
diff --git a/elf/tst-auditmod7a.c b/sysdeps/x86_64/tst-auditmod7a.c
index b379df75d6..b379df75d6 100644
--- a/elf/tst-auditmod7a.c
+++ b/sysdeps/x86_64/tst-auditmod7a.c
diff --git a/elf/tst-auditmod7b.c b/sysdeps/x86_64/tst-auditmod7b.c
index 68052efe97..68052efe97 100644
--- a/elf/tst-auditmod7b.c
+++ b/sysdeps/x86_64/tst-auditmod7b.c
diff --git a/time/Makefile b/time/Makefile
index a230268e0c..7f4a7fc6a8 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -35,7 +35,7 @@ aux := era alt_digit lc-time-cleanup
tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
- tst-strptime3 bug-getdate1
+ tst-strptime3 bug-getdate1 tst-strptime-whitespace
include ../Rules
diff --git a/time/alt_digit.c b/time/alt_digit.c
index 59fce11b84..7cd5119af0 100644
--- a/time/alt_digit.c
+++ b/time/alt_digit.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <wchar.h>
#include <string.h>
+#include <stdint.h>
/* Some of the functions here must not be used while setlocale is called. */
__libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
diff --git a/time/era.c b/time/era.c
index d272374474..d10af8b1a5 100644
--- a/time/era.c
+++ b/time/era.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <wchar.h>
#include <string.h>
+#include <stdint.h>
/* Some of the functions here must not be used while setlocale is called. */
__libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
diff --git a/time/getdate.c b/time/getdate.c
index 637dd18fcf..eadebc348b 100644
--- a/time/getdate.c
+++ b/time/getdate.c
@@ -25,6 +25,8 @@
#include <time.h>
#include <unistd.h>
#include <sys/stat.h>
+#include <ctype.h>
+#include <alloca.h>
#define TM_YEAR_BASE 1900
@@ -135,6 +137,44 @@ __getdate_r (const char *string, struct tm *tp)
/* No threads reading this stream. */
__fsetlocking (fp, FSETLOCKING_BYCALLER);
+ /* Skip leading whitespace. */
+ while (isspace (*string))
+ string++;
+
+ size_t inlen, oldlen;
+
+ oldlen = inlen = strlen (string);
+
+ /* Skip trailing whitespace. */
+ while (inlen > 0 && isspace (string[inlen - 1]))
+ inlen--;
+
+ char *instr = NULL;
+
+ if (inlen < oldlen)
+ {
+ bool using_malloc = false;
+
+ if (__libc_use_alloca (inlen + 1))
+ instr = alloca (inlen + 1);
+ else
+ {
+ instr = malloc (inlen + 1);
+ if (instr == NULL)
+ {
+ fclose (fp);
+ return 6;
+ }
+ using_malloc = true;
+ }
+ memcpy (instr, string, inlen);
+ instr[inlen] = '\0';
+ string = instr;
+
+ if (!using_malloc)
+ instr = NULL;
+ }
+
line = NULL;
len = 0;
do
@@ -159,6 +199,8 @@ __getdate_r (const char *string, struct tm *tp)
}
while (!feof_unlocked (fp));
+ free (instr);
+
/* Free the buffer. */
free (line);
diff --git a/time/strptime_l.c b/time/strptime_l.c
index 89daffaa05..1f2e8b622f 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -72,7 +72,7 @@ localtime_r (t, tp)
do { \
int __n = n; \
val = 0; \
- while (*rp == ' ') \
+ while (ISSPACE (*rp)) \
++rp; \
if (*rp < '0' || *rp > '9') \
return NULL; \
@@ -752,7 +752,7 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
also specified. */
{
val = 0;
- while (*rp == ' ')
+ while (ISSPACE (*rp))
++rp;
if (*rp != '+' && *rp != '-')
return NULL;
diff --git a/time/tst-getdate.c b/time/tst-getdate.c
index 7604e8394f..dc8ecf413a 100644
--- a/time/tst-getdate.c
+++ b/time/tst-getdate.c
@@ -31,6 +31,10 @@ static const struct
} tests [] =
{
{"21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {"21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {" 21:01:10 1999-1-31", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {"21:01:10 1999-1-31 ", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
+ {" 21:01:10 1999-1-31 ", "Universal", 0, {10, 1, 21, 31, 0, 99, 0, 0, 0}},
{"21:01:10 1999-2-28", "Universal", 0, {10, 1, 21, 28, 1, 99, 0, 0, 0}},
{"16:30:46 2000-2-29", "Universal", 0, {46, 30,16, 29, 1, 100, 0, 0, 0}},
{"01-08-2000 05:06:07", "Europe/Berlin", 0, {7, 6, 5, 1, 7, 100, 0, 0, 0}}
diff --git a/time/tst-strptime-whitespace.c b/time/tst-strptime-whitespace.c
new file mode 100644
index 0000000000..d2ceca35d2
--- /dev/null
+++ b/time/tst-strptime-whitespace.c
@@ -0,0 +1,43 @@
+/* Verify that strptime accepts arbitrary whitespace between tokens.
+
+ 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/>. */
+
+#define _XOPEN_SOURCE
+#include <time.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+do_test (void)
+{
+ struct tm t;
+ const char *in = "Tuesday \t 22 \t July\t1942";
+
+ char *r = strptime (in, "%A%d %b%Y", &t);
+
+ if (r == NULL || r != in + strlen (in))
+ {
+ printf ("strptime failed\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-c16c32-1.c b/wcsmbs/tst-c16c32-1.c
index f4534c5d93..3b1c1d674c 100644
--- a/wcsmbs/tst-c16c32-1.c
+++ b/wcsmbs/tst-c16c32-1.c
@@ -2,7 +2,7 @@
#include <locale.h>
#include <stdio.h>
#include <uchar.h>
-
+#include <stdint.h>
static int
do_test (void)