\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} - \mathsf{fma}\left(0.125 \cdot \left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{1 - v} \cdot \left(r \cdot w\right)\right), r \cdot w, 4.5 - 3\right)double f(double v, double w, double r) {
double r1381282 = 3.0;
double r1381283 = 2.0;
double r1381284 = r;
double r1381285 = r1381284 * r1381284;
double r1381286 = r1381283 / r1381285;
double r1381287 = r1381282 + r1381286;
double r1381288 = 0.125;
double r1381289 = v;
double r1381290 = r1381283 * r1381289;
double r1381291 = r1381282 - r1381290;
double r1381292 = r1381288 * r1381291;
double r1381293 = w;
double r1381294 = r1381293 * r1381293;
double r1381295 = r1381294 * r1381284;
double r1381296 = r1381295 * r1381284;
double r1381297 = r1381292 * r1381296;
double r1381298 = 1.0;
double r1381299 = r1381298 - r1381289;
double r1381300 = r1381297 / r1381299;
double r1381301 = r1381287 - r1381300;
double r1381302 = 4.5;
double r1381303 = r1381301 - r1381302;
return r1381303;
}
double f(double v, double w, double r) {
double r1381304 = 2.0;
double r1381305 = r;
double r1381306 = r1381304 / r1381305;
double r1381307 = r1381306 / r1381305;
double r1381308 = 0.125;
double r1381309 = v;
double r1381310 = -2.0;
double r1381311 = 3.0;
double r1381312 = fma(r1381309, r1381310, r1381311);
double r1381313 = 1.0;
double r1381314 = r1381313 - r1381309;
double r1381315 = r1381312 / r1381314;
double r1381316 = w;
double r1381317 = r1381305 * r1381316;
double r1381318 = r1381315 * r1381317;
double r1381319 = r1381308 * r1381318;
double r1381320 = 4.5;
double r1381321 = r1381320 - r1381311;
double r1381322 = fma(r1381319, r1381317, r1381321);
double r1381323 = r1381307 - r1381322;
return r1381323;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.2
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied add-sqr-sqrt0.9
Applied prod-diff0.9
Simplified0.6
Simplified0.3
rmApplied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019162 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))