\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(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \left(\sqrt[3]{{\left(\left|w \cdot r\right|\right)}^{2}} \cdot \sqrt[3]{{\left(\left|w \cdot r\right|\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\left|w \cdot r\right|\right)}^{2}}, 4.5\right)double f(double v, double w, double r) {
double r15259 = 3.0;
double r15260 = 2.0;
double r15261 = r;
double r15262 = r15261 * r15261;
double r15263 = r15260 / r15262;
double r15264 = r15259 + r15263;
double r15265 = 0.125;
double r15266 = v;
double r15267 = r15260 * r15266;
double r15268 = r15259 - r15267;
double r15269 = r15265 * r15268;
double r15270 = w;
double r15271 = r15270 * r15270;
double r15272 = r15271 * r15261;
double r15273 = r15272 * r15261;
double r15274 = r15269 * r15273;
double r15275 = 1.0;
double r15276 = r15275 - r15266;
double r15277 = r15274 / r15276;
double r15278 = r15264 - r15277;
double r15279 = 4.5;
double r15280 = r15278 - r15279;
return r15280;
}
double f(double v, double w, double r) {
double r15281 = 3.0;
double r15282 = 2.0;
double r15283 = r;
double r15284 = r15282 / r15283;
double r15285 = r15284 / r15283;
double r15286 = r15281 + r15285;
double r15287 = 0.125;
double r15288 = v;
double r15289 = r15282 * r15288;
double r15290 = r15281 - r15289;
double r15291 = r15287 * r15290;
double r15292 = 1.0;
double r15293 = r15292 - r15288;
double r15294 = r15291 / r15293;
double r15295 = w;
double r15296 = r15295 * r15283;
double r15297 = fabs(r15296);
double r15298 = 2.0;
double r15299 = pow(r15297, r15298);
double r15300 = cbrt(r15299);
double r15301 = r15300 * r15300;
double r15302 = r15301 * r15300;
double r15303 = 4.5;
double r15304 = fma(r15294, r15302, r15303);
double r15305 = r15286 - r15304;
return r15305;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.3
Simplified8.2
rmApplied associate-*l*2.5
rmApplied add-sqr-sqrt2.6
Simplified2.6
Simplified0.3
rmApplied associate-/r*0.3
rmApplied add-cube-cbrt0.6
Simplified0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2020042 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
:precision binary64
(- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))