\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\left(\left(3 - \frac{0.125 \cdot w}{\frac{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}{r}} \cdot \left(w \cdot r\right)\right) - 4.5\right) + \frac{\frac{2}{r}}{r}double f(double v, double w, double r) {
double r1257849 = 3.0;
double r1257850 = 2.0;
double r1257851 = r;
double r1257852 = r1257851 * r1257851;
double r1257853 = r1257850 / r1257852;
double r1257854 = r1257849 + r1257853;
double r1257855 = 0.125;
double r1257856 = v;
double r1257857 = r1257850 * r1257856;
double r1257858 = r1257849 - r1257857;
double r1257859 = r1257855 * r1257858;
double r1257860 = w;
double r1257861 = r1257860 * r1257860;
double r1257862 = r1257861 * r1257851;
double r1257863 = r1257862 * r1257851;
double r1257864 = r1257859 * r1257863;
double r1257865 = 1.0;
double r1257866 = r1257865 - r1257856;
double r1257867 = r1257864 / r1257866;
double r1257868 = r1257854 - r1257867;
double r1257869 = 4.5;
double r1257870 = r1257868 - r1257869;
return r1257870;
}
double f(double v, double w, double r) {
double r1257871 = 3.0;
double r1257872 = 0.125;
double r1257873 = w;
double r1257874 = r1257872 * r1257873;
double r1257875 = 1.0;
double r1257876 = v;
double r1257877 = r1257875 - r1257876;
double r1257878 = -2.0;
double r1257879 = fma(r1257878, r1257876, r1257871);
double r1257880 = r1257877 / r1257879;
double r1257881 = r;
double r1257882 = r1257880 / r1257881;
double r1257883 = r1257874 / r1257882;
double r1257884 = r1257873 * r1257881;
double r1257885 = r1257883 * r1257884;
double r1257886 = r1257871 - r1257885;
double r1257887 = 4.5;
double r1257888 = r1257886 - r1257887;
double r1257889 = 2.0;
double r1257890 = r1257889 / r1257881;
double r1257891 = r1257890 / r1257881;
double r1257892 = r1257888 + r1257891;
return r1257892;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.3
Simplified0.3
rmApplied associate-/r*0.3
rmApplied fma-udef0.3
Applied associate--r+0.3
rmApplied associate-/l*0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.3
Applied associate-/r*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019142 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))