\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(\left(3 + \frac{2}{r \cdot r}\right) - \sqrt{0.125} \cdot \left(\sqrt{\frac{3 - 2 \cdot v}{\frac{1 - v}{{\left(\left|w \cdot r\right|\right)}^{2}}}} \cdot \left(\sqrt{\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}} \cdot \left|\left|w \cdot r\right|\right|\right)\right)\right) - 4.5double f(double v, double w, double r) {
double r39547 = 3.0;
double r39548 = 2.0;
double r39549 = r;
double r39550 = r39549 * r39549;
double r39551 = r39548 / r39550;
double r39552 = r39547 + r39551;
double r39553 = 0.125;
double r39554 = v;
double r39555 = r39548 * r39554;
double r39556 = r39547 - r39555;
double r39557 = r39553 * r39556;
double r39558 = w;
double r39559 = r39558 * r39558;
double r39560 = r39559 * r39549;
double r39561 = r39560 * r39549;
double r39562 = r39557 * r39561;
double r39563 = 1.0;
double r39564 = r39563 - r39554;
double r39565 = r39562 / r39564;
double r39566 = r39552 - r39565;
double r39567 = 4.5;
double r39568 = r39566 - r39567;
return r39568;
}
double f(double v, double w, double r) {
double r39569 = 3.0;
double r39570 = 2.0;
double r39571 = r;
double r39572 = r39571 * r39571;
double r39573 = r39570 / r39572;
double r39574 = r39569 + r39573;
double r39575 = 0.125;
double r39576 = sqrt(r39575);
double r39577 = v;
double r39578 = r39570 * r39577;
double r39579 = r39569 - r39578;
double r39580 = 1.0;
double r39581 = r39580 - r39577;
double r39582 = w;
double r39583 = r39582 * r39571;
double r39584 = fabs(r39583);
double r39585 = 2.0;
double r39586 = pow(r39584, r39585);
double r39587 = r39581 / r39586;
double r39588 = r39579 / r39587;
double r39589 = sqrt(r39588);
double r39590 = r39575 * r39579;
double r39591 = r39590 / r39581;
double r39592 = sqrt(r39591);
double r39593 = fabs(r39584);
double r39594 = r39592 * r39593;
double r39595 = r39589 * r39594;
double r39596 = r39576 * r39595;
double r39597 = r39574 - r39596;
double r39598 = 4.5;
double r39599 = r39597 - r39598;
return r39599;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.8
rmApplied add-sqr-sqrt12.8
Simplified12.8
Simplified6.8
rmApplied add-sqr-sqrt6.8
Simplified6.8
Simplified0.5
rmApplied associate-/r/0.4
Applied sqrt-prod0.4
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.5
Applied sqrt-prod0.5
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
:precision binary64
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))