\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(\frac{0.125 \cdot \mathsf{fma}\left(v, -2, {\left(\sqrt[3]{3}\right)}^{3}\right) + \left(v \cdot \left(\left(-2\right) + 2\right)\right) \cdot 0.125}{1 - v}, \left|w \cdot r\right| \cdot \left|w \cdot r\right|, 4.5\right)double f(double v, double w, double r) {
double r26757 = 3.0;
double r26758 = 2.0;
double r26759 = r;
double r26760 = r26759 * r26759;
double r26761 = r26758 / r26760;
double r26762 = r26757 + r26761;
double r26763 = 0.125;
double r26764 = v;
double r26765 = r26758 * r26764;
double r26766 = r26757 - r26765;
double r26767 = r26763 * r26766;
double r26768 = w;
double r26769 = r26768 * r26768;
double r26770 = r26769 * r26759;
double r26771 = r26770 * r26759;
double r26772 = r26767 * r26771;
double r26773 = 1.0;
double r26774 = r26773 - r26764;
double r26775 = r26772 / r26774;
double r26776 = r26762 - r26775;
double r26777 = 4.5;
double r26778 = r26776 - r26777;
return r26778;
}
double f(double v, double w, double r) {
double r26779 = 3.0;
double r26780 = 2.0;
double r26781 = r;
double r26782 = r26780 / r26781;
double r26783 = r26782 / r26781;
double r26784 = r26779 + r26783;
double r26785 = 0.125;
double r26786 = v;
double r26787 = -r26780;
double r26788 = cbrt(r26779);
double r26789 = 3.0;
double r26790 = pow(r26788, r26789);
double r26791 = fma(r26786, r26787, r26790);
double r26792 = r26785 * r26791;
double r26793 = r26787 + r26780;
double r26794 = r26786 * r26793;
double r26795 = r26794 * r26785;
double r26796 = r26792 + r26795;
double r26797 = 1.0;
double r26798 = r26797 - r26786;
double r26799 = r26796 / r26798;
double r26800 = w;
double r26801 = r26800 * r26781;
double r26802 = fabs(r26801);
double r26803 = r26802 * r26802;
double r26804 = 4.5;
double r26805 = fma(r26799, r26803, r26804);
double r26806 = r26784 - r26805;
return r26806;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.7
Simplified8.5
rmApplied add-sqr-sqrt8.5
Simplified8.5
Simplified0.4
rmApplied associate-/r*0.4
rmApplied add-cube-cbrt0.4
Applied prod-diff0.4
Applied distribute-lft-in0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019347 +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))