comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Fun with Unbounded Rational Numbers
Date: Sat, 8 Apr 2017 13:19:19 +0200
Date: 2017-04-08T13:19:19+02:00	[thread overview]
Message-ID: <ocagvo$1b2p$1@gioia.aioe.org> (raw)
In-Reply-To: ocaec1$a0p$1@dont-email.me

On 2017-04-08 12:37, Jeffrey R. Carter wrote:
> I decided to see what happens when you calculate square roots using
> Newton's method and the unbounded rational numbers in
> PragmARC.Rational_Numbers. Some interesting things happen.
>
> For example, trying to calculate sqrt(2) to a small enough accuracy
> (0.000001 will do it) results in the calculation of the next estimate
>
>          M := Two * X;
>          X := X - Y / M;
>
> taking a Long Time (it does conclude eventually).
>
> More alarming, though, is that for some values, even a fairly large
> accuracy will quickly result in Storage_Error. For example, sqrt(1.28)
> to an accuracy of 0.01 will do it.
>
> I realize that square roots are often irrational, but the accuracies
> seem so large that I didn't anticipate consuming GB of memory. Just
> naive, I guess.

To use unbounded rational numbers should have the purpose of having 
exact computations <=> both absolutely accurate and absolutely precise. 
Otherwise, if accuracy is not absolute, you are allowed to choose from a 
set of rational numbers within the accuracy interval. Doing so you can 
take one with a less demanding representation, i.e. you are fiddling 
with the precision. And conversely for any algorithm involving 
irrational numbers you can always find an approximation requiring 
however much memory to waste.

In short unbounded rational numbers is *always* bad idea unless proven 
otherwise.

For transferring algorithms from real to unbounded rational numbers one 
could consider rounding the results within the accuracy constraint to 
some simpler (shorter) number. OK, this is what the floating-point 
arithmetic does already, right? (:-))

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2017-04-08 11:19 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-08 10:37 Fun with Unbounded Rational Numbers Jeffrey R. Carter
2017-04-08 11:19 ` Dmitry A. Kazakov [this message]
2017-04-08 14:14 ` Robert Eachus
2017-04-09  0:30 ` antispam
2017-04-09  8:47   ` Jeffrey R. Carter
2017-04-09 19:25     ` antispam
2017-04-10 17:18       ` Jeffrey R. Carter
2017-04-11 21:39         ` antispam
2017-04-09  7:15 ` Paul Rubin
2017-04-09  8:56   ` Jeffrey R. Carter
2017-04-09 21:18     ` Paul Rubin
2017-04-10 17:08       ` Jeffrey R. Carter
2017-04-10 19:39         ` Paul Rubin
2017-04-09 10:05   ` Jeffrey R. Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox