double f(double v, double w, double r) {
double r3844984 = 3.0;
double r3844985 = 2.0;
double r3844986 = r;
double r3844987 = r3844986 * r3844986;
double r3844988 = r3844985 / r3844987;
double r3844989 = r3844984 + r3844988;
double r3844990 = 0.125;
double r3844991 = v;
double r3844992 = r3844985 * r3844991;
double r3844993 = r3844984 - r3844992;
double r3844994 = r3844990 * r3844993;
double r3844995 = w;
double r3844996 = r3844995 * r3844995;
double r3844997 = r3844996 * r3844986;
double r3844998 = r3844997 * r3844986;
double r3844999 = r3844994 * r3844998;
double r3845000 = 1.0;
double r3845001 = r3845000 - r3844991;
double r3845002 = r3844999 / r3845001;
double r3845003 = r3844989 - r3845002;
double r3845004 = 4.5;
double r3845005 = r3845003 - r3845004;
return r3845005;
}
double f(double v, double w, double r) {
double r3845006 = 3.0;
double r3845007 = 2.0;
double r3845008 = r;
double r3845009 = r3845007 / r3845008;
double r3845010 = r3845009 / r3845008;
double r3845011 = r3845006 + r3845010;
double r3845012 = 0.125;
double r3845013 = sqrt(r3845012);
double r3845014 = v;
double r3845015 = -2.0;
double r3845016 = fma(r3845014, r3845015, r3845006);
double r3845017 = 1.0;
double r3845018 = r3845017 - r3845014;
double r3845019 = r3845018 / r3845012;
double r3845020 = r3845016 / r3845019;
double r3845021 = sqrt(r3845020);
double r3845022 = r3845013 * r3845021;
double r3845023 = r3845016 / r3845018;
double r3845024 = sqrt(r3845023);
double r3845025 = r3845022 * r3845024;
double r3845026 = w;
double r3845027 = r3845008 * r3845026;
double r3845028 = r3845027 * r3845027;
double r3845029 = 4.5;
double r3845030 = fma(r3845025, r3845028, r3845029);
double r3845031 = r3845011 - r3845030;
return r3845031;
}
\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) - (\left(\left(\sqrt{0.125} \cdot \sqrt{\frac{(v \cdot -2 + 3)_*}{\frac{1 - v}{0.125}}}\right) \cdot \sqrt{\frac{(v \cdot -2 + 3)_*}{1 - v}}\right) \cdot \left(\left(r \cdot w\right) \cdot \left(r \cdot w\right)\right) + 4.5)_*


Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.5
Simplified0.5
rmApplied associate-/r*0.5
rmApplied add-sqr-sqrt0.5
rmApplied associate-/r/0.5
Applied sqrt-prod0.6
Applied associate-*l*0.6
Final simplification0.6
herbie shell --seed 2019101 +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))