\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 + \sqrt[3]{{\left(\cos x - \cos y\right)}^{3}} \cdot \left(\log \left({\left(e^{\sqrt{2}}\right)}^{\left(\sin x - \frac{\sin y}{16}\right)}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right)}{3 \cdot \left(\frac{\frac{\mathsf{fma}\left(5, -\sqrt{5}, {3}^{3}\right)}{\mathsf{fma}\left(3, 3, \mathsf{fma}\left(\sqrt{5}, 3, 5\right)\right)}}{2} \cdot \cos y + \left(\frac{\sqrt{5} - 1}{2} \cdot \cos x + 1\right)\right)}double f(double x, double y) {
double r161773 = 2.0;
double r161774 = sqrt(r161773);
double r161775 = x;
double r161776 = sin(r161775);
double r161777 = y;
double r161778 = sin(r161777);
double r161779 = 16.0;
double r161780 = r161778 / r161779;
double r161781 = r161776 - r161780;
double r161782 = r161774 * r161781;
double r161783 = r161776 / r161779;
double r161784 = r161778 - r161783;
double r161785 = r161782 * r161784;
double r161786 = cos(r161775);
double r161787 = cos(r161777);
double r161788 = r161786 - r161787;
double r161789 = r161785 * r161788;
double r161790 = r161773 + r161789;
double r161791 = 3.0;
double r161792 = 1.0;
double r161793 = 5.0;
double r161794 = sqrt(r161793);
double r161795 = r161794 - r161792;
double r161796 = r161795 / r161773;
double r161797 = r161796 * r161786;
double r161798 = r161792 + r161797;
double r161799 = r161791 - r161794;
double r161800 = r161799 / r161773;
double r161801 = r161800 * r161787;
double r161802 = r161798 + r161801;
double r161803 = r161791 * r161802;
double r161804 = r161790 / r161803;
return r161804;
}
double f(double x, double y) {
double r161805 = 2.0;
double r161806 = x;
double r161807 = cos(r161806);
double r161808 = y;
double r161809 = cos(r161808);
double r161810 = r161807 - r161809;
double r161811 = 3.0;
double r161812 = pow(r161810, r161811);
double r161813 = cbrt(r161812);
double r161814 = sqrt(r161805);
double r161815 = exp(r161814);
double r161816 = sin(r161806);
double r161817 = sin(r161808);
double r161818 = 16.0;
double r161819 = r161817 / r161818;
double r161820 = r161816 - r161819;
double r161821 = pow(r161815, r161820);
double r161822 = log(r161821);
double r161823 = r161816 / r161818;
double r161824 = r161817 - r161823;
double r161825 = r161822 * r161824;
double r161826 = r161813 * r161825;
double r161827 = r161805 + r161826;
double r161828 = 3.0;
double r161829 = 5.0;
double r161830 = sqrt(r161829);
double r161831 = -r161830;
double r161832 = pow(r161828, r161811);
double r161833 = fma(r161829, r161831, r161832);
double r161834 = fma(r161830, r161828, r161829);
double r161835 = fma(r161828, r161828, r161834);
double r161836 = r161833 / r161835;
double r161837 = r161836 / r161805;
double r161838 = r161837 * r161809;
double r161839 = 1.0;
double r161840 = r161830 - r161839;
double r161841 = r161840 / r161805;
double r161842 = r161841 * r161807;
double r161843 = r161842 + r161839;
double r161844 = r161838 + r161843;
double r161845 = r161828 * r161844;
double r161846 = r161827 / r161845;
return r161846;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied add-log-exp0.5
Simplified0.5
rmApplied add-cbrt-cube0.5
Simplified0.5
rmApplied flip3--0.5
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019196 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))