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. (*) I will write up a specific proposal which loses the sign of (*) zero. Mike is OK with a min/max that ignores cohort. Call (*) out sNaN & flag behavior. 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. (*) I should vote on all of these. 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. Done for dinner. ---- Roger Golliver wishes to discuss min/max. Dave James wishes to discuss the introduction of explanatory tables for each of the operations. Objections to current proposals: APPENDIX1: Kent Karlsson CONVERT-INTEGER: Kent Karlsson Jim Thomas Nelson Beebe INTEGRAL: Kent Karlsson Jim Thomas Nelson Beebe Paul Zimmermann Vincent LeFevre WIDENAN2: Kent Karlsson Dave James Dick Delp Ivan Godard