\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(\frac{2}{r \cdot r} + \left(3 - 4.5\right)\right) - \sqrt{\frac{w \cdot r}{\frac{\sqrt{\frac{1 - v}{0.125 \cdot \left(3 - v \cdot 2\right)}}}{w} \cdot \frac{\sqrt{\frac{1 - v}{0.125 \cdot \left(3 - v \cdot 2\right)}}}{r}}} \cdot \sqrt{\frac{w \cdot r}{\frac{\sqrt{\frac{1 - v}{0.125 \cdot \left(3 - v \cdot 2\right)}}}{w} \cdot \frac{\sqrt{\frac{1 - v}{0.125 \cdot \left(3 - v \cdot 2\right)}}}{r}}}double f(double v, double w, double r) {
double r2480963 = 3.0;
double r2480964 = 2.0;
double r2480965 = r;
double r2480966 = r2480965 * r2480965;
double r2480967 = r2480964 / r2480966;
double r2480968 = r2480963 + r2480967;
double r2480969 = 0.125;
double r2480970 = v;
double r2480971 = r2480964 * r2480970;
double r2480972 = r2480963 - r2480971;
double r2480973 = r2480969 * r2480972;
double r2480974 = w;
double r2480975 = r2480974 * r2480974;
double r2480976 = r2480975 * r2480965;
double r2480977 = r2480976 * r2480965;
double r2480978 = r2480973 * r2480977;
double r2480979 = 1.0;
double r2480980 = r2480979 - r2480970;
double r2480981 = r2480978 / r2480980;
double r2480982 = r2480968 - r2480981;
double r2480983 = 4.5;
double r2480984 = r2480982 - r2480983;
return r2480984;
}
double f(double v, double w, double r) {
double r2480985 = 2.0;
double r2480986 = r;
double r2480987 = r2480986 * r2480986;
double r2480988 = r2480985 / r2480987;
double r2480989 = 3.0;
double r2480990 = 4.5;
double r2480991 = r2480989 - r2480990;
double r2480992 = r2480988 + r2480991;
double r2480993 = w;
double r2480994 = r2480993 * r2480986;
double r2480995 = 1.0;
double r2480996 = v;
double r2480997 = r2480995 - r2480996;
double r2480998 = 0.125;
double r2480999 = r2480996 * r2480985;
double r2481000 = r2480989 - r2480999;
double r2481001 = r2480998 * r2481000;
double r2481002 = r2480997 / r2481001;
double r2481003 = sqrt(r2481002);
double r2481004 = r2481003 / r2480993;
double r2481005 = r2481003 / r2480986;
double r2481006 = r2481004 * r2481005;
double r2481007 = r2480994 / r2481006;
double r2481008 = sqrt(r2481007);
double r2481009 = r2481008 * r2481008;
double r2481010 = r2480992 - r2481009;
return r2481010;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 12.1
Simplified0.3
rmApplied add-sqr-sqrt0.3
Applied times-frac0.3
Taylor expanded around inf 0.3
Simplified0.3
rmApplied add-sqr-sqrt0.4
Final simplification0.4
herbie shell --seed 2019149
(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))