\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\frac{2.0 \cdot 2.0 - \left(\left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\left(\cos y \cdot \frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0} + \left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right)\right) \cdot 3.0\right) \cdot \left(2.0 - \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}double f(double x, double y) {
double r13029707 = 2.0;
double r13029708 = sqrt(r13029707);
double r13029709 = x;
double r13029710 = sin(r13029709);
double r13029711 = y;
double r13029712 = sin(r13029711);
double r13029713 = 16.0;
double r13029714 = r13029712 / r13029713;
double r13029715 = r13029710 - r13029714;
double r13029716 = r13029708 * r13029715;
double r13029717 = r13029710 / r13029713;
double r13029718 = r13029712 - r13029717;
double r13029719 = r13029716 * r13029718;
double r13029720 = cos(r13029709);
double r13029721 = cos(r13029711);
double r13029722 = r13029720 - r13029721;
double r13029723 = r13029719 * r13029722;
double r13029724 = r13029707 + r13029723;
double r13029725 = 3.0;
double r13029726 = 1.0;
double r13029727 = 5.0;
double r13029728 = sqrt(r13029727);
double r13029729 = r13029728 - r13029726;
double r13029730 = r13029729 / r13029707;
double r13029731 = r13029730 * r13029720;
double r13029732 = r13029726 + r13029731;
double r13029733 = r13029725 - r13029728;
double r13029734 = r13029733 / r13029707;
double r13029735 = r13029734 * r13029721;
double r13029736 = r13029732 + r13029735;
double r13029737 = r13029725 * r13029736;
double r13029738 = r13029724 / r13029737;
return r13029738;
}
double f(double x, double y) {
double r13029739 = 2.0;
double r13029740 = r13029739 * r13029739;
double r13029741 = y;
double r13029742 = sin(r13029741);
double r13029743 = x;
double r13029744 = sin(r13029743);
double r13029745 = 16.0;
double r13029746 = r13029744 / r13029745;
double r13029747 = r13029742 - r13029746;
double r13029748 = sqrt(r13029739);
double r13029749 = r13029742 / r13029745;
double r13029750 = r13029744 - r13029749;
double r13029751 = r13029748 * r13029750;
double r13029752 = r13029747 * r13029751;
double r13029753 = cos(r13029743);
double r13029754 = cos(r13029741);
double r13029755 = r13029753 - r13029754;
double r13029756 = r13029752 * r13029755;
double r13029757 = r13029756 * r13029756;
double r13029758 = r13029740 - r13029757;
double r13029759 = 3.0;
double r13029760 = r13029759 * r13029759;
double r13029761 = 5.0;
double r13029762 = r13029760 - r13029761;
double r13029763 = sqrt(r13029761);
double r13029764 = r13029759 + r13029763;
double r13029765 = r13029762 / r13029764;
double r13029766 = r13029765 / r13029739;
double r13029767 = r13029754 * r13029766;
double r13029768 = 1.0;
double r13029769 = r13029763 - r13029768;
double r13029770 = r13029769 / r13029739;
double r13029771 = r13029753 * r13029770;
double r13029772 = r13029771 + r13029768;
double r13029773 = r13029767 + r13029772;
double r13029774 = r13029773 * r13029759;
double r13029775 = r13029739 - r13029756;
double r13029776 = r13029774 * r13029775;
double r13029777 = r13029758 / r13029776;
return r13029777;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
rmApplied flip--0.5
Simplified0.4
rmApplied flip-+0.5
Applied associate-/l/0.5
Final simplification0.5
herbie shell --seed 2019162
(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))))))