754r March meeting minutes
Apologies for the sketchy nature of the minutes. I was finding it
difficult to participate and record at the same time.
Draft review attendees:
Peter Markstein HP
Alex Liu Sun
Jim Thomas HP
David Hough Sun
Eric Schwartz IBM (phone)
Dan Zuras Self (phone)
Motorola has an extended with Emin = -Emax (using the explicit J-bit to
encode the difference between denormals and normals in the smallest
Is remainder widened?
What if it is contracted? It would need to be able to be rounded.
How does the C language implement a generic FMA that can be widenable?
Languages are very reluctant to add primitive operations.
In C square root is a function and not subject to widening.
printf("%f", sqrt(x+y)), changing widening (e.g., to quad) breaks the
sum += sqrt(x+y) (all vars double)
Are we trying to say that anything in "math.h" is widenable.
Or we could limit it to +/-/*//.
Leave it to the language to decide what to do beyond that.
Peter: point of widening mode is to be able to take advantage of fastest
native mode. Sqrt and divide tend to take longer for larger types.
Is sqrt a function or an operator. We want it to be an operator,
traditionally it is a function in languages. (And other functions on
sqrt((double_t)x) will give a sqrt with the widened type.
[sqrt(flta+fltb)+quadc for widest needed.]
Idea: Semantically cast an expression to its evaluation type. E.g.,
Alex Liu: Why is widening useful to Joe Q. Public?
David: Need some rational expression widening discipline so people can
take advantage of the native resources.
Jim: on C99 *_t types...
Take advantage of them if they are there.
Need to talk about NaNs with widening and compute-convert
AR: Jeff to talk to Ivan about NaN conversion
If we require only that widening then shortening preserves the payload
[Jeff did on day two, Ivan strongly feels that converting NaNs should
leave the payloads system defined]
[I don't seem to have the attendee list for day two. Suffice it here to
say it was well attended.]
* Vice-Chair opening
Jeff elected Vice-Chair to replace Alex Liu. Thanks to Alex for his
* Min/Max discussion
Dan thinks the equality cases aren't a big deal in min/max.
Prof. Kahan summarizes as two applications of a selecting min/max
produce what the draft calls for, except it doesn't deal with +0, -0.
Some people definitely want to filter out NaNs (windowing).
Some people definitely want to get a NaN as an indication of trouble.
Have seen how to deal with -0 if min/max didn't. "It isn't a big thing"
Need to ask interval arithmetic community.
If I have a tag I don't need -0 to make the distinction.
With no tag the -0 semantics are important.
Sun style intervals wants -0, but doesn't want to filter out NaN.
At issue: what is the default when you say "max(x,y)" in a language?
Cuts: fluid flows, complex variables
Don't really care about the -0 treatment in min/max for this case.
AR: Roger can do the editing to do the mag and max functions.
AR: Roger to talk to the Russian interval arithmetic folks
AR: Roger post to 754r on the -0 question
Dan: if we could get around the "one little issue of +/-0" we could
treat this as an app note.
Roger: Our IPF compiler promote compare select to min/max (what about
invalid for a compare with NaN)
David: Sun does not have min/max instructions. Have conditional moves.
Eric: have fselect which uses compare.
Kahan: Architectures we have canvassed would prefer Roger's proposals.
If the interval arithmetic folks are happy with it.
If you are implementing the min/max routines you don't want the invalid
signal on NaNs.
"Sounds like we are trying to change the definition to match existing
If they are new why don't we just implement them the way we want them to
be and someday we will implement them correct. Who cares if HW at this
point can't do it"
If we make them only able to do lethargically it won't be done.
Supporting +/- zero is slow on current HW.
Finding the largest element (or magnitude) happens a lot in my world.
Want that to be very fast.
Wait for answers from Roger.
Eric doesn't have problems with the "Option 3".
We have some really fundamental problems around formats and expression
* Proposals proposal
Dan's proposal for new way of treating proposals and building the agenda
for meetings accepted without objection.
Kahan: in the long run I expect decimal to take over from binary.
For that we need interchange formats of specified widths.
What matters is there is a significant difference in SW implementations.
The SW has to be available in the public domain.
Conversion costs may dominate.
Ivan: comparisons will outweigh adds in databases
[Much other discussion that I was unable to capture]