about summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-01-21 17:04:36 +0000
committerUlrich Drepper <drepper@redhat.com>1998-01-21 17:04:36 +0000
commit740152054ecbda66dae0e0f66193d8e244cc2376 (patch)
treeaa093561b97c930db58cecd18ac45401476d3a26 /math
parentb9b49b44fdc1c74ad85076bca9ff7ea0200e2214 (diff)
downloadglibc-740152054ecbda66dae0e0f66193d8e244cc2376.tar.gz
glibc-740152054ecbda66dae0e0f66193d8e244cc2376.tar.xz
glibc-740152054ecbda66dae0e0f66193d8e244cc2376.zip
1998-01-22 00:55  Ulrich Drepper  <drepper@happy.cygnus.com>

	* 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  <schwab@issan.informatik.uni-dortmund.de>

	* 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  <aj@arthur.rhein-neckar.de>

	* 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  <aj@arthur.rhein-neckar.de>

	* 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 <voss@mathematik.uni-kl.de>.
	[PR libc/417].

	* manual/time.texi (Priority): Correct description of
	PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
	[PR libc/416].

11998-01-21 21:34  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and
	FP_ILOGNAN.   Patch by a sun <asun@zoology.washington.edu>.

1998-01-21 17:53  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/_strerror.c: Handle BUFLEN == 0.  Reported by
	Andreas Jaeger.

1998-01-20 18:13  Ulrich Drepper  <drepper@cygnus.com>

	* 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   <urlichs@noris.de>

	* 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  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c: Tweak epsilons.

1997-12-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the
	child.
	(feenv_mask_test): Likewise.

1998-01-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig: Don't export CPPFLAGS.

1998-01-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/rpc_main.c (parseargs): Use perror to print error
	message.

1998-01-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
	* nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include
	terminating null in key size.

1998-01-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* 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  <drepper@cygnus.com>

	* 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  <aj@arthur.rhein-neckar.de>

	* 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 <gafton@redhat.com>.

1998-01-09  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines.  Suggested
	by Roland McGrath. [PR libc/395]

1998-01-08  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

 	* manual/arith.texi (Parsing of Integers): Correct description of
 	strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
 	[PR libc/396]

1997-12-30 14:14  Matthias Urlichs  <urlichs@noris.de>

        * misc/lsearch.c (lsearch): Return a pointer to the new element
        if one was "allocated".

1997-12-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

        * 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  <drepper@cygnus.com>
	
	* locale/programs/charmap.c (parse_charmap): Correct parsing of
	ellipsis expressions.

	* locale/programs/charset.c (insert_char): Correctly insert value
	of eliipsis expression.
	
Diffstat (limited to 'math')
-rw-r--r--math/libm-test.c100
-rw-r--r--math/test-fenv.c17
2 files changed, 67 insertions, 50 deletions
diff --git a/math/libm-test.c b/math/libm-test.c
index 1b0b163e99..efb89f7033 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 4da2e37dae..ab09410690 100644
--- a/math/test-fenv.c
+++ b/math/test-fenv.c
@@ -36,6 +36,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/wait.h>
+#include <sys/resource.h>
 
 /*
   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);