<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div>I suggest that CFP propose adding a note such as the following to accompany the new specification for an imaginary suffix. Here bold indicates code typeface.</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>NOTE Since <b>i</b> suffixed constants are of complex type and have a +0 real part, their use is problematic where signed zeros and infinities are involved. For example, with ISO/IEC 60559 arithmetic,</div><div><b><br></b></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>-0.0 + 1.0i<span class="Apple-tab-span" style="white-space:pre"> </span></b>yields<span class="Apple-tab-span" style="white-space:pre"> </span><font color="#c00000" face="Symbol" size="2"><span style="caret-color: rgb(192, 0, 0);">-</span></font>0 + (+0 + <i>i</i>) = +0 + <i>I</i></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>-1.0i</b> <span class="Apple-tab-span" style="white-space:pre"> </span>yields <span class="Apple-tab-span" style="white-space:pre"> </span>-(+0 + i) = -0 - <i>I</i></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>INFINITY * 1.0i</b> <span class="Apple-tab-span" style="white-space:pre"> </span>yields <span class="Apple-tab-span" style="white-space:pre"> </span>inf * (+0 + <i>i</i>) = NaN + inf<i> i</i>. </div></blockquote></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><br></div><div>The <b>CMPLX</b> macros in <b><complex.h></b> can be used to straightforwardly obtain particular values involving signed zeros and infinities. For example, corresponding to the cases above,</div><div><b><br></b></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>CMPLX(-0.0, 1.0)</b> <span class="Apple-tab-span" style="white-space:pre"> </span>yields<span class="Apple-tab-span" style="white-space:pre"> </span>-0 + <i>I</i></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>CMPLX(0.0, -1.0)</b> <span class="Apple-tab-span" style="white-space:pre"> </span>yields <span class="Apple-tab-span" style="white-space:pre"> </span>+0 - <i>I</i></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>CMPLX(0.0, INFINITY)</b> <span class="Apple-tab-span" style="white-space:pre"> </span>yields <span class="Apple-tab-span" style="white-space:pre"> </span>+0 + inf <i>i</i></div></blockquote></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><br></div></blockquote><br><div>- Jim Thomas</div></body></html>