I get rounding errors for some odd cases when running one of the programs in the Computer Language Shootout with Hipe. So far I have only seen it on 32-bit (x86) targets.<br><br>I am guessing this might be a known problem/limitation in Hipe. I have however not seen any previous bug reports on it, so better safe than sorry; Here is a minimal test program with different results for byte code and natively compiled code. <br>
<br>> otp_src_R12B-5/bin/erlc testmath.erl     <br>> otp_src_R12B-5/bin/erl -noshell -run testmath main<br>0.0<br>> otp_src_R12B-5/bin/erlc +native testmath.erl<br>> otp_src_R12B-5/bin/erl -noshell -run testmath main<br>



3.122502256758253e-17<br><br>> uname -a<br>Linux host 2.6.16.53-0.16-smp #1 SMP Tue Oct 2 16:57:49 UTC 2007 i686 i686 i386 GNU/Linux<br>---<br><br>-module(testmath).<br>-export([main/0]).<br><br>main()-><br>    foo(2/1600).<br>

<br>foo(Y)-><br>    io:format("~p~n",[Y*1200-1.5]),<br>    halt(0).<br><br>Best Regards /Fredrik Svahn<br>