\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 - \mathsf{fma}\left(\frac{0.125}{\frac{1}{r \cdot w} \cdot \frac{1 - v}{r \cdot w}}, 3 - v \cdot 2, 4.5\right)\right) + \frac{\frac{2}{r}}{r}double f(double v, double w, double r) {
double r1418191 = 3.0;
double r1418192 = 2.0;
double r1418193 = r;
double r1418194 = r1418193 * r1418193;
double r1418195 = r1418192 / r1418194;
double r1418196 = r1418191 + r1418195;
double r1418197 = 0.125;
double r1418198 = v;
double r1418199 = r1418192 * r1418198;
double r1418200 = r1418191 - r1418199;
double r1418201 = r1418197 * r1418200;
double r1418202 = w;
double r1418203 = r1418202 * r1418202;
double r1418204 = r1418203 * r1418193;
double r1418205 = r1418204 * r1418193;
double r1418206 = r1418201 * r1418205;
double r1418207 = 1.0;
double r1418208 = r1418207 - r1418198;
double r1418209 = r1418206 / r1418208;
double r1418210 = r1418196 - r1418209;
double r1418211 = 4.5;
double r1418212 = r1418210 - r1418211;
return r1418212;
}
double f(double v, double w, double r) {
double r1418213 = 3.0;
double r1418214 = 0.125;
double r1418215 = 1.0;
double r1418216 = r;
double r1418217 = w;
double r1418218 = r1418216 * r1418217;
double r1418219 = r1418215 / r1418218;
double r1418220 = 1.0;
double r1418221 = v;
double r1418222 = r1418220 - r1418221;
double r1418223 = r1418222 / r1418218;
double r1418224 = r1418219 * r1418223;
double r1418225 = r1418214 / r1418224;
double r1418226 = 2.0;
double r1418227 = r1418221 * r1418226;
double r1418228 = r1418213 - r1418227;
double r1418229 = 4.5;
double r1418230 = fma(r1418225, r1418228, r1418229);
double r1418231 = r1418213 - r1418230;
double r1418232 = r1418226 / r1418216;
double r1418233 = r1418232 / r1418216;
double r1418234 = r1418231 + r1418233;
return r1418234;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.9
Simplified0.4
rmApplied associate-/r*0.4
rmApplied *-un-lft-identity0.4
Applied times-frac0.4
Final simplification0.4
herbie shell --seed 2019171 +o rules:numerics
(FPCore (v w r)
:name "Rosa's TurbineBenchmark"
(- (- (+ 3.0 (/ 2.0 (* r r))) (/ (* (* 0.125 (- 3.0 (* 2.0 v))) (* (* (* w w) r) r)) (- 1.0 v))) 4.5))