Average Error: 0.5 → 0.5
Time: 32.4s
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{2 \cdot 2 - \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3\right) \cdot \left(2 - \left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\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{2 \cdot 2 - \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3\right) \cdot \left(2 - \left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}
double f(double x, double y) {
        double r145986 = 2.0;
        double r145987 = sqrt(r145986);
        double r145988 = x;
        double r145989 = sin(r145988);
        double r145990 = y;
        double r145991 = sin(r145990);
        double r145992 = 16.0;
        double r145993 = r145991 / r145992;
        double r145994 = r145989 - r145993;
        double r145995 = r145987 * r145994;
        double r145996 = r145989 / r145992;
        double r145997 = r145991 - r145996;
        double r145998 = r145995 * r145997;
        double r145999 = cos(r145988);
        double r146000 = cos(r145990);
        double r146001 = r145999 - r146000;
        double r146002 = r145998 * r146001;
        double r146003 = r145986 + r146002;
        double r146004 = 3.0;
        double r146005 = 1.0;
        double r146006 = 5.0;
        double r146007 = sqrt(r146006);
        double r146008 = r146007 - r146005;
        double r146009 = r146008 / r145986;
        double r146010 = r146009 * r145999;
        double r146011 = r146005 + r146010;
        double r146012 = r146004 - r146007;
        double r146013 = r146012 / r145986;
        double r146014 = r146013 * r146000;
        double r146015 = r146011 + r146014;
        double r146016 = r146004 * r146015;
        double r146017 = r146003 / r146016;
        return r146017;
}

double f(double x, double y) {
        double r146018 = 2.0;
        double r146019 = r146018 * r146018;
        double r146020 = y;
        double r146021 = sin(r146020);
        double r146022 = x;
        double r146023 = sin(r146022);
        double r146024 = 16.0;
        double r146025 = r146023 / r146024;
        double r146026 = r146021 - r146025;
        double r146027 = sqrt(r146018);
        double r146028 = r146021 / r146024;
        double r146029 = r146023 - r146028;
        double r146030 = r146027 * r146029;
        double r146031 = r146026 * r146030;
        double r146032 = cos(r146022);
        double r146033 = cos(r146020);
        double r146034 = r146032 - r146033;
        double r146035 = r146031 * r146034;
        double r146036 = r146035 * r146035;
        double r146037 = r146019 - r146036;
        double r146038 = 3.0;
        double r146039 = 5.0;
        double r146040 = sqrt(r146039);
        double r146041 = r146038 - r146040;
        double r146042 = r146041 / r146018;
        double r146043 = 1.0;
        double r146044 = r146040 - r146043;
        double r146045 = r146044 / r146018;
        double r146046 = fma(r146032, r146045, r146043);
        double r146047 = fma(r146033, r146042, r146046);
        double r146048 = r146047 * r146038;
        double r146049 = r146018 - r146035;
        double r146050 = r146048 * r146049;
        double r146051 = r146037 / r146050;
        return r146051;
}

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. Using strategy rm
  3. Applied flip-+0.5

    \[\leadsto \frac{\color{blue}{\frac{2 \cdot 2 - \left(\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)\right) \cdot \left(\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)\right)}{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)}\]
  4. Applied associate-/l/0.5

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

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

    \[\leadsto \frac{2 \cdot 2 - \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3\right) \cdot \left(2 - \left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}\]

Reproduce

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