<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">I too think Joseph is correct about the intention for <font face="Courier New">powr</font>. Here’s a suggestion to make this intention explicit. In F.10.5.7, change:<div><br></div><blockquote style="margin: 0px 0px 0px 40px; border: medium; padding: 0px;"><font face="Courier New">powr(</font><i>x</i><font face="Courier New">,</font> <i>y</i><font face="Courier New">)</font> returns a NaN and raises the "invalid" floating-point exception for <i>x</i> < 0.</blockquote><div><div><br></div><div>to:</div><div><br></div></div><blockquote style="margin: 0px 0px 0px 40px; border: medium; padding: 0px;"><font face="Courier New">powr(</font><i>x</i><font face="Courier New">,</font> <i>y</i><font face="Courier New">)</font> returns a NaN and raises the "invalid" floating-point exception for <i>x</i> < 0<span style="background-color: rgb(255, 251, 0);"> and all <i>y</i> (including NaN)</span>.</blockquote><div><br></div>The added words follow the style used in F.10.5.8 for <font face="Courier New">rootn(</font><i>x</i><font face="Courier New">,</font> 0<font face="Courier New">)</font>.<div><br><div><br></div><div>- Jim Thomas</div><div><br></div><br class="Apple-interchange-newline"><div><br><blockquote type="cite"><div>On Mar 14, 2025, at 5:54 AM, Fred J. Tydeman <tydeman@tybor.com> wrote:</div><br class="Apple-interchange-newline"><div><div>On Thu, 13 Mar 2025 18:03:24 +0000 (UTC) Joseph Myers wrote:<br><blockquote type="cite"><br>Do I understand correctly that powr(x, qNaN) should raise "invalid" for <br>negative x, since such x are outside the domain of the function as defined<br>in IEEE 754?<br><br>The relevant statements in Annex F are<br><br>"Functions with a NaN argument return a NaN result and raise no<br>floating-point exception, except where explicitly stated otherwise."<br><br>and<br><br>"powr(x, y) returns a NaN and raises the "invalid" floating-point<br>exception for x < 0."<br><br>where the latter doesn't explicitly say "even if y is a NaN", unlike some<br>other cases such as rootn(qNaN, 0), where it's explicit that rootn(x, 0)<br>raises "invalid" for all x including NaN.<br><br>IEEE 754 says<br><br>"powr(x, y) signals the invalid operation exception for x < 0"<br><br>and<br><br>"powr(x, qNaN) is qNaN for x  0"<br><br>as well as<br><br>"Outside its domain an operation shall return a quiet NaN and signal the<br>invalid operation exception.".<br><br>If my understanding of the intent is correct then I'll file this as an<br>issue that it should be more explicit that "invalid" is raised in this<br>case of a NaN argument.<br></blockquote><br>I agree with your understanding.<br><br><br><br>---<br>Fred J. Tydeman        Tydeman Consulting<br>tydeman@tybor.com      Testing, numerics, programming<br>+1 (702) 608-6093      Vice-chair of INCITS/C (ANSI "C")<br>Sample C17+FPCE tests: http://www.tybor.com<br>Savers sleep well, investors eat well, spenders work forever.<br></div></div></blockquote></div><br></div></body></html>