\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(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(\sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3}, -\sqrt{\sqrt[3]{5}} \cdot \sqrt{\sqrt[3]{5} \cdot \sqrt[3]{5}}\right) + \sqrt{\sqrt[3]{5}} \cdot \left(\left(-\left|\sqrt[3]{5}\right|\right) + \left|\sqrt[3]{5}\right|\right)}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r199864 = 2.0;
double r199865 = sqrt(r199864);
double r199866 = x;
double r199867 = sin(r199866);
double r199868 = y;
double r199869 = sin(r199868);
double r199870 = 16.0;
double r199871 = r199869 / r199870;
double r199872 = r199867 - r199871;
double r199873 = r199865 * r199872;
double r199874 = r199867 / r199870;
double r199875 = r199869 - r199874;
double r199876 = r199873 * r199875;
double r199877 = cos(r199866);
double r199878 = cos(r199868);
double r199879 = r199877 - r199878;
double r199880 = r199876 * r199879;
double r199881 = r199864 + r199880;
double r199882 = 3.0;
double r199883 = 1.0;
double r199884 = 5.0;
double r199885 = sqrt(r199884);
double r199886 = r199885 - r199883;
double r199887 = r199886 / r199864;
double r199888 = r199887 * r199877;
double r199889 = r199883 + r199888;
double r199890 = r199882 - r199885;
double r199891 = r199890 / r199864;
double r199892 = r199891 * r199878;
double r199893 = r199889 + r199892;
double r199894 = r199882 * r199893;
double r199895 = r199881 / r199894;
return r199895;
}
double f(double x, double y) {
double r199896 = 2.0;
double r199897 = sqrt(r199896);
double r199898 = x;
double r199899 = sin(r199898);
double r199900 = y;
double r199901 = sin(r199900);
double r199902 = 16.0;
double r199903 = r199901 / r199902;
double r199904 = r199899 - r199903;
double r199905 = r199897 * r199904;
double r199906 = r199899 / r199902;
double r199907 = r199901 - r199906;
double r199908 = cos(r199898);
double r199909 = cos(r199900);
double r199910 = r199908 - r199909;
double r199911 = r199907 * r199910;
double r199912 = fma(r199905, r199911, r199896);
double r199913 = 3.0;
double r199914 = cbrt(r199913);
double r199915 = r199914 * r199914;
double r199916 = 5.0;
double r199917 = cbrt(r199916);
double r199918 = sqrt(r199917);
double r199919 = r199917 * r199917;
double r199920 = sqrt(r199919);
double r199921 = r199918 * r199920;
double r199922 = -r199921;
double r199923 = fma(r199915, r199914, r199922);
double r199924 = fabs(r199917);
double r199925 = -r199924;
double r199926 = r199925 + r199924;
double r199927 = r199918 * r199926;
double r199928 = r199923 + r199927;
double r199929 = r199928 / r199896;
double r199930 = sqrt(r199916);
double r199931 = 1.0;
double r199932 = r199930 - r199931;
double r199933 = r199932 / r199896;
double r199934 = fma(r199933, r199908, r199931);
double r199935 = fma(r199929, r199909, r199934);
double r199936 = r199912 / r199935;
double r199937 = r199936 / r199913;
return r199937;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied add-cube-cbrt0.6
Applied sqrt-prod0.6
Applied add-cube-cbrt0.6
Applied prod-diff0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020036 +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))))))