IEEE 754R notes from May 11-12, 2005

Notes taken by Dan Zuras.

May 11, 2005: Draft review

Notes for meeting at Sun in Menlo Park on Wednesday 5/11/05 in the Capitola Beach Room in Building 16. David Hough hosted us. Alex Liu, Peter Markstein, Jim Thomas, & Dan Zuras attended. Jeff Kidder, Mark Erle, Mike Cowlishaw, & Leonard Tsai were on the phone.

During the draft review we changed forced & inferred to explicit & implicit. In the section defining variable widths formats, we had the usual problem with emax & p. We considered eliminating them but that would have the side effect of eliminating things like overflow & underflow from being things that 'the standard' can signal & force them to be things that are handled when some system limit is reached. Dave said he'd work on it & get back to us.

Pee break.

We had some discussion of Jeff's interchange format for variable precision binary numbers, C99's interchange format for the same thing in hex digits, & the obvious ASCII format for the decimal case. Perhaps we should have a compact format for both (Jeff's for binary & something else for decimal) or perhaps a printable format is sufficient (C99 for binary & ASCII for decimal). We will either have to pick one or the other or admit once & for all that these things are never to be interchanged.

After the review, Dave asked about conformance levels.

Call that guy who is doing the cell phone software.

We went through the agenda for tomorrow & finished up.

May 12, 2005: Discussion

Notes for meeting at Sun in Menlo Park on Thursday 5/12/05 in the xxx Room in Building 14. David Hough hosted us. Prof Kahan, Peter Markstein, Ivan Godard, Jeff Kidder, & Dan Zuras attended. Mark Erle, Mike Cowlishaw, Jim Thomas, Dave James, & Leonard Tsai were on the phone.

As Roger Golliver was not present, we began with Dave James' tables proposal. Sounds reasonable if (BIG IF) they can be make both up to date & correct.

Roger had some trouble with security but when he finally got through, we discussed min/max. Roger's experiments (on Itanium, x87, & SSE/SSE2) suggest that the cost of special handling of +/-0 & NaNs is high (3x, 2x, & 12x, respectively). We argued in favor of both consistent behavior (among compilers & machines) & symmetric definitions. Jim did a quick experiment on his compiler that suggested that either definition of min was reasonably fast on an Itanium in a loop unrolled by 8. Jeff suggested that the behavior WRT NaNs is more important than the behavior WRT +/-0 with general agreement. It looks like we'd be willing to give up the sign of zero. David's position was that either minnum or minnan is OK so long as minany is symmetric WRT NaNs & numbers.

Ivan proposed that there shall be a min defined as totalorder & conditional move & filtering depends on the name of the function. Jeff countered with the required min is the fusion of the less than condition & a conditional move. I proposed a symmetric max/min which ignores the sign of zero & filters out NaNs. Ivan proposed removing the definition on the grounds that ANY NaN semantics can be composed from isNaN & relations. (Dave showed Ivan's slide at this point.) Kahan proposed that it must be commutative & the default shall be to pass numbers over NaNs & he doesn't care about the sign of zero.

Kahan wanted to discuss the SPEC meeting next Tuesday. He described our meeting last Friday & what we might propose. Ivan said the linpack benchmark used on the Top500 list is generally thought of as unreal & people desire to replace it.

We moved on to the proposals at this point. Appendix1 seems to be a slam dunk but for Kent Karlsson's details. Widenan2 got some discussion. Some deserved. Some not.

Ivan wants a separate issue on what happens with noncanonical declets. (When I looked at the text of the draft, it turned out that what Ivan wanted is already permitted.)

Ivan's position is that the payload of ALL NaNs (signalling or quiet) is the property of the system & not the user. And Jeff pointed out that not knowing what the system does with ITS NaNs means that a user can't portably introduce HIS/HER private NaNs and realiably recognise it when it appears as a result. This would seem to be both true & VERY limiting on the reliable utility of NaNs of ANY flavor in portable user code.

Back on point, Dave's widenan2 proposal is stated in the positive (WRT canonical declets) & hasn't been objected to on point.

The comments about the integral proposal were largely about names but both Ivan & Jim had comments on the specific set of functions which SHOULD be provided. Dave propoased a new drint to fill out the 5th (dynamic) case. But Jim wouldn't change his vote so he didn't do it. Jim wanted Dave to 'factor' his proposal to separate the introduction of the new functions from the removal of the old ones. In the end, he let it ride the way it is.

At the end, Ivan pointed out that Jeff's observation means we must:

  1. Say who owns the NaN space & prevent anyone else from using it or
  2. partition that space or
  3. acknowledge that the conundrum implies that no more than one NaN can be counted on in any reliable way.

754 | revision | FAQ | references