\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{\frac{2}{r}}{r} - \sqrt{\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) \cdot \frac{\left(3 - v \cdot 2\right) \cdot 0.125}{1 - v}} \cdot \left(\sqrt{\frac{\left(3 - v \cdot 2\right) \cdot 0.125}{1 - v}} \cdot \sqrt{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}\right)\right) + \left(3 - 4.5\right)double f(double v, double w, double r) {
double r1641394 = 3.0;
double r1641395 = 2.0;
double r1641396 = r;
double r1641397 = r1641396 * r1641396;
double r1641398 = r1641395 / r1641397;
double r1641399 = r1641394 + r1641398;
double r1641400 = 0.125;
double r1641401 = v;
double r1641402 = r1641395 * r1641401;
double r1641403 = r1641394 - r1641402;
double r1641404 = r1641400 * r1641403;
double r1641405 = w;
double r1641406 = r1641405 * r1641405;
double r1641407 = r1641406 * r1641396;
double r1641408 = r1641407 * r1641396;
double r1641409 = r1641404 * r1641408;
double r1641410 = 1.0;
double r1641411 = r1641410 - r1641401;
double r1641412 = r1641409 / r1641411;
double r1641413 = r1641399 - r1641412;
double r1641414 = 4.5;
double r1641415 = r1641413 - r1641414;
return r1641415;
}
double f(double v, double w, double r) {
double r1641416 = 2.0;
double r1641417 = r;
double r1641418 = r1641416 / r1641417;
double r1641419 = r1641418 / r1641417;
double r1641420 = w;
double r1641421 = r1641420 * r1641417;
double r1641422 = r1641421 * r1641421;
double r1641423 = 3.0;
double r1641424 = v;
double r1641425 = r1641424 * r1641416;
double r1641426 = r1641423 - r1641425;
double r1641427 = 0.125;
double r1641428 = r1641426 * r1641427;
double r1641429 = 1.0;
double r1641430 = r1641429 - r1641424;
double r1641431 = r1641428 / r1641430;
double r1641432 = r1641422 * r1641431;
double r1641433 = sqrt(r1641432);
double r1641434 = sqrt(r1641431);
double r1641435 = sqrt(r1641422);
double r1641436 = r1641434 * r1641435;
double r1641437 = r1641433 * r1641436;
double r1641438 = r1641419 - r1641437;
double r1641439 = 4.5;
double r1641440 = r1641423 - r1641439;
double r1641441 = r1641438 + r1641440;
return r1641441;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.2
Simplified0.3
rmApplied associate-/r*0.3
rmApplied div-inv0.3
Applied associate-*l*0.3
Simplified0.3
rmApplied add-sqr-sqrt0.4
rmApplied sqrt-prod0.4
Final simplification0.4
herbie shell --seed 2019200
(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))