x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)x1 + \left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(x1 \cdot \left(x1 \cdot x1\right) + \left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(1 + x1 \cdot x1\right) \cdot \left(\left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} - 3\right) \cdot \left(\left(x1 \cdot 2\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right) + \left(-6 \cdot \left(x1 \cdot x1\right) + \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right) \cdot \left(x1 \cdot x1\right)\right)\right)\right)\right)\right)\right)double f(double x1, double x2) {
double r2663887 = x1;
double r2663888 = 2.0;
double r2663889 = r2663888 * r2663887;
double r2663890 = 3.0;
double r2663891 = r2663890 * r2663887;
double r2663892 = r2663891 * r2663887;
double r2663893 = x2;
double r2663894 = r2663888 * r2663893;
double r2663895 = r2663892 + r2663894;
double r2663896 = r2663895 - r2663887;
double r2663897 = r2663887 * r2663887;
double r2663898 = 1.0;
double r2663899 = r2663897 + r2663898;
double r2663900 = r2663896 / r2663899;
double r2663901 = r2663889 * r2663900;
double r2663902 = r2663900 - r2663890;
double r2663903 = r2663901 * r2663902;
double r2663904 = 4.0;
double r2663905 = r2663904 * r2663900;
double r2663906 = 6.0;
double r2663907 = r2663905 - r2663906;
double r2663908 = r2663897 * r2663907;
double r2663909 = r2663903 + r2663908;
double r2663910 = r2663909 * r2663899;
double r2663911 = r2663892 * r2663900;
double r2663912 = r2663910 + r2663911;
double r2663913 = r2663897 * r2663887;
double r2663914 = r2663912 + r2663913;
double r2663915 = r2663914 + r2663887;
double r2663916 = r2663892 - r2663894;
double r2663917 = r2663916 - r2663887;
double r2663918 = r2663917 / r2663899;
double r2663919 = r2663890 * r2663918;
double r2663920 = r2663915 + r2663919;
double r2663921 = r2663887 + r2663920;
return r2663921;
}
double f(double x1, double x2) {
double r2663922 = x1;
double r2663923 = 3.0;
double r2663924 = r2663923 * r2663922;
double r2663925 = r2663924 * r2663922;
double r2663926 = x2;
double r2663927 = 2.0;
double r2663928 = r2663926 * r2663927;
double r2663929 = r2663925 - r2663928;
double r2663930 = r2663929 - r2663922;
double r2663931 = 1.0;
double r2663932 = r2663922 * r2663922;
double r2663933 = r2663931 + r2663932;
double r2663934 = r2663930 / r2663933;
double r2663935 = r2663923 * r2663934;
double r2663936 = r2663922 * r2663932;
double r2663937 = r2663925 + r2663928;
double r2663938 = r2663937 - r2663922;
double r2663939 = r2663938 / r2663933;
double r2663940 = r2663925 * r2663939;
double r2663941 = r2663939 - r2663923;
double r2663942 = r2663922 * r2663927;
double r2663943 = r2663942 * r2663939;
double r2663944 = r2663941 * r2663943;
double r2663945 = -6.0;
double r2663946 = r2663945 * r2663932;
double r2663947 = 4.0;
double r2663948 = r2663947 * r2663939;
double r2663949 = r2663948 * r2663932;
double r2663950 = r2663946 + r2663949;
double r2663951 = r2663944 + r2663950;
double r2663952 = r2663933 * r2663951;
double r2663953 = r2663940 + r2663952;
double r2663954 = r2663936 + r2663953;
double r2663955 = r2663922 + r2663954;
double r2663956 = r2663935 + r2663955;
double r2663957 = r2663922 + r2663956;
return r2663957;
}



Bits error versus x1



Bits error versus x2
Results
Initial program 0.5
rmApplied sub-neg0.5
Applied distribute-lft-in0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019144
(FPCore (x1 x2)
:name "Rosa's FloatVsDoubleBenchmark"
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))))