\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{1}{\frac{r}{\frac{2}{r}}}\right) - \mathsf{fma}\left(\frac{0.125 \cdot \left(3 - 2 \cdot v\right)}{1 - v}, \left|w \cdot r\right| \cdot \left|w \cdot r\right|, 4.5\right)double f(double v, double w, double r) {
double r27956 = 3.0;
double r27957 = 2.0;
double r27958 = r;
double r27959 = r27958 * r27958;
double r27960 = r27957 / r27959;
double r27961 = r27956 + r27960;
double r27962 = 0.125;
double r27963 = v;
double r27964 = r27957 * r27963;
double r27965 = r27956 - r27964;
double r27966 = r27962 * r27965;
double r27967 = w;
double r27968 = r27967 * r27967;
double r27969 = r27968 * r27958;
double r27970 = r27969 * r27958;
double r27971 = r27966 * r27970;
double r27972 = 1.0;
double r27973 = r27972 - r27963;
double r27974 = r27971 / r27973;
double r27975 = r27961 - r27974;
double r27976 = 4.5;
double r27977 = r27975 - r27976;
return r27977;
}
double f(double v, double w, double r) {
double r27978 = 3.0;
double r27979 = 1.0;
double r27980 = r;
double r27981 = 2.0;
double r27982 = r27981 / r27980;
double r27983 = r27980 / r27982;
double r27984 = r27979 / r27983;
double r27985 = r27978 + r27984;
double r27986 = 0.125;
double r27987 = v;
double r27988 = r27981 * r27987;
double r27989 = r27978 - r27988;
double r27990 = r27986 * r27989;
double r27991 = 1.0;
double r27992 = r27991 - r27987;
double r27993 = r27990 / r27992;
double r27994 = w;
double r27995 = r27994 * r27980;
double r27996 = fabs(r27995);
double r27997 = r27996 * r27996;
double r27998 = 4.5;
double r27999 = fma(r27993, r27997, r27998);
double r28000 = r27985 - r27999;
return r28000;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.8
Simplified8.5
rmApplied add-sqr-sqrt8.6
Simplified8.5
Simplified0.4
rmApplied associate-/r*0.4
rmApplied clear-num0.4
Final simplification0.4
herbie shell --seed 2019323 +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))