Average Error: 0.5 → 0.5
Time: 16.9s
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(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right), \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}, 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)}\]
\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(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right), \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}, 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)}
double f(double x, double y) {
        double r198847 = 2.0;
        double r198848 = sqrt(r198847);
        double r198849 = x;
        double r198850 = sin(r198849);
        double r198851 = y;
        double r198852 = sin(r198851);
        double r198853 = 16.0;
        double r198854 = r198852 / r198853;
        double r198855 = r198850 - r198854;
        double r198856 = r198848 * r198855;
        double r198857 = r198850 / r198853;
        double r198858 = r198852 - r198857;
        double r198859 = r198856 * r198858;
        double r198860 = cos(r198849);
        double r198861 = cos(r198851);
        double r198862 = r198860 - r198861;
        double r198863 = r198859 * r198862;
        double r198864 = r198847 + r198863;
        double r198865 = 3.0;
        double r198866 = 1.0;
        double r198867 = 5.0;
        double r198868 = sqrt(r198867);
        double r198869 = r198868 - r198866;
        double r198870 = r198869 / r198847;
        double r198871 = r198870 * r198860;
        double r198872 = r198866 + r198871;
        double r198873 = r198865 - r198868;
        double r198874 = r198873 / r198847;
        double r198875 = r198874 * r198861;
        double r198876 = r198872 + r198875;
        double r198877 = r198865 * r198876;
        double r198878 = r198864 / r198877;
        return r198878;
}

double f(double x, double y) {
        double r198879 = x;
        double r198880 = cos(r198879);
        double r198881 = cbrt(r198880);
        double r198882 = r198881 * r198881;
        double r198883 = y;
        double r198884 = cos(r198883);
        double r198885 = -r198884;
        double r198886 = fma(r198882, r198881, r198885);
        double r198887 = 2.0;
        double r198888 = sqrt(r198887);
        double r198889 = sin(r198879);
        double r198890 = sin(r198883);
        double r198891 = 16.0;
        double r198892 = r198890 / r198891;
        double r198893 = r198889 - r198892;
        double r198894 = r198888 * r198893;
        double r198895 = r198889 / r198891;
        double r198896 = r198890 - r198895;
        double r198897 = cbrt(r198896);
        double r198898 = r198897 * r198897;
        double r198899 = r198894 * r198898;
        double r198900 = r198899 * r198897;
        double r198901 = fma(r198886, r198900, r198887);
        double r198902 = 3.0;
        double r198903 = r198901 / r198902;
        double r198904 = 5.0;
        double r198905 = sqrt(r198904);
        double r198906 = r198902 - r198905;
        double r198907 = r198906 / r198887;
        double r198908 = 1.0;
        double r198909 = r198905 - r198908;
        double r198910 = r198909 / r198887;
        double r198911 = fma(r198880, r198910, r198908);
        double r198912 = fma(r198884, r198907, r198911);
        double r198913 = r198903 / r198912;
        return r198913;
}

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(\cos x - \cos y, \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\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 add-cube-cbrt0.5

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\cos x - \cos y, \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\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)}\]
  5. Applied associate-*r*0.5

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\cos x - \cos y, \color{blue}{\left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}}, 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)}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\color{blue}{\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\cos x}} - \cos y, \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}, 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)}\]
  8. Applied fma-neg0.5

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

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x}, -\cos y\right), \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sqrt[3]{\sin y - \frac{\sin x}{16}} \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}\right)\right) \cdot \sqrt[3]{\sin y - \frac{\sin x}{16}}, 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)}\]

Reproduce

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