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). |
|||
« Next Oldest | Next Newest »
|
Messages In This Thread |
Toward an API for the real numbers - Bill Duncan - 10-05-2020, 01:19 AM
RE: Toward an API for the real numbers - robve - 10-05-2020, 03:13 AM
RE: Toward an API for the real numbers - Wes Loewer - 10-05-2020, 07:24 PM
RE: Toward an API for the real numbers - robve - 10-06-2020, 01:16 AM
RE: Toward an API for the real numbers - KeithB - 10-05-2020 04:36 PM
RE: Toward an API for the real numbers - KeithB - 10-07-2020, 01:35 PM
RE: Toward an API for the real numbers - robve - 10-07-2020, 05:40 PM
RE: Toward an API for the real numbers - Wes Loewer - 10-07-2020, 08:58 PM
RE: Toward an API for the real numbers - Paul Dale - 10-08-2020, 03:26 AM
RE: Toward an API for the real numbers - Albert Chan - 10-08-2020, 01:07 PM
|
User(s) browsing this thread: 1 Guest(s)