From owner-freebsd-hackers Sat Jul 14 11:23:48 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from femail13.sdc1.sfba.home.com (femail13.sdc1.sfba.home.com [24.0.95.140]) by hub.freebsd.org (Postfix) with ESMTP id D845537B405 for ; Sat, 14 Jul 2001 11:23:44 -0700 (PDT) (envelope-from stephen@math.missouri.edu) Received: from math.missouri.edu ([24.12.197.197]) by femail13.sdc1.sfba.home.com (InterMail vM.4.01.03.20 201-229-121-120-20010223) with ESMTP id <20010714182344.BRQE27910.femail13.sdc1.sfba.home.com@math.missouri.edu>; Sat, 14 Jul 2001 11:23:44 -0700 Message-ID: <3B508E2D.41FAC546@math.missouri.edu> Date: Sat, 14 Jul 2001 13:23:41 -0500 From: Stephen Montgomery-Smith X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.12 i386) X-Accept-Language: en MIME-Version: 1.0 To: Jim.Pirzyk@disney.com Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: math library difference between linux emulation and native freebsd (and native linux) References: <200107141809.f6EI9M809946@snoopy.fan.fa.disney.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG The correct answer to the level of accuracy you quote is: 137581029243568295877658.36934931 Both are correct to about 15 sig figs, which is about what the precision of IEEE double precision arithmetic is supposed to be. Jim.Pirzyk@disney.com wrote: > > So I have stumbled across a linux emulation bug in freebsd. Below > is the program that returns different results based on FreeBSD, > Linux or Linux emulation under FreeBSD. > > Running natively under FreeBSD: > > x = 53.27850000 > exp(x) = 137581029243568449912832.00000000 > > Running natively under Linux: > > x = 53.278500 > exp(x) = 137581029243568449912832.000000 > > Running under FreeBSD in Linux emulation mode: > > x = 53.27850000 > exp(x) = 137581029243567812378624.00000000 > > #include > #include > #include > > int main (int argc, char **argv) { > double x = 53.278500; > > printf ("x = %8lf\n", x); > printf ("exp(x) = %8lf\n", exp(x)); > > exit (0); > } > > There are only two shared libaries in common (libc and libm) and > both are the same on FreeBSD (in /compat/linux) and Linux. > > So any ideas on where the program is going wrong? > > - JimP > -- > --- @(#) $Id: dot.signature,v 1.10 2001/05/17 23:38:49 Jim.Pirzyk Exp $ > __o Jim.Pirzyk@disney.com ------------- pirzyk@freebsd.org > _'\<,_ Senior Systems Engineer, Walt Disney Feature Animation > (*)/ (*) > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message -- Stephen Montgomery-Smith stephen@math.missouri.edu http://www.math.missouri.edu/~stephen To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message