\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{\mathsf{fma}\left(\sqrt[3]{\sqrt{2.0} \cdot \left(\left(\left(\cos x - \cos y\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\left(\left(\left(\cos x - \cos y\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot 2.0\right)\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{3.0 \cdot \mathsf{fma}\left(\frac{3.0 - \sqrt{5.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}double f(double x, double y) {
double r9571746 = 2.0;
double r9571747 = sqrt(r9571746);
double r9571748 = x;
double r9571749 = sin(r9571748);
double r9571750 = y;
double r9571751 = sin(r9571750);
double r9571752 = 16.0;
double r9571753 = r9571751 / r9571752;
double r9571754 = r9571749 - r9571753;
double r9571755 = r9571747 * r9571754;
double r9571756 = r9571749 / r9571752;
double r9571757 = r9571751 - r9571756;
double r9571758 = r9571755 * r9571757;
double r9571759 = cos(r9571748);
double r9571760 = cos(r9571750);
double r9571761 = r9571759 - r9571760;
double r9571762 = r9571758 * r9571761;
double r9571763 = r9571746 + r9571762;
double r9571764 = 3.0;
double r9571765 = 1.0;
double r9571766 = 5.0;
double r9571767 = sqrt(r9571766);
double r9571768 = r9571767 - r9571765;
double r9571769 = r9571768 / r9571746;
double r9571770 = r9571769 * r9571759;
double r9571771 = r9571765 + r9571770;
double r9571772 = r9571764 - r9571767;
double r9571773 = r9571772 / r9571746;
double r9571774 = r9571773 * r9571760;
double r9571775 = r9571771 + r9571774;
double r9571776 = r9571764 * r9571775;
double r9571777 = r9571763 / r9571776;
return r9571777;
}
double f(double x, double y) {
double r9571778 = 2.0;
double r9571779 = sqrt(r9571778);
double r9571780 = x;
double r9571781 = cos(r9571780);
double r9571782 = y;
double r9571783 = cos(r9571782);
double r9571784 = r9571781 - r9571783;
double r9571785 = sin(r9571780);
double r9571786 = sin(r9571782);
double r9571787 = 16.0;
double r9571788 = r9571786 / r9571787;
double r9571789 = r9571785 - r9571788;
double r9571790 = r9571784 * r9571789;
double r9571791 = r9571790 * r9571790;
double r9571792 = r9571791 * r9571778;
double r9571793 = r9571790 * r9571792;
double r9571794 = r9571779 * r9571793;
double r9571795 = cbrt(r9571794);
double r9571796 = r9571785 / r9571787;
double r9571797 = r9571786 - r9571796;
double r9571798 = fma(r9571795, r9571797, r9571778);
double r9571799 = 3.0;
double r9571800 = 5.0;
double r9571801 = sqrt(r9571800);
double r9571802 = r9571799 - r9571801;
double r9571803 = r9571802 / r9571778;
double r9571804 = 1.0;
double r9571805 = r9571801 - r9571804;
double r9571806 = r9571805 / r9571778;
double r9571807 = fma(r9571781, r9571806, r9571804);
double r9571808 = fma(r9571803, r9571783, r9571807);
double r9571809 = r9571799 * r9571808;
double r9571810 = r9571798 / r9571809;
return r9571810;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied add-cbrt-cube0.5
Applied add-cbrt-cube0.5
Applied cbrt-unprod0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019168 +o rules:numerics
(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))))))