\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 -2.529071314108289553216263398312709726481 \cdot 10^{188} \lor \neg \left(r \le 5.21395643917214503895832514072602417905 \cdot 10^{209}\right):\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\frac{0.125}{\frac{1 - v}{3 - 2 \cdot v}}}{\frac{\frac{1}{\left(r \cdot w\right) \cdot w}}{r}}\right) - 4.5\\
\mathbf{else}:\\
\;\;\;\;\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(3 - 2 \cdot v\right) \cdot 0.125}{\left(1 - v\right) \cdot \frac{\frac{1}{w}}{r \cdot \left(r \cdot w\right)}}\right) - 4.5\\
\end{array}double f(double v, double w, double r) {
double r61273 = 3.0;
double r61274 = 2.0;
double r61275 = r;
double r61276 = r61275 * r61275;
double r61277 = r61274 / r61276;
double r61278 = r61273 + r61277;
double r61279 = 0.125;
double r61280 = v;
double r61281 = r61274 * r61280;
double r61282 = r61273 - r61281;
double r61283 = r61279 * r61282;
double r61284 = w;
double r61285 = r61284 * r61284;
double r61286 = r61285 * r61275;
double r61287 = r61286 * r61275;
double r61288 = r61283 * r61287;
double r61289 = 1.0;
double r61290 = r61289 - r61280;
double r61291 = r61288 / r61290;
double r61292 = r61278 - r61291;
double r61293 = 4.5;
double r61294 = r61292 - r61293;
return r61294;
}
double f(double v, double w, double r) {
double r61295 = r;
double r61296 = -2.5290713141082896e+188;
bool r61297 = r61295 <= r61296;
double r61298 = 5.213956439172145e+209;
bool r61299 = r61295 <= r61298;
double r61300 = !r61299;
bool r61301 = r61297 || r61300;
double r61302 = 3.0;
double r61303 = 2.0;
double r61304 = r61295 * r61295;
double r61305 = r61303 / r61304;
double r61306 = r61302 + r61305;
double r61307 = 0.125;
double r61308 = 1.0;
double r61309 = v;
double r61310 = r61308 - r61309;
double r61311 = r61303 * r61309;
double r61312 = r61302 - r61311;
double r61313 = r61310 / r61312;
double r61314 = r61307 / r61313;
double r61315 = 1.0;
double r61316 = w;
double r61317 = r61295 * r61316;
double r61318 = r61317 * r61316;
double r61319 = r61315 / r61318;
double r61320 = r61319 / r61295;
double r61321 = r61314 / r61320;
double r61322 = r61306 - r61321;
double r61323 = 4.5;
double r61324 = r61322 - r61323;
double r61325 = r61312 * r61307;
double r61326 = r61315 / r61316;
double r61327 = r61295 * r61317;
double r61328 = r61326 / r61327;
double r61329 = r61310 * r61328;
double r61330 = r61325 / r61329;
double r61331 = r61306 - r61330;
double r61332 = r61331 - r61323;
double r61333 = r61301 ? r61324 : r61332;
return r61333;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
if r < -2.5290713141082896e+188 or 5.213956439172145e+209 < r Initial program 35.0
rmApplied associate-/l*27.7
Simplified7.1
rmApplied *-un-lft-identity7.1
Applied div-inv7.1
Applied times-frac0.4
Applied associate-/r*0.4
Simplified0.4
if -2.5290713141082896e+188 < r < 5.213956439172145e+209Initial program 9.6
rmApplied associate-/l*5.6
Simplified3.4
rmApplied *-un-lft-identity3.4
Applied div-inv3.4
Applied times-frac3.0
Simplified3.0
Simplified0.7
Final simplification0.6
herbie shell --seed 2019194
(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))