\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 r161755 = 2.0;
double r161756 = sqrt(r161755);
double r161757 = x;
double r161758 = sin(r161757);
double r161759 = y;
double r161760 = sin(r161759);
double r161761 = 16.0;
double r161762 = r161760 / r161761;
double r161763 = r161758 - r161762;
double r161764 = r161756 * r161763;
double r161765 = r161758 / r161761;
double r161766 = r161760 - r161765;
double r161767 = r161764 * r161766;
double r161768 = cos(r161757);
double r161769 = cos(r161759);
double r161770 = r161768 - r161769;
double r161771 = r161767 * r161770;
double r161772 = r161755 + r161771;
double r161773 = 3.0;
double r161774 = 1.0;
double r161775 = 5.0;
double r161776 = sqrt(r161775);
double r161777 = r161776 - r161774;
double r161778 = r161777 / r161755;
double r161779 = r161778 * r161768;
double r161780 = r161774 + r161779;
double r161781 = r161773 - r161776;
double r161782 = r161781 / r161755;
double r161783 = r161782 * r161769;
double r161784 = r161780 + r161783;
double r161785 = r161773 * r161784;
double r161786 = r161772 / r161785;
return r161786;
}
double f(double x, double y) {
double r161787 = x;
double r161788 = sin(r161787);
double r161789 = y;
double r161790 = sin(r161789);
double r161791 = 16.0;
double r161792 = cbrt(r161791);
double r161793 = 3.0;
double r161794 = pow(r161792, r161793);
double r161795 = r161790 / r161794;
double r161796 = r161788 - r161795;
double r161797 = 2.0;
double r161798 = sqrt(r161797);
double r161799 = r161796 * r161798;
double r161800 = -r161795;
double r161801 = r161800 + r161795;
double r161802 = r161801 * r161798;
double r161803 = r161799 + r161802;
double r161804 = r161788 / r161791;
double r161805 = r161790 - r161804;
double r161806 = cos(r161787);
double r161807 = cbrt(r161806);
double r161808 = r161807 * r161807;
double r161809 = cos(r161789);
double r161810 = -r161809;
double r161811 = fma(r161808, r161807, r161810);
double r161812 = r161805 * r161811;
double r161813 = fma(r161803, r161812, r161797);
double r161814 = 3.0;
double r161815 = r161813 / r161814;
double r161816 = r161814 * r161814;
double r161817 = 5.0;
double r161818 = r161816 - r161817;
double r161819 = sqrt(r161817);
double r161820 = r161814 + r161819;
double r161821 = r161818 / r161820;
double r161822 = r161821 / r161797;
double r161823 = 1.0;
double r161824 = r161819 - r161823;
double r161825 = r161824 / r161797;
double r161826 = fma(r161806, r161825, r161823);
double r161827 = fma(r161809, r161822, r161826);
double r161828 = r161815 / r161827;
return r161828;
}



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))))))