<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;"><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Jul 28, 2024, at 2:36 PM, Jerome Coonen <jcoonen@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr"><div>At the July meeting, I agreed to summarize the situations in which a domain, range, or pole error "may occur", in the language of the standard. This table is based on working draft n3220. The table below is sent in fixed-width font; if it arrives in a proportional font, just copy/paste to a program editor to make it presentable.</div><div><br></div><div>This effort originated with a review of the errors for lgamma() and tgamma(). It has led to discussion of why it is that some exceptions are noted by the system while others are just optionally noted.</div><div><br></div><div>Two details that struck me are:</div><div>(1) llogb() differs from logb() in not having the optional domain or range error when the result is out of range. </div><div>(2) The usage, "a domain error may occur for infinite arguments," in fadd() and fsub(), with a similar phrase for fma(), is not great. A phrase like, "if any argument is infinite," is more specific and works for all three functions.</div></div></div></blockquote><div><br></div>A domain error for fadd and fsub occurs only when both arguments are infinite. fma can have a domain error for fma(inf, 0, z), fma(0, inf, z), and fma(inf, 1, -inf) and variants thereof, but not if just the third argument is infinite.</div><div><br></div><div>- Jim Thomas</div><div><br><blockquote type="cite"><div><div dir="ltr"><div><br></div><div><font face="monospace">Section Func Domain Range Pole Reason<br>-------- ----- ------ ----- ---- --------------<br>7.12.4.4 atan2 * x = 0 & y = 0<br>7.12.4.11 atan2pi * x = 0 & y = 0<br>7.12.4.14 tanpi * x = half-integer<br>7.12.5.3 atanh * x = ±1<br>7.12.6.8 ilogb * * x = 0,inf,NaN<br> ilogb * * result out of range<br>7.12.6.10 llogb * * x = 0,inf,NaN<br> llogb no error???? result out of range<br>7.12.6.11 log * x = 0<br>7.12.6.12 log10 * x = 0<br>7.12.6.13 log10p1 * x = -1<br>7.12.6.14 log1p * x = -1<br>7.12.6.15 log2 * x = 0<br>7.12.6.16 log2p1 * x = -1<br>7.12.6.17 logb * * x = 0<br>7.12.7.2 compoundn * x = -1 & n < 0<br>7.12.7.5 pow * x = 0 & y = 0<br> pow * * x = 0 & y < 0<br>7.12.7.6 pown * x = 0 & n < 0<br>7.12.7.7 powr * x = 0 & finite y < 0<br>7.12.7.8 rootn * x = 0 & n < 0<br>7.12.7.9 rsqrt * x = 0<br>7.12.8.3 lgamma * x = 0 or neg int<br>7.12.8.4 tgamma * * x = 0 or neg int<br>7.12.9.5 (l)lrint * * result too big<br>7.12.9.7 (l)lround * * result too big<br>7.12.14.1 fadd * "for infinite args"<br>7.12.14.2 fsub * "for infinite args"<br>7.12.14.5 fma * "for an infinite arg"<br></font><br></div><div>Hope this helps.</div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-Jerome Coonen<div> 650.996.4738</div><div> <a href="mailto:jcoonen@gmail.com" target="_blank">jcoonen@gmail.com</a></div></div></div></div></div>
_______________________________________________<br>Cfp-interest mailing list<br>Cfp-interest@oakapple.net<br>http://mailman.oakapple.net/mailman/listinfo/cfp-interest<br></div></blockquote></div><br></body></html>