\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\begin{array}{l}
\mathbf{if}\;w \cdot w \le 7.974423119306558207376816144501589409833 \cdot 10^{94}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}} \cdot \frac{w \cdot \left(w \cdot r\right)}{\sqrt[3]{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}}}\right) \cdot \frac{r}{\sqrt[3]{\sqrt[3]{1 - v}}}\right) - 4.5\\
\mathbf{else}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\sqrt[3]{1 - v} \cdot \sqrt[3]{1 - v}} \cdot \frac{w \cdot \left(\left(w \cdot r\right) \cdot r\right)}{\sqrt[3]{1 - v}}\right) - 4.5\\
\end{array}double f(double v, double w, double r) {
double r27772 = 3.0;
double r27773 = 2.0;
double r27774 = r;
double r27775 = r27774 * r27774;
double r27776 = r27773 / r27775;
double r27777 = r27772 + r27776;
double r27778 = 0.125;
double r27779 = v;
double r27780 = r27773 * r27779;
double r27781 = r27772 - r27780;
double r27782 = r27778 * r27781;
double r27783 = w;
double r27784 = r27783 * r27783;
double r27785 = r27784 * r27774;
double r27786 = r27785 * r27774;
double r27787 = r27782 * r27786;
double r27788 = 1.0;
double r27789 = r27788 - r27779;
double r27790 = r27787 / r27789;
double r27791 = r27777 - r27790;
double r27792 = 4.5;
double r27793 = r27791 - r27792;
return r27793;
}
double f(double v, double w, double r) {
double r27794 = w;
double r27795 = r27794 * r27794;
double r27796 = 7.974423119306558e+94;
bool r27797 = r27795 <= r27796;
double r27798 = 3.0;
double r27799 = 2.0;
double r27800 = r;
double r27801 = r27800 * r27800;
double r27802 = r27799 / r27801;
double r27803 = r27798 + r27802;
double r27804 = 0.125;
double r27805 = v;
double r27806 = r27799 * r27805;
double r27807 = r27798 - r27806;
double r27808 = r27804 * r27807;
double r27809 = 1.0;
double r27810 = r27809 - r27805;
double r27811 = cbrt(r27810);
double r27812 = r27811 * r27811;
double r27813 = r27808 / r27812;
double r27814 = r27794 * r27800;
double r27815 = r27794 * r27814;
double r27816 = cbrt(r27812);
double r27817 = r27815 / r27816;
double r27818 = r27813 * r27817;
double r27819 = cbrt(r27811);
double r27820 = r27800 / r27819;
double r27821 = r27818 * r27820;
double r27822 = r27803 - r27821;
double r27823 = 4.5;
double r27824 = r27822 - r27823;
double r27825 = r27814 * r27800;
double r27826 = r27794 * r27825;
double r27827 = r27826 / r27811;
double r27828 = r27813 * r27827;
double r27829 = r27803 - r27828;
double r27830 = r27829 - r27823;
double r27831 = r27797 ? r27824 : r27830;
return r27831;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
if (* w w) < 7.974423119306558e+94Initial program 8.5
rmApplied associate-*l*4.4
rmApplied add-cube-cbrt4.5
Applied times-frac0.4
rmApplied add-cube-cbrt0.4
Applied cbrt-prod0.4
Applied times-frac0.5
Applied associate-*r*0.5
if 7.974423119306558e+94 < (* w w) Initial program 30.6
rmApplied associate-*l*22.8
rmApplied add-cube-cbrt22.9
Applied times-frac12.3
rmApplied associate-*l*0.7
Final simplification0.5
herbie shell --seed 2019209
(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))