Why (IMO) you should vote Yes to Motion 14.02
P1788
Several people voted No to motion 14 for reasons similar to that of Nate Hayes:
> ... I think the
> standard should otherwise be silent on the internal format used by an
> implementation, except that inclusion isotonicity must be preserved.
That is about the needs of those who use representations other than inf-sup, such as mid-rad. P1788 must meet these needs, but we believe the above approach is wrong for the following reason.
Consider numbers first. Level 1 is the home of mathematical (extended) real numbers. Implementing exact arithmetic on this infinite set is a challenge, so we approximate it by a finite set F, the level 2 real datums (of some format). The point about F is
- The datums and their operations have (via the "round" functions) a precise relation to the numbers and operations of mathematics (level 1).
- And they have a precise representation (level 3) that makes *exactly* these operations efficient to implement by computer.
It's this "looking both ways" feature that makes level 2 central to the 754 standard.
It should be the same with intervals.
If the present wording of 6.1 is implemented, then every level 2 interval datum, in every detail, is exactly mirrored by a level 3 object. The latter determines the datum uniquely: the datum has a *lossless representation*.
Then also operations on datums are exactly mirrored by level 3 operations that we write in code; hence by hardware operations on bit-strings at level 4. This makes that mental construct, a datum, into a physically real thing. It seems to me a basic software engineering principle that:
A mental construct becomes real in a program by, *and only by*,
having a lossless representation.
If one loosens in any way the 6.1 requirement that an interval datum be recoverable *exactly* from its representation, it at once ceases to have physical reality and becomes a figment of mathematical imagination. (Dan Zuras made essentially the same point, see below.)
Look at 754, as above. Level 2 floating-point datums are both precise mental constructs on which humans can do math -- most of them can be regarded as actual members of the (level 1) extended reals -- and physically real objects on which computers can do *exactly the same* math. And every 754-conforming computer in the world will do that same math.
Thought experiment: Add to 754-2008 this sentence: "An implementation may represent a decimal64 number by its closest binary64 approximation". At a stroke the standard's detailed description of decimal64 becomes pointless. Binary64 numbers remain physically real, but decimal64 numbers have become a figment of the imagination.
Dropping lossless representation would do the same to intervals, with an effect somewhat like the floating-point chaos that reigned before 754. Adopting it, by contrast, gives P1788 the solidity that 754 possesses. We urge you to support the principle
"The representation of Level 2 datums by Level 3 objects should be lossless"
and vote for the resubmitted motion 14.02.
Regards
John Pryce, George Corliss
========================
On 22 Apr 2010, at 16:30, Dan Zuras Intervals wrote:
>> Nate Hayes" wrote:
>> ...Why is this important?
> Imagine an internal format (such as mid-rad) for which
> the extraction of the upper & lower bounds involves an
> arithmetic operation that admits the possibility of a
> rounding error.
>
> Then it is possible for that format to internally
> represent two different intervals, say (m1,r1) & (m2,r2)
> such that those two intervals would BOTH extract the
> same floating-point numbers as their upper & lower
> bounds.
>
> Two such intervals would be both different &
> indistinguishable. They would participate in subsequent
> operation differently & one would not be able to
> understand why.