\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 + \sqrt{\frac{\frac{2}{r}}{r}} \cdot \sqrt{\frac{\frac{2}{r}}{r}}\right) - \left(4.5 + \left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) \cdot \frac{(v \cdot -2 + 3)_*}{\frac{1 - v}{0.125}}\right)double f(double v, double w, double r) {
double r13496424 = 3.0;
double r13496425 = 2.0;
double r13496426 = r;
double r13496427 = r13496426 * r13496426;
double r13496428 = r13496425 / r13496427;
double r13496429 = r13496424 + r13496428;
double r13496430 = 0.125;
double r13496431 = v;
double r13496432 = r13496425 * r13496431;
double r13496433 = r13496424 - r13496432;
double r13496434 = r13496430 * r13496433;
double r13496435 = w;
double r13496436 = r13496435 * r13496435;
double r13496437 = r13496436 * r13496426;
double r13496438 = r13496437 * r13496426;
double r13496439 = r13496434 * r13496438;
double r13496440 = 1.0;
double r13496441 = r13496440 - r13496431;
double r13496442 = r13496439 / r13496441;
double r13496443 = r13496429 - r13496442;
double r13496444 = 4.5;
double r13496445 = r13496443 - r13496444;
return r13496445;
}
double f(double v, double w, double r) {
double r13496446 = 3.0;
double r13496447 = 2.0;
double r13496448 = r;
double r13496449 = r13496447 / r13496448;
double r13496450 = r13496449 / r13496448;
double r13496451 = sqrt(r13496450);
double r13496452 = r13496451 * r13496451;
double r13496453 = r13496446 + r13496452;
double r13496454 = 4.5;
double r13496455 = w;
double r13496456 = r13496448 * r13496455;
double r13496457 = r13496456 * r13496456;
double r13496458 = v;
double r13496459 = -2.0;
double r13496460 = fma(r13496458, r13496459, r13496446);
double r13496461 = 1.0;
double r13496462 = r13496461 - r13496458;
double r13496463 = 0.125;
double r13496464 = r13496462 / r13496463;
double r13496465 = r13496460 / r13496464;
double r13496466 = r13496457 * r13496465;
double r13496467 = r13496454 + r13496466;
double r13496468 = r13496453 - r13496467;
return r13496468;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.0
Simplified0.4
rmApplied fma-udef0.4
rmApplied associate-/r*0.4
rmApplied add-sqr-sqrt0.5
Final simplification0.5
herbie shell --seed 2019104 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))