http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48602
--- Comment #10 from Thomas Henlich <thenlich at users dot sourceforge.net> 2011-04-16 15:46:14 UTC --- (In reply to comment #8) > (In reply to comment #7) > > - if ((m > 0.0 && m < 0.1 - 0.05 * rexp_d) || (rexp_d * (m + 0.5) >= 1.0) > > ||\ > > + if ((m > 0.0 && m < 0.1 - r * rexp_d) || (rexp_d * (m + r) >= 1.0) ||\ > > This can't be right, replacing 0.05 with r. It must be r / 10 or 0.1 * r. > > m < 0.1 - 0.1 * r * rexp_d > m < 0.1 * (1.0 - r * rexp_d) Jerry, there is a bug in your patch: You replaced 0.05 with r. This is not correct. In the original code the constant which is now r had a value of 0.5. So you must replace 0.05 from the original with 0.1 * r, which can be written either: if ((m > 0.0 && m < 0.1 - 0.1 * r * rexp_d) || (rexp_d * (m + r) >= 1.0) ||\ or if ((m > 0.0 && m < 0.1 * (1.0 - r * rexp_d)) || (rexp_d * (m + r) >= 1.0) ||\ Please post a corrected patch, so we are testing the same thing.