\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\frac{\frac{2}{r}}{r} - \left(\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left|w \cdot r\right|\right) \cdot \left|w \cdot r\right| + \left(4.5 - 3\right)\right)double f(double v, double w, double r) {
double r18827 = 3.0;
double r18828 = 2.0;
double r18829 = r;
double r18830 = r18829 * r18829;
double r18831 = r18828 / r18830;
double r18832 = r18827 + r18831;
double r18833 = 0.125;
double r18834 = v;
double r18835 = r18828 * r18834;
double r18836 = r18827 - r18835;
double r18837 = r18833 * r18836;
double r18838 = w;
double r18839 = r18838 * r18838;
double r18840 = r18839 * r18829;
double r18841 = r18840 * r18829;
double r18842 = r18837 * r18841;
double r18843 = 1.0;
double r18844 = r18843 - r18834;
double r18845 = r18842 / r18844;
double r18846 = r18832 - r18845;
double r18847 = 4.5;
double r18848 = r18846 - r18847;
return r18848;
}
double f(double v, double w, double r) {
double r18849 = 2.0;
double r18850 = r;
double r18851 = r18849 / r18850;
double r18852 = r18851 / r18850;
double r18853 = 0.125;
double r18854 = 3.0;
double r18855 = v;
double r18856 = r18849 * r18855;
double r18857 = r18854 - r18856;
double r18858 = r18853 * r18857;
double r18859 = 1.0;
double r18860 = r18859 - r18855;
double r18861 = r18858 / r18860;
double r18862 = w;
double r18863 = r18862 * r18850;
double r18864 = fabs(r18863);
double r18865 = r18861 * r18864;
double r18866 = r18865 * r18864;
double r18867 = 4.5;
double r18868 = r18867 - r18854;
double r18869 = r18866 + r18868;
double r18870 = r18852 - r18869;
return r18870;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.1
Simplified8.6
rmApplied add-sqr-sqrt8.7
Simplified8.6
Simplified0.4
rmApplied associate-/r*0.4
rmApplied fma-udef0.4
Applied associate--l+0.4
rmApplied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2020049 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
:precision binary64
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))