\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{2.0 + \left(\sqrt[3]{\cos x - \cos y} \cdot \left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right)\right) \cdot \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \sqrt{2.0}\right)\right)}{\left(\left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right) \cdot 3.0}double f(double x, double y) {
double r10375852 = 2.0;
double r10375853 = sqrt(r10375852);
double r10375854 = x;
double r10375855 = sin(r10375854);
double r10375856 = y;
double r10375857 = sin(r10375856);
double r10375858 = 16.0;
double r10375859 = r10375857 / r10375858;
double r10375860 = r10375855 - r10375859;
double r10375861 = r10375853 * r10375860;
double r10375862 = r10375855 / r10375858;
double r10375863 = r10375857 - r10375862;
double r10375864 = r10375861 * r10375863;
double r10375865 = cos(r10375854);
double r10375866 = cos(r10375856);
double r10375867 = r10375865 - r10375866;
double r10375868 = r10375864 * r10375867;
double r10375869 = r10375852 + r10375868;
double r10375870 = 3.0;
double r10375871 = 1.0;
double r10375872 = 5.0;
double r10375873 = sqrt(r10375872);
double r10375874 = r10375873 - r10375871;
double r10375875 = r10375874 / r10375852;
double r10375876 = r10375875 * r10375865;
double r10375877 = r10375871 + r10375876;
double r10375878 = r10375870 - r10375873;
double r10375879 = r10375878 / r10375852;
double r10375880 = r10375879 * r10375866;
double r10375881 = r10375877 + r10375880;
double r10375882 = r10375870 * r10375881;
double r10375883 = r10375869 / r10375882;
return r10375883;
}
double f(double x, double y) {
double r10375884 = 2.0;
double r10375885 = x;
double r10375886 = cos(r10375885);
double r10375887 = y;
double r10375888 = cos(r10375887);
double r10375889 = r10375886 - r10375888;
double r10375890 = cbrt(r10375889);
double r10375891 = r10375890 * r10375890;
double r10375892 = r10375890 * r10375891;
double r10375893 = sin(r10375887);
double r10375894 = sin(r10375885);
double r10375895 = 16.0;
double r10375896 = r10375894 / r10375895;
double r10375897 = r10375893 - r10375896;
double r10375898 = r10375893 / r10375895;
double r10375899 = r10375894 - r10375898;
double r10375900 = sqrt(r10375884);
double r10375901 = r10375899 * r10375900;
double r10375902 = r10375897 * r10375901;
double r10375903 = r10375892 * r10375902;
double r10375904 = r10375884 + r10375903;
double r10375905 = 5.0;
double r10375906 = sqrt(r10375905);
double r10375907 = 1.0;
double r10375908 = r10375906 - r10375907;
double r10375909 = r10375908 / r10375884;
double r10375910 = r10375886 * r10375909;
double r10375911 = r10375910 + r10375907;
double r10375912 = 3.0;
double r10375913 = r10375912 - r10375906;
double r10375914 = r10375913 / r10375884;
double r10375915 = r10375914 * r10375888;
double r10375916 = r10375911 + r10375915;
double r10375917 = r10375916 * r10375912;
double r10375918 = r10375904 / r10375917;
return r10375918;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied add-cube-cbrt0.5
Final simplification0.5
herbie shell --seed 2019163 +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))))))