Re: Revised Clause 7 "Flavors"
Michel, P1788
I apologise for the delay in responding, which is due to my teaching semester at Cardiff University having just started.
On 2014 Jan 24, at 21:29, Michel Hack wrote:
> On editorial question for 7.5.3 item 3 (b): It should always be permitted
> to return a weaker decoration than the theoretical Level 1 value, so instead
> of "is com" I would say "is com, or weaker". Then add:
>
> If the Level 1 decoration can be com, the Level 2 decoration should be
> com, but depending on the computation sequence it may not be possible
> to guarantee this, in which case a weaker flavor-defined decoration
> would be returned.
>
> (There could then be a cross-reference to 6.4 where such difficulties are
> mentioned.)
Thanks for noting this, which raises several points.
(1a) The Level 1 decorated interval version, see 7.4.2, is the "true" value of an operation in a given flavor. So it seems right that a common evaluation SHALL be decorated com at Level 1.
(1b) I wonder if 7.5.4 "Decorated common evaluations" is best moved to the Level 1 stuff, say as part of 7.4.2. Then in 7.5.3 one can define, and use, a Level 2 form of it very simply I think.
(2) You suggest "is com, or weaker". So far I've avoided any rules about how a flavor constructs its decoration system, in particular:
(2a) I've not said there shall be a partial order "weaker" among decorations.
(2b) I've not said a decoration is defined in terms of a predicate about pairs
(f,xx) where f is a k-ary point-function and xx a box (in the given
flavor, of dimension k). This would of course imply (a).
We had serious arguments with Nate about what a decoration "means". I don't think he ever accepted the p_d(f,xx) concept in the (IMO straightforward) way the set-based flavor has it. So I would prefer to leave this unspecified by the standard.
Is this a mistake? Must the standard at least require (2a) above?
(3) 7.5.3 item 3 (b) says
"The decoration part of y is com if the evaluation *is determined to be* a decorated common evaluation of an arithmetic operation ..."
(emphasis mine). That means "is determined by the implementation to be". It was intended to give the needed wiggle-room. I meant (and this is why I think (1b) above is a good idea):
"If the implementation can see this is a decorated common evaluation
at Level 1 AND at Level 2 it manages to enclose the Level 1 result
in a common interval ...".
In this case, surely the implementation is stupid to give any decoration except com?
> For 7.5.5, I'm still concerned about the requirement that accuracy modes
> SHALL be linearly ordered. Would users really be confused by two modes
> that are incomparable because they trade different cost categories for
> tightest accuracy, e.g. space or time? This is quite common for compiler
> optimization options, for example.
I would like other people's opinion. Meantime I've changed it to "SHOULD be linearly ordered".
John Pryce