Re: Motion 42: NO
Guillaume
On 12 Feb 2013, at 17:43, Guillaume Melquiond wrote:
> Is the result of f(x)=1/(2*x) applied to [1,M] bounded or not (from the
> point of view of decorations)? I cannot think of a good reason for
> forbidding it.
There seems something wrong with this example, I await clarification. But your next point is important anyway.
> Sure, it means that if the user changes flavor and now uses one that
> does not support wide intervals, the program will crash (or simply
> return NaI). But I have a hard time imagining the purpose of a
> decoration system that will behave differently if the system suddenly
> supports a new flavor that puts more constraints on the range of
> intervals. I do believe there should be some kind of reproducibility: a
> flavor never used (or simply missing from the system) should have no
> influence on a computation in a different flavor.
I entirely agree with the last 2 sentences. So my idea of "the same common evaluation being done in two flavors" relies on the idea of a *shared interval type* (shared number formats will also be needed).
The type is shared by having the same *name* in the flavors F1 and F2, call it tn. Let C be the set of common intervals.
- In F1, tn refers to interval type T1, a finite set of F1-intervals.
- In F2, tn refers to interval type T2, a finite set of F2-intervals.
Saying tn is shared means
(a) Shared datums: the sets
(T1 intersect C) and (T2 intersect C)
are the same set C(tn) (modulo the relevant embedding maps).
(b) Shared operations: for common operation instances, and for the tn-version of an operation phi,
phi(xx_1,...,xx_k) where the xx_i are in C(tn)
give the same result yy (in C(tn)) in both flavors, within some accuracy measure.
If phi has accuracy mode "tightest" -- which I regard as being a standard-wide property -- this means really the same down to the last bit.
Example: consider inf-sup based on IEEE binary64. Set-based flavor builds one set of intervals from it, including Empty, [1,oo] etc. as well as common intervals. Kaucher flavor builds another set of intervals, including [3,2] etc. as well as common intervals.
Give these types the same name "binary64infsup" in either flavor. Then we want them to give exactly the same arithmetic, for "tightest" mode operations, in either flavor.
Is this sensible and practical?
John