\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{2}{r \cdot r}\right) - \mathsf{fma}\left(\left(\frac{\mathsf{fma}\left(v, -2, 3\right)}{\frac{\sqrt[3]{1 - v}}{\sqrt{0.125}}} \cdot \frac{\frac{\sqrt{0.125}}{\sqrt[3]{1 - v}}}{\sqrt[3]{1 - v}}\right), \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right), 4.5\right)double f(double v, double w, double r) {
double r6162916 = 3.0;
double r6162917 = 2.0;
double r6162918 = r;
double r6162919 = r6162918 * r6162918;
double r6162920 = r6162917 / r6162919;
double r6162921 = r6162916 + r6162920;
double r6162922 = 0.125;
double r6162923 = v;
double r6162924 = r6162917 * r6162923;
double r6162925 = r6162916 - r6162924;
double r6162926 = r6162922 * r6162925;
double r6162927 = w;
double r6162928 = r6162927 * r6162927;
double r6162929 = r6162928 * r6162918;
double r6162930 = r6162929 * r6162918;
double r6162931 = r6162926 * r6162930;
double r6162932 = 1.0;
double r6162933 = r6162932 - r6162923;
double r6162934 = r6162931 / r6162933;
double r6162935 = r6162921 - r6162934;
double r6162936 = 4.5;
double r6162937 = r6162935 - r6162936;
return r6162937;
}
double f(double v, double w, double r) {
double r6162938 = 3.0;
double r6162939 = 2.0;
double r6162940 = r;
double r6162941 = r6162940 * r6162940;
double r6162942 = r6162939 / r6162941;
double r6162943 = r6162938 + r6162942;
double r6162944 = v;
double r6162945 = -2.0;
double r6162946 = fma(r6162944, r6162945, r6162938);
double r6162947 = 1.0;
double r6162948 = r6162947 - r6162944;
double r6162949 = cbrt(r6162948);
double r6162950 = 0.125;
double r6162951 = sqrt(r6162950);
double r6162952 = r6162949 / r6162951;
double r6162953 = r6162946 / r6162952;
double r6162954 = r6162951 / r6162949;
double r6162955 = r6162954 / r6162949;
double r6162956 = r6162953 * r6162955;
double r6162957 = w;
double r6162958 = r6162957 * r6162940;
double r6162959 = r6162958 * r6162958;
double r6162960 = 4.5;
double r6162961 = fma(r6162956, r6162959, r6162960);
double r6162962 = r6162943 - r6162961;
return r6162962;
}



Bits error versus v



Bits error versus w



Bits error versus r
Initial program 12.4
Simplified0.4
rmApplied add-sqr-sqrt0.7
Applied add-cube-cbrt0.8
Applied times-frac0.7
Applied *-un-lft-identity0.7
Applied times-frac0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019121 +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))