\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(3 + \frac{\frac{2}{r}}{r}\right) - \mathsf{fma}\left(\left(w \cdot r\right) \cdot \left(w \cdot r\right), \frac{0.125}{1 - v} \cdot \mathsf{fma}\left(v, -2, 3\right), 4.5\right)double f(double v, double w, double r) {
double r28393 = 3.0;
double r28394 = 2.0;
double r28395 = r;
double r28396 = r28395 * r28395;
double r28397 = r28394 / r28396;
double r28398 = r28393 + r28397;
double r28399 = 0.125;
double r28400 = v;
double r28401 = r28394 * r28400;
double r28402 = r28393 - r28401;
double r28403 = r28399 * r28402;
double r28404 = w;
double r28405 = r28404 * r28404;
double r28406 = r28405 * r28395;
double r28407 = r28406 * r28395;
double r28408 = r28403 * r28407;
double r28409 = 1.0;
double r28410 = r28409 - r28400;
double r28411 = r28408 / r28410;
double r28412 = r28398 - r28411;
double r28413 = 4.5;
double r28414 = r28412 - r28413;
return r28414;
}
double f(double v, double w, double r) {
double r28415 = 3.0;
double r28416 = 2.0;
double r28417 = r;
double r28418 = r28416 / r28417;
double r28419 = r28418 / r28417;
double r28420 = r28415 + r28419;
double r28421 = w;
double r28422 = r28421 * r28417;
double r28423 = r28422 * r28422;
double r28424 = 0.125;
double r28425 = 1.0;
double r28426 = v;
double r28427 = r28425 - r28426;
double r28428 = r28424 / r28427;
double r28429 = -r28416;
double r28430 = fma(r28426, r28429, r28415);
double r28431 = r28428 * r28430;
double r28432 = 4.5;
double r28433 = fma(r28423, r28431, r28432);
double r28434 = r28420 - r28433;
return r28434;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.8
Simplified12.7
Taylor expanded around 0 17.1
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019194 +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))