Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
I vote NO on motion 14. I would vote yes if:
1. The empty set representation was defined.
It's necessary for a receiver can know when a set is empty.
2. The empty set representation is some form other than (NaN, NaN).
Implementing this using 754 hardware is too expensive. A special case like empty should be detectable by a single compare and branch, and that is not possible with NaN.
Also, "NaN" does not specify whether it is Quiet or Signaling, and other parts of the text allow Signaling. Doing a standard compare on a Signaling NaN raises an Invalid exception, and on most systems if exceptions are enabled that will trap. Other ways of checking for a Signaling NaN are too expensive.
Since we have not imposed the requirement that the floating point representation be IEEE 754, we shouldn't do it by the back door by requiring the use of NaN. (Yes, I've argued allowing (-oo, +oo) and will continue to. There's a difference between allowing and requiring. Maybe the intent of the motion was to allow not require NaN, but if "When x is the empty set, x and x are taken as NaN. Whether qNaN or sNaN is used, and any payload, are implementation-defined." isn't intended to require the use of NaN, it needs to be reworded.
3. The requirement that 0 be represented as +0 be removed.
There's no need for this, and it forces unnecessary overhead. That overhead is not just when the data will be interchanged - often that is unknown when it is calculated, so the overhead will almost always occur for no benefit. Whether the sign of a zero can convey information relevant to intervals isn't the issue - imposing unnecessary costs is.
4. The Decimal description is improved.
Eg, does the requirement that 0 be represented as +0 and making the choice of which cohort of a value be implementation defined mean that all but one of the many precisions of zero (0., 0.0, 0.00, etc) are prohibited? Which one would be allowed?
I think the intent is likely right, but the wording needs clarification.
- Ian McIntosh IBM Canada Lab Compiler Back End Support and Development
Ralph Baker Kearfott ---05/13/2010 05:07:56 PM---P-1788: The discussion period for this motion has run its course,
![]() From: | ![]() Ralph Baker Kearfott <rbk@xxxxxxxxxxxx> |
![]() To: | ![]() Ian McIntosh/Toronto/IBM@IBMCA |
![]() Date: | ![]() 05/13/2010 05:07 PM |
![]() Subject: | ![]() Motion P1788/M0014.01: 6.1_and_6.2_of_document: up for vote |