Average Error: 0.5 → 0.5
Time: 48.4s
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{2.0 + \left(\sqrt[3]{\cos x - \cos y} \cdot \left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right)\right) \cdot \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \sqrt{2.0}\right)\right)}{\left(\left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right) \cdot 3.0}\]
\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{2.0 + \left(\sqrt[3]{\cos x - \cos y} \cdot \left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right)\right) \cdot \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \sqrt{2.0}\right)\right)}{\left(\left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right) \cdot 3.0}
double f(double x, double y) {
        double r10375852 = 2.0;
        double r10375853 = sqrt(r10375852);
        double r10375854 = x;
        double r10375855 = sin(r10375854);
        double r10375856 = y;
        double r10375857 = sin(r10375856);
        double r10375858 = 16.0;
        double r10375859 = r10375857 / r10375858;
        double r10375860 = r10375855 - r10375859;
        double r10375861 = r10375853 * r10375860;
        double r10375862 = r10375855 / r10375858;
        double r10375863 = r10375857 - r10375862;
        double r10375864 = r10375861 * r10375863;
        double r10375865 = cos(r10375854);
        double r10375866 = cos(r10375856);
        double r10375867 = r10375865 - r10375866;
        double r10375868 = r10375864 * r10375867;
        double r10375869 = r10375852 + r10375868;
        double r10375870 = 3.0;
        double r10375871 = 1.0;
        double r10375872 = 5.0;
        double r10375873 = sqrt(r10375872);
        double r10375874 = r10375873 - r10375871;
        double r10375875 = r10375874 / r10375852;
        double r10375876 = r10375875 * r10375865;
        double r10375877 = r10375871 + r10375876;
        double r10375878 = r10375870 - r10375873;
        double r10375879 = r10375878 / r10375852;
        double r10375880 = r10375879 * r10375866;
        double r10375881 = r10375877 + r10375880;
        double r10375882 = r10375870 * r10375881;
        double r10375883 = r10375869 / r10375882;
        return r10375883;
}

double f(double x, double y) {
        double r10375884 = 2.0;
        double r10375885 = x;
        double r10375886 = cos(r10375885);
        double r10375887 = y;
        double r10375888 = cos(r10375887);
        double r10375889 = r10375886 - r10375888;
        double r10375890 = cbrt(r10375889);
        double r10375891 = r10375890 * r10375890;
        double r10375892 = r10375890 * r10375891;
        double r10375893 = sin(r10375887);
        double r10375894 = sin(r10375885);
        double r10375895 = 16.0;
        double r10375896 = r10375894 / r10375895;
        double r10375897 = r10375893 - r10375896;
        double r10375898 = r10375893 / r10375895;
        double r10375899 = r10375894 - r10375898;
        double r10375900 = sqrt(r10375884);
        double r10375901 = r10375899 * r10375900;
        double r10375902 = r10375897 * r10375901;
        double r10375903 = r10375892 * r10375902;
        double r10375904 = r10375884 + r10375903;
        double r10375905 = 5.0;
        double r10375906 = sqrt(r10375905);
        double r10375907 = 1.0;
        double r10375908 = r10375906 - r10375907;
        double r10375909 = r10375908 / r10375884;
        double r10375910 = r10375886 * r10375909;
        double r10375911 = r10375910 + r10375907;
        double r10375912 = 3.0;
        double r10375913 = r10375912 - r10375906;
        double r10375914 = r10375913 / r10375884;
        double r10375915 = r10375914 * r10375888;
        double r10375916 = r10375911 + r10375915;
        double r10375917 = r10375916 * r10375912;
        double r10375918 = r10375904 / r10375917;
        return r10375918;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Using strategy rm
  3. Applied add-cube-cbrt0.5

    \[\leadsto \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 \color{blue}{\left(\left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right) \cdot \sqrt[3]{\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)}\]
  4. Final simplification0.5

    \[\leadsto \frac{2.0 + \left(\sqrt[3]{\cos x - \cos y} \cdot \left(\sqrt[3]{\cos x - \cos y} \cdot \sqrt[3]{\cos x - \cos y}\right)\right) \cdot \left(\left(\sin y - \frac{\sin x}{16.0}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \sqrt{2.0}\right)\right)}{\left(\left(\cos x \cdot \frac{\sqrt{5.0} - 1.0}{2.0} + 1.0\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right) \cdot 3.0}\]

Reproduce

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