[Rd] Re: R 1.7.x and inaccurate log1p() on OpenBSD 3.2 and NetBSD 1.6 (PR#3982)

beebe at math.utah.edu beebe at math.utah.edu
Tue Aug 26 00:38:36 MEST 2003


Ray Brownrigg <ray at mcs.vuw.ac.nz> writes today about the inaccurate
log1p() on NetBSD 1.6 and OpenBSD 3.2:

>> Well, the source which I have access to doesn't bear that out.

Interesting.  Our NetBSD installation is pretty recent:

	% uname -a
	NetBSD netbsd.vm.math.utah.edu 1.6 NetBSD 1.6 (GENERIC) #0: Sun Sep  8
	19:43:40 UTC 2002     autobuild at tgm.daemon.org:/autobuild/i386/OBJ/autobuild/src/sys/arch/i386/compile/GENERIC
	i386 i386 Intel Pentium III (Katmai) (686-class) NetBSD

	% ldd a.out
	a.out:
		 -lm.0 => /usr/lib/libm387.so.0
		 -lm.0 => /usr/lib/libm.so.0
		 -lc.12 => /usr/lib/libc.so.12

	% ls -lL /usr/lib/libm387.so.0 /usr/lib/libm.so.0 /usr/lib/libc.so.12
	-r--r--r--    1 root     wheel      700411 Sep  8  2002 /usr/lib/libc.so.12
	-r--r--r--    1 root     wheel      109910 Sep  8  2002 /usr/lib/libm.so.0
	-r--r--r--    1 root     wheel       10091 Sep  8  2002 /usr/lib/libm387.so.0

	% strings -a /usr/lib/libm.so.0 | grep -i log1p
	log1pf
	log1p
	$NetBSD: s_log1pf.c,v 1.7 1999/07/02 15:37:43 simonb Exp $
	$NetBSD: s_log1p.c,v 1.11 1999/07/02 15:37:43 simonb Exp $

On OpenBSD, where the same problem with log1p() exists, I have:

	%  uname -a
	OpenBSD openbsd.vm.math.utah.edu 3.2 GENERIC#25 i386 Intel Pentium III ("GenuineIntel" 686-class, 512KB L2 cache) unknown OpenBSD

	% ldd ./a.out
	./a.out:
		-lm.0 => /usr/lib/libm.so.0.1 (0x4001c000)
		-lc.28 => /usr/lib/libc.so.28.5 (0x40030000)

	% ls -lL /usr/lib/libm.so.0.1 /usr/lib/libc.so.28.5
	-r--r--r--    1 root     bin        602889 Oct  3  2002 /usr/lib/libc.so.28.5
	-r--r--r--    1 root     bin         85720 Oct  3  2002 /usr/lib/libm.so.0.1

	% strings /usr/lib/libm.so.0.1 | grep -i log1p
	$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $
	$NetBSD: s_log1pf.S,v 1.4 1995/05/09 00:13:05 jtc Exp $
	_log1p
	_log1pf

Notice that the NetBSD version of log1p appears to be in C, while the
OpenBSD version is in assembly code.

I then visited http://www.netbsd.org/ and searched for s_log1p.S; this
led to a posting complaining about its inaccuracy for small arguments:

	http://mail-index.netbsd.org/netbsd-bugs/2003/02/17/0017.html

I've not attempted to fetch the NetBSD or OpenBSD source trees to
investigate this further.  The existence of the bug in installed
systems is, in my view, sufficient grounds to provide a workaround in
user code.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- Center for Scientific Computing       FAX: +1 801 581 4148                  -
- University of Utah                    Internet e-mail: beebe at math.utah.edu  -
- Department of Mathematics, 110 LCB        beebe at acm.org  beebe at computer.org -
- 155 S 1400 E RM 233                       beebe at ieee.org                    -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -



More information about the R-devel mailing list