\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(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \left(\left(\frac{\left(3 - v \cdot 2\right) \cdot 0.125}{\sqrt[3]{1 - v}} \cdot \sqrt{\sqrt{\frac{\frac{w \cdot r}{\sqrt[3]{1 - v}} \cdot \left(w \cdot r\right)}{\sqrt[3]{1 - v}}}}\right) \cdot \sqrt{\sqrt{\frac{\frac{w \cdot r}{\sqrt[3]{1 - v}} \cdot \left(w \cdot r\right)}{\sqrt[3]{1 - v}}}}\right) \cdot \sqrt{\frac{\frac{w \cdot r}{\sqrt[3]{1 - v}} \cdot \left(w \cdot r\right)}{\sqrt[3]{1 - v}}}double f(double v, double w, double r) {
double r933449 = 3.0;
double r933450 = 2.0;
double r933451 = r;
double r933452 = r933451 * r933451;
double r933453 = r933450 / r933452;
double r933454 = r933449 + r933453;
double r933455 = 0.125;
double r933456 = v;
double r933457 = r933450 * r933456;
double r933458 = r933449 - r933457;
double r933459 = r933455 * r933458;
double r933460 = w;
double r933461 = r933460 * r933460;
double r933462 = r933461 * r933451;
double r933463 = r933462 * r933451;
double r933464 = r933459 * r933463;
double r933465 = 1.0;
double r933466 = r933465 - r933456;
double r933467 = r933464 / r933466;
double r933468 = r933454 - r933467;
double r933469 = 4.5;
double r933470 = r933468 - r933469;
return r933470;
}
double f(double v, double w, double r) {
double r933471 = 2.0;
double r933472 = r;
double r933473 = r933472 * r933472;
double r933474 = r933471 / r933473;
double r933475 = 3.0;
double r933476 = 4.5;
double r933477 = r933475 - r933476;
double r933478 = r933474 + r933477;
double r933479 = v;
double r933480 = r933479 * r933471;
double r933481 = r933475 - r933480;
double r933482 = 0.125;
double r933483 = r933481 * r933482;
double r933484 = 1.0;
double r933485 = r933484 - r933479;
double r933486 = cbrt(r933485);
double r933487 = r933483 / r933486;
double r933488 = w;
double r933489 = r933488 * r933472;
double r933490 = r933489 / r933486;
double r933491 = r933490 * r933489;
double r933492 = r933491 / r933486;
double r933493 = sqrt(r933492);
double r933494 = sqrt(r933493);
double r933495 = r933487 * r933494;
double r933496 = r933495 * r933494;
double r933497 = r933496 * r933493;
double r933498 = r933478 - r933497;
return r933498;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.5
Simplified6.5
rmApplied add-cube-cbrt6.6
Applied times-frac0.5
Simplified0.5
rmApplied associate-*r/0.5
rmApplied add-sqr-sqrt0.5
Applied associate-*l*0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.6
Applied associate-*l*0.6
Final simplification0.6
herbie shell --seed 2019152
(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))