From 740152054ecbda66dae0e0f66193d8e244cc2376 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 21 Jan 1998 17:04:36 +0000 Subject: Update. 1998-01-22 00:55 Ulrich Drepper * libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo, __pread64, __pwrite64, and __getpid. * libc/rt/aio_misc.c: Use pread and pwrite instead of __ protected versions. 1998-01-06 Andreas Schwab * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the cancelable socket functions as __libc_xxx with __xxx as weak alias. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be redefined. * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. * sysdeps/unix/sysv/linux/arm/socket.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise. * sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name and __xxx a weak alias. * sysdeps/unix/sysv/linux/connect.S: Likewise. * sysdeps/unix/sysv/linux/recv.S: Likewise. * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. * sysdeps/unix/sysv/linux/send.S: Likewise. * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. * sysdeps/unix/sysv/linux/sendto.S: Likewise. 1998-01-21 Andreas Jaeger * locale/langinfo.h: Add defines. * dirent/dirent.h: Add defines for DT_*, check also for _DIRENT_HAVE_D_TYPE. Suggested by Roland McGrath. 1998-01-16 Andreas Jaeger * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Update from Linux 2.1.73+79. * README.template: Update information about possible configurations. * manual/mbyte.texi (Wide String Conversion): Fix declaration of wcstombs. Pointed out by Jochen Voss . [PR libc/417]. * manual/time.texi (Priority): Correct description of PRIO_MAX. Pointed out by Jochen Voss . [PR libc/416]. 11998-01-21 21:34 Ulrich Drepper * sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and FP_ILOGNAN. Patch by a sun . 1998-01-21 17:53 Ulrich Drepper * sysdeps/generic/_strerror.c: Handle BUFLEN == 0. Reported by Andreas Jaeger. 1998-01-20 18:13 Ulrich Drepper * locale/programs/ld-collate.c: Little optimizations. * stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable. * string/Makefile (tests): Add tst-inlcall. * string/tst-inlcall.c: New file. * string/strsignal.c: Add support for real-time signals. * sysdeps/generic/_strerror.c: Fix Handling of unknown error in presense of small buffer. * sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros. * sysdeps/i386/i486/bits/string.h: Correct strrchr implementation for i686. * sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to _NSIG + 1. 1998-01-02 15:10 Matthias Urlichs * Rules: Add explicit rule for dummy.o; at least one library needs it and it isn't autogenerated by the default rules. 1997-12-31 Andreas Schwab * math/libm-test.c: Tweak epsilons. 1997-12-31 Andreas Schwab * math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the child. (feenv_mask_test): Likewise. 1998-01-01 Andreas Schwab * Makeconfig: Don't export CPPFLAGS. 1998-01-01 Andreas Schwab * sunrpc/rpc_main.c (parseargs): Use perror to print error message. 1998-01-15 Andreas Schwab * nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include terminating null in key size. 1998-01-13 Andreas Schwab * nss/nss_files/files-service.c: Fix allocation size to include length of PROTO. * nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if applicable. Fix return value and error checking. (CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over unparsable lines. (DB_LOOKUP): Allocate space for terminating null byte. * nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate uids specially. * db2/makedb.c (process_input): Continue processing if a duplicate key is encountered. 1998-01-19 15:20 Ulrich Drepper * time/tzfile.h: Updated from tzcode1998b. * time/zdump.c: Likewise. * time/zic.c: Likewise. * time/africa: Update from tzdata1998b. * time/antarctica: Likewise. * time/asia: Likewise. * time/australasia: Likewise. * time/etcetera: Likewise. * time/europe: Likewise. * time/leapseconds: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise. 1998-01-12 Andreas Jaeger * nss/nss_files/files-alias.c (get_next_alias): Do mail alias lookups ignoring case. * nss/nss_files/files-network.c: Do network lookups ignoring case. * nss/nss_files/files-hosts.c: Do hostname lookups ignoring case. * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for case insensitive comparing. Patches by Cristian Gafton . 1998-01-09 Andreas Jaeger * sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines. Suggested by Roland McGrath. [PR libc/395] 1998-01-08 Andreas Jaeger * manual/arith.texi (Parsing of Integers): Correct description of strtoul. Pointed out by Scott Snyder . [PR libc/396] 1997-12-30 14:14 Matthias Urlichs * misc/lsearch.c (lsearch): Return a pointer to the new element if one was "allocated". 1997-12-26 Andreas Schwab * string/strsignal.c: NSIG is not a valid index into _sys_siglist. Don't zap the last character of the "Unknown signal" message. 1998-01-19 15:08 Ulrich Drepper * locale/programs/charmap.c (parse_charmap): Correct parsing of ellipsis expressions. * locale/programs/charset.c (insert_char): Correctly insert value of eliipsis expression. --- math/libm-test.c | 100 +++++++++++++++++++++++++++---------------------------- math/test-fenv.c | 17 ++++++++++ 2 files changed, 67 insertions(+), 50 deletions(-) (limited to 'math') diff --git a/math/libm-test.c b/math/libm-test.c index 1b0b163..efb89f7 100644 --- a/math/libm-test.c +++ b/math/libm-test.c @@ -869,8 +869,8 @@ acosh_test (void) #endif check ("acosh(1) == 0", FUNC(acosh) (1), 0); - check ("acosh(7) == 2.633915793...", FUNC(acosh) (7), - 2.6339157938496334172L); + check_eps ("acosh(7) == 2.633915793...", FUNC(acosh) (7), + 2.6339157938496334172L, CHOOSE (3e-19, 0, 0)); } @@ -1069,7 +1069,7 @@ cbrt_test (void) check_eps ("cbrt (0.970299) == 0.99", FUNC(cbrt) (0.970299), 0.99, CHOOSE (2e-17L, 0, 0)); check_eps ("cbrt (0.7) == .8879040017...", FUNC(cbrt) (0.7), - 0.8879040017426007084L, CHOOSE(2e-17L, 2e-16, 0)); + 0.8879040017426007084L, CHOOSE(2e-17L, 6e-16, 0)); } @@ -2688,15 +2688,15 @@ cexp_test (void) result = FUNC(cexp) (BUILD_COMPLEX (0.7, 1.2)); check_eps ("real(cexp(0.7 + i 1.2)) == 0.72969...", __real__ result, - 0.7296989091503236012L, CHOOSE(6e-17L, 0, 6e-8)); + 0.7296989091503236012L, CHOOSE(6e-17L, 0, 2e-7)); check_eps ("imag(cexp(0.7 + i 1.2)) == 1.87689...", __imag__ result, - 1.8768962328348102821L, CHOOSE(2e-16L, 0, 0)); + 1.8768962328348102821L, CHOOSE(2e-16L, 0, 3e-7)); result = FUNC(cexp) (BUILD_COMPLEX (-2, -3)); - check_eps ("real(cexp(-2 - i 3)) == --0.13398...", __real__ result, - -0.1339809149295426134L, CHOOSE(6e-20L, 0, 0)); + check_eps ("real(cexp(-2 - i 3)) == -0.13398...", __real__ result, + -0.1339809149295426134L, CHOOSE(6e-20L, 0, 2e-8)); check_eps ("imag(cexp(-2 - i 3)) == -0.01909...", __imag__ result, - -0.0190985162611351964L, CHOOSE(4e-20L, 0, 0)); + -0.0190985162611351964L, CHOOSE(4e-20L, 0, 2e-9)); } @@ -2871,13 +2871,13 @@ csin_test (void) check_eps ("real(csin(0.7 + i 1.2)) = 1.166456341...", __real__ result, 1.1664563419657581376L, CHOOSE(2e-16L, 0, 0)); check_eps ("imag(csin(0.7 + i 1.2)) = 1.154499724...", __imag__ result, - 1.1544997246948547371L, CHOOSE(2e-17L, 0, 0)); + 1.1544997246948547371L, CHOOSE(2e-17L, 0, 2e-7)); result = FUNC(csin) (BUILD_COMPLEX (-2, -3)); - check ("real(csin(-2 - i 3)) == --9.15449...", __real__ result, - -9.1544991469114295734L); - check ("imag(csin(-2 - i 3)) == -4.16890...", __imag__ result, - 4.1689069599665643507L); + check_eps ("real(csin(-2 - i 3)) == -9.15449...", __real__ result, + -9.1544991469114295734L, CHOOSE(4e-18L, 0, 1e-6)); + check_eps ("imag(csin(-2 - i 3)) == -4.16890...", __imag__ result, + 4.1689069599665643507L, CHOOSE(2e-17L, 0, 5e-7)); } @@ -3052,13 +3052,13 @@ csinh_test (void) check_eps ("real(csinh(0.7 + i 1.2)) = 0.274878686...", __real__ result, 0.27487868678117583582L, CHOOSE(2e-17L, 6e-17, 3e-8)); check_eps ("imag(csinh(0.7 + i 1.2)) = 1.169866572...", __imag__ result, - 1.1698665727426565139L, CHOOSE(6e-17L, 0, 3e-8)); + 1.1698665727426565139L, CHOOSE(6e-17L, 0, 2e-7)); result = FUNC(csinh) (BUILD_COMPLEX (-2, -3)); check_eps ("real(csinh(-2 - i 3)) == -3.59056...", __real__ result, - 3.5905645899857799520L, CHOOSE(0, 5e-16, 0)); + 3.5905645899857799520L, CHOOSE(7e-19L, 5e-16, 3e-7)); check_eps ("imag(csinh(-2 - i 3)) == -0.53092...", __imag__ result, - -0.5309210862485198052L, CHOOSE(2e-19L, 2e-16, 6e-8)); + -0.5309210862485198052L, CHOOSE(3e-19L, 2e-16, 6e-8)); } @@ -3229,15 +3229,15 @@ ccos_test (void) result = FUNC(ccos) (BUILD_COMPLEX (0.7, 1.2)); check_eps ("real(ccos(0.7 + i 1.2)) = 1.384865764...", __real__ result, - 1.3848657645312111080L, CHOOSE(6e-19L, 3e-16, 2e-7)); + 1.3848657645312111080L, CHOOSE(4e-18L, 3e-16, 2e-7)); check_eps ("imag(ccos(0.7 + i 1.2)) = -0.972421703...", __imag__ result, -0.97242170335830028619L, CHOOSE(2e-16L, 2e-16, 0)); result = FUNC(ccos) (BUILD_COMPLEX (-2, -3)); - check ("real(ccos(-2 - i 3)) == --4.18962...", __real__ result, - -4.1896256909688072301L); + check_eps ("real(ccos(-2 - i 3)) == -4.18962...", __real__ result, + -4.1896256909688072301L, CHOOSE(2e-17L, 0, 5e-7)); check_eps ("imag(ccos(-2 - i 3)) == -9.10922...", __imag__ result, - -9.1092278937553365979L, CHOOSE(9e-19L, 0, 1e-6)); + -9.1092278937553365979L, CHOOSE(3e-18L, 0, 1e-6)); } @@ -3408,15 +3408,15 @@ ccosh_test (void) result = FUNC(ccosh) (BUILD_COMPLEX (0.7, 1.2)); check_eps ("real(ccosh(0.7 + i 1.2)) == 0.45482...", __real__ result, - 0.4548202223691477654L, CHOOSE(4e-17L, 6e-17, 3e-8)); + 0.4548202223691477654L, CHOOSE(5e-17L, 6e-17, 9e-8)); check_eps ("imag(ccosh(0.7 + i 1.2)) == 0.70702...", __imag__ result, 0.7070296600921537682L, CHOOSE(7e-17L, 0, 0)); result = FUNC(ccosh) (BUILD_COMPLEX (-2, -3)); - check ("real(ccosh(-2 - i 3)) == --3.72454...", __real__ result, - -3.7245455049153225654L); + check_eps ("real(ccosh(-2 - i 3)) == -3.72454...", __real__ result, + -3.7245455049153225654L, CHOOSE(7e-19L, 0, 3e-7)); check_eps ("imag(ccosh(-2 - i 3)) == -0.51182...", __imag__ result, - 0.5118225699873846088L, CHOOSE(6e-20, 2e-16, 6e-8)); + 0.5118225699873846088L, CHOOSE(3e-19L, 2e-16, 6e-8)); } @@ -3553,10 +3553,10 @@ cacos_test (void) -1.0927647857577371459L, CHOOSE(4e-17L, 0, 3e-7)); result = FUNC(cacos) (BUILD_COMPLEX (-2, -3)); - check ("real(cacos(-2 - i 3)) == -2.14144...", __real__ result, - 2.1414491111159960199L); + check_eps ("real(cacos(-2 - i 3)) == 2.14144...", __real__ result, + 2.1414491111159960199L, CHOOSE(3e-19L, 0, 0)); check_eps ("imag(cacos(-2 - i 3)) == -1.98338...", __imag__ result, - 1.9833870299165354323L, CHOOSE(2e-19L, 0, 0)); + 1.9833870299165354323L, CHOOSE(3e-19L, 0, 0)); } @@ -3694,9 +3694,9 @@ cacosh_test (void) result = FUNC(cacosh) (BUILD_COMPLEX (-2, -3)); check_eps ("real(cacosh(-2 - i 3)) == -1.98338...", __real__ result, - -1.9833870299165354323L, CHOOSE (6e-19, 3e-16, 9e-7)); + -1.9833870299165354323L, CHOOSE (2e-18L, 3e-16, 9e-7)); check_eps ("imag(cacosh(-2 - i 3)) == 2.14144...", __imag__ result, - 2.1414491111159960199L, CHOOSE (3e-19, 5e-16, 0)); + 2.1414491111159960199L, CHOOSE (3e-19, 5e-16, 1e-6)); } @@ -3838,10 +3838,10 @@ casin_test (void) 1.0927647857577371459L, CHOOSE(4e-17L, 0, 3e-7)); result = FUNC(casin) (BUILD_COMPLEX (-2, -3)); - check ("real(casin(-2 - i 3)) == --0.57065...", __real__ result, - -0.5706527843210994007L); + check_eps ("real(casin(-2 - i 3)) == -0.57065...", __real__ result, + -0.5706527843210994007L, CHOOSE(4e-19L, 0, 0)); check_eps ("imag(casin(-2 - i 3)) == -1.98338...", __imag__ result, - -1.9833870299165354323L, CHOOSE(2e-19L, 0, 0)); + -1.9833870299165354323L, CHOOSE(3e-19L, 0, 0)); } @@ -3980,10 +3980,10 @@ casinh_test (void) check_eps ("real(casinh(0.7 + i 1.2)) == 0.97865...", __real__ result, 0.9786545955936738768L, CHOOSE(5e-17L, 2e-16, 0)); check_eps ("imag(casinh(0.7 + i 1.2)) == 0.91135...", __imag__ result, - 0.9113541895315601156L, CHOOSE(7e-19L, 0, 6e-8)); + 0.9113541895315601156L, CHOOSE(7e-19L, 2e-16, 6e-8)); result = FUNC(casinh) (BUILD_COMPLEX (-2, -3)); - check_eps ("real(casinh(-2 - i 3)) == --1.96863...", __real__ result, + check_eps ("real(casinh(-2 - i 3)) == -1.96863...", __real__ result, -1.9686379257930962917L, CHOOSE(7e-19L, 2e-15, 2e-7)); check_eps ("imag(casinh(-2 - i 3)) == -0.96465...", __imag__ result, -0.9646585044076027920L, CHOOSE(4e-19L, 2e-15, 4e-7)); @@ -4136,7 +4136,7 @@ catan_test (void) check ("real(catan(-2 - i 3)) == -1.40992...", __real__ result, -1.4099210495965755225L); check_eps ("imag(catan(-2 - i 3)) == -0.22907...", __imag__ result, - -0.2290726829685387662L, CHOOSE(1e-19L, 3e-17, 2e-8)); + -0.2290726829685387662L, CHOOSE(1.1e-19L, 3e-17, 2e-8)); } @@ -4284,9 +4284,9 @@ catanh_test (void) result = FUNC(catanh) (BUILD_COMPLEX (-2, -3)); check_eps ("real(catanh(-2 - i 3)) == -0.14694...", __real__ result, - -0.1469466662255297520L, CHOOSE (3e-20, 6e-17, 2e-8)); - check ("imag(catanh(-2 - i 3)) == -1.33897...", __imag__ result, - -1.3389725222944935611L); + -0.1469466662255297520L, CHOOSE (9e-20L, 6e-17, 2e-8)); + check_eps ("imag(catanh(-2 - i 3)) == -1.33897...", __imag__ result, + -1.3389725222944935611L, CHOOSE (7e-19L, 0, 0)); } @@ -4586,10 +4586,10 @@ ctanh_test (void) 0.4778641038326365540L, CHOOSE(9e-17L, 6e-17, 0)); result = FUNC(ctanh) (BUILD_COMPLEX (-2, -3)); - check_eps ("real(ctanh(-2 - i 3)) == --0.96538...", __real__ result, + check_eps ("real(ctanh(-2 - i 3)) == -0.96538...", __real__ result, -0.9653858790221331242L, CHOOSE(2e-19L, 0, 0)); - check_eps ("imag(ctanh(-2 - i 3)) == -0.00988...", __imag__ result, - 0.0098843750383224937L, CHOOSE(2e-20L, 0, 1e-9)); + check_eps ("imag(ctanh(-2 - i 3)) == 0.00988...", __imag__ result, + 0.0098843750383224937L, CHOOSE(7e-20L, 0, 1e-9)); } @@ -4752,10 +4752,10 @@ clog_test (void) 1.0427218783685369524L, CHOOSE(2e-17L, 0, 0)); result = FUNC(clog) (BUILD_COMPLEX (-2, -3)); - check ("real(clog(-2 - i 3)) == -1.28247...", __real__ result, - 1.2824746787307683680L); + check_eps ("real(clog(-2 - i 3)) == 1.28247...", __real__ result, + 1.2824746787307683680L, CHOOSE(3e-19L, 0, 0)); check_eps ("imag(clog(-2 - i 3)) == -2.15879...", __imag__ result, - -2.1587989303424641704L, CHOOSE(3e-19L, 0, 0)); + -2.1587989303424641704L, CHOOSE(2e-18L, 0, 0)); } @@ -4934,10 +4934,10 @@ clog10_test (void) 0.4528483579352493248L, CHOOSE(6e-18, 6e-17, 3e-8)); result = FUNC(clog10) (BUILD_COMPLEX (-2, -3)); - check ("real(clog10(-2 - i 3)) == -0.55697...", __real__ result, - 0.5569716761534183846L); + check_eps ("real(clog10(-2 - i 3)) == 0.55697...", __real__ result, + 0.5569716761534183846L, CHOOSE(6e-20L, 0, 0)); check_eps ("imag(clog10(-2 - i 3)) == -0.93755...", __imag__ result, - -0.9375544629863747085L, CHOOSE (6e-20, 2e-16, 0)); + -0.9375544629863747085L, CHOOSE (7e-19L, 2e-16, 0)); } @@ -5102,8 +5102,8 @@ csqrt_test (void) result = FUNC(csqrt) (BUILD_COMPLEX (-2, -3)); check_eps ("real(csqrt(-2 - i 3)) == -0.89597...", __real__ result, 0.8959774761298381247L, CHOOSE(6e-20L, 2e-16, 6e-8)); - check ("imag(csqrt(-2 - i 3)) == -1.67414...", __imag__ result, - -1.6741492280355400404L); + check_eps ("imag(csqrt(-2 - i 3)) == -1.67414...", __imag__ result, + -1.6741492280355400404L, CHOOSE(0, 5e-16, 0)); } @@ -5641,7 +5641,7 @@ identities (void) identities1_test (-1, CHOOSE (1e-18L, 0, 1e-7)); identities2_test (0.2L, CHOOSE (1e-19L, 1e-16, 0)); - identities2_test (0.9L, CHOOSE (0, 1e-15, 2e-7)); + identities2_test (0.9L, CHOOSE (3e-19L, 1e-15, 2e-7)); identities2_test (0, 0); identities2_test (-1, CHOOSE (1e-18L, 1e-15, 2e-7)); diff --git a/math/test-fenv.c b/math/test-fenv.c index 4da2e37..ab09410 100644 --- a/math/test-fenv.c +++ b/math/test-fenv.c @@ -36,6 +36,7 @@ #include #include #include +#include /* Since not all architectures might define all exceptions, we define @@ -249,6 +250,14 @@ feenv_nomask_test (const char *flag_name, int fe_exc) pid = fork (); if (pid == 0) { +#ifdef RLIMIT_CORE + /* Try to avoid dumping core. */ + struct rlimit core_limit; + core_limit.rlim_cur = 0; + core_limit.rlim_max = 0; + setrlimit (RLIMIT_CORE, &core_limit); +#endif + fesetenv (FE_NOMASK_ENV); feraiseexcept (fe_exc); exit (2); @@ -293,6 +302,14 @@ feenv_mask_test (const char *flag_name, int fe_exc) pid = fork (); if (pid == 0) { +#ifdef RLIMIT_CORE + /* Try to avoid dumping core. */ + struct rlimit core_limit; + core_limit.rlim_cur = 0; + core_limit.rlim_max = 0; + setrlimit (RLIMIT_CORE, &core_limit); +#endif + fesetenv (FE_DFL_ENV); feraiseexcept (fe_exc); exit (2); -- cgit v1.1