\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 r17720 = 3.0;
double r17721 = 2.0;
double r17722 = r;
double r17723 = r17722 * r17722;
double r17724 = r17721 / r17723;
double r17725 = r17720 + r17724;
double r17726 = 0.125;
double r17727 = v;
double r17728 = r17721 * r17727;
double r17729 = r17720 - r17728;
double r17730 = r17726 * r17729;
double r17731 = w;
double r17732 = r17731 * r17731;
double r17733 = r17732 * r17722;
double r17734 = r17733 * r17722;
double r17735 = r17730 * r17734;
double r17736 = 1.0;
double r17737 = r17736 - r17727;
double r17738 = r17735 / r17737;
double r17739 = r17725 - r17738;
double r17740 = 4.5;
double r17741 = r17739 - r17740;
return r17741;
}
double f(double v, double w, double r) {
double r17742 = 2.0;
double r17743 = r;
double r17744 = r17742 / r17743;
double r17745 = r17744 / r17743;
double r17746 = 0.125;
double r17747 = 3.0;
double r17748 = v;
double r17749 = r17742 * r17748;
double r17750 = r17747 - r17749;
double r17751 = r17746 * r17750;
double r17752 = 1.0;
double r17753 = r17752 - r17748;
double r17754 = r17751 / r17753;
double r17755 = w;
double r17756 = r17755 * r17743;
double r17757 = fabs(r17756);
double r17758 = r17754 * r17757;
double r17759 = r17758 * r17757;
double r17760 = 4.5;
double r17761 = r17760 - r17747;
double r17762 = r17759 + r17761;
double r17763 = r17745 - r17762;
return r17763;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.2
Simplified8.8
rmApplied add-sqr-sqrt8.9
Simplified8.8
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 2019362 +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))