Re: Why (IMO) you should vote Yes to Motion 14.02
Nate, P1788
On 26 Jun 2010, at 17:48, Nate Hayes wrote:
> ...On the other hand, an "internal" format would be some format used internally
> by a vendor to actually implement the interval arithmetic operations. The
> purpose of interchange format is therefore to provide an interface between
> the end-user and the internal implementation provided by a vendor.
>
> This internal format could be virtually anything, e.g., an inf-sup pair of
> IEEE 754 numbers, some multi-precision or proprietary long accumulator
> format, mid-rad, etc. So long as all conversions to and from the internal
> format preserve inclusion isotonicity, it shouldn't really matter. ...
I agree with almost all you write in this email (& not just because you quote something from me approvingly).
It's one of these cases where one group is saying "How can these guys think there's a problem?" and the other group is saying "How can these guys think there isn't a problem?".
So it must be partly about use of language, and unformulated assumptions. I have always thought that Intlab is conforming, and the code Siegfried quoted (which I vaguely knew, from one of his articles):
> bthin = isequalwithequalnans(b.inf,b.sup);
> if bthin % R * R with directed rounding
> setround(-1)
> c.inf = a*b.inf;
> setround(1)
> c.sup = a*b.inf;
> else
> setround(1) % R * IR
> bmid = b.inf + 0.5*(b.sup-b.inf);
> brad = bmid - b.inf;
> crad = abs(a) * brad;
> c.inf = 0; % preserve order of definition of intval c
> c.sup = a * bmid + crad;
> setround(-1)
> c.inf = a * bmid - crad;
is, to me, a fine piece of conforming code, *provided* the final answer is delivered in inf-sup form.
Maybe one question at issue is "How far does P1788's writ run, when determining what is and isn't conforming?". Consider situation
P1788
User inf-sup mid-rad Library
Level interface interface
| |
y = A(x) | --convert-> |
| | function A
| <---------- |
| |
z = B(y) | ----------> |
| | function B
| <---------- |
: : :
: : :
If you convert from inf-sup to mid-rad before calling each library function, and back again on return, then your library is clearly P1788-conforming at the user level.
If, for speed, you leave out the conversions --> and <-- whenever you can, thus using purely mid-rad most of the time, I almost certainly still want to call your program conforming, *provided* there are clearly marked start and end places where you do the initial conversion from inf-sup, and the final conversion back.
Is that the sort of thing we should be discussing? If so, how to harden these ideas up?
BTW I have always understood "interchange format" to be intended as a format allowing transfer of binary data files between platforms, or between programs on the same platform (as in 754). Your meaning isn't quite the same, so IMO we need a word different from "interchange" and "internal".
John