\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{\frac{2}{r}}{r}\right) - \frac{3 - v \cdot 2}{\frac{1 - v}{r \cdot w} \cdot \frac{\frac{\frac{1}{r}}{w}}{0.125}}\right) - 4.5double f(double v, double w, double r) {
double r1620826 = 3.0;
double r1620827 = 2.0;
double r1620828 = r;
double r1620829 = r1620828 * r1620828;
double r1620830 = r1620827 / r1620829;
double r1620831 = r1620826 + r1620830;
double r1620832 = 0.125;
double r1620833 = v;
double r1620834 = r1620827 * r1620833;
double r1620835 = r1620826 - r1620834;
double r1620836 = r1620832 * r1620835;
double r1620837 = w;
double r1620838 = r1620837 * r1620837;
double r1620839 = r1620838 * r1620828;
double r1620840 = r1620839 * r1620828;
double r1620841 = r1620836 * r1620840;
double r1620842 = 1.0;
double r1620843 = r1620842 - r1620833;
double r1620844 = r1620841 / r1620843;
double r1620845 = r1620831 - r1620844;
double r1620846 = 4.5;
double r1620847 = r1620845 - r1620846;
return r1620847;
}
double f(double v, double w, double r) {
double r1620848 = 3.0;
double r1620849 = 2.0;
double r1620850 = r;
double r1620851 = r1620849 / r1620850;
double r1620852 = r1620851 / r1620850;
double r1620853 = r1620848 + r1620852;
double r1620854 = v;
double r1620855 = r1620854 * r1620849;
double r1620856 = r1620848 - r1620855;
double r1620857 = 1.0;
double r1620858 = r1620857 - r1620854;
double r1620859 = w;
double r1620860 = r1620850 * r1620859;
double r1620861 = r1620858 / r1620860;
double r1620862 = r1620857 / r1620850;
double r1620863 = r1620862 / r1620859;
double r1620864 = 0.125;
double r1620865 = r1620863 / r1620864;
double r1620866 = r1620861 * r1620865;
double r1620867 = r1620856 / r1620866;
double r1620868 = r1620853 - r1620867;
double r1620869 = 4.5;
double r1620870 = r1620868 - r1620869;
return r1620870;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.2
Simplified0.3
rmApplied associate-/r*0.3
rmApplied div-inv0.4
Applied associate-/r*0.4
rmApplied add-cube-cbrt0.4
Applied times-frac0.3
Simplified0.3
Simplified0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.3
Applied associate-/l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019162
(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))