\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{2}{r \cdot 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 r15885 = 3.0;
double r15886 = 2.0;
double r15887 = r;
double r15888 = r15887 * r15887;
double r15889 = r15886 / r15888;
double r15890 = r15885 + r15889;
double r15891 = 0.125;
double r15892 = v;
double r15893 = r15886 * r15892;
double r15894 = r15885 - r15893;
double r15895 = r15891 * r15894;
double r15896 = w;
double r15897 = r15896 * r15896;
double r15898 = r15897 * r15887;
double r15899 = r15898 * r15887;
double r15900 = r15895 * r15899;
double r15901 = 1.0;
double r15902 = r15901 - r15892;
double r15903 = r15900 / r15902;
double r15904 = r15890 - r15903;
double r15905 = 4.5;
double r15906 = r15904 - r15905;
return r15906;
}
double f(double v, double w, double r) {
double r15907 = 2.0;
double r15908 = r;
double r15909 = r15908 * r15908;
double r15910 = r15907 / r15909;
double r15911 = 0.125;
double r15912 = 3.0;
double r15913 = v;
double r15914 = r15907 * r15913;
double r15915 = r15912 - r15914;
double r15916 = r15911 * r15915;
double r15917 = 1.0;
double r15918 = r15917 - r15913;
double r15919 = r15916 / r15918;
double r15920 = w;
double r15921 = r15920 * r15908;
double r15922 = fabs(r15921);
double r15923 = r15919 * r15922;
double r15924 = r15923 * r15922;
double r15925 = 4.5;
double r15926 = r15925 - r15912;
double r15927 = r15924 + r15926;
double r15928 = r15910 - r15927;
return r15928;
}



Bits error versus v



Bits error versus w



Bits error versus r
Results
Initial program 13.1
Simplified8.9
rmApplied add-sqr-sqrt9.0
Simplified9.0
Simplified0.4
rmApplied fma-udef0.4
Applied associate--l+0.3
rmApplied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2020057 +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))