\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}\;r \le -6.18456472356048971 \cdot 10^{228}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \sqrt{\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\frac{1 - v}{\left(w \cdot \left(w \cdot r\right)\right) \cdot r}}} \cdot \sqrt{\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{\frac{1 - v}{\left(w \cdot \left(w \cdot r\right)\right) \cdot r}}}\right) - 4.5\\
\mathbf{elif}\;r \le 3.14482624006209324 \cdot 10^{168}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(w \cdot \left(\left(w \cdot r\right) \cdot r\right)\right)\right) - 4.5\\
\mathbf{else}:\\
\;\;\;\;\left(\left(3 + \frac{\sqrt{2}}{\frac{r \cdot r}{\sqrt{2}}}\right) - \frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left(\left(w \cdot \left(w \cdot r\right)\right) \cdot r\right)\right) - 4.5\\
\end{array}double f(double v, double w, double r) {
double r25552 = 3.0;
double r25553 = 2.0;
double r25554 = r;
double r25555 = r25554 * r25554;
double r25556 = r25553 / r25555;
double r25557 = r25552 + r25556;
double r25558 = 0.125;
double r25559 = v;
double r25560 = r25553 * r25559;
double r25561 = r25552 - r25560;
double r25562 = r25558 * r25561;
double r25563 = w;
double r25564 = r25563 * r25563;
double r25565 = r25564 * r25554;
double r25566 = r25565 * r25554;
double r25567 = r25562 * r25566;
double r25568 = 1.0;
double r25569 = r25568 - r25559;
double r25570 = r25567 / r25569;
double r25571 = r25557 - r25570;
double r25572 = 4.5;
double r25573 = r25571 - r25572;
return r25573;
}
double f(double v, double w, double r) {
double r25574 = r;
double r25575 = -6.18456472356049e+228;
bool r25576 = r25574 <= r25575;
double r25577 = 3.0;
double r25578 = 2.0;
double r25579 = r25574 * r25574;
double r25580 = r25578 / r25579;
double r25581 = r25577 + r25580;
double r25582 = 0.125;
double r25583 = v;
double r25584 = r25578 * r25583;
double r25585 = r25577 - r25584;
double r25586 = r25582 * r25585;
double r25587 = 1.0;
double r25588 = r25587 - r25583;
double r25589 = w;
double r25590 = r25589 * r25574;
double r25591 = r25589 * r25590;
double r25592 = r25591 * r25574;
double r25593 = r25588 / r25592;
double r25594 = r25586 / r25593;
double r25595 = sqrt(r25594);
double r25596 = r25595 * r25595;
double r25597 = r25581 - r25596;
double r25598 = 4.5;
double r25599 = r25597 - r25598;
double r25600 = 3.1448262400620932e+168;
bool r25601 = r25574 <= r25600;
double r25602 = r25586 / r25588;
double r25603 = r25590 * r25574;
double r25604 = r25589 * r25603;
double r25605 = r25602 * r25604;
double r25606 = r25581 - r25605;
double r25607 = r25606 - r25598;
double r25608 = sqrt(r25578);
double r25609 = r25579 / r25608;
double r25610 = r25608 / r25609;
double r25611 = r25577 + r25610;
double r25612 = r25602 * r25592;
double r25613 = r25611 - r25612;
double r25614 = r25613 - r25598;
double r25615 = r25601 ? r25607 : r25614;
double r25616 = r25576 ? r25599 : r25615;
return r25616;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
if r < -6.18456472356049e+228Initial program 42.2
rmApplied associate-/l*36.1
rmApplied associate-*l*0.6
rmApplied add-sqr-sqrt0.8
if -6.18456472356049e+228 < r < 3.1448262400620932e+168Initial program 9.8
rmApplied associate-/l*6.1
rmApplied associate-*l*3.0
rmApplied associate-/r/3.0
rmApplied associate-*l*1.0
if 3.1448262400620932e+168 < r Initial program 28.0
rmApplied associate-/l*21.3
rmApplied associate-*l*0.3
rmApplied associate-/r/0.3
rmApplied add-sqr-sqrt0.3
Applied associate-/l*0.3
Final simplification0.9
herbie shell --seed 2019199
(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))