Average Error: 0.5 → 0.4
Time: 44.2s
Precision: 64
\[\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{\frac{\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)}{3}}{\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)}\]
\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{\frac{\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)}{3}}{\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)}
double f(double x, double y) {
        double r201819 = 2.0;
        double r201820 = sqrt(r201819);
        double r201821 = x;
        double r201822 = sin(r201821);
        double r201823 = y;
        double r201824 = sin(r201823);
        double r201825 = 16.0;
        double r201826 = r201824 / r201825;
        double r201827 = r201822 - r201826;
        double r201828 = r201820 * r201827;
        double r201829 = r201822 / r201825;
        double r201830 = r201824 - r201829;
        double r201831 = r201828 * r201830;
        double r201832 = cos(r201821);
        double r201833 = cos(r201823);
        double r201834 = r201832 - r201833;
        double r201835 = r201831 * r201834;
        double r201836 = r201819 + r201835;
        double r201837 = 3.0;
        double r201838 = 1.0;
        double r201839 = 5.0;
        double r201840 = sqrt(r201839);
        double r201841 = r201840 - r201838;
        double r201842 = r201841 / r201819;
        double r201843 = r201842 * r201832;
        double r201844 = r201838 + r201843;
        double r201845 = r201837 - r201840;
        double r201846 = r201845 / r201819;
        double r201847 = r201846 * r201833;
        double r201848 = r201844 + r201847;
        double r201849 = r201837 * r201848;
        double r201850 = r201836 / r201849;
        return r201850;
}

double f(double x, double y) {
        double r201851 = 2.0;
        double r201852 = sqrt(r201851);
        double r201853 = x;
        double r201854 = sin(r201853);
        double r201855 = y;
        double r201856 = sin(r201855);
        double r201857 = 16.0;
        double r201858 = r201856 / r201857;
        double r201859 = r201854 - r201858;
        double r201860 = r201852 * r201859;
        double r201861 = r201854 / r201857;
        double r201862 = r201856 - r201861;
        double r201863 = cos(r201853);
        double r201864 = cos(r201855);
        double r201865 = r201863 - r201864;
        double r201866 = r201862 * r201865;
        double r201867 = fma(r201860, r201866, r201851);
        double r201868 = 3.0;
        double r201869 = r201867 / r201868;
        double r201870 = r201868 * r201868;
        double r201871 = 5.0;
        double r201872 = r201870 - r201871;
        double r201873 = sqrt(r201871);
        double r201874 = r201868 + r201873;
        double r201875 = r201872 / r201874;
        double r201876 = r201875 / r201851;
        double r201877 = 1.0;
        double r201878 = r201873 - r201877;
        double r201879 = r201878 / r201851;
        double r201880 = fma(r201863, r201879, r201877);
        double r201881 = fma(r201864, r201876, r201880);
        double r201882 = r201869 / r201881;
        return r201882;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.5

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

    \[\leadsto \color{blue}{\frac{\frac{\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)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}}\]
  3. Using strategy rm
  4. Applied flip--0.5

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

    \[\leadsto \frac{\frac{\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)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{\color{blue}{3 \cdot 3 - 5}}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}\]
  6. Final simplification0.4

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

Reproduce

herbie shell --seed 2019303 +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))))))