Post Reply 
Toward an API for the real numbers
10-05-2020, 04:36 PM
Post: #3
RE: Toward an API for the real numbers
Also "How to print floating point numbers accurately" by Steele and White from 1990 ACM SIGPLAN

"Isn’t it a pain when you ask a computer to divide 1.0 by
10.0 and it prints 0.0999999? Most often the arithmetic
is not to blame, but the printing algorithm."

Abstract:

We present algorithms for accurately converting
floating-point numbers to decimal representation. The
key idea is to carry along with the computation an explicit
representation of the required rounding accuracy.
We begin with the simpler problem of converting
fixed-point fractions. A modification of the well-known
algorithm for radix-conversion of fixed-point fractions
by multiplication explicitly determines when to terminate
the conversion process; a variable number of digits
are produced. The algorithm has these properties:

* No information is lost; the original fraction can be
recovered from the output by rounding.
* No “garbage digits” are produced.
* The output is correctly rounded.
* It is never necessary to propagate carries on
rounding.
We then derive two algorithms for free-format output
of floating-point numbers. The first simply scales
the given floating-point number to an appropriate fractional
range and then applies the algorithm for fractions.
This is quite fast and simple to code but has inaccuracies
stemming from round-off errors and oversimplification.
The second algorithm guarantees mathematical
accuracy by using multiple-precision integer arithmetic
and handling special cases. Both algorithms produce no
more digits than necessary (intuitively, the “1.3 prints
as 1.2999999” problem does not occur).
Finally, we modify the free-format conversion algorithm
for use in fixed-format applications. Information
may be lost if the fixed format provides too
few digit positions, but the output is always correctly
rounded. On the other hand, no “garbage digits” are
ever produced, even if the fixed format specifies too
many digit positions (intuitively, the "4/3 prints as
1.333333328366279602” problem does not occur).
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Toward an API for the real numbers - KeithB - 10-05-2020 04:36 PM



User(s) browsing this thread: 1 Guest(s)