\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)}\mathsf{fma}\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right) \cdot \frac{\frac{1}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(\sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3}, -\sqrt{\sqrt[3]{5}} \cdot \sqrt{\sqrt[3]{5} \cdot \sqrt[3]{5}}\right) + \sqrt{\sqrt[3]{5}} \cdot \left(\left(-\left|\sqrt[3]{5}\right|\right) + \left|\sqrt[3]{5}\right|\right)}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r315662 = 2.0;
double r315663 = sqrt(r315662);
double r315664 = x;
double r315665 = sin(r315664);
double r315666 = y;
double r315667 = sin(r315666);
double r315668 = 16.0;
double r315669 = r315667 / r315668;
double r315670 = r315665 - r315669;
double r315671 = r315663 * r315670;
double r315672 = r315665 / r315668;
double r315673 = r315667 - r315672;
double r315674 = r315671 * r315673;
double r315675 = cos(r315664);
double r315676 = cos(r315666);
double r315677 = r315675 - r315676;
double r315678 = r315674 * r315677;
double r315679 = r315662 + r315678;
double r315680 = 3.0;
double r315681 = 1.0;
double r315682 = 5.0;
double r315683 = sqrt(r315682);
double r315684 = r315683 - r315681;
double r315685 = r315684 / r315662;
double r315686 = r315685 * r315675;
double r315687 = r315681 + r315686;
double r315688 = r315680 - r315683;
double r315689 = r315688 / r315662;
double r315690 = r315689 * r315676;
double r315691 = r315687 + r315690;
double r315692 = r315680 * r315691;
double r315693 = r315679 / r315692;
return r315693;
}
double f(double x, double y) {
double r315694 = 2.0;
double r315695 = sqrt(r315694);
double r315696 = x;
double r315697 = sin(r315696);
double r315698 = y;
double r315699 = sin(r315698);
double r315700 = 16.0;
double r315701 = r315699 / r315700;
double r315702 = r315697 - r315701;
double r315703 = r315695 * r315702;
double r315704 = r315697 / r315700;
double r315705 = r315699 - r315704;
double r315706 = cos(r315696);
double r315707 = cos(r315698);
double r315708 = r315706 - r315707;
double r315709 = r315705 * r315708;
double r315710 = fma(r315703, r315709, r315694);
double r315711 = 1.0;
double r315712 = 3.0;
double r315713 = cbrt(r315712);
double r315714 = r315713 * r315713;
double r315715 = 5.0;
double r315716 = cbrt(r315715);
double r315717 = sqrt(r315716);
double r315718 = r315716 * r315716;
double r315719 = sqrt(r315718);
double r315720 = r315717 * r315719;
double r315721 = -r315720;
double r315722 = fma(r315714, r315713, r315721);
double r315723 = fabs(r315716);
double r315724 = -r315723;
double r315725 = r315724 + r315723;
double r315726 = r315717 * r315725;
double r315727 = r315722 + r315726;
double r315728 = r315727 / r315694;
double r315729 = sqrt(r315715);
double r315730 = 1.0;
double r315731 = r315729 - r315730;
double r315732 = r315731 / r315694;
double r315733 = fma(r315732, r315706, r315730);
double r315734 = fma(r315728, r315707, r315733);
double r315735 = r315711 / r315734;
double r315736 = r315735 / r315712;
double r315737 = r315710 * r315736;
return r315737;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied *-un-lft-identity0.5
Applied div-inv0.5
Applied times-frac0.5
Simplified0.5
rmApplied add-cube-cbrt0.6
Applied sqrt-prod0.6
Applied add-cube-cbrt0.6
Applied prod-diff0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020100 +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))))))