\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(\cos x - \cos y, \left(\sqrt{2} \cdot \mathsf{fma}\left(1, \sin x, -\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) + \mathsf{fma}\left(-\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}, \frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}}, \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) \cdot \sqrt{2}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right), 2\right)}{\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) \cdot 3}double f(double x, double y) {
double r227696 = 2.0;
double r227697 = sqrt(r227696);
double r227698 = x;
double r227699 = sin(r227698);
double r227700 = y;
double r227701 = sin(r227700);
double r227702 = 16.0;
double r227703 = r227701 / r227702;
double r227704 = r227699 - r227703;
double r227705 = r227697 * r227704;
double r227706 = r227699 / r227702;
double r227707 = r227701 - r227706;
double r227708 = r227705 * r227707;
double r227709 = cos(r227698);
double r227710 = cos(r227700);
double r227711 = r227709 - r227710;
double r227712 = r227708 * r227711;
double r227713 = r227696 + r227712;
double r227714 = 3.0;
double r227715 = 1.0;
double r227716 = 5.0;
double r227717 = sqrt(r227716);
double r227718 = r227717 - r227715;
double r227719 = r227718 / r227696;
double r227720 = r227719 * r227709;
double r227721 = r227715 + r227720;
double r227722 = r227714 - r227717;
double r227723 = r227722 / r227696;
double r227724 = r227723 * r227710;
double r227725 = r227721 + r227724;
double r227726 = r227714 * r227725;
double r227727 = r227713 / r227726;
return r227727;
}
double f(double x, double y) {
double r227728 = x;
double r227729 = cos(r227728);
double r227730 = y;
double r227731 = cos(r227730);
double r227732 = r227729 - r227731;
double r227733 = 2.0;
double r227734 = sqrt(r227733);
double r227735 = 1.0;
double r227736 = sin(r227728);
double r227737 = sin(r227730);
double r227738 = cbrt(r227737);
double r227739 = 16.0;
double r227740 = cbrt(r227739);
double r227741 = r227738 / r227740;
double r227742 = r227738 * r227738;
double r227743 = r227740 * r227740;
double r227744 = r227742 / r227743;
double r227745 = r227741 * r227744;
double r227746 = -r227745;
double r227747 = fma(r227735, r227736, r227746);
double r227748 = r227734 * r227747;
double r227749 = -r227741;
double r227750 = fma(r227749, r227744, r227745);
double r227751 = r227750 * r227734;
double r227752 = r227748 + r227751;
double r227753 = r227736 / r227739;
double r227754 = r227737 - r227753;
double r227755 = r227752 * r227754;
double r227756 = fma(r227732, r227755, r227733);
double r227757 = 3.0;
double r227758 = r227757 * r227757;
double r227759 = 5.0;
double r227760 = r227758 - r227759;
double r227761 = sqrt(r227759);
double r227762 = r227757 + r227761;
double r227763 = r227760 / r227762;
double r227764 = r227763 / r227733;
double r227765 = 1.0;
double r227766 = r227761 - r227765;
double r227767 = r227766 / r227733;
double r227768 = fma(r227729, r227767, r227765);
double r227769 = fma(r227731, r227764, r227768);
double r227770 = r227769 * r227757;
double r227771 = r227756 / r227770;
return r227771;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied flip--0.5
Simplified0.4
rmApplied associate-/l/0.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
Final simplification0.4
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))))))