\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 + \frac{\frac{2}{r}}{r}\right) - \mathsf{fma}\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right), \frac{0.125}{1 - v} \cdot \left(3 - v \cdot 2\right), 4.5\right)double f(double v, double w, double r) {
double r1182800 = 3.0;
double r1182801 = 2.0;
double r1182802 = r;
double r1182803 = r1182802 * r1182802;
double r1182804 = r1182801 / r1182803;
double r1182805 = r1182800 + r1182804;
double r1182806 = 0.125;
double r1182807 = v;
double r1182808 = r1182801 * r1182807;
double r1182809 = r1182800 - r1182808;
double r1182810 = r1182806 * r1182809;
double r1182811 = w;
double r1182812 = r1182811 * r1182811;
double r1182813 = r1182812 * r1182802;
double r1182814 = r1182813 * r1182802;
double r1182815 = r1182810 * r1182814;
double r1182816 = 1.0;
double r1182817 = r1182816 - r1182807;
double r1182818 = r1182815 / r1182817;
double r1182819 = r1182805 - r1182818;
double r1182820 = 4.5;
double r1182821 = r1182819 - r1182820;
return r1182821;
}
double f(double v, double w, double r) {
double r1182822 = 3.0;
double r1182823 = 2.0;
double r1182824 = r;
double r1182825 = r1182823 / r1182824;
double r1182826 = r1182825 / r1182824;
double r1182827 = r1182822 + r1182826;
double r1182828 = w;
double r1182829 = r1182828 * r1182824;
double r1182830 = r1182829 * r1182829;
double r1182831 = 0.125;
double r1182832 = 1.0;
double r1182833 = v;
double r1182834 = r1182832 - r1182833;
double r1182835 = r1182831 / r1182834;
double r1182836 = r1182833 * r1182823;
double r1182837 = r1182822 - r1182836;
double r1182838 = r1182835 * r1182837;
double r1182839 = 4.5;
double r1182840 = fma(r1182830, r1182838, r1182839);
double r1182841 = r1182827 - r1182840;
return r1182841;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.7
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019172 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3.0 (/ 2.0 (* r r))) (/ (* (* 0.125 (- 3.0 (* 2.0 v))) (* (* (* w w) r) r)) (- 1.0 v))) 4.5))