\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(3 - \mathsf{fma}\left(\frac{\left(w \cdot r\right) \cdot 0.125}{\frac{1 - v}{\mathsf{fma}\left(-2, v, 3\right)}}, w \cdot r, 4.5\right)\right) + \frac{\frac{2}{r}}{r}double f(double v, double w, double r) {
double r1086702 = 3.0;
double r1086703 = 2.0;
double r1086704 = r;
double r1086705 = r1086704 * r1086704;
double r1086706 = r1086703 / r1086705;
double r1086707 = r1086702 + r1086706;
double r1086708 = 0.125;
double r1086709 = v;
double r1086710 = r1086703 * r1086709;
double r1086711 = r1086702 - r1086710;
double r1086712 = r1086708 * r1086711;
double r1086713 = w;
double r1086714 = r1086713 * r1086713;
double r1086715 = r1086714 * r1086704;
double r1086716 = r1086715 * r1086704;
double r1086717 = r1086712 * r1086716;
double r1086718 = 1.0;
double r1086719 = r1086718 - r1086709;
double r1086720 = r1086717 / r1086719;
double r1086721 = r1086707 - r1086720;
double r1086722 = 4.5;
double r1086723 = r1086721 - r1086722;
return r1086723;
}
double f(double v, double w, double r) {
double r1086724 = 3.0;
double r1086725 = w;
double r1086726 = r;
double r1086727 = r1086725 * r1086726;
double r1086728 = 0.125;
double r1086729 = r1086727 * r1086728;
double r1086730 = 1.0;
double r1086731 = v;
double r1086732 = r1086730 - r1086731;
double r1086733 = -2.0;
double r1086734 = fma(r1086733, r1086731, r1086724);
double r1086735 = r1086732 / r1086734;
double r1086736 = r1086729 / r1086735;
double r1086737 = 4.5;
double r1086738 = fma(r1086736, r1086727, r1086737);
double r1086739 = r1086724 - r1086738;
double r1086740 = 2.0;
double r1086741 = r1086740 / r1086726;
double r1086742 = r1086741 / r1086726;
double r1086743 = r1086739 + r1086742;
return r1086743;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.2
Simplified0.3
rmApplied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019144 +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))