<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">C has a general definition of range errors much like you suggest:<div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">a range error occurs if and only if the mathematical result of the function cannot be</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">represented in an object of the specified type, due to extreme magnitude.</div></blockquote><div class=""><br class=""></div>Then it says</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">The description of each</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">function lists any required range errors; an implementation may define additional range errors,</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">provided that such errors are consistent with the mathematical definition of the function and are the</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">result of either overflow or underflow.</div></blockquote><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">A floating result overflows if the magnitude of the mathematical result is finite but so large that</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">the mathematical result cannot be represented without extraordinary roundoff error in an object</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">of the specified type. …</div></blockquote><div class=""><br class=""></div><blockquote type="cite" class=""><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">The result underflows if the magnitude of the mathematical result is nonzero and less than the</div><div style="margin: 0px; font-stretch: normal; font-size: 10px; line-height: normal;" class="">minimum normal number in the type. ...</div></blockquote><br class=""></div>The problems Fred’s paper is addressing are in the lists of the required range errors for the particular functions, which reference the arguments. These lists attempt to describe where the range errors occur, or at least where they must or might be reported. This goes back to before any IEC 60559 support.&nbsp;</div><div class=""><br class=""></div><div class="">- Jim Thomas<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 27, 2019, at 10:17 AM, David Hough CFP &lt;<a href="mailto:pcfp@oakapple.net" class="">pcfp@oakapple.net</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">I think the discussion of tgamma makes the point that range errors are about <br class="">the result, not the argument. &nbsp;&nbsp;&nbsp;For monotonic functions, that can be mapped<br class="">back into statements about the argument. &nbsp;&nbsp;&nbsp;What about functions of two<br class="">arguments?<br class=""><br class="">For consistency, one might want to say something &nbsp;like a range<br class="">error occurs <br class="">when the magnitude of the correct result lies outside the range of normalized<br class="">numbers. &nbsp;&nbsp;&nbsp;Or maybe "sufficiently outside" instead of "outside" to allow<br class="">for results that happen to round back in to the normalized range.<br class=""><br class="">But then what about subnormal numbers? &nbsp;&nbsp;&nbsp;In 754, exact subnormal results<br class="">are exceptional - but you only notice if alternate exception handling is<br class="">enabled. &nbsp;&nbsp;&nbsp;&nbsp;Does C consistently classify exact subnormal results as range<br class="">errors or not?<br class=""></div></div></blockquote></div><br class=""></div></body></html>