\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(\sin y - \frac{\sin x}{16}\right) \cdot \left(\left(\cos x \cdot \cos x\right) \cdot \cos x - \cos y \cdot \left(\cos y \cdot \cos y\right)\right)\right) \cdot \left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt[3]{\left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right) \cdot \left(\left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right) \cdot \left(\left(\frac{\sin y}{16} + \sin x\right) \cdot \sqrt{2}\right)\right)}\right)}{\left(\left(\cos x + \cos y\right) \cdot \cos y + \cos x \cdot \cos x\right) \cdot \left(\frac{\sin y}{16} + \sin x\right)}}{3 \cdot \left(\left(1 + \cos x \cdot \frac{\sqrt{5} - 1}{2}\right) + \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2} \cdot \cos y\right)}double f(double x, double y) {
double r12018699 = 2.0;
double r12018700 = sqrt(r12018699);
double r12018701 = x;
double r12018702 = sin(r12018701);
double r12018703 = y;
double r12018704 = sin(r12018703);
double r12018705 = 16.0;
double r12018706 = r12018704 / r12018705;
double r12018707 = r12018702 - r12018706;
double r12018708 = r12018700 * r12018707;
double r12018709 = r12018702 / r12018705;
double r12018710 = r12018704 - r12018709;
double r12018711 = r12018708 * r12018710;
double r12018712 = cos(r12018701);
double r12018713 = cos(r12018703);
double r12018714 = r12018712 - r12018713;
double r12018715 = r12018711 * r12018714;
double r12018716 = r12018699 + r12018715;
double r12018717 = 3.0;
double r12018718 = 1.0;
double r12018719 = 5.0;
double r12018720 = sqrt(r12018719);
double r12018721 = r12018720 - r12018718;
double r12018722 = r12018721 / r12018699;
double r12018723 = r12018722 * r12018712;
double r12018724 = r12018718 + r12018723;
double r12018725 = r12018717 - r12018720;
double r12018726 = r12018725 / r12018699;
double r12018727 = r12018726 * r12018713;
double r12018728 = r12018724 + r12018727;
double r12018729 = r12018717 * r12018728;
double r12018730 = r12018716 / r12018729;
return r12018730;
}
double f(double x, double y) {
double r12018731 = 2.0;
double r12018732 = y;
double r12018733 = sin(r12018732);
double r12018734 = x;
double r12018735 = sin(r12018734);
double r12018736 = 16.0;
double r12018737 = r12018735 / r12018736;
double r12018738 = r12018733 - r12018737;
double r12018739 = cos(r12018734);
double r12018740 = r12018739 * r12018739;
double r12018741 = r12018740 * r12018739;
double r12018742 = cos(r12018732);
double r12018743 = r12018742 * r12018742;
double r12018744 = r12018742 * r12018743;
double r12018745 = r12018741 - r12018744;
double r12018746 = r12018738 * r12018745;
double r12018747 = r12018733 / r12018736;
double r12018748 = r12018735 - r12018747;
double r12018749 = r12018747 + r12018735;
double r12018750 = sqrt(r12018731);
double r12018751 = r12018749 * r12018750;
double r12018752 = r12018751 * r12018751;
double r12018753 = r12018751 * r12018752;
double r12018754 = cbrt(r12018753);
double r12018755 = r12018748 * r12018754;
double r12018756 = r12018746 * r12018755;
double r12018757 = r12018739 + r12018742;
double r12018758 = r12018757 * r12018742;
double r12018759 = r12018758 + r12018740;
double r12018760 = r12018759 * r12018749;
double r12018761 = r12018756 / r12018760;
double r12018762 = r12018731 + r12018761;
double r12018763 = 3.0;
double r12018764 = 1.0;
double r12018765 = 5.0;
double r12018766 = sqrt(r12018765);
double r12018767 = r12018766 - r12018764;
double r12018768 = r12018767 / r12018731;
double r12018769 = r12018739 * r12018768;
double r12018770 = r12018764 + r12018769;
double r12018771 = r12018763 * r12018763;
double r12018772 = r12018771 - r12018765;
double r12018773 = r12018766 + r12018763;
double r12018774 = r12018772 / r12018773;
double r12018775 = r12018774 / r12018731;
double r12018776 = r12018775 * r12018742;
double r12018777 = r12018770 + r12018776;
double r12018778 = r12018763 * r12018777;
double r12018779 = r12018762 / r12018778;
return r12018779;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied sqrt-prod0.4
Applied associate-*l*0.4
rmApplied flip3--0.4
Applied flip--0.5
Applied associate-*r/0.4
Applied associate-*r/0.5
Applied associate-*l/0.4
Applied frac-times0.4
Simplified0.4
Simplified0.4
rmApplied add-cbrt-cube0.5
Final simplification0.5
herbie shell --seed 2019172
(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))))))