\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(\mathsf{fma}\left(\mathsf{fma}\left(-2, v, 3\right) \cdot \frac{0.125}{1 - v}, \left(r \cdot w\right) \cdot \left(r \cdot w\right), 4.5\right) - 3\right)double f(double v, double w, double r) {
double r868023 = 3.0;
double r868024 = 2.0;
double r868025 = r;
double r868026 = r868025 * r868025;
double r868027 = r868024 / r868026;
double r868028 = r868023 + r868027;
double r868029 = 0.125;
double r868030 = v;
double r868031 = r868024 * r868030;
double r868032 = r868023 - r868031;
double r868033 = r868029 * r868032;
double r868034 = w;
double r868035 = r868034 * r868034;
double r868036 = r868035 * r868025;
double r868037 = r868036 * r868025;
double r868038 = r868033 * r868037;
double r868039 = 1.0;
double r868040 = r868039 - r868030;
double r868041 = r868038 / r868040;
double r868042 = r868028 - r868041;
double r868043 = 4.5;
double r868044 = r868042 - r868043;
return r868044;
}
double f(double v, double w, double r) {
double r868045 = 2.0;
double r868046 = r;
double r868047 = r868045 / r868046;
double r868048 = r868047 / r868046;
double r868049 = -2.0;
double r868050 = v;
double r868051 = 3.0;
double r868052 = fma(r868049, r868050, r868051);
double r868053 = 0.125;
double r868054 = 1.0;
double r868055 = r868054 - r868050;
double r868056 = r868053 / r868055;
double r868057 = r868052 * r868056;
double r868058 = w;
double r868059 = r868046 * r868058;
double r868060 = r868059 * r868059;
double r868061 = 4.5;
double r868062 = fma(r868057, r868060, r868061);
double r868063 = r868062 - r868051;
double r868064 = r868048 - r868063;
return r868064;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.2
Simplified0.3
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019141 +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))