\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{2 + \frac{\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 \frac{\left(-\cos \left(y + y\right)\right) + \cos \left(2 \cdot x\right)}{2}}{\sqrt[3]{{\left(\cos y + \cos x\right)}^{3}}}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r161897 = 2.0;
double r161898 = sqrt(r161897);
double r161899 = x;
double r161900 = sin(r161899);
double r161901 = y;
double r161902 = sin(r161901);
double r161903 = 16.0;
double r161904 = r161902 / r161903;
double r161905 = r161900 - r161904;
double r161906 = r161898 * r161905;
double r161907 = r161900 / r161903;
double r161908 = r161902 - r161907;
double r161909 = r161906 * r161908;
double r161910 = cos(r161899);
double r161911 = cos(r161901);
double r161912 = r161910 - r161911;
double r161913 = r161909 * r161912;
double r161914 = r161897 + r161913;
double r161915 = 3.0;
double r161916 = 1.0;
double r161917 = 5.0;
double r161918 = sqrt(r161917);
double r161919 = r161918 - r161916;
double r161920 = r161919 / r161897;
double r161921 = r161920 * r161910;
double r161922 = r161916 + r161921;
double r161923 = r161915 - r161918;
double r161924 = r161923 / r161897;
double r161925 = r161924 * r161911;
double r161926 = r161922 + r161925;
double r161927 = r161915 * r161926;
double r161928 = r161914 / r161927;
return r161928;
}
double f(double x, double y) {
double r161929 = 2.0;
double r161930 = sqrt(r161929);
double r161931 = x;
double r161932 = sin(r161931);
double r161933 = y;
double r161934 = sin(r161933);
double r161935 = 16.0;
double r161936 = r161934 / r161935;
double r161937 = r161932 - r161936;
double r161938 = r161930 * r161937;
double r161939 = r161932 / r161935;
double r161940 = r161934 - r161939;
double r161941 = r161938 * r161940;
double r161942 = r161933 + r161933;
double r161943 = cos(r161942);
double r161944 = -r161943;
double r161945 = 2.0;
double r161946 = r161945 * r161931;
double r161947 = cos(r161946);
double r161948 = r161944 + r161947;
double r161949 = r161948 / r161945;
double r161950 = r161941 * r161949;
double r161951 = cos(r161933);
double r161952 = cos(r161931);
double r161953 = r161951 + r161952;
double r161954 = 3.0;
double r161955 = pow(r161953, r161954);
double r161956 = cbrt(r161955);
double r161957 = r161950 / r161956;
double r161958 = r161929 + r161957;
double r161959 = 3.0;
double r161960 = 1.0;
double r161961 = 5.0;
double r161962 = sqrt(r161961);
double r161963 = r161962 - r161960;
double r161964 = r161963 / r161929;
double r161965 = r161964 * r161952;
double r161966 = r161960 + r161965;
double r161967 = r161959 * r161959;
double r161968 = r161967 - r161961;
double r161969 = r161959 + r161962;
double r161970 = r161968 / r161969;
double r161971 = r161970 / r161929;
double r161972 = r161971 * r161951;
double r161973 = r161966 + r161972;
double r161974 = r161959 * r161973;
double r161975 = r161958 / r161974;
return r161975;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.5
rmApplied flip--0.5
Applied associate-*r/0.5
rmApplied add-cbrt-cube0.5
Simplified0.5
rmApplied cos-mult0.5
Applied cos-mult0.5
Applied sub-div0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019212
(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))))))