\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 r809992 = 3.0;
double r809993 = 2.0;
double r809994 = r;
double r809995 = r809994 * r809994;
double r809996 = r809993 / r809995;
double r809997 = r809992 + r809996;
double r809998 = 0.125;
double r809999 = v;
double r810000 = r809993 * r809999;
double r810001 = r809992 - r810000;
double r810002 = r809998 * r810001;
double r810003 = w;
double r810004 = r810003 * r810003;
double r810005 = r810004 * r809994;
double r810006 = r810005 * r809994;
double r810007 = r810002 * r810006;
double r810008 = 1.0;
double r810009 = r810008 - r809999;
double r810010 = r810007 / r810009;
double r810011 = r809997 - r810010;
double r810012 = 4.5;
double r810013 = r810011 - r810012;
return r810013;
}
double f(double v, double w, double r) {
double r810014 = 3.0;
double r810015 = 2.0;
double r810016 = r;
double r810017 = r810015 / r810016;
double r810018 = r810017 / r810016;
double r810019 = r810014 + r810018;
double r810020 = w;
double r810021 = r810020 * r810016;
double r810022 = r810021 * r810021;
double r810023 = 0.125;
double r810024 = 1.0;
double r810025 = v;
double r810026 = r810024 - r810025;
double r810027 = r810023 / r810026;
double r810028 = -2.0;
double r810029 = fma(r810025, r810028, r810014);
double r810030 = r810027 * r810029;
double r810031 = 4.5;
double r810032 = fma(r810022, r810030, r810031);
double r810033 = r810019 - r810032;
return r810033;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.5
Simplified0.4
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019135 +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))