[Cfp-interest 1950] WG14 IEEE 754-C binding meeting minutes 2021/03/16
Rajan Bhakta
rbhakta at us.ibm.com
Thu Mar 25 07:45:23 PDT 2021
Attendees: Rajan, Jim, Damian, David O, David H, Fred, Ian, Mike
New agenda items:
None.
Carry over action items:
Jim/Fred: Go through all the CFP proposals submitted to ensure they
were put in the C standard draft (N2596) correctly. - Done!
Last meeting action items (all done unless specified otherwise below):
David H.: Look at each use of "numerically equal" and "equivalent" and
see what should be changed in the C standard.
David H: Rewrite the conclusion in CFP 1920 so it matches surrounding
text and says hypot(x, +-0) is correctly rounded when x is a number along
with the CFP 1920 proposed text.
Fred: Make CFP 1896 into a proposal for WG14 removing the word "NOTE"
in change 1, and doing the change questioned in 7.31.8.
Fred: Send out the email numbers for handling the CFP 1891 action item
Fred: When presenting CFP 1891 to WG14, ensure that the hypot case is
said to not apply.
Jim: Submit the document in CFP 1901 to WG14.
Jim: Submit the paper in CFP 1903 to WG14.
David H: Look to see if setpayload{sig} in IEEE 754 says anything about
the sign bit.
Jim: CFP 1908: Change "fk == 0" to "fk = 0".
Jim: CFP 1908: Make a change to put NaNs before infinities: "not
floating point numbers, such as NaNs and (signed or unsigned) infinities."
Jim: CFP 1908: Remove the bit-representation paragraph's second
sentence.
Rajan: Review Jim's update to CFP 1908 before submission to WG14.
Mike: Bring forward the IEEE errata (CFP 1914) after removing the third
item to CFP before bringing it to IEEE.
Fred: See if "cr_" as a prefix is reserved or in the process of being
reserved.
New action items:
Fred: Make a proposal for CFP 1927 with the change of the final
change being "equal" instead of boolean and check with David H.
Fred: Write up CFP 1930 as a proposal.
Fred: Submit CFP 1938 to WG14.
Fred: Check with the CFP group (and possibly others) to see if the
default static initialization gives all zero bits for DFP values.
Fred: Send the IEEE 754 errata note that is currently not reflected
in the errata list to the CFP group.
Mike: Check what the zero bits with the bias exponent means for DFP
(regarding static initialization). (During the meeting: Mike: 0e-101 is
what the result is.)
Fred: Create a WG14 proposal to reserve either cr_ or reserve
specific cr_{function name}s as per CFP 1906 and let WG14 decide.
Study group logistics
Next meeting date: Tuesday, April 13th, 2021.
12:00 EDT, 9:00 PST
Same teleconference number.
C++ liaison
Issues? None.
WG14 meeting report
[Cfp-interest 1947] WG14 202103 results of CFP papers Rajan Bhakta
Fred: For the pow case. It is ambiguous in the 1e0 case. I asked the
IEEE group. Should it be the 0 or the -Inf quantum exponent?
pow has a preferred quantum exponent of y * Q(x). For x being an integer
(no fractional part), Q(x) is 0. If it is a +Inf, it should be "1.0" if it
is a -Inf, it should be "1." The 0*Inf is not defined.
*AI*: Fred: Send the result of N2642's follow up to WG14.
Deadlines for new proposals for C23: Spring next year.
Deadlines for updated proposals for C23: Fall next year.
C23 integration
Latest C2X drafts:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2573.pdf
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf
Part 1
Part 2
Part 3
Part 4ab
Part 5abcd
IEC 60559:2020 support
Action items from 2021-02-17 meeting
Carry over: Jim/Fred: Go through all the CFP proposals submitted to
ensure they were put in the C standard draft (N2596) correctly.
Jim and Fred have given comments to JeanHyde. No response.
Close action item.
David H.: Look at each use of "numerically equal" and "equivalent" and
see what should be changed in the C standard.
[Cfp-interest 1927] action item: suggest rewordings for F9.2 of
n2596.pdf David Hough CFP
Jim: For the final change, boolean values is not used in C.
David H: Perhaps just say "equal".
Fred: Both operators return an integer, not a boolean.
David H: Do we mean logically equal?
Fred: isless says it is always equal to x < y (with the text about
invalid flag).
David H: So we can just say "equal".
*AI*: Fred: Make a proposal for CFP 1927 with the change of the final
change being "equal" instead of boolean and check with David H.
David H: Rewrite the conclusion in CFP 1920 so it matches surrounding
text and says hypot(x, +-0) is correctly rounded when x is a number along
with the CFP 1920 proposed text.
[Cfp-interest 1926] action item: usage of "when x is a number" in
n2596.pdf David Hough CFP
[Cfp-interest 1928] action item: suggest wording for hypot David
Hough CFP
[Cfp-interest 1929] Re: action item: suggest wording for hypot Paul
Zimmermann
[Cfp-interest 1931] Re: action item: suggest wording for hypot Jim
Thomas
[Cfp-interest 1930] Re: action item: suggest wording for hypot David
Hough CFP
Jim: We’re putting in a case here that’s actually covered and I don’t
know if we’ve done this for other functions.
David H: I’m pretty sure it’s not.
Jim: What is unusual about hypot is the NaN case is specified
otherwise rather than taking the global statement. Ex. The third case in
the email. pow is a case like this (pow of zero). Do we put in a special
case for NaN there?
David H: The case of disappearing NaNs is a contentious one so I'm
for listing cases like this explicitly.
Fred: pow says it.
Jim: I don't object to this change as long as other functions have
the corresponding functions just like this one.
David H: There is a higher chance of making a mistake if we tried to
do it for other cases like pow and complex pow.
Jim: Complex wouldn't be an issue since that specification is
different.
Fred: I have an issue with the second bullet. This is a change to the
existing standard. 1 and 3 are already in the standard. 4 is a new one.
Fred: What is hypot(NaN, 0)?
Jim: Can we hold this for another time? We need to write this as a
proposal.
*AI*: Fred: Write up CFP 1930 as a proposal.
Jim: In CFP 1926 there is still an issue.
"Determine" is used in many other places so this change in isolation
is good, but not in general.
David H: Lets not rock the boat.
Fred: Make CFP 1896 into a proposal for WG14 removing the word "NOTE"
in change 1, and doing the change questioned in 7.31.8.
[Cfp-interest 1938] Re: WG14 IEEE 754-C binding meeting minutes
2021/02/17 Fred J. Tydeman
*AI*: Fred: Submit CFP 1938 to WG14.
Fred: Send out the email numbers for handling the CFP 1891 action item.
[Cfp-interest 1923] Submissions on preferred quantum - came up in
current teleconference David Hough CFP
[Cfp-interest 1944] Fwd: (SC22WG14.19047) Preferred quantum exponent
for default-initialized Fred J. Tydeman
[Cfp-interest 1945] Re: Fwd: (SC22WG14.19047) Preferred quantum
exponent for default-initialized 0 Fred J. Tydeman
Jim: All encodings for DFP have zero bits giving zero values right?
Fred: Yes. Though it is not zero quantum exponent. It is the most
negative one (-99999 due to biased exponent). I hope implementations set
all bits to zero.
*AI*: Fred: Check with the CFP group (and possibly others) to see if
the default static initialization gives all zero bits for DFP values.
Mike: I believe it is a zero with a zero quantum exponent.
Fred: When presenting CFP 1891 to WG14, ensure that the hypot case is
said to not apply.
Jim: Submit the document in CFP 1901 to WG14.
N2670 2021/02/27 Thomas, C23 proposal - zeros compare equal
Jim: Submit the paper in CFP 1903 to WG14.
N2671 2021/02/27 Thomas, C23 proposal - negative values
Fred: Is +0 positive?
Jim: No, it says in the text it has to be > 0.
Fred: We should copy the first suggested change and change negative
to positive and less than 0 to more than zero.
David H: More compactly, "Thus zeros and NaNs are neither positive or
negative."
Jim: This has already been submitted.
David H: Lets not gild the lily.
Fred: We may debate this in WG14 as an editorial change, but it's
good enough.
David H: Look to see if setpayload{sig} in IEEE 754 says anything about
the sign bit.
[Cfp-interest 1925] action item: 754-2019 setpayload and
setpayloadsig vs. sign bit David Hough CFP
Mike: For me, the sign bit is part of the payload. For an integer the
sign determines if the integer is positive or negative.
Jim: I'm not sure 754 allows you to put the sign on the payload.
David H: That's right, the payload is always non-negative.
Mike: In test cases or converting to character strings, I say SNaN
(-3) for example.
Fred: The current setpayload functions say they create a quiet NaN
with the given payload and a zero sign bit.
Jim: CFP 1908: Change "fk == 0" to "fk = 0".
Jim: CFP 1908: Make a change to put NaNs before infinities: "not
floating point numbers, such as NaNs and (signed or unsigned) infinities."
Jim: CFP 1908: Remove the bit-representation paragraph's second
sentence.
Rajan: Review Jim's update to CFP 1908 before submission to WG14.
N2672 2021/02/27 Thomas, C23 proposal - 5.2.4.2.2 cleanup
Mike: Bring forward the IEEE errata (CFP 1914) after removing the third
item to CFP before bringing it to IEEE.
[Cfp-interest 1937] Re: Errata for IEEE 754-2019 Fred J. Tydeman
[Cfp-interest 1942] Re: Errata for IEEE 754-2019 Mike Cowlishaw
http://speleotrove.com/misc/IEEE754-errata-2019.html
Mike: I've updated this since last time.
Fred: I sent one an email about pow that is not on the list.
Mike: If you send it again, I can update this.
*AI*: Fred: Send the IEEE 754 errata note that is currently not
reflected in the errata list to the CFP group.
*AI*: Mike: Check what the zero bits with the bias exponent means for
DFP (regarding static initialization).
Mike: 0e-101 is what the result is.
Fred: See if "cr_" as a prefix is reserved or in the process of being
reserved.
[Cfp-interest 1936] Re: WG14 IEEE 754-C binding meeting minutes
2021/02/17 Fred J. Tydeman
[Cfp-interest 1939] Re: WG14 IEEE 754-C binding meeting minutes
2021/02/17 Jim Thomas
[Cfp-interest 1940] cr_ Fred J. Tydeman
[Cfp-interest 1941] Re: cr_ Jim Thomas
[Cfp-interest 1905] cr_xxx functions Paul Zimmermann
[Cfp-interest 1906] Re: cr_xxx functions Jim Thomas
Fred: cr_ was not reserved, but I have written a proposal to do it.
Jim: Do we want to do the blanket reservation or just add to the list
of function names?
Fred: Blanket seems easier.
Jim: Jens had a proposal that reserved a number of prefixes and
suffixes, and that proposal was not accepted. We shouldn't do the same
since WG14 didn't move on it.
Damian: Why didn't Jens proposal pass? It seemed there was a lot of
stuff that everyone would agree to with other stuff that wouldn't.
Jim: Reserving the prefix takes more out of the namespace.
Rajan: We could propose both and let WG14 decide.
Fred: I can propose the cr_ reservation and say since the list is
continually expanding it makes sense to do it this way.
Jim: I'm reluctant to launch into this. We could get a list of the
cr_ functions we would add and propose the two alternatives.
*AI*: Fred: Create a WG14 proposal to reserve either cr_ or reserve
specific cr_{function name}s as per CFP 1906 and let WG14 decide.
Other issues
Range errors
[Cfp-interest 1841] C math errors Jim Thomas
[Cfp-interest 1842] Re: C math errors Fred J. Tydeman
[Cfp-interest 1843] Re: C math errors Jim Thomas
[Cfp-interest 1873] Range error Fred J. Tydeman
[Cfp-interest 1912] Re: C math errors Jim Thomas
[Cfp-interest 1913] Re: C math errors Fred J. Tydeman
Follow up of CFP 1841:
Issue 4: With alternate exception handling, we need to clean up
what raising a floating-point exception means (signaling underflow or
raising the underflow flag). The distinction was ignored before, but now it
can't.
Fred: Shouldn't that be "set" a floating-point exception flag
rather than "raise".
Jim: Currently the standard uses "raise".
Fred: The C standard says "set" as well.
Fred: Intel vs Motorola had issues about when a trap is taken.
Jim: There's no traps in 754.
David H: The original 754 had traps, but now doesn't.
Jim: For raising a floating-point exception, this does not include
the exact underflow case.
Issue 3: What's the difference between loss of accuracy and
inexact?
Fred: If a result is the smallest normal, is it underflow?
David H: Depends on whether the rounding mode had a result in
between or after. It's too complicated so we don't specify it.
Issue 5: Fred: The change will make the math library slower for
some people.
Jim: That's true.
Fred: Must/Shall should stay "must".
Fred: hypot of (double_min, zero) can no longer raise the underflow
exception? It should be double_min, but some implementations do square,
square root. Or (3*double_min, 2*double_min) will generate underflows.
David H: Fast implementations will have these underflows. What's
normally done is scaling.
Jim: There are performance implications to this, but this is an
editorial change. It's already there in 7.12.1.
Issue 6: Fred: I always took "mathematical result" meaning infinite
precision.
David H: Right. It is the theoretical result.
Mike: Even with correct rounding, you can't tell if the result is
out of the range.
Jim: I don't think so.
Mike: I don't think you should change the meaning of "mathematical
result".
Jim: Originally it was an alternative, but I nixed it.
Fred: Could say a computed result before rounding.
Mike: You can't say that since it hasn't been computed yet.
Mike: A mathematical result is not a real number. What is here is
not correct. It can be more precise than the correctly rounded result.
Fred: There is also a distinction for real vs complex.
Parameterization of interfaces
Floating-point accuracy in C
[Cfp-interest 1932] Re: Fix the inaccuracy of j0f/y0f/j1f/y1f Paul
Zimmermann
[Cfp-interest 1934] Re: Fix the inaccuracy of j0f/y0f/j1f/y1f Vincent
Lefevre
[Cfp-interest 1933] Re: Fix the inaccuracy of j0f/y0f/j1f/y1f Mike
Cowlishaw
More information about the Cfp-interest
mailing list