\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\mathsf{fma}\left({\left(\left|w \cdot r\right|\right)}^{2}, -\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, 3 + \frac{\frac{2}{r}}{r}\right) - 4.5double f(double v, double w, double r) {
double r27377 = 3.0;
double r27378 = 2.0;
double r27379 = r;
double r27380 = r27379 * r27379;
double r27381 = r27378 / r27380;
double r27382 = r27377 + r27381;
double r27383 = 0.125;
double r27384 = v;
double r27385 = r27378 * r27384;
double r27386 = r27377 - r27385;
double r27387 = r27383 * r27386;
double r27388 = w;
double r27389 = r27388 * r27388;
double r27390 = r27389 * r27379;
double r27391 = r27390 * r27379;
double r27392 = r27387 * r27391;
double r27393 = 1.0;
double r27394 = r27393 - r27384;
double r27395 = r27392 / r27394;
double r27396 = r27382 - r27395;
double r27397 = 4.5;
double r27398 = r27396 - r27397;
return r27398;
}
double f(double v, double w, double r) {
double r27399 = w;
double r27400 = r;
double r27401 = r27399 * r27400;
double r27402 = fabs(r27401);
double r27403 = 2.0;
double r27404 = pow(r27402, r27403);
double r27405 = 0.125;
double r27406 = 3.0;
double r27407 = 2.0;
double r27408 = v;
double r27409 = r27407 * r27408;
double r27410 = r27406 - r27409;
double r27411 = r27405 * r27410;
double r27412 = 1.0;
double r27413 = r27412 - r27408;
double r27414 = r27411 / r27413;
double r27415 = -r27414;
double r27416 = r27407 / r27400;
double r27417 = r27416 / r27400;
double r27418 = r27406 + r27417;
double r27419 = fma(r27404, r27415, r27418);
double r27420 = 4.5;
double r27421 = r27419 - r27420;
return r27421;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.7
Simplified8.6
rmApplied add-sqr-sqrt8.7
Simplified8.7
Simplified0.4
rmApplied associate-/r*0.4
rmApplied fma-udef0.4
Applied associate--r+0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019199 +o rules:numerics
(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))