Average Error: 0.5 → 0.4
Time: 49.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(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 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(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \sin x \cdot 0.0625\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}
double f(double x, double y) {
        double r9026063 = 2.0;
        double r9026064 = sqrt(r9026063);
        double r9026065 = x;
        double r9026066 = sin(r9026065);
        double r9026067 = y;
        double r9026068 = sin(r9026067);
        double r9026069 = 16.0;
        double r9026070 = r9026068 / r9026069;
        double r9026071 = r9026066 - r9026070;
        double r9026072 = r9026064 * r9026071;
        double r9026073 = r9026066 / r9026069;
        double r9026074 = r9026068 - r9026073;
        double r9026075 = r9026072 * r9026074;
        double r9026076 = cos(r9026065);
        double r9026077 = cos(r9026067);
        double r9026078 = r9026076 - r9026077;
        double r9026079 = r9026075 * r9026078;
        double r9026080 = r9026063 + r9026079;
        double r9026081 = 3.0;
        double r9026082 = 1.0;
        double r9026083 = 5.0;
        double r9026084 = sqrt(r9026083);
        double r9026085 = r9026084 - r9026082;
        double r9026086 = r9026085 / r9026063;
        double r9026087 = r9026086 * r9026076;
        double r9026088 = r9026082 + r9026087;
        double r9026089 = r9026081 - r9026084;
        double r9026090 = r9026089 / r9026063;
        double r9026091 = r9026090 * r9026077;
        double r9026092 = r9026088 + r9026091;
        double r9026093 = r9026081 * r9026092;
        double r9026094 = r9026080 / r9026093;
        return r9026094;
}

double f(double x, double y) {
        double r9026095 = x;
        double r9026096 = sin(r9026095);
        double r9026097 = y;
        double r9026098 = sin(r9026097);
        double r9026099 = 16.0;
        double r9026100 = r9026098 / r9026099;
        double r9026101 = r9026096 - r9026100;
        double r9026102 = 2.0;
        double r9026103 = sqrt(r9026102);
        double r9026104 = r9026101 * r9026103;
        double r9026105 = 0.0625;
        double r9026106 = r9026096 * r9026105;
        double r9026107 = r9026098 - r9026106;
        double r9026108 = cos(r9026095);
        double r9026109 = cos(r9026097);
        double r9026110 = r9026108 - r9026109;
        double r9026111 = r9026107 * r9026110;
        double r9026112 = fma(r9026104, r9026111, r9026102);
        double r9026113 = 3.0;
        double r9026114 = r9026112 / r9026113;
        double r9026115 = r9026113 * r9026113;
        double r9026116 = 5.0;
        double r9026117 = r9026115 - r9026116;
        double r9026118 = sqrt(r9026116);
        double r9026119 = r9026118 + r9026113;
        double r9026120 = r9026117 / r9026119;
        double r9026121 = r9026120 / r9026102;
        double r9026122 = 1.0;
        double r9026123 = r9026118 - r9026122;
        double r9026124 = r9026123 / r9026102;
        double r9026125 = fma(r9026124, r9026108, r9026122);
        double r9026126 = fma(r9026109, r9026121, r9026125);
        double r9026127 = r9026114 / r9026126;
        return r9026127;
}

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(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}\]
  3. Using strategy rm
  4. Applied flip--0.5

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

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{\color{blue}{3 \cdot 3 - 5}}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]
  6. Taylor expanded around inf 0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}, \color{blue}{\left(\cos x - \cos y\right) \cdot \left(\sin y - 0.0625 \cdot \sin x\right)}, 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{\frac{3 \cdot 3 - 5}{3 + \sqrt{5}}}{2}, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}\]
  7. Final simplification0.4

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

Reproduce

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