bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: numeric tests


From: Dirk Herrmann
Subject: Re: numeric tests
Date: Thu, 19 Apr 2001 18:45:43 +0200 (MEST)

On Wed, 4 Apr 2001, Bill Schottstaedt wrote:

> Out of mild curiousity, I translated some of Clisp's numerical tests
> (released under GPL in Clisp, so presumably this is ok) to Scheme
> using the "pass-if" style of Guile's tests, and noticed some odd
> cases.  I spot-checked some of the worst looking results in
> gmp-3.0.1's pexpr program which agreed with Clisp (i.e. that the test
> should return 0).  For example, test 313, guile=8192.0, 335 got 5+e123
> etc.  In case there's interest (some of the tests are a bit nutty),
> the file is at ccrma-ftp.stanford.edu/pub/Lisp/number-tests.scm.

The problems seem to come from the fact, that the reader, as soon as it
sees an expression like <digits>/<digits>, will use a floating point
variable while parsing the digits.  This can lead to inaccuracies during
parsing, because the construction of the floating point number itself
takes a number of potentially inaccurate floating point operations.  In
contrast, (/ <digits> <digits>) will first read two exact integers, and
after that will perform a division to produce a floating point value.  
Thus, any possible inaccuracy comes from the single final divide
operation.

Best regards,
Dirk Herrmann




reply via email to

[Prev in Thread] Current Thread [Next in Thread]