\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(\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v} \cdot \left|w \cdot r\right|\right) \cdot \left|w \cdot r\right| + \left(4.5 - 3\right)\right)double f(double v, double w, double r) {
double r19017 = 3.0;
double r19018 = 2.0;
double r19019 = r;
double r19020 = r19019 * r19019;
double r19021 = r19018 / r19020;
double r19022 = r19017 + r19021;
double r19023 = 0.125;
double r19024 = v;
double r19025 = r19018 * r19024;
double r19026 = r19017 - r19025;
double r19027 = r19023 * r19026;
double r19028 = w;
double r19029 = r19028 * r19028;
double r19030 = r19029 * r19019;
double r19031 = r19030 * r19019;
double r19032 = r19027 * r19031;
double r19033 = 1.0;
double r19034 = r19033 - r19024;
double r19035 = r19032 / r19034;
double r19036 = r19022 - r19035;
double r19037 = 4.5;
double r19038 = r19036 - r19037;
return r19038;
}
double f(double v, double w, double r) {
double r19039 = 2.0;
double r19040 = r;
double r19041 = r19039 / r19040;
double r19042 = r19041 / r19040;
double r19043 = 0.125;
double r19044 = 3.0;
double r19045 = v;
double r19046 = r19039 * r19045;
double r19047 = r19044 - r19046;
double r19048 = r19043 * r19047;
double r19049 = 1.0;
double r19050 = r19049 - r19045;
double r19051 = r19048 / r19050;
double r19052 = w;
double r19053 = r19052 * r19040;
double r19054 = fabs(r19053);
double r19055 = r19051 * r19054;
double r19056 = r19055 * r19054;
double r19057 = 4.5;
double r19058 = r19057 - r19044;
double r19059 = r19056 + r19058;
double r19060 = r19042 - r19059;
return r19060;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.6
Simplified8.5
rmApplied add-sqr-sqrt8.6
Simplified8.6
Simplified0.4
rmApplied associate-/r*0.4
rmApplied fma-udef0.4
Applied associate--l+0.3
rmApplied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2019354 +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))