\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\frac{\frac{\mathsf{fma}\left(\left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right) \cdot \mathsf{fma}\left(-\frac{\sqrt[3]{\sin x}}{\sqrt[3]{16.0}}, \frac{\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}}{\sqrt[3]{16.0} \cdot \sqrt[3]{16.0}}, \frac{\sqrt[3]{\sin x}}{\sqrt[3]{16.0}} \cdot \frac{\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}}{\sqrt[3]{16.0} \cdot \sqrt[3]{16.0}}\right) + \mathsf{fma}\left(\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}, \sqrt[3]{\sin y}, \left(-\frac{\sqrt[3]{\sin x}}{\sqrt[3]{16.0}}\right) \cdot \frac{\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}}{\sqrt[3]{16.0} \cdot \sqrt[3]{16.0}}\right) \cdot \left(\sqrt{2.0} \cdot \sqrt[3]{\left(\left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right) \cdot \sqrt[3]{\cos x - \cos y}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \left(\cos x - \cos y\right)\right)}\right), \sin x - \frac{\sin y}{16.0}, 2.0\right)}{3.0}}{\mathsf{fma}\left(\frac{3.0 - \sqrt{5.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}double f(double x, double y) {
double r2948873 = 2.0;
double r2948874 = sqrt(r2948873);
double r2948875 = x;
double r2948876 = sin(r2948875);
double r2948877 = y;
double r2948878 = sin(r2948877);
double r2948879 = 16.0;
double r2948880 = r2948878 / r2948879;
double r2948881 = r2948876 - r2948880;
double r2948882 = r2948874 * r2948881;
double r2948883 = r2948876 / r2948879;
double r2948884 = r2948878 - r2948883;
double r2948885 = r2948882 * r2948884;
double r2948886 = cos(r2948875);
double r2948887 = cos(r2948877);
double r2948888 = r2948886 - r2948887;
double r2948889 = r2948885 * r2948888;
double r2948890 = r2948873 + r2948889;
double r2948891 = 3.0;
double r2948892 = 1.0;
double r2948893 = 5.0;
double r2948894 = sqrt(r2948893);
double r2948895 = r2948894 - r2948892;
double r2948896 = r2948895 / r2948873;
double r2948897 = r2948896 * r2948886;
double r2948898 = r2948892 + r2948897;
double r2948899 = r2948891 - r2948894;
double r2948900 = r2948899 / r2948873;
double r2948901 = r2948900 * r2948887;
double r2948902 = r2948898 + r2948901;
double r2948903 = r2948891 * r2948902;
double r2948904 = r2948890 / r2948903;
return r2948904;
}
double f(double x, double y) {
double r2948905 = x;
double r2948906 = cos(r2948905);
double r2948907 = y;
double r2948908 = cos(r2948907);
double r2948909 = r2948906 - r2948908;
double r2948910 = 2.0;
double r2948911 = sqrt(r2948910);
double r2948912 = r2948909 * r2948911;
double r2948913 = sin(r2948905);
double r2948914 = cbrt(r2948913);
double r2948915 = 16.0;
double r2948916 = cbrt(r2948915);
double r2948917 = r2948914 / r2948916;
double r2948918 = -r2948917;
double r2948919 = r2948914 * r2948914;
double r2948920 = r2948916 * r2948916;
double r2948921 = r2948919 / r2948920;
double r2948922 = r2948917 * r2948921;
double r2948923 = fma(r2948918, r2948921, r2948922);
double r2948924 = r2948912 * r2948923;
double r2948925 = sin(r2948907);
double r2948926 = cbrt(r2948925);
double r2948927 = r2948926 * r2948926;
double r2948928 = r2948918 * r2948921;
double r2948929 = fma(r2948927, r2948926, r2948928);
double r2948930 = cbrt(r2948909);
double r2948931 = r2948930 * r2948930;
double r2948932 = r2948931 * r2948930;
double r2948933 = r2948909 * r2948909;
double r2948934 = r2948932 * r2948933;
double r2948935 = cbrt(r2948934);
double r2948936 = r2948911 * r2948935;
double r2948937 = r2948929 * r2948936;
double r2948938 = r2948924 + r2948937;
double r2948939 = r2948925 / r2948915;
double r2948940 = r2948913 - r2948939;
double r2948941 = fma(r2948938, r2948940, r2948910);
double r2948942 = 3.0;
double r2948943 = r2948941 / r2948942;
double r2948944 = 5.0;
double r2948945 = sqrt(r2948944);
double r2948946 = r2948942 - r2948945;
double r2948947 = r2948946 / r2948910;
double r2948948 = 1.0;
double r2948949 = r2948945 - r2948948;
double r2948950 = r2948949 / r2948910;
double r2948951 = fma(r2948906, r2948950, r2948948);
double r2948952 = fma(r2948947, r2948908, r2948951);
double r2948953 = r2948943 / r2948952;
return r2948953;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-cube-cbrt0.4
Applied prod-diff0.4
Applied distribute-lft-in0.4
rmApplied add-cbrt-cube0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2019156 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))