\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(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(\left|w \cdot r\right| \cdot \left|w \cdot r\right|\right) + \left(4.5 - 3\right)\right)double f(double v, double w, double r) {
double r16743 = 3.0;
double r16744 = 2.0;
double r16745 = r;
double r16746 = r16745 * r16745;
double r16747 = r16744 / r16746;
double r16748 = r16743 + r16747;
double r16749 = 0.125;
double r16750 = v;
double r16751 = r16744 * r16750;
double r16752 = r16743 - r16751;
double r16753 = r16749 * r16752;
double r16754 = w;
double r16755 = r16754 * r16754;
double r16756 = r16755 * r16745;
double r16757 = r16756 * r16745;
double r16758 = r16753 * r16757;
double r16759 = 1.0;
double r16760 = r16759 - r16750;
double r16761 = r16758 / r16760;
double r16762 = r16748 - r16761;
double r16763 = 4.5;
double r16764 = r16762 - r16763;
return r16764;
}
double f(double v, double w, double r) {
double r16765 = 2.0;
double r16766 = r;
double r16767 = r16765 / r16766;
double r16768 = r16767 / r16766;
double r16769 = 0.125;
double r16770 = 3.0;
double r16771 = v;
double r16772 = r16765 * r16771;
double r16773 = r16770 - r16772;
double r16774 = r16769 * r16773;
double r16775 = 1.0;
double r16776 = r16775 - r16771;
double r16777 = r16774 / r16776;
double r16778 = w;
double r16779 = r16778 * r16766;
double r16780 = fabs(r16779);
double r16781 = r16780 * r16780;
double r16782 = r16777 * r16781;
double r16783 = 4.5;
double r16784 = r16783 - r16770;
double r16785 = r16782 + r16784;
double r16786 = r16768 - r16785;
return r16786;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.2
Simplified8.9
rmApplied add-sqr-sqrt8.9
Simplified8.9
Simplified0.4
rmApplied fma-udef0.4
Applied associate--l+0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2020033 +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))