\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(4.5 - 3\right) + \left(0.125 \cdot \mathsf{fma}\left(-2, v, 3\right)\right) \cdot \frac{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}{1 - v}\right)double f(double v, double w, double r) {
double r887753 = 3.0;
double r887754 = 2.0;
double r887755 = r;
double r887756 = r887755 * r887755;
double r887757 = r887754 / r887756;
double r887758 = r887753 + r887757;
double r887759 = 0.125;
double r887760 = v;
double r887761 = r887754 * r887760;
double r887762 = r887753 - r887761;
double r887763 = r887759 * r887762;
double r887764 = w;
double r887765 = r887764 * r887764;
double r887766 = r887765 * r887755;
double r887767 = r887766 * r887755;
double r887768 = r887763 * r887767;
double r887769 = 1.0;
double r887770 = r887769 - r887760;
double r887771 = r887768 / r887770;
double r887772 = r887758 - r887771;
double r887773 = 4.5;
double r887774 = r887772 - r887773;
return r887774;
}
double f(double v, double w, double r) {
double r887775 = 2.0;
double r887776 = r;
double r887777 = r887775 / r887776;
double r887778 = r887777 / r887776;
double r887779 = 4.5;
double r887780 = 3.0;
double r887781 = r887779 - r887780;
double r887782 = 0.125;
double r887783 = -2.0;
double r887784 = v;
double r887785 = fma(r887783, r887784, r887780);
double r887786 = r887782 * r887785;
double r887787 = w;
double r887788 = r887787 * r887776;
double r887789 = r887788 * r887788;
double r887790 = 1.0;
double r887791 = r887790 - r887784;
double r887792 = r887789 / r887791;
double r887793 = r887786 * r887792;
double r887794 = r887781 + r887793;
double r887795 = r887778 - r887794;
return r887795;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.3
Simplified0.4
rmApplied associate-/r*0.4
rmApplied associate-*l/0.3
rmApplied fma-udef0.3
Applied associate--l+0.3
rmApplied div-inv0.3
Applied associate-*l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019139 +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))