Hi,<br><br><div class="gmail_quote">On Jan 7, 2008 1:16 PM, Timothy Hochberg &lt;<a href="mailto:tim.hochberg@ieee.org">tim.hochberg@ieee.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>Another possible approach is to treat downcasting similar to underflow. That is give it it&#39;s own flag in the errstate and people can set it to ignore, warn or raise on downcasting as desired. One could potentially have two flags, one for downcasting across kinds (float-&gt;int, int-&gt;bool) and one for downcasting within kinds (float64-&gt;float32). In this case, I personally would set the first to raise and the second to ignore and would suggest that as the default.
<br><br>IMO:<br><ol><li>It&#39;s a no brainer to raise and exception when assigning a complex value to a float or integer target. Using &quot;Z.real&quot; or &quot;Z.imag&quot; is clearer and has the same performance.</li>

<li>I&#39;m fairly dubious about assigning float to ints as is. First off it looks like a bug magnet to me due to accidentally assigning a floating point value to a target that one believes to be float but is in fact integer. Second, C-style rounding is pretty evil; it&#39;s not always consistent across platforms, so relying on it for anything other than truncating already integral values is asking for trouble.
</li><li>Downcasting within kinds seems much less hazardous than downcasting across kinds, although I&#39;d still be happy to be able regulate it with errstate.<br></li></ol></blockquote><div>Maybe a combination of a typecast function and the errstate would work well. The typecast function would provide a clear local override of the default errstate flags, while the user would have the option to specify what sort of behavior they care about in general.
<br>&nbsp;<br>Chuck<br></div><br></div><br>