\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\frac{\frac{2}{r}}{r} - \left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left({\left(\sqrt{\left|w \cdot r\right|}\right)}^{3} \cdot \sqrt{\left|w \cdot r\right|}\right) + \left(4.5 - 3\right)\right)double f(double v, double w, double r) {
double r18596 = 3.0;
double r18597 = 2.0;
double r18598 = r;
double r18599 = r18598 * r18598;
double r18600 = r18597 / r18599;
double r18601 = r18596 + r18600;
double r18602 = 0.125;
double r18603 = v;
double r18604 = r18597 * r18603;
double r18605 = r18596 - r18604;
double r18606 = r18602 * r18605;
double r18607 = w;
double r18608 = r18607 * r18607;
double r18609 = r18608 * r18598;
double r18610 = r18609 * r18598;
double r18611 = r18606 * r18610;
double r18612 = 1.0;
double r18613 = r18612 - r18603;
double r18614 = r18611 / r18613;
double r18615 = r18601 - r18614;
double r18616 = 4.5;
double r18617 = r18615 - r18616;
return r18617;
}
double f(double v, double w, double r) {
double r18618 = 2.0;
double r18619 = r;
double r18620 = r18618 / r18619;
double r18621 = r18620 / r18619;
double r18622 = 0.125;
double r18623 = 3.0;
double r18624 = v;
double r18625 = r18618 * r18624;
double r18626 = r18623 - r18625;
double r18627 = r18622 * r18626;
double r18628 = 1.0;
double r18629 = r18628 - r18624;
double r18630 = r18627 / r18629;
double r18631 = w;
double r18632 = r18631 * r18619;
double r18633 = fabs(r18632);
double r18634 = sqrt(r18633);
double r18635 = 3.0;
double r18636 = pow(r18634, r18635);
double r18637 = r18636 * r18634;
double r18638 = r18630 * r18637;
double r18639 = 4.5;
double r18640 = r18639 - r18623;
double r18641 = r18638 + r18640;
double r18642 = r18621 - r18641;
return r18642;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.3
Simplified9.1
rmApplied add-sqr-sqrt9.1
Simplified9.1
Simplified0.4
rmApplied associate-/r*0.4
rmApplied fma-udef0.4
Applied associate--l+0.4
rmApplied add-sqr-sqrt0.5
Applied associate-*r*0.5
Simplified0.6
Final simplification0.6
herbie shell --seed 2020018 +o rules:numerics
(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))