Average Error: 0.5 → 0.5
Time: 10.5s
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 \frac{\cos x \cdot \cos x - \cos y \cdot \cos y}{\cos x + \cos y}, 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}\]
\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 \frac{\cos x \cdot \cos x - \cos y \cdot \cos y}{\cos x + \cos y}, 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}
double f(double x, double y) {
        double r195853 = 2.0;
        double r195854 = sqrt(r195853);
        double r195855 = x;
        double r195856 = sin(r195855);
        double r195857 = y;
        double r195858 = sin(r195857);
        double r195859 = 16.0;
        double r195860 = r195858 / r195859;
        double r195861 = r195856 - r195860;
        double r195862 = r195854 * r195861;
        double r195863 = r195856 / r195859;
        double r195864 = r195858 - r195863;
        double r195865 = r195862 * r195864;
        double r195866 = cos(r195855);
        double r195867 = cos(r195857);
        double r195868 = r195866 - r195867;
        double r195869 = r195865 * r195868;
        double r195870 = r195853 + r195869;
        double r195871 = 3.0;
        double r195872 = 1.0;
        double r195873 = 5.0;
        double r195874 = sqrt(r195873);
        double r195875 = r195874 - r195872;
        double r195876 = r195875 / r195853;
        double r195877 = r195876 * r195866;
        double r195878 = r195872 + r195877;
        double r195879 = r195871 - r195874;
        double r195880 = r195879 / r195853;
        double r195881 = r195880 * r195867;
        double r195882 = r195878 + r195881;
        double r195883 = r195871 * r195882;
        double r195884 = r195870 / r195883;
        return r195884;
}

double f(double x, double y) {
        double r195885 = 2.0;
        double r195886 = sqrt(r195885);
        double r195887 = x;
        double r195888 = sin(r195887);
        double r195889 = y;
        double r195890 = sin(r195889);
        double r195891 = 16.0;
        double r195892 = r195890 / r195891;
        double r195893 = r195888 - r195892;
        double r195894 = r195886 * r195893;
        double r195895 = r195888 / r195891;
        double r195896 = r195890 - r195895;
        double r195897 = cos(r195887);
        double r195898 = r195897 * r195897;
        double r195899 = cos(r195889);
        double r195900 = r195899 * r195899;
        double r195901 = r195898 - r195900;
        double r195902 = r195897 + r195899;
        double r195903 = r195901 / r195902;
        double r195904 = r195896 * r195903;
        double r195905 = fma(r195894, r195904, r195885);
        double r195906 = 3.0;
        double r195907 = 5.0;
        double r195908 = sqrt(r195907);
        double r195909 = r195906 - r195908;
        double r195910 = r195909 / r195885;
        double r195911 = 1.0;
        double r195912 = r195908 - r195911;
        double r195913 = r195912 / r195885;
        double r195914 = fma(r195913, r195897, r195911);
        double r195915 = fma(r195910, r195899, r195914);
        double r195916 = r195905 / r195915;
        double r195917 = r195916 / r195906;
        return r195917;
}

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.5

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

Reproduce

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