<br><div class="gmail_quote">On Sun, Apr 15, 2012 at 5:16 PM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">> I would define the set of transformations, such as (i can help with<br>
> more complete list if you prefer):<br>
><br>
</div></div>>    - reassociation<br>
>    - x+0.0=>x<br>
>    - x*0.0=>0.0<br>
>    - x*1.0=>x<br>
>    - a/b => a* 1/b<br>
>    - a*b+c=>fma(a,b,c)<br>
>    - ignoring NaNs in compare, i.e. (a<b) => !(a>=b)<br>
>    - value unsafe transformation (for aggressive fp optimizations,<br>
<div class="im">> like a*b+a*c => a(b+c)) and other of the kind.<br>
><br>
> and several aliases for "strict", "precise", "fast" models (which are<br>
> effectively combination of flags above).<br>
<br>
</div>From a user's perspective, I think that it is important to have<br>
categories defining:<br>
 - finite math (as precise as normal, but might do odd things for NaNs<br>
   or Infty, etc.) - I'd suppose this is a strictest "fast" option.<br></blockquote><div><br></div><div>That's exactly "/fp:precise" or "-fp-model precise" in terms of MS and Intel Compiler options.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 - algebraic-equivalence - The compiler might do anything that is<br>
   algebraically the same (even if the numerics could be quite<br>
   different) - This is probably the loosest "fast" option.<br></blockquote><div><br></div><div>That's "/fp:fast" or "-fp-model fast" in terms on MS and Intel Compiler options.</div><div>
<br></div><div>Intel also supports "-fp-model fast=2" for the most aggressive optimizations.</div><div><br></div><div> </div></div><div>Dmitry.</div>