Re: precision on op:numeric-divide

Per Bothner <[email protected]>
Newsgroups gmane.comp.web.query-languages
Message-ID <[email protected]>
Jim Melton wrote:

> retain the numerator 
> and denominator themselves, thus effectively holding "1/3" exactly.  I 
> know of a couple of (very old, research) languages that do this, but 
> they are rather complicated and cumbersome.

Common Lisp et al does that, though it simplifies fractions:
6/4 -> 3/2.  There is certainly more prior art for this than
for repeating decimals, but I think repeating decimals would
be more usefully integrated into "enterprise" applications.

Common Lisp may be old and unfashionable, but it
is an industrial-strength production language.  And while parts
of it may be complicated, its numerics aren't particularly
complicated.  Many Scheme implementations (including mine)
also support exact rationals, and Scheme is really a small
language.

If your language supports infinite-precision integers then
supporting exact rationals seems a reasonable extension.

[email protected] wrote:

 > My example wasn't the best.  What I am trying to say is that repeatedly
 > performing a division a / b (with b > a) can very quickly lead to
 > unbounded growth in the height of the answer, whereas this is not the
 > case with floating point or integer division.
 >
 > Controlling this can be difficult.  It does not mean exact rationals
 > have no uses, just that they are not as useful as many people expect.

Agreed.  That is why *also* want to support floating point numbers,
as Common Lisp and Scheme do.  (Scheme doesn't specify floating
point numbers, but calls them "inexact real" numbers.)  And as
XQuery/Schema also does.
-- 
	--Per Bothner
[email protected]   http://per.bothner.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.