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

Re: inexactness vs. exactness

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: Thu, 21 Jul 2005 17:22:12 -0700 (PDT)
 | From: bear <bear@xxxxxxxxx>
 | 
 | On Thu, 21 Jul 2005, Aubrey Jaffer wrote:
 | 
 | >You are suggesting that an implementation in which inexact numbers are
 | >not neighborhoods can conform to R5RS.  I will show that this is
 | >impossible.
 | >
 | >If real inexacts are not neighborhoods, then they correspond to single
 | >mathematical numbers (points).
 | >
 | >The number of inexact numbers possible in this hypothetical system is
 | >either finite or not.
 | >
 | >Finite number of inexacts:
 | >
 | >  There are an infinite number of possible continuous formulas (Scheme
 | >  procedures) yielding distinct values when applied to inexact
 | >  arguments.  If the number of possible inexact numbers is finite,
 | >  then an infinite number of the formula results must map to the
 | >  finite inexacts; and (because of continuity) they must be
 | >  neighborhoods.
 | 
 | You are confusing the limitations of real hardware with the
 | specification in order to arrive at a false dilemma.

What?  The proof handles cases of both finite and infinite number of
inexacts.  Hardware has nothing to do with it.

 | The standard allows implementations to regard every inexact number
 | as (say) negative nineteen and still be compliant; inexactness
 | means simply that there is a chance (in such a boneheaded
 | implementation a near certainty) that the inexact number is wrong.
 | 
 | Now, you can regard this single-valued inexact number system as the
 | ultimate "neighborhood", or you can regard it as being potentially
 | wrong; IMO, the standard does the latter.

The "single-valued inexact number system" satisfies the proof
trivially.  All mathematical formula values map to -19.0.  Thus -19.0
corresponds to the real mathematical neighborhood covering the whole
real line.

Satisfying the proof means only that its "inexact real numbers
correspond to real neighborhoods", which is true.  You seem to be
attaching some other significance.

 | >Infinite number of inexacts:
 | >
 | >  There are an infinite number of possible formulas (Scheme
 | >  procedures) involving transcendental functions yielding distinct
 | >  values when applied to inexact arguments.
 | >
 | >    R5RS 6.2.2 Exactness states:
 | >
 | >    If two implementations produce exact results for a computation
 | >    that did not involve inexact intermediate results, the two
 | >    ultimate results will be mathematically equivalent.  This is
 | >    generally not true of computations involving inexact numbers since
 | >    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.
 | >
 | >  By R5RS 6.2.2, if a transcendental function returns an approximate
 | >  result, then it must map to the nearest inexact number.  Thus
 | >  inexacts designate their closest neighborhoods.
 | 
 | No, this just says that you acknowledge the answer is wrong,
 | but exhorts you you try to make the system something other than
 | totally useless.

No.  "Close" means that the metric of the difference between the
mathematically ideal result and Scheme result is small.

 | This doesn't make the inexact numbers into
 | "neighborhoods," it just means that the exact answer is not
 | representable so we're giving a wrong answer and we're going
 | to get as close to the correct answer as we can.

If it is as close as possible to the mathematically correct answer,
then there will be no other inexact number between it and the
mathematically correct answer; which means that the neighborhood is
simply connected.

 | If your only representable inexact number is minus nineteen, then
 | that's what you return; but you don't make it exact, because that
 | would be claiming that it were the correct answer.

Exact numbers are points, not neighborhoods.  The proof of "Scheme
inexact real numbers correspond to real neighborhoods" does not
mention exact numbers.  You must have misunderstood the proof.

 | >So, not only is it proved that:
 | >
 | >* Scheme inexact real numbers correspond to real neighborhoods;
 | 
 | You've proved no such thing.  Inexact has no meaning other
 | than "this answer may be wrong."

Inexacts being as close as possible to the mathematically ideal result
gives the term "inexact number" a great deal of meaning, analytically
and topologically.