<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;"><div><div>To what does “library functions” in F.10.1 refer to? I answered this question incorrectly in a previous email in this thread.</div><div><br></div><div>Here is relevant text from N3685:</div><div><br></div></div><blockquote style="margin: 0px 0px 0px 40px; border: medium; padding: 0px;"><div>F.8.7</div><div>1 Operations defined in 6.5.1 and functions and macros defined for the standard libraries change</div><div>floating-point status flags and control modes just as indicated by their specifications (including</div><div>conformance to ISO/IEC 60559). They do not change flags or modes (so as to be detectable by the</div><div>user) in any other cases.</div><div><br></div><div><div>F.10 Mathematics <math.h> and <tgmath.h></div><div>F.10.1 General</div><div>…</div><div>10 Whether or when <span style="background-color: rgb(255, 251, 0);">library functions</span> not listed in Table F.2 raise the “inexact" floating-point exception</div></div><div>is unspecified, unless stated otherwise.</div><div>11 Whether or when <span style="background-color: rgb(255, 251, 0);">library functions</span> not listed in Table F.2 raise a spurious "underflow" floating-point</div><div>exception is not specified by this annex.450)</div><div>12 As implied by F.8.7, <span style="background-color: rgb(255, 251, 0);">library functions</span> do not raise spurious "invalid", "overflow", or "divide-by-zero"</div><div>floating-point exceptions (detectable by the user).</div></blockquote><div><div><br></div><div>F.8.7 applies to all functions in the standard libraries: these functions change modes and flags only as specified. This allows standard library functions to be used without their contaminating the floating-point environment.</div><div><br></div><div>Normally in F.10, “functions” refers to <math.h> functions as indicated by the subclause title. However, ...</div><div><br></div><div>F.10.1 #10 is intended to apply to <math.h> functions not listed in Table 2: these functions have no requirements regarding “inexact”, unless stated otherwise. It is not intended to apply to all functions in the standard libraries. Suggest: change “library functions not listed in table F.2” to “<math.h> functions not listed in Table 2”.</div><div><br></div><div>F.10.1 #11 is intended to apply to <math.h> functions not listed in Table 2: Annex F does not restricted these functions from raising spurious “underflow”. (7.12.2 does imply some restriction, per footnote 450.) This override of F.8.7 is not intended to apply to all functions in the standard libraries. Suggest: change “library functions not listed in table F.2” to “<math.h> functions not listed in Table 2”. </div><div><br></div><div>F.10.1 #12 is just informational. It is intended to note for completeness that <math.h> functions not listed in Table 2 do not raise spurious “invalid”, “overflow”, or “divide-by-zero”--as implied by F.8.7. However, the statement is true all functions in the standard libraries. Suggest: change “library functions” to "functions in the standard libraries, including <math.h>”.</div></div><div><br></div><div>- Jim Thomas</div><br class="Apple-interchange-newline"><div><br><blockquote type="cite"><div>On Nov 20, 2025, at 5:22 PM, Damian McGuckin <damianm@esi.com.au> wrote:</div><br class="Apple-interchange-newline"><div><div>On Thu, 20 Nov 2025, Jim Thomas wrote:<br><br><blockquote type="cite">?Library functions? here is intended to apply to all the standard libraries, not (as the F.10 title suggests) just <math.h> and <tgmath.h>.<br></blockquote><br>Why does it appear in a section about Mathematical library functions?<br>It is not obvious that it applies to "all".<br><br><blockquote type="cite">There?s no reference to ?mathematical library functions?.<br></blockquote><br>The way I read F.10.1#1, it is implied. I know I am not alone.<br><br>Somewhere that needs to be clarified. What words do you suggest?<br><br>Thanks - Damian<br></div></div></blockquote></div><br></body></html>