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

Re: infinities reformulated [was Re: My ideas about infinity in Scheme (revised)]

This page is part of the web mail archives of SRFI 70 from before July 7th, 2015. The new archives for SRFI 70 contain all messages, not just those from before July 7th, 2015.



 | Date: Wed, 25 May 2005 09:48:08 +0800
 | From: "Chongkai Zhu" <mathematica@xxxxxxxxx>
 | 
 | ======= At 2005-05-25, 01:19:41 Aubrey Jaffer wrote: =======
 | 
 | >
 | >I have come up with a clearer formulation:
 | >
 | >  6.2.2x Inexactness
 | >
 | >  In an implementation which represents inexact real numbers with
 | >  IEEE-754 64-bit flonums:
 | >
 | >  (= 3.141592653589793
 | >     3.14159265358979323846
 | >     3.1415926535897932384626433
 | >     3.141592653589793238462643383279
 | >     3.14159265358979323846264338327950288)       ==>  #t
 | >
 | >  Thus an inexact real number represents not a single value, but a
 | >  neighborhood of (mathematical) real numbers.  The inaccuracies of
 | >  inexact calculations are due to misalignment of functional
 | >  projection of a given neighborhood onto the real line neighborhoods.
 | 
 | Where does the length of the "neighborhood" come from? How will it
 | be stored and passed?

About inexact computations, R5RS states:

    ... approximate methods such as floating point arithmetic may be
    used, but it is the duty of each implementation to make the result
    as close as practical to the mathematically ideal result.

Thus the intermediate results, which in floating-point processing have
higher resolution than stored results, are rounded to the closest
inexact number, with some policy to decide ties.  The range of real
numbers which round to a given inexact number is the neighborhood of
that inexact number.

 | >
 | >  The interpretation of real infinities is that 1/0 represents real
 | >  numbers greater than can be encoded by finite inexacts in the
 | >  implementation (> 179.76931348623158e306 for IEEE-754 64-bit
 | >  flonums) and that -1/0 represents numbers less than can be encoded
 | >  by finite inexacts in the implementation (< -179.76931348623158e306
 | >  for IEEE-754 64-bit flonums).
 | 
 | What if an implementation supports arbitrary big real numbers?

That is an excellent question which will require some thought.

Transcendental functions can return irrational numbers which cannot be
distinguished from each other when represented by finite length
decimal strings.  Thus the precision of an inexact (or exact) number
representation cannot be unlimited.

But exponent size does not suffer from the same limitation.  An
inexact number representation with big exponents will never overflow
into an infinity.  Infinities will result only from operations on
infinities or limit points.  Thus there would be no continuity between
the rational flonums and infinities; which bodes poorly for LIMIT.

Do any Scheme implementations have inexact big-exponent-flonums?