Average Error: 0.5 → 0.5
Time: 40.6s
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 r10923664 = 2.0;
        double r10923665 = sqrt(r10923664);
        double r10923666 = x;
        double r10923667 = sin(r10923666);
        double r10923668 = y;
        double r10923669 = sin(r10923668);
        double r10923670 = 16.0;
        double r10923671 = r10923669 / r10923670;
        double r10923672 = r10923667 - r10923671;
        double r10923673 = r10923665 * r10923672;
        double r10923674 = r10923667 / r10923670;
        double r10923675 = r10923669 - r10923674;
        double r10923676 = r10923673 * r10923675;
        double r10923677 = cos(r10923666);
        double r10923678 = cos(r10923668);
        double r10923679 = r10923677 - r10923678;
        double r10923680 = r10923676 * r10923679;
        double r10923681 = r10923664 + r10923680;
        double r10923682 = 3.0;
        double r10923683 = 1.0;
        double r10923684 = 5.0;
        double r10923685 = sqrt(r10923684);
        double r10923686 = r10923685 - r10923683;
        double r10923687 = r10923686 / r10923664;
        double r10923688 = r10923687 * r10923677;
        double r10923689 = r10923683 + r10923688;
        double r10923690 = r10923682 - r10923685;
        double r10923691 = r10923690 / r10923664;
        double r10923692 = r10923691 * r10923678;
        double r10923693 = r10923689 + r10923692;
        double r10923694 = r10923682 * r10923693;
        double r10923695 = r10923681 / r10923694;
        return r10923695;
}

double f(double x, double y) {
        double r10923696 = 2.0;
        double r10923697 = x;
        double r10923698 = cos(r10923697);
        double r10923699 = y;
        double r10923700 = cos(r10923699);
        double r10923701 = r10923698 - r10923700;
        double r10923702 = cbrt(r10923701);
        double r10923703 = r10923702 * r10923702;
        double r10923704 = r10923702 * r10923703;
        double r10923705 = sin(r10923699);
        double r10923706 = sin(r10923697);
        double r10923707 = 16.0;
        double r10923708 = r10923706 / r10923707;
        double r10923709 = r10923705 - r10923708;
        double r10923710 = r10923705 / r10923707;
        double r10923711 = r10923706 - r10923710;
        double r10923712 = sqrt(r10923696);
        double r10923713 = r10923711 * r10923712;
        double r10923714 = r10923709 * r10923713;
        double r10923715 = r10923704 * r10923714;
        double r10923716 = r10923696 + r10923715;
        double r10923717 = 5.0;
        double r10923718 = sqrt(r10923717);
        double r10923719 = 1.0;
        double r10923720 = r10923718 - r10923719;
        double r10923721 = r10923720 / r10923696;
        double r10923722 = r10923698 * r10923721;
        double r10923723 = r10923722 + r10923719;
        double r10923724 = 3.0;
        double r10923725 = r10923724 - r10923718;
        double r10923726 = r10923725 / r10923696;
        double r10923727 = r10923726 * r10923700;
        double r10923728 = r10923723 + r10923727;
        double r10923729 = r10923728 * r10923724;
        double r10923730 = r10923716 / r10923729;
        return r10923730;
}

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