\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} + \sqrt{2} \cdot \left(\left(-\frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right) + \frac{\sin y}{{\left(\sqrt[3]{16}\right)}^{3}}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\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 r136780 = 2.0;
double r136781 = sqrt(r136780);
double r136782 = x;
double r136783 = sin(r136782);
double r136784 = y;
double r136785 = sin(r136784);
double r136786 = 16.0;
double r136787 = r136785 / r136786;
double r136788 = r136783 - r136787;
double r136789 = r136781 * r136788;
double r136790 = r136783 / r136786;
double r136791 = r136785 - r136790;
double r136792 = r136789 * r136791;
double r136793 = cos(r136782);
double r136794 = cos(r136784);
double r136795 = r136793 - r136794;
double r136796 = r136792 * r136795;
double r136797 = r136780 + r136796;
double r136798 = 3.0;
double r136799 = 1.0;
double r136800 = 5.0;
double r136801 = sqrt(r136800);
double r136802 = r136801 - r136799;
double r136803 = r136802 / r136780;
double r136804 = r136803 * r136793;
double r136805 = r136799 + r136804;
double r136806 = r136798 - r136801;
double r136807 = r136806 / r136780;
double r136808 = r136807 * r136794;
double r136809 = r136805 + r136808;
double r136810 = r136798 * r136809;
double r136811 = r136797 / r136810;
return r136811;
}
double f(double x, double y) {
double r136812 = x;
double r136813 = sin(r136812);
double r136814 = y;
double r136815 = sin(r136814);
double r136816 = 16.0;
double r136817 = cbrt(r136816);
double r136818 = 3.0;
double r136819 = pow(r136817, r136818);
double r136820 = r136815 / r136819;
double r136821 = r136813 - r136820;
double r136822 = 2.0;
double r136823 = sqrt(r136822);
double r136824 = r136821 * r136823;
double r136825 = -r136820;
double r136826 = r136825 + r136820;
double r136827 = r136823 * r136826;
double r136828 = r136824 + r136827;
double r136829 = r136813 / r136816;
double r136830 = r136815 - r136829;
double r136831 = cos(r136812);
double r136832 = cos(r136814);
double r136833 = r136831 - r136832;
double r136834 = r136830 * r136833;
double r136835 = fma(r136828, r136834, r136822);
double r136836 = 3.0;
double r136837 = r136835 / r136836;
double r136838 = r136836 * r136836;
double r136839 = 5.0;
double r136840 = r136838 - r136839;
double r136841 = sqrt(r136839);
double r136842 = r136836 + r136841;
double r136843 = r136840 / r136842;
double r136844 = r136843 / r136822;
double r136845 = 1.0;
double r136846 = r136841 - r136845;
double r136847 = r136846 / r136822;
double r136848 = fma(r136831, r136847, r136845);
double r136849 = fma(r136832, r136844, r136848);
double r136850 = r136837 / r136849;
return r136850;
}



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 add-sqr-sqrt31.7
Applied prod-diff31.7
Applied distribute-lft-in31.7
Simplified0.4
Simplified0.4
rmApplied flip--0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019325 +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))))))