\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 \mathsf{fma}\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}, \sqrt[3]{\sin x}, -\frac{\sin y}{\sqrt[3]{16}} \cdot \frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) + \sqrt{2} \cdot \left(\frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(\left(-\frac{\sin y}{\sqrt[3]{16}}\right) + \frac{\sin y}{\sqrt[3]{16}}\right)\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r163796 = 2.0;
double r163797 = sqrt(r163796);
double r163798 = x;
double r163799 = sin(r163798);
double r163800 = y;
double r163801 = sin(r163800);
double r163802 = 16.0;
double r163803 = r163801 / r163802;
double r163804 = r163799 - r163803;
double r163805 = r163797 * r163804;
double r163806 = r163799 / r163802;
double r163807 = r163801 - r163806;
double r163808 = r163805 * r163807;
double r163809 = cos(r163798);
double r163810 = cos(r163800);
double r163811 = r163809 - r163810;
double r163812 = r163808 * r163811;
double r163813 = r163796 + r163812;
double r163814 = 3.0;
double r163815 = 1.0;
double r163816 = 5.0;
double r163817 = sqrt(r163816);
double r163818 = r163817 - r163815;
double r163819 = r163818 / r163796;
double r163820 = r163819 * r163809;
double r163821 = r163815 + r163820;
double r163822 = r163814 - r163817;
double r163823 = r163822 / r163796;
double r163824 = r163823 * r163810;
double r163825 = r163821 + r163824;
double r163826 = r163814 * r163825;
double r163827 = r163813 / r163826;
return r163827;
}
double f(double x, double y) {
double r163828 = 2.0;
double r163829 = sqrt(r163828);
double r163830 = x;
double r163831 = sin(r163830);
double r163832 = cbrt(r163831);
double r163833 = r163832 * r163832;
double r163834 = y;
double r163835 = sin(r163834);
double r163836 = 16.0;
double r163837 = cbrt(r163836);
double r163838 = r163835 / r163837;
double r163839 = 1.0;
double r163840 = r163837 * r163837;
double r163841 = r163839 / r163840;
double r163842 = r163838 * r163841;
double r163843 = -r163842;
double r163844 = fma(r163833, r163832, r163843);
double r163845 = r163829 * r163844;
double r163846 = -r163838;
double r163847 = r163846 + r163838;
double r163848 = r163841 * r163847;
double r163849 = r163829 * r163848;
double r163850 = r163845 + r163849;
double r163851 = r163831 / r163836;
double r163852 = r163835 - r163851;
double r163853 = cos(r163830);
double r163854 = cos(r163834);
double r163855 = r163853 - r163854;
double r163856 = r163852 * r163855;
double r163857 = fma(r163850, r163856, r163828);
double r163858 = 3.0;
double r163859 = 5.0;
double r163860 = sqrt(r163859);
double r163861 = r163858 - r163860;
double r163862 = r163861 / r163828;
double r163863 = 1.0;
double r163864 = r163860 - r163863;
double r163865 = r163864 / r163828;
double r163866 = fma(r163865, r163853, r163863);
double r163867 = fma(r163862, r163854, r163866);
double r163868 = r163857 / r163867;
double r163869 = r163868 / r163858;
return r163869;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt32.0
Applied times-frac32.0
Applied add-cube-cbrt32.0
Applied prod-diff32.0
Applied distribute-lft-in32.0
Simplified32.0
Simplified0.5
Final simplification0.5
herbie shell --seed 2020062 +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))))))