From owner-freebsd-bugs Sat May 20 9:30:24 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 9689D37B6EC for ; Sat, 20 May 2000 09:30:21 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id JAA53245; Sat, 20 May 2000 09:30:21 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Sat, 20 May 2000 09:30:21 -0700 (PDT) Message-Id: <200005201630.JAA53245@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Stefan Neis Subject: Re: i386/18560: libm's log1p not working as designed on Intel architectures. Reply-To: Stefan Neis Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR i386/18560; it has been noted by GNATS. From: Stefan Neis To: Bruce Evans Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: i386/18560: libm's log1p not working as designed on Intel architectures. Date: Sat, 20 May 2000 18:27:53 +0200 (MET DST) Hi, > This is only an efficient bug under FreeBSD. log1p.S is too broken to > use, so FreeBSD doesn't use it: > > You can find a correct version in glibc (version 2.1.1. at least). I see. > (Inlining acos doesn't help > much because the inlined code is quite large and slow; Interesting. I was under the impression that the inlined code is rather small. :-? double acos_inline(double x) { register double z; asm("fmul": "=t" (z) : "0" (1+x), "u" (1-x) ); asm("fsqrt": "=t" (z) : "0" (z) ); asm("fpatan": "=t" (z) : "0" (1.0), "u" (z) ); if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; if(fabs(x)>1.0) { return __kernel_standard(x,x,1); /* acos(|x|>1) */ } else return z; } Anyway, thanks for taking the time to answer a not strictly BSD related question. Regards, Stefan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message