\frac{2 + \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \left(\cos x - \cos y\right)}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}\frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) \cdot \sqrt{2} + \left(\left(-\frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) + \frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r165828 = 2.0;
double r165829 = sqrt(r165828);
double r165830 = x;
double r165831 = sin(r165830);
double r165832 = y;
double r165833 = sin(r165832);
double r165834 = 16.0;
double r165835 = r165833 / r165834;
double r165836 = r165831 - r165835;
double r165837 = r165829 * r165836;
double r165838 = r165831 / r165834;
double r165839 = r165833 - r165838;
double r165840 = r165837 * r165839;
double r165841 = cos(r165830);
double r165842 = cos(r165832);
double r165843 = r165841 - r165842;
double r165844 = r165840 * r165843;
double r165845 = r165828 + r165844;
double r165846 = 3.0;
double r165847 = 1.0;
double r165848 = 5.0;
double r165849 = sqrt(r165848);
double r165850 = r165849 - r165847;
double r165851 = r165850 / r165828;
double r165852 = r165851 * r165841;
double r165853 = r165847 + r165852;
double r165854 = r165846 - r165849;
double r165855 = r165854 / r165828;
double r165856 = r165855 * r165842;
double r165857 = r165853 + r165856;
double r165858 = r165846 * r165857;
double r165859 = r165845 / r165858;
return r165859;
}
double f(double x, double y) {
double r165860 = x;
double r165861 = sin(r165860);
double r165862 = y;
double r165863 = sin(r165862);
double r165864 = 16.0;
double r165865 = cbrt(r165864);
double r165866 = 3.0;
double r165867 = pow(r165865, r165866);
double r165868 = r165863 / r165867;
double r165869 = r165861 - r165868;
double r165870 = 2.0;
double r165871 = sqrt(r165870);
double r165872 = r165869 * r165871;
double r165873 = -r165868;
double r165874 = r165873 + r165868;
double r165875 = r165874 * r165871;
double r165876 = r165872 + r165875;
double r165877 = r165861 / r165864;
double r165878 = r165863 - r165877;
double r165879 = cos(r165860);
double r165880 = cbrt(r165879);
double r165881 = r165880 * r165880;
double r165882 = cos(r165862);
double r165883 = -r165882;
double r165884 = fma(r165881, r165880, r165883);
double r165885 = r165878 * r165884;
double r165886 = fma(r165876, r165885, r165870);
double r165887 = 3.0;
double r165888 = r165886 / r165887;
double r165889 = r165887 * r165887;
double r165890 = 5.0;
double r165891 = r165889 - r165890;
double r165892 = sqrt(r165890);
double r165893 = r165887 + r165892;
double r165894 = r165891 / r165893;
double r165895 = r165894 / r165870;
double r165896 = 1.0;
double r165897 = r165892 - r165896;
double r165898 = r165897 / r165870;
double r165899 = fma(r165879, r165898, r165896);
double r165900 = fma(r165882, r165895, r165899);
double r165901 = r165888 / r165900;
return r165901;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied flip--0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied fma-neg0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-sqr-sqrt31.6
Applied prod-diff31.6
Applied distribute-lft-in31.6
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019326 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
:precision binary64
(/ (+ 2 (* (* (* (sqrt 2) (- (sin x) (/ (sin y) 16))) (- (sin y) (/ (sin x) 16))) (- (cos x) (cos y)))) (* 3 (+ (+ 1 (* (/ (- (sqrt 5) 1) 2) (cos x))) (* (/ (- 3 (sqrt 5)) 2) (cos y))))))