\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(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right), \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}, 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r198847 = 2.0;
double r198848 = sqrt(r198847);
double r198849 = x;
double r198850 = sin(r198849);
double r198851 = y;
double r198852 = sin(r198851);
double r198853 = 16.0;
double r198854 = r198852 / r198853;
double r198855 = r198850 - r198854;
double r198856 = r198848 * r198855;
double r198857 = r198850 / r198853;
double r198858 = r198852 - r198857;
double r198859 = r198856 * r198858;
double r198860 = cos(r198849);
double r198861 = cos(r198851);
double r198862 = r198860 - r198861;
double r198863 = r198859 * r198862;
double r198864 = r198847 + r198863;
double r198865 = 3.0;
double r198866 = 1.0;
double r198867 = 5.0;
double r198868 = sqrt(r198867);
double r198869 = r198868 - r198866;
double r198870 = r198869 / r198847;
double r198871 = r198870 * r198860;
double r198872 = r198866 + r198871;
double r198873 = r198865 - r198868;
double r198874 = r198873 / r198847;
double r198875 = r198874 * r198861;
double r198876 = r198872 + r198875;
double r198877 = r198865 * r198876;
double r198878 = r198864 / r198877;
return r198878;
}
double f(double x, double y) {
double r198879 = x;
double r198880 = cos(r198879);
double r198881 = cbrt(r198880);
double r198882 = r198881 * r198881;
double r198883 = y;
double r198884 = cos(r198883);
double r198885 = -r198884;
double r198886 = fma(r198882, r198881, r198885);
double r198887 = 2.0;
double r198888 = sqrt(r198887);
double r198889 = sin(r198879);
double r198890 = sin(r198883);
double r198891 = 16.0;
double r198892 = r198890 / r198891;
double r198893 = r198889 - r198892;
double r198894 = r198888 * r198893;
double r198895 = r198889 / r198891;
double r198896 = r198890 - r198895;
double r198897 = cbrt(r198896);
double r198898 = r198897 * r198897;
double r198899 = r198894 * r198898;
double r198900 = r198899 * r198897;
double r198901 = fma(r198886, r198900, r198887);
double r198902 = 3.0;
double r198903 = r198901 / r198902;
double r198904 = 5.0;
double r198905 = sqrt(r198904);
double r198906 = r198902 - r198905;
double r198907 = r198906 / r198887;
double r198908 = 1.0;
double r198909 = r198905 - r198908;
double r198910 = r198909 / r198887;
double r198911 = fma(r198880, r198910, r198908);
double r198912 = fma(r198884, r198907, r198911);
double r198913 = r198903 / r198912;
return r198913;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.5
Applied associate-*r*0.5
rmApplied add-cube-cbrt0.5
Applied fma-neg0.5
Final simplification0.5
herbie shell --seed 2020045 +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))))))