\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{2}{r \cdot r} - \left(\left(4.5 + \left(\left(r \cdot w\right) \cdot \left(\left(r \cdot w\right) \cdot 0.125\right)\right) \cdot \sqrt[3]{\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \left(\frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v} \cdot \frac{\mathsf{fma}\left(-2, v, 3\right)}{1 - v}\right)}\right) - 3\right)double f(double v, double w, double r) {
double r1355305 = 3.0;
double r1355306 = 2.0;
double r1355307 = r;
double r1355308 = r1355307 * r1355307;
double r1355309 = r1355306 / r1355308;
double r1355310 = r1355305 + r1355309;
double r1355311 = 0.125;
double r1355312 = v;
double r1355313 = r1355306 * r1355312;
double r1355314 = r1355305 - r1355313;
double r1355315 = r1355311 * r1355314;
double r1355316 = w;
double r1355317 = r1355316 * r1355316;
double r1355318 = r1355317 * r1355307;
double r1355319 = r1355318 * r1355307;
double r1355320 = r1355315 * r1355319;
double r1355321 = 1.0;
double r1355322 = r1355321 - r1355312;
double r1355323 = r1355320 / r1355322;
double r1355324 = r1355310 - r1355323;
double r1355325 = 4.5;
double r1355326 = r1355324 - r1355325;
return r1355326;
}
double f(double v, double w, double r) {
double r1355327 = 2.0;
double r1355328 = r;
double r1355329 = r1355328 * r1355328;
double r1355330 = r1355327 / r1355329;
double r1355331 = 4.5;
double r1355332 = w;
double r1355333 = r1355328 * r1355332;
double r1355334 = 0.125;
double r1355335 = r1355333 * r1355334;
double r1355336 = r1355333 * r1355335;
double r1355337 = -2.0;
double r1355338 = v;
double r1355339 = 3.0;
double r1355340 = fma(r1355337, r1355338, r1355339);
double r1355341 = 1.0;
double r1355342 = r1355341 - r1355338;
double r1355343 = r1355340 / r1355342;
double r1355344 = r1355343 * r1355343;
double r1355345 = r1355343 * r1355344;
double r1355346 = cbrt(r1355345);
double r1355347 = r1355336 * r1355346;
double r1355348 = r1355331 + r1355347;
double r1355349 = r1355348 - r1355339;
double r1355350 = r1355330 - r1355349;
return r1355350;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.1
Simplified0.3
rmApplied fma-udef0.3
rmApplied add-cbrt-cube0.4
Final simplification0.4
herbie shell --seed 2019158 +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))