<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 want to include in the CFP agenda for February 12 a look at N3390 “Remove the imaginary I” and the ensuing WG14 email thread. Does CFP have any input for WG14 about the proposal? Following are a couple of things I noticed.<div><br></div><div>The proposal optionally adds a constant identifier <b>I</b> declared with <b>1.0i</b>, to support existing code that uses the <b>I</b> macro. If the constant identifier <b>I</b> is desired it should be declared with <b>1.0fi </b>rather than <b>1.0i</b>, to match the type of the <b>I</b> macro. </div><div><br></div><div>The proposal mentions that users who want to use the macro <b>I</b> can add</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>#include <complex.h></b></div><div><b>#define I _Complex_I</b></div></blockquote><div><br></div><div>I think it would be helpful to note this in the standard if the macro <b>I</b> is removed or obsolesced.</div><div><br></div><div>The proposal modifies the <b>cproj(z)</b> specification in 7.3.9.5 to replace the <b>I</b> with <b>1.0i</b> in the expression given as equivalent to <b>cproj(z)</b>. (<b>1.0i</b> instead of <b>1.0fi</b> is ok here since the expression type is <b>double</b> anyway.) The entire expression should be changed to</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b>CMPLX(INFINITY, copysign(0.0, cimag(z)))</b></div></blockquote><div><br></div><div>(because the current and suggested expressions would be affected by expression evaluation methods whereas the <b>cproj</b> function would not). This is addressed in a coming CFP proposal.</div><div><br></div><div>- Jim Thomas</div><div><br></div><div><div><br></div></div></body></html>