Average Error: 0.5 → 0.5
Time: 42.2s
Precision: 64
\[\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)}\]
\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;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.5

    \[\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)}\]
  2. Simplified0.5

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\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) \cdot 3.0}}\]
  3. Using strategy rm
  4. Applied add-cbrt-cube0.5

    \[\leadsto \frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)}}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\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) \cdot 3.0}\]
  5. Applied add-cbrt-cube0.5

    \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\sqrt[3]{\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)}} \cdot \sqrt[3]{\left(\left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\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) \cdot 3.0}\]
  6. Applied cbrt-unprod0.5

    \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\sqrt[3]{\left(\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\left(\left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right)\right)}}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\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) \cdot 3.0}\]
  7. Simplified0.5

    \[\leadsto \frac{\mathsf{fma}\left(\sqrt[3]{\color{blue}{\left(\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) \cdot \left(\left(\cos x - \cos y\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)\right) \cdot \sqrt{2.0}}}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\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) \cdot 3.0}\]
  8. Final simplification0.5

    \[\leadsto \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)}\]

Reproduce

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))))))