\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} + \left(3 - \mathsf{fma}\left(\frac{\frac{\left(w \cdot r\right) \cdot 0.125}{1 - v}}{\frac{1}{\mathsf{fma}\left(-2, v, 3\right)}}, w \cdot r, 4.5\right)\right)double f(double v, double w, double r) {
double r1416991 = 3.0;
double r1416992 = 2.0;
double r1416993 = r;
double r1416994 = r1416993 * r1416993;
double r1416995 = r1416992 / r1416994;
double r1416996 = r1416991 + r1416995;
double r1416997 = 0.125;
double r1416998 = v;
double r1416999 = r1416992 * r1416998;
double r1417000 = r1416991 - r1416999;
double r1417001 = r1416997 * r1417000;
double r1417002 = w;
double r1417003 = r1417002 * r1417002;
double r1417004 = r1417003 * r1416993;
double r1417005 = r1417004 * r1416993;
double r1417006 = r1417001 * r1417005;
double r1417007 = 1.0;
double r1417008 = r1417007 - r1416998;
double r1417009 = r1417006 / r1417008;
double r1417010 = r1416996 - r1417009;
double r1417011 = 4.5;
double r1417012 = r1417010 - r1417011;
return r1417012;
}
double f(double v, double w, double r) {
double r1417013 = 2.0;
double r1417014 = r;
double r1417015 = r1417013 / r1417014;
double r1417016 = r1417015 / r1417014;
double r1417017 = 3.0;
double r1417018 = w;
double r1417019 = r1417018 * r1417014;
double r1417020 = 0.125;
double r1417021 = r1417019 * r1417020;
double r1417022 = 1.0;
double r1417023 = v;
double r1417024 = r1417022 - r1417023;
double r1417025 = r1417021 / r1417024;
double r1417026 = -2.0;
double r1417027 = fma(r1417026, r1417023, r1417017);
double r1417028 = r1417022 / r1417027;
double r1417029 = r1417025 / r1417028;
double r1417030 = 4.5;
double r1417031 = fma(r1417029, r1417019, r1417030);
double r1417032 = r1417017 - r1417031;
double r1417033 = r1417016 + r1417032;
return r1417033;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 11.6
Simplified0.3
rmApplied associate-/r*0.3
rmApplied div-inv0.3
Applied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019151 +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))