\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{\mathsf{fma}\left(\left(\cos x - \cos y\right) \cdot \left(\sin y - \frac{\sin x}{16}\right), \mathsf{fma}\left(0 \cdot \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}, \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}, \sin x - \frac{{\left(\sqrt[3]{\sin y}\right)}^{3}}{16}\right) \cdot \sqrt{2}, 2\right)}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3}double f(double x, double y) {
double r221738 = 2.0;
double r221739 = sqrt(r221738);
double r221740 = x;
double r221741 = sin(r221740);
double r221742 = y;
double r221743 = sin(r221742);
double r221744 = 16.0;
double r221745 = r221743 / r221744;
double r221746 = r221741 - r221745;
double r221747 = r221739 * r221746;
double r221748 = r221741 / r221744;
double r221749 = r221743 - r221748;
double r221750 = r221747 * r221749;
double r221751 = cos(r221740);
double r221752 = cos(r221742);
double r221753 = r221751 - r221752;
double r221754 = r221750 * r221753;
double r221755 = r221738 + r221754;
double r221756 = 3.0;
double r221757 = 1.0;
double r221758 = 5.0;
double r221759 = sqrt(r221758);
double r221760 = r221759 - r221757;
double r221761 = r221760 / r221738;
double r221762 = r221761 * r221751;
double r221763 = r221757 + r221762;
double r221764 = r221756 - r221759;
double r221765 = r221764 / r221738;
double r221766 = r221765 * r221752;
double r221767 = r221763 + r221766;
double r221768 = r221756 * r221767;
double r221769 = r221755 / r221768;
return r221769;
}
double f(double x, double y) {
double r221770 = x;
double r221771 = cos(r221770);
double r221772 = y;
double r221773 = cos(r221772);
double r221774 = r221771 - r221773;
double r221775 = sin(r221772);
double r221776 = sin(r221770);
double r221777 = 16.0;
double r221778 = r221776 / r221777;
double r221779 = r221775 - r221778;
double r221780 = r221774 * r221779;
double r221781 = 0.0;
double r221782 = cbrt(r221775);
double r221783 = cbrt(r221777);
double r221784 = r221782 / r221783;
double r221785 = r221781 * r221784;
double r221786 = 3.0;
double r221787 = pow(r221782, r221786);
double r221788 = r221787 / r221777;
double r221789 = r221776 - r221788;
double r221790 = fma(r221785, r221784, r221789);
double r221791 = 2.0;
double r221792 = sqrt(r221791);
double r221793 = r221790 * r221792;
double r221794 = fma(r221780, r221793, r221791);
double r221795 = 3.0;
double r221796 = 5.0;
double r221797 = sqrt(r221796);
double r221798 = r221795 - r221797;
double r221799 = r221798 / r221791;
double r221800 = 1.0;
double r221801 = r221797 - r221800;
double r221802 = r221801 / r221791;
double r221803 = fma(r221771, r221802, r221800);
double r221804 = fma(r221773, r221799, r221803);
double r221805 = r221804 * r221795;
double r221806 = r221794 / r221805;
return r221806;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied *-un-lft-identity0.4
Applied prod-diff0.4
Applied distribute-lft-in0.4
Simplified0.4
Simplified0.4
Simplified0.5
Final simplification0.5
herbie shell --seed 2020047 +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))))))