mirror of
git://sourceware.org/git/glibc.git
synced 2026-09-09 23:58:37 +08:00
Compare commits
45
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac58450e8c | ||
|
|
0695940b8a | ||
|
|
10de07f5fd | ||
|
|
cb4d54147e | ||
|
|
296f21e7bd | ||
|
|
caf84319c1 | ||
|
|
6dbe713d85 | ||
|
|
f0ee064b7d | ||
|
|
d569c6eeb4 | ||
|
|
a6a242fe7c | ||
|
|
f2da779309 | ||
|
|
c3ed8088e4 | ||
|
|
f1a24198af | ||
|
|
9ce3b2cbd2 | ||
|
|
b1a36ceb3b | ||
|
|
7e7b6f36a9 | ||
|
|
4d14f4499d | ||
|
|
5b4217d71f | ||
|
|
d5ba74f764 | ||
|
|
4220c3ef77 | ||
|
|
4721b2d1ca | ||
|
|
9457fd952c | ||
|
|
f0302940e7 | ||
|
|
aa630f590c | ||
|
|
1b8359836d | ||
|
|
804f604cdd | ||
|
|
73709b2611 | ||
|
|
1ef74943ce | ||
|
|
ae9552cf7b | ||
|
|
93fd48c5f6 | ||
|
|
418601aa84 | ||
|
|
5e22180060 | ||
|
|
77f143fdb4 | ||
|
|
2f38fbfe09 | ||
|
|
45d69176e8 | ||
|
|
d6f9bc519d | ||
|
|
87f51853ce | ||
|
|
3c0265394d | ||
|
|
ff491d14a2 | ||
|
|
7ed3f4e859 | ||
|
|
5c95f7b66b | ||
|
|
d34c915826 | ||
|
|
da1304bcc8 | ||
|
|
2169712d9c | ||
|
|
29c5de9984 |
@@ -1,3 +1,452 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* bits/elfclass.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
* bits/netdb.h: Likewise.
|
||||
* sysdeps/powerpc/bits/link.h: Likewise.
|
||||
* sysdeps/s390/bits/link.h: Likewise.
|
||||
* sysdeps/sh/bits/link.h: Likewise.
|
||||
* sysdeps/sparc/bits/link.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/bits/ppc.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Likewise.
|
||||
* sysdeps/x86/bits/link.h: Likewise.
|
||||
* inet/netinet/icmp6.h: Likewise.
|
||||
* inet/netinet/ip6.h: Likewise.
|
||||
* nis/rpcsvc/nis.h: Likewise.
|
||||
* nis/rpcsvc/nislib.h: Likewise.
|
||||
* sunrpc/rpc/auth_des.h: Likewise.
|
||||
* sunrpc/rpc/xdr.h: Likewise.
|
||||
|
||||
2013-05-01 Richard Smith <richard@metafoo.co.uk>
|
||||
|
||||
* 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
|
||||
|
||||
@@ -10,11 +10,12 @@ Version 2.18
|
||||
* The following bugs are resolved with this release:
|
||||
|
||||
10060, 10062, 10357, 11120, 11561, 12723, 13550, 13889, 13951, 13988,
|
||||
14142, 14176, 14200, 14293, 14317, 14327, 14478, 14496, 14686, 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, 15305, 15307, 15309, 15327, 15330, 15335,
|
||||
15336, 15337, 15342, 15346, 15361.
|
||||
14142, 14176, 14200, 14280, 14293, 14317, 14327, 14478, 14496, 14686,
|
||||
14812, 14888, 14920, 14964, 14981, 14982, 14985, 14994, 14996, 15003,
|
||||
15006, 15007, 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, 15342,
|
||||
15346, 15361, 15366, 15380, 15394, 15405, 15406, 15409, 15416, 15423.
|
||||
|
||||
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||
#15078).
|
||||
|
||||
+9
-64
@@ -23,12 +23,6 @@
|
||||
|
||||
# - Append the function name to the bench variable
|
||||
|
||||
# - 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. A good idea would be to keep the run time
|
||||
# of each test at around 10 seconds for x86_64. That is just a guideline,
|
||||
# since some scenarios may require higher run times.
|
||||
|
||||
# - 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.:
|
||||
@@ -45,92 +39,36 @@
|
||||
# See pow-inputs for an example.
|
||||
|
||||
subdir := benchtests
|
||||
bench := exp pow rint sin cos tan atan \
|
||||
slowexp slowpow slowsin slowcos slowtan slowatan
|
||||
bench := exp pow rint sin cos tan atan modf
|
||||
|
||||
# exp function fast path
|
||||
exp-ITER = 5e8
|
||||
exp-ARGLIST = double
|
||||
exp-RET = double
|
||||
LDFLAGS-bench-exp = -lm
|
||||
|
||||
# pow function fast path
|
||||
pow-ITER = 2e8
|
||||
pow-ARGLIST = double:double
|
||||
pow-RET = double
|
||||
LDFLAGS-bench-pow = -lm
|
||||
|
||||
rint-ITER = 250000000
|
||||
rint-ARGLIST = double
|
||||
rint-RET = double
|
||||
LDFLAGS-bench-rint = -lm
|
||||
|
||||
# exp function slowest path
|
||||
slowexp-ITER = 3e5
|
||||
slowexp-ARGLIST = double
|
||||
slowexp-RET = double
|
||||
slowexp-INCLUDE = slowexp.c
|
||||
LDFLAGS-bench-slowexp = -lm
|
||||
|
||||
# sin function fast path
|
||||
sin-ITER = 3e9
|
||||
sin-ARGLIST = double
|
||||
sin-RET = double
|
||||
LDFLAGS-bench-sin = -lm
|
||||
|
||||
# cos function fast path
|
||||
cos-ITER = 3e9
|
||||
cos-ARGLIST = double
|
||||
cos-RET = double
|
||||
LDFLAGS-bench-cos = -lm
|
||||
|
||||
# tan function fast path
|
||||
tan-ITER = 3e9
|
||||
tan-ARGLIST = double
|
||||
tan-RET = double
|
||||
LDFLAGS-bench-tan = -lm
|
||||
|
||||
# atan function fast path
|
||||
atan-ITER = 6e9
|
||||
atan-ARGLIST = double
|
||||
atan-RET = double
|
||||
LDFLAGS-bench-atan = -lm
|
||||
|
||||
# pow function slowest path
|
||||
slowpow-ITER = 1e5
|
||||
slowpow-ARGLIST = double:double
|
||||
slowpow-RET = double
|
||||
slowpow-INCLUDE = slowpow.c
|
||||
LDFLAGS-bench-slowpow = -lm
|
||||
|
||||
# sin function slowest path
|
||||
slowsin-ITER = 3e7
|
||||
slowsin-ARGLIST = double
|
||||
slowsin-RET = double
|
||||
slowsin-INCLUDE = slowsin.c
|
||||
LDFLAGS-bench-slowsin = -lm
|
||||
|
||||
# cos function slowest path
|
||||
slowcos-ITER = 3e7
|
||||
slowcos-ARGLIST = double
|
||||
slowcos-RET = double
|
||||
slowcos-INCLUDE = slowcos.c
|
||||
LDFLAGS-bench-slowcos = -lm
|
||||
|
||||
# tan function slowest path
|
||||
slowtan-ITER = 3e7
|
||||
slowtan-ARGLIST = double
|
||||
slowtan-RET = double
|
||||
slowtan-INCLUDE = slowtan.c
|
||||
LDFLAGS-bench-slowtan = -lm
|
||||
|
||||
# atan function slowest path
|
||||
slowatan-ITER = 3e8
|
||||
slowatan-ARGLIST = double
|
||||
slowatan-RET = double
|
||||
slowatan-INCLUDE = slowatan.c
|
||||
LDFLAGS-bench-slowatan = -lm
|
||||
|
||||
|
||||
|
||||
# Rules to build and execute the benchmarks. Do not put any benchmark
|
||||
@@ -141,6 +79,13 @@ 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)
|
||||
|
||||
# This makes sure CPPFLAGS-nonlib and CFLAGS-nonlib are passed
|
||||
# for all these modules.
|
||||
cpp-srcs-left := $(binaries-bench:=.c)
|
||||
@@ -176,5 +121,5 @@ $(objpfx)bench-%.c: %-inputs $(bench-deps)
|
||||
cat $($*-INCLUDE); \
|
||||
fi; \
|
||||
$(..)scripts/bench.pl $(patsubst %-inputs,%,$<) \
|
||||
$($*-ITER) $($*-ARGLIST) $($*-RET); } > $@-tmp
|
||||
$($*-ARGLIST) $($*-RET); } > $@-tmp
|
||||
mv -f $@-tmp $@
|
||||
|
||||
@@ -1,3 +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
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* Define slowpow.
|
||||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
/* 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
|
||||
@@ -16,4 +15,30 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define slowpow pow
|
||||
extern double modf (double, double *);
|
||||
|
||||
#define CALL_BENCH_FUNC(j, i) modf (in[j].arg0, &i);
|
||||
|
||||
struct args
|
||||
{
|
||||
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"
|
||||
+50
-25
@@ -22,13 +22,17 @@
|
||||
#include <time.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#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 start, end, runtime;
|
||||
|
||||
memset (&runtime, 0, sizeof (runtime));
|
||||
memset (&start, 0, sizeof (start));
|
||||
memset (&end, 0, sizeof (end));
|
||||
|
||||
@@ -39,37 +43,58 @@ main (int argc, char **argv)
|
||||
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;
|
||||
|
||||
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;
|
||||
uint64_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++)
|
||||
{
|
||||
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &start);
|
||||
for (k = 0; k < iters; k++)
|
||||
BENCH_FUNC (v, i);
|
||||
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &end);
|
||||
|
||||
uint64_t cur = (end.tv_nsec - start.tv_nsec
|
||||
+ ((end.tv_sec - start.tv_sec)
|
||||
* (uint64_t) 1000000000));
|
||||
uint64_t cur = (end.tv_nsec - start.tv_nsec
|
||||
+ ((end.tv_sec - start.tv_sec)
|
||||
* (uint64_t) 1000000000));
|
||||
|
||||
if (cur > max)
|
||||
max = cur;
|
||||
if (cur > max)
|
||||
max = cur;
|
||||
|
||||
if (cur < min)
|
||||
min = cur;
|
||||
if (cur < min)
|
||||
min = cur;
|
||||
|
||||
total += cur;
|
||||
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 * 1e-9;
|
||||
d_iters = iters;
|
||||
|
||||
printf ("%s: ITERS:%g: TOTAL:%gs, MAX:%gns, MIN:%gns, %g iter/s\n",
|
||||
VARIANT (v),
|
||||
d_total_i, d_total_s, max / d_iters, min / d_iters,
|
||||
d_total_i / d_total_s);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3,3 +3,11 @@
|
||||
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
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
42
|
||||
# Slowest path with computation in 768 bit precision.
|
||||
# Implemented in: sysdeps/ieee754/dbl-64/mpexp.c
|
||||
## name: 768bits
|
||||
708.00096423260981737257679924368858
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,3 +5,13 @@
|
||||
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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
0x1.000000c5cba87p0
|
||||
0x1.000001883003bp0
|
||||
0x1.00000dfb2b675p0
|
||||
@@ -1,5 +0,0 @@
|
||||
0x1.000000cf4a2a2p0
|
||||
0x1.0000010b239a9p0
|
||||
0x1.00000162a932bp0
|
||||
0x1.000002d452a10p0
|
||||
0x1.000005bc7d86dp0
|
||||
@@ -1,19 +0,0 @@
|
||||
/* Define slowcos.
|
||||
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 slowcos cos
|
||||
@@ -1 +0,0 @@
|
||||
708.00096423260981737257679924368858
|
||||
@@ -1 +0,0 @@
|
||||
1.0000000000000020, 1.5
|
||||
@@ -1,7 +0,0 @@
|
||||
0.93340582292648832662962377071381
|
||||
2.3328432680770916363144351635128
|
||||
3.7439477503636453548097051680088
|
||||
3.9225160069792437411706487182528
|
||||
4.0711651639931289992091478779912
|
||||
4.7858438478542097982426639646292
|
||||
5.9840767662578002727968851104379
|
||||
@@ -1,19 +0,0 @@
|
||||
/* Define slowsin.
|
||||
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 slowsin sin
|
||||
@@ -1 +0,0 @@
|
||||
0x1.dffffffffff1fp-22
|
||||
@@ -1,19 +0,0 @@
|
||||
/* Define slowtan.
|
||||
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 slowtan tan
|
||||
@@ -1 +1,5 @@
|
||||
0x1.dffffffffff1ep-22
|
||||
# tan slowest path at 768 bits
|
||||
# Implemented in sysdeps/ieee754/dbl-64/mptan.c
|
||||
## name: 768bits
|
||||
0x1.dffffffffff1fp-22
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define __ELF_NATIVE_CLASS __WORDSIZE
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Description of data base entry for a single network. NOTE: here a
|
||||
poor assumption is made. The network number is expected to fit
|
||||
|
||||
+2
-1
@@ -161,7 +161,8 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
|
||||
So we can set up _dl_phdr and _dl_phnum even without any
|
||||
information from auxv. */
|
||||
|
||||
extern const ElfW(Ehdr) __ehdr_start __attribute__ ((weak));
|
||||
extern const ElfW(Ehdr) __ehdr_start
|
||||
__attribute__ ((weak, visibility ("hidden")));
|
||||
if (&__ehdr_start != NULL)
|
||||
{
|
||||
assert (__ehdr_start.e_phentsize == sizeof *GL(dl_phdr));
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define _NETINET_IP6_H 1
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdint.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
struct ip6_hdr
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -295,7 +295,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)) {
|
||||
|
||||
+1395
-567
File diff suppressed because it is too large
Load Diff
+71
-10
@@ -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;
|
||||
|
||||
+73
-10
@@ -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;
|
||||
|
||||
r2 = __real__ x * __real__ x;
|
||||
absx = fabsf (__real__ x);
|
||||
absy = fabsf (__imag__ x);
|
||||
if (absx < absy)
|
||||
{
|
||||
float t = absx;
|
||||
absx = absy;
|
||||
absy = t;
|
||||
}
|
||||
|
||||
den = 1 - r2 - __imag__ x * __imag__ x;
|
||||
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.5 * __ieee754_atan2f (2.0 * __real__ x, den);
|
||||
__real__ res = 0.5f * __ieee754_atan2f (2.0f * __real__ x, den);
|
||||
|
||||
num = __imag__ x + 1.0;
|
||||
num = r2 + num * num;
|
||||
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 = __imag__ x - 1.0;
|
||||
den = r2 + den * den;
|
||||
if (fabsf (__real__ x) >= FLT_EPSILON * FLT_EPSILON)
|
||||
r2 = __real__ x * __real__ x;
|
||||
|
||||
__imag__ res = 0.25 * __ieee754_logf (num / den);
|
||||
num = __imag__ x + 1.0f;
|
||||
num = r2 + num * num;
|
||||
|
||||
den = __imag__ x - 1.0f;
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
+71
-9
@@ -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;
|
||||
|
||||
__real__ res = 0.25 * (__ieee754_log (num) - __ieee754_log (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);
|
||||
}
|
||||
}
|
||||
|
||||
den = 1 - __real__ x * __real__ x - i2;
|
||||
double absx, absy, den;
|
||||
|
||||
__imag__ res = 0.5 * __ieee754_atan2 (2.0 * __imag__ x, den);
|
||||
absx = fabs (__real__ x);
|
||||
absy = fabs (__imag__ x);
|
||||
if (absx < absy)
|
||||
{
|
||||
double t = absx;
|
||||
absx = absy;
|
||||
absy = t;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
+73
-9
@@ -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.0 + __real__ x;
|
||||
num = i2 + num * num;
|
||||
float num = 1.0f + __real__ x;
|
||||
num = i2 + num * num;
|
||||
|
||||
float den = 1.0 - __real__ x;
|
||||
den = i2 + den * den;
|
||||
float den = 1.0f - __real__ x;
|
||||
den = i2 + den * den;
|
||||
|
||||
__real__ res = 0.25 * (__ieee754_logf (num) - __ieee754_logf (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);
|
||||
}
|
||||
}
|
||||
|
||||
den = 1 - __real__ x * __real__ x - i2;
|
||||
float absx, absy, den;
|
||||
|
||||
__imag__ res = 0.5 * __ieee754_atan2f (2.0 * __imag__ x, den);
|
||||
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;
|
||||
|
||||
__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;
|
||||
|
||||
+78
-8
@@ -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.0 + __real__ x;
|
||||
num = i2 + num * num;
|
||||
long double num = 1.0L + __real__ x;
|
||||
num = i2 + num * num;
|
||||
|
||||
long double den = 1.0 - __real__ x;
|
||||
den = i2 + den * den;
|
||||
long double den = 1.0L - __real__ x;
|
||||
den = i2 + den * den;
|
||||
|
||||
__real__ res = 0.25 * (__ieee754_logl (num) - __ieee754_logl (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);
|
||||
}
|
||||
}
|
||||
|
||||
den = 1 - __real__ x * __real__ x - i2;
|
||||
long double absx, absy, den;
|
||||
|
||||
__imag__ res = 0.5 * __ieee754_atan2l (2.0 * __imag__ x, den);
|
||||
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;
|
||||
|
||||
__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;
|
||||
|
||||
+78
-9
@@ -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;
|
||||
|
||||
r2 = __real__ x * __real__ x;
|
||||
absx = fabsl (__real__ x);
|
||||
absy = fabsl (__imag__ x);
|
||||
if (absx < absy)
|
||||
{
|
||||
long double t = absx;
|
||||
absx = absy;
|
||||
absy = t;
|
||||
}
|
||||
|
||||
den = 1 - r2 - __imag__ x * __imag__ x;
|
||||
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.5 * __ieee754_atan2l (2.0 * __real__ x, den);
|
||||
__real__ res = 0.5L * __ieee754_atan2l (2.0L * __real__ x, den);
|
||||
|
||||
num = __imag__ x + 1.0;
|
||||
num = r2 + num * num;
|
||||
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 = __imag__ x - 1.0;
|
||||
den = r2 + den * den;
|
||||
if (fabsl (__real__ x) >= LDBL_EPSILON * LDBL_EPSILON)
|
||||
r2 = __real__ x * __real__ x;
|
||||
|
||||
__imag__ res = 0.25 * __ieee754_logl (num / den);
|
||||
num = __imag__ x + 1.0L;
|
||||
num = r2 + num * num;
|
||||
|
||||
den = __imag__ x - 1.0L;
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
+6
-8
@@ -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 */
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#define _RPCSVC_NIS_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <stdint.h>
|
||||
#include <rpc/rpc.h>
|
||||
#include <rpcsvc/nis_tags.h>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define __RPCSVC_NISLIB_H__
|
||||
|
||||
#include <features.h>
|
||||
#include <stdint.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
+17
-3
@@ -1,7 +1,21 @@
|
||||
2013-04-19 Roland McGrath <roland@hack.frob.com>
|
||||
2013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
* pthread_attr_getstack.c: Fail with EINVAL if the stack address has
|
||||
not been set.
|
||||
* 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>
|
||||
|
||||
|
||||
+63
-1
@@ -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 */
|
||||
|
||||
@@ -31,9 +31,6 @@ __pthread_attr_getstack (attr, stackaddr, stacksize)
|
||||
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
|
||||
iattr = (struct pthread_attr *) attr;
|
||||
|
||||
if (!(iattr->flags & ATTR_FLAG_STACKADDR))
|
||||
return EINVAL;
|
||||
|
||||
/* Store the result. */
|
||||
*stackaddr = (char *) iattr->stackaddr - iattr->stacksize;
|
||||
*stacksize = iattr->stacksize;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
+1
-1
@@ -841,7 +841,7 @@ shadow_keys (int number, char *key[])
|
||||
setspent ();
|
||||
while ((sp = getspent ()) != NULL)
|
||||
print_shadow (sp);
|
||||
endpwent ();
|
||||
endspent ();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/aarch64/bits/link.h: Add missing #include <stdint.h>
|
||||
due to uint[32|64]_t usage.
|
||||
|
||||
2013-03-19 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/aarch64/configure.in: Set
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/elfclass.h: Add missing #include
|
||||
<stdint.h> due to uint[32|64]_t usage.
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/netdb.h: Likewise.
|
||||
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/alpha/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-03-06 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/mman.h (MAP_HUGE_MASK)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/arm/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-04-19 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/arm/sysdep.h
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/hppa/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* sysdeps/hppa/math_private.h: New file.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/ia64/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-03-12 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL_DECL): Add
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/m68k/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-04-11 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/microblaze/bits/link.h: Add missing #include <stdint.h> due
|
||||
to uint[32|64]_t usage.
|
||||
|
||||
2013-03-28 David Holsgrove <david.holsgrove@xilinx.com>
|
||||
|
||||
* sysdeps/microblaze/Implies: New file.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/mips/bits/link.h: Add missing #include <stdint.h> due to
|
||||
uint[32|64]_t usage.
|
||||
|
||||
2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* sysdeps/mips/math_private.h: New file.
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on AArch64. */
|
||||
typedef struct La_aarch64_regs
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on Alpha. */
|
||||
typedef struct La_alpha_regs
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on ARM. */
|
||||
typedef struct La_arm_regs
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on hppa. */
|
||||
typedef struct La_hppa_regs
|
||||
{
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on ia64. */
|
||||
typedef struct La_ia64_regs
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on M68K. */
|
||||
typedef struct La_m68k_regs
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Registers for entry into PLT on Microblaze. */
|
||||
typedef struct La_microblaze_regs
|
||||
{
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#endif
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define __ELF_NATIVE_CLASS __WORDSIZE
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* Description of data base entry for a single network. NOTE: here a
|
||||
poor assumption is made. The network number is expected to fit
|
||||
|
||||
+9
-3
@@ -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 */
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+96
-21
@@ -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 $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";
|
||||
|
||||
+1
-1
@@ -973,7 +973,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); \
|
||||
|
||||
@@ -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
|
||||
|
||||
+3
-2
@@ -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)
|
||||
|
||||
+3
-4
@@ -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
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifndef _RPC_AUTH_DES_H
|
||||
#define _RPC_AUTH_DES_H 1
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <rpc/auth.h>
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
/* We need FILE. */
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -292,7 +292,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i) == 2.094395102393190022547898764614298351924 - 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: cacos (-0.5 + 0x1p-52 i) == 2.094395102393195492308428922186316279087 - 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -316,7 +318,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i) == 2.094395102393190022547898764614298351924 + 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: cacos (-0.5 - 0x1p-52 i) == 2.094395102393195492308428922186316279087 + 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -347,6 +351,12 @@ ldouble: 1
|
||||
Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 3.141592653170952461345846619605307690007 + 2.588578361325995866221775673638805081337e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i) == 3.141153467203602189751698864505105063797 - 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i) == 3.141153467203602189751698864505105063797 + 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: cacos (-0x1.0000000000000002p0 + 0x1p-63 i) == 3.141592653377875508152537040020250564229 - 5.116146586219826555037807251857670783420e-10 i":
|
||||
ildouble: 2
|
||||
ldouble: 2
|
||||
@@ -621,7 +631,9 @@ double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: cacos (0.5 + 0x1p-23 i) == 1.047197551196603215914744618665204532273 - 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacos (0.5 + 0x1p-52 i) == 1.047197551196597746154214461093186605110 - 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -666,7 +678,9 @@ double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: cacos (0.5 - 0x1p-23 i) == 1.047197551196603215914744618665204532273 + 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacos (0.5 - 0x1p-52 i) == 1.047197551196597746154214461093186605110 + 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -718,6 +732,12 @@ ldouble: 1
|
||||
Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 4.188407771167967636741951941902992986043e-10 + 2.588578361325995866221775673638805081337e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i) == 4.391863861910487109445187743978204002614e-4 - 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i) == 4.391863861910487109445187743978204002614e-4 + 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i) == 2.119177303101063432592523199680782317447e-10 - 5.116146586219826555037807251857670783420e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
@@ -1067,7 +1087,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: cacosh (-0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 2.094395102393190022547898764614298351924 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacosh (-0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 2.094395102393195492308428922186316279087 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1091,7 +1113,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: cacosh (-0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 2.094395102393190022547898764614298351924 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacosh (-0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 2.094395102393195492308428922186316279087 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1122,6 +1146,12 @@ ldouble: 1
|
||||
Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 3.141592653170952461345846619605307690007 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 3.141153467203602189751698864505105063797 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 3.141153467203602189751698864505105063797 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 3.141592653377875508152537040020250564229 i":
|
||||
ildouble: 2
|
||||
ldouble: 2
|
||||
@@ -1396,7 +1426,9 @@ double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 1.047197551196603215914744618665204532273 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1441,7 +1473,9 @@ double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 1.047197551196603215914744618665204532273 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1493,6 +1527,12 @@ ldouble: 1
|
||||
Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 4.391863861910487109445187743978204002614e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 4.391863861910487109445187743978204002614e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
|
||||
ildouble: 2
|
||||
ldouble: 2
|
||||
@@ -1839,7 +1879,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (-0.5 + 0x1p-23 i) == -5.235987755982934033165770729745469098254e-1 + 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casin (-0.5 + 0x1p-52 i) == -5.235987755982988730771072305465648369889e-1 + 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1869,7 +1911,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (-0.5 - 0x1p-23 i) == -5.235987755982934033165770729745469098254e-1 - 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casin (-0.5 - 0x1p-52 i) == -5.235987755982988730771072305465648369889e-1 - 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -1903,6 +1947,12 @@ ldouble: 1
|
||||
Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == -1.570796326376055842114524927965556247908 - 2.588578361325995866221775673638805081337e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i) == -1.570357140408705570520377172865353621698 + 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i) == -1.570357140408705570520377172865353621698 - 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: casin (-0x1.0000000000000002p0 + 0x1p-63 i) == -1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
|
||||
ildouble: 2
|
||||
ldouble: 2
|
||||
@@ -2219,7 +2269,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (0.5 + 0x1p-23 i) == 5.235987755982934033165770729745469098254e-1 + 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casin (0.5 + 0x1p-52 i) == 5.235987755982988730771072305465648369889e-1 + 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -2249,7 +2301,9 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (0.5 - 0x1p-23 i) == 5.235987755982934033165770729745469098254e-1 - 1.376510308240943236356088341381173571841e-7 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casin (0.5 - 0x1p-52 i) == 5.235987755982988730771072305465648369889e-1 - 2.563950248511418570403591756798643804971e-16 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
@@ -2289,6 +2343,12 @@ ldouble: 1
|
||||
Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 1.570796326376055842114524927965556247908 - 2.588578361325995866221775673638805081337e-10 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i) == 1.570357140408705570520377172865353621698 + 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i) == 1.570357140408705570520377172865353621698 - 2.714321200917194650737217746780928423385e-4 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: casin (0x1.0000000000000002p0 + 0x1p-63 i) == 1.570796326582978888921215348380499122131 + 5.116146586219826555037807251857670783420e-10 i":
|
||||
ildouble: 2
|
||||
ldouble: 2
|
||||
@@ -2814,10 +2874,15 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 + 0.5 i) == -1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i) == -1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i) == -2.714321200917194650737217746780928423385e-4 + 1.570357140408705570520377172865353621698 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 + 0x1.fp-129 i) == -1.192092895507809676556842485683592032154e-7 + 2.846900380897707329917933005874691056564e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
@@ -2826,10 +2891,15 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 - 0.5 i) == -1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i) == -1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i) == -2.714321200917194650737217746780928423385e-4 - 1.570357140408705570520377172865353621698 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: casinh (-0x1p-23 - 0x1.fp-129 i) == -1.192092895507809676556842485683592032154e-7 - 2.846900380897707329917933005874691056564e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
@@ -3229,10 +3299,15 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 + 0.5 i) == 1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casinh (0x1p-23 + 0.5 i) == 1.376510308240943236356088341381173571841e-7 + 5.235987755982934033165770729745469098254e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i) == 2.714321200917194650737217746780928423385e-4 + 1.570357140408705570520377172865353621698 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 + 0x1.fp-129 i) == 1.192092895507809676556842485683592032154e-7 + 2.846900380897707329917933005874691056564e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
@@ -3241,10 +3316,15 @@ ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 - 0.5 i) == 1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: casinh (0x1p-23 - 0.5 i) == 1.376510308240943236356088341381173571841e-7 - 5.235987755982934033165770729745469098254e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i) == 2.714321200917194650737217746780928423385e-4 - 1.570357140408705570520377172865353621698 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: casinh (0x1p-23 - 0x1.fp-129 i) == 1.192092895507809676556842485683592032154e-7 - 2.846900380897707329917933005874691056564e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
@@ -3400,13 +3480,227 @@ double: 1
|
||||
idouble: 1
|
||||
|
||||
# catan
|
||||
Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i) == -7.853981633974482679822974223765039144191e-1 + 3.725290298461914441624447420137706700965e-9 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: catan (-0x0.ffffffffffffffffp0 + 0x1p-33 i) == -7.853981633974483095919439232967553115548e-1 + 5.820766091346740722958646680334721192083e-11 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i) == -7.853981373204155542484315721351697277336e-1 + 6.103515973639646453881721999956617260502e-5 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: catan (-0x1.0000000000001p0 + 0x1p-27 i) == -7.853981633974484345157511161499711112683e-1 + 3.725290298461913200853528590596263270474e-9 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i) == -7.853982267273793866654490522673596014524e-1 - 6.103514882246036852433556327261700380577e-5 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.3p-73 + 1.0 i) == -7.853981633974483096156922786831527361009e-1 + 2.556052055225464683726753902092495938633e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.3p-73 - 1.0 i) == -7.853981633974483096156922786831527361009e-1 - 2.556052055225464683726753902092495938633e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i) == -1.570796326794896619231321691639751442099 + 2.871063043235098558826106732041811695767e-309 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i) == -1.570796326794896619231321691639751442099 - 2.871063043235098558826106732041811695767e-309 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i) == -1.570796326794896619231321691639751442097 + 1.516766904286822590927401983512575068153e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i) == -1.570796326794896619231321691639751442097 - 1.516766904286822590927401983512575068153e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i) == -7.853981633974483096156608458198757210493e-1 + 3.538516356758520804574969980043991380025e2 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i) == -7.853981633974483096156608458198757210493e-1 - 3.538516356758520804574969980043991380025e2 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-1022 + 0x0.ffffffffffffffffp0 i) == -2.052268400649188124723641491045245971623e-289 + 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i) == -2.052268400649188124723641491045245971623e-289 - 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-16382 + 0x0.ffffffffffffffffp0 i) == -3.100992811520163369065387859792822623745e-4913 + 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i) == -3.100992811520163369065387859792822623745e-4913 - 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i) == -7.853981631937214964185249205444919953948e-1 + 1.178350206951907026002603046195591193050e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i) == -7.853981631937214964185249205444919953948e-1 - 1.178350206951907026002603046195591193050e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-64 + 1.0 i) == -7.853981633974483096292133729759445264744e-1 + 2.252728336819822255606004394739073846245e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-0x1p-64 - 1.0 i) == -7.853981633974483096292133729759445264744e-1 - 2.252728336819822255606004394739073846245e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-1.0 + 0x1p-64 i) == -7.853981633974483096156608458198757210500e-1 + 2.710505431213761085018632002174854278563e-20 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-1.0 - 0x1p-13 i) == -7.853981671227386080775748393881580082970e-1 - 6.103515609841754902688560615027452023669e-5 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-1.0 - 0x1p-64 i) == -7.853981633974483096156608458198757210500e-1 - 2.710505431213761085018632002174854278563e-20 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i) == 7.853981633974482679822974223765039144191e-1 + 3.725290298461914441624447420137706700965e-9 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: catan (0x0.ffffffffffffffffp0 + 0x1p-33 i) == 7.853981633974483095919439232967553115548e-1 + 5.820766091346740722958646680334721192083e-11 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i) == 7.853981373204155542484315721351697277336e-1 + 6.103515973639646453881721999956617260502e-5 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Imaginary part of: catan (0x1.0000000000001p0 + 0x1p-27 i) == 7.853981633974484345157511161499711112683e-1 + 3.725290298461913200853528590596263270474e-9 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i) == 7.853982267273793866654490522673596014524e-1 - 6.103514882246036852433556327261700380577e-5 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Imaginary part of: catan (0x1.3p-73 + 1.0 i) == 7.853981633974483096156922786831527361009e-1 + 2.556052055225464683726753902092495938633e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.3p-73 - 1.0 i) == 7.853981633974483096156922786831527361009e-1 - 2.556052055225464683726753902092495938633e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i) == 1.570796326794896619231321691639751442099 + 2.871063043235098558826106732041811695767e-309 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i) == 1.570796326794896619231321691639751442099 - 2.871063043235098558826106732041811695767e-309 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i) == 1.570796326794896619231321691639751442097 + 1.516766904286822590927401983512575068153e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i) == 1.570796326794896619231321691639751442097 - 1.516766904286822590927401983512575068153e-39 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-1020 + 1.0 i) == 7.853981633974483096156608458198757210493e-1 + 3.538516356758520804574969980043991380025e2 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-1020 - 1.0 i) == 7.853981633974483096156608458198757210493e-1 - 3.538516356758520804574969980043991380025e2 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-1022 + 0x0.ffffffffffffffffp0 i) == 2.052268400649188124723641491045245971623e-289 + 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i) == 2.052268400649188124723641491045245971623e-289 - 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-16382 + 0x0.ffffffffffffffffp0 i) == 3.100992811520163369065387859792822623745e-4913 + 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i) == 3.100992811520163369065387859792822623745e-4913 - 2.252728336819822255604649142023466965703e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i) == 7.853981631937214964185249205444919953948e-1 + 1.178350206951907026002603046195591193050e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i) == 7.853981631937214964185249205444919953948e-1 - 1.178350206951907026002603046195591193050e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-64 + 1.0 i) == 7.853981633974483096292133729759445264744e-1 + 2.252728336819822255606004394739073846245e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (0x1p-64 - 1.0 i) == 7.853981633974483096292133729759445264744e-1 - 2.252728336819822255606004394739073846245e1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (1.0 + 0x1p-64 i) == 7.853981633974483096156608458198757210500e-1 + 2.710505431213761085018632002174854278563e-20 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (1.0 - 0x1p-13 i) == 7.853981671227386080775748393881580082970e-1 - 6.103515609841754902688560615027452023669e-5 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Imaginary part of: catan (1.0 - 0x1p-64 i) == 7.853981633974483096156608458198757210500e-1 - 2.710505431213761085018632002174854278563e-20 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
|
||||
# catanh
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i) == -2.252728336819822255604649142023466965703e1 + 2.052268400649188124723641491045245971623e-289 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-16382 i) == -2.252728336819822255604649142023466965703e1 + 3.100992811520163369065387859792822623745e-4913 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i) == -1.178350206951907026002603046195591193050e1 + 7.853981631937214964185249205444919953948e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-1022 i) == -2.252728336819822255604649142023466965703e1 - 2.052268400649188124723641491045245971623e-289 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-16382 i) == -2.252728336819822255604649142023466965703e1 - 3.100992811520163369065387859792822623745e-4913 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i) == -1.178350206951907026002603046195591193050e1 - 7.853981631937214964185249205444919953948e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i) == -2.871063043235098558826106732041811695767e-309 + 1.570796326794896619231321691639751442099 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i) == -2.871063043235098558826106732041811695767e-309 - 1.570796326794896619231321691639751442099 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i) == -1.516766904286822590927401983512575068153e-39 + 1.570796326794896619231321691639751442097 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i) == -1.516766904286822590927401983512575068153e-39 - 1.570796326794896619231321691639751442097 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i) == -6.103514882246036852433556327261700380577e-5 + 7.853982267273793866654490522673596014524e-1 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: catanh (-0x1p-13 + 1.0 i) == -6.103515609841754902688560615027452023669e-5 + 7.853981671227386080775748393881580082970e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i) == -6.103514882246036852433556327261700380577e-5 - 7.853982267273793866654490522673596014524e-1 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: catanh (-0x1p-13 - 1.0 i) == -6.103515609841754902688560615027452023669e-5 - 7.853981671227386080775748393881580082970e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1p-64 + 1.0 i) == -2.710505431213761085018632002174854278563e-20 + 7.853981633974483096156608458198757210500e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-0x1p-64 - 1.0 i) == -2.710505431213761085018632002174854278563e-20 - 7.853981633974483096156608458198757210500e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 + 0x1.3p-73 i) == -2.556052055225464683726753902092495938633e1 + 7.853981633974483096156922786831527361009e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 + 0x1p-1020 i) == -3.538516356758520804574969980043991380025e2 + 7.853981633974483096156608458198757210493e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 + 0x1p-64 i) == -2.252728336819822255606004394739073846245e1 + 7.853981633974483096292133729759445264744e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 - 0x1.3p-73 i) == -2.556052055225464683726753902092495938633e1 - 7.853981633974483096156922786831527361009e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 - 0x1p-1020 i) == -3.538516356758520804574969980043991380025e2 - 7.853981633974483096156608458198757210493e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-1.0 - 0x1p-64 i) == -2.252728336819822255606004394739073846245e1 - 7.853981633974483096292133729759445264744e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
|
||||
double: 2
|
||||
float: 1
|
||||
@@ -3417,6 +3711,90 @@ ldouble: 1
|
||||
Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-1022 i) == 2.252728336819822255604649142023466965703e1 + 2.052268400649188124723641491045245971623e-289 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-16382 i) == 2.252728336819822255604649142023466965703e1 + 3.100992811520163369065387859792822623745e-4913 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i) == 1.178350206951907026002603046195591193050e1 + 7.853981631937214964185249205444919953948e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-1022 i) == 2.252728336819822255604649142023466965703e1 - 2.052268400649188124723641491045245971623e-289 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-16382 i) == 2.252728336819822255604649142023466965703e1 - 3.100992811520163369065387859792822623745e-4913 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i) == 1.178350206951907026002603046195591193050e1 - 7.853981631937214964185249205444919953948e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i) == 2.871063043235098558826106732041811695767e-309 + 1.570796326794896619231321691639751442099 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i) == 2.871063043235098558826106732041811695767e-309 - 1.570796326794896619231321691639751442099 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i) == 1.516766904286822590927401983512575068153e-39 + 1.570796326794896619231321691639751442097 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i) == 1.516766904286822590927401983512575068153e-39 - 1.570796326794896619231321691639751442097 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i) == 6.103515973639646453881721999956617260502e-5 + 7.853981373204155542484315721351697277336e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i) == 6.103515973639646453881721999956617260502e-5 - 7.853981373204155542484315721351697277336e-1 i":
|
||||
double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i) == 3.725290298461914441624447420137706700965e-9 + 7.853981633974482679822974223765039144191e-1 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: catanh (0x1p-27 + 0x1.0000000000001p0 i) == 3.725290298461913200853528590596263270474e-9 + 7.853981633974484345157511161499711112683e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i) == 3.725290298461914441624447420137706700965e-9 - 7.853981633974482679822974223765039144191e-1 i":
|
||||
double: 1
|
||||
idouble: 1
|
||||
Test "Real part of: catanh (0x1p-27 - 0x1.0000000000001p0 i) == 3.725290298461913200853528590596263270474e-9 - 7.853981633974484345157511161499711112683e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i) == 5.820766091346740722958646680334721192083e-11 + 7.853981633974483095919439232967553115548e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-33 - 0x0.ffffffffffffffffp0 i) == 5.820766091346740722958646680334721192083e-11 - 7.853981633974483095919439232967553115548e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-64 + 1.0 i) == 2.710505431213761085018632002174854278563e-20 + 7.853981633974483096156608458198757210500e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (0x1p-64 - 1.0 i) == 2.710505431213761085018632002174854278563e-20 - 7.853981633974483096156608458198757210500e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 + 0x1.3p-73 i) == 2.556052055225464683726753902092495938633e1 + 7.853981633974483096156922786831527361009e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 + 0x1p-1020 i) == 3.538516356758520804574969980043991380025e2 + 7.853981633974483096156608458198757210493e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 + 0x1p-64 i) == 2.252728336819822255606004394739073846245e1 + 7.853981633974483096292133729759445264744e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 - 0x1.3p-73 i) == 2.556052055225464683726753902092495938633e1 - 7.853981633974483096156922786831527361009e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 - 0x1p-1020 i) == 3.538516356758520804574969980043991380025e2 - 7.853981633974483096156608458198757210493e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
Test "Real part of: catanh (1.0 - 0x1p-64 i) == 2.252728336819822255606004394739073846245e1 - 7.853981633974483096292133729759445264744e-1 i":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
|
||||
# cbrt
|
||||
Test "cbrt (-27.0) == -3.0":
|
||||
@@ -6154,6 +6532,8 @@ double: 1
|
||||
float: 1
|
||||
idouble: 1
|
||||
ifloat: 1
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
|
||||
Function: Real part of "catanh":
|
||||
double: 2
|
||||
|
||||
+1216
-908
File diff suppressed because it is too large
Load Diff
@@ -2495,12 +2495,13 @@ getaddrinfo (const char *name, const char *service,
|
||||
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 (nresults * (sizeof (*results) + sizeof (size_t)));
|
||||
= !__libc_use_alloca (alloc_size);
|
||||
if (malloc_results)
|
||||
{
|
||||
results = malloc (nresults * (sizeof (*results) + sizeof (size_t)));
|
||||
results = malloc (alloc_size);
|
||||
if (results == NULL)
|
||||
{
|
||||
__free_in6ai (in6ai);
|
||||
@@ -2508,7 +2509,7 @@ getaddrinfo (const char *name, const char *service,
|
||||
}
|
||||
}
|
||||
else
|
||||
results = alloca (nresults * (sizeof (*results) + sizeof (size_t)));
|
||||
results = alloca (alloc_size);
|
||||
order = (size_t *) (results + nresults);
|
||||
|
||||
/* Now we definitely need the interface information. */
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/* Define slowexp.
|
||||
/* 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, or (at your option) any later version.
|
||||
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
|
||||
@@ -16,4 +16,23 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define slowexp exp
|
||||
#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;
|
||||
}
|
||||
@@ -20,6 +20,7 @@
|
||||
# error "Never include <bits/link.h> directly; use <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if __ELF_NATIVE_CLASS == 32
|
||||
|
||||
|
||||
+3732
-29
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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)
|
||||
@@ -1,2 +1,4 @@
|
||||
powerpc/power5+/fpu
|
||||
powerpc/power5+
|
||||
powerpc/powerpc32/power5/fpu
|
||||
powerpc/powerpc32/power5
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
powerpc/power5/fpu
|
||||
powerpc/power5
|
||||
powerpc/powerpc32/power4/fpu
|
||||
powerpc/powerpc32/power4
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
powerpc/power5+/fpu
|
||||
powerpc/power5+
|
||||
powerpc/powerpc64/power5/fpu
|
||||
powerpc/powerpc64/power5
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user