\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 \left(3 - v \cdot 2\right), 4.5\right)double f(double v, double w, double r) {
double r1310278 = 3.0;
double r1310279 = 2.0;
double r1310280 = r;
double r1310281 = r1310280 * r1310280;
double r1310282 = r1310279 / r1310281;
double r1310283 = r1310278 + r1310282;
double r1310284 = 0.125;
double r1310285 = v;
double r1310286 = r1310279 * r1310285;
double r1310287 = r1310278 - r1310286;
double r1310288 = r1310284 * r1310287;
double r1310289 = w;
double r1310290 = r1310289 * r1310289;
double r1310291 = r1310290 * r1310280;
double r1310292 = r1310291 * r1310280;
double r1310293 = r1310288 * r1310292;
double r1310294 = 1.0;
double r1310295 = r1310294 - r1310285;
double r1310296 = r1310293 / r1310295;
double r1310297 = r1310283 - r1310296;
double r1310298 = 4.5;
double r1310299 = r1310297 - r1310298;
return r1310299;
}
double f(double v, double w, double r) {
double r1310300 = 3.0;
double r1310301 = 2.0;
double r1310302 = r;
double r1310303 = r1310301 / r1310302;
double r1310304 = r1310303 / r1310302;
double r1310305 = r1310300 + r1310304;
double r1310306 = w;
double r1310307 = r1310306 * r1310302;
double r1310308 = r1310307 * r1310307;
double r1310309 = 0.125;
double r1310310 = 1.0;
double r1310311 = v;
double r1310312 = r1310310 - r1310311;
double r1310313 = r1310309 / r1310312;
double r1310314 = r1310311 * r1310301;
double r1310315 = r1310300 - r1310314;
double r1310316 = r1310313 * r1310315;
double r1310317 = 4.5;
double r1310318 = fma(r1310308, r1310316, r1310317);
double r1310319 = r1310305 - r1310318;
return r1310319;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 13.0
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019179 +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))