\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 - \mathsf{fma}\left(\frac{0.125}{\frac{1 - v}{w \cdot r}} \cdot \left(w \cdot r\right), 3 - v \cdot 2, 4.5\right)\right) + \frac{\frac{2}{r}}{r}double f(double v, double w, double r) {
double r1384319 = 3.0;
double r1384320 = 2.0;
double r1384321 = r;
double r1384322 = r1384321 * r1384321;
double r1384323 = r1384320 / r1384322;
double r1384324 = r1384319 + r1384323;
double r1384325 = 0.125;
double r1384326 = v;
double r1384327 = r1384320 * r1384326;
double r1384328 = r1384319 - r1384327;
double r1384329 = r1384325 * r1384328;
double r1384330 = w;
double r1384331 = r1384330 * r1384330;
double r1384332 = r1384331 * r1384321;
double r1384333 = r1384332 * r1384321;
double r1384334 = r1384329 * r1384333;
double r1384335 = 1.0;
double r1384336 = r1384335 - r1384326;
double r1384337 = r1384334 / r1384336;
double r1384338 = r1384324 - r1384337;
double r1384339 = 4.5;
double r1384340 = r1384338 - r1384339;
return r1384340;
}
double f(double v, double w, double r) {
double r1384341 = 3.0;
double r1384342 = 0.125;
double r1384343 = 1.0;
double r1384344 = v;
double r1384345 = r1384343 - r1384344;
double r1384346 = w;
double r1384347 = r;
double r1384348 = r1384346 * r1384347;
double r1384349 = r1384345 / r1384348;
double r1384350 = r1384342 / r1384349;
double r1384351 = r1384350 * r1384348;
double r1384352 = 2.0;
double r1384353 = r1384344 * r1384352;
double r1384354 = r1384341 - r1384353;
double r1384355 = 4.5;
double r1384356 = fma(r1384351, r1384354, r1384355);
double r1384357 = r1384341 - r1384356;
double r1384358 = r1384352 / r1384347;
double r1384359 = r1384358 / r1384347;
double r1384360 = r1384357 + r1384359;
return r1384360;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.8
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied times-frac0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019168 +o rules:numerics
(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))