Average Error: 0.5 → 0.4
Time: 36.7s
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(\cos x - \cos y\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(\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(\cos x - \cos y\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(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}
double f(double x, double y) {
        double r8046194 = 2.0;
        double r8046195 = sqrt(r8046194);
        double r8046196 = x;
        double r8046197 = sin(r8046196);
        double r8046198 = y;
        double r8046199 = sin(r8046198);
        double r8046200 = 16.0;
        double r8046201 = r8046199 / r8046200;
        double r8046202 = r8046197 - r8046201;
        double r8046203 = r8046195 * r8046202;
        double r8046204 = r8046197 / r8046200;
        double r8046205 = r8046199 - r8046204;
        double r8046206 = r8046203 * r8046205;
        double r8046207 = cos(r8046196);
        double r8046208 = cos(r8046198);
        double r8046209 = r8046207 - r8046208;
        double r8046210 = r8046206 * r8046209;
        double r8046211 = r8046194 + r8046210;
        double r8046212 = 3.0;
        double r8046213 = 1.0;
        double r8046214 = 5.0;
        double r8046215 = sqrt(r8046214);
        double r8046216 = r8046215 - r8046213;
        double r8046217 = r8046216 / r8046194;
        double r8046218 = r8046217 * r8046207;
        double r8046219 = r8046213 + r8046218;
        double r8046220 = r8046212 - r8046215;
        double r8046221 = r8046220 / r8046194;
        double r8046222 = r8046221 * r8046208;
        double r8046223 = r8046219 + r8046222;
        double r8046224 = r8046212 * r8046223;
        double r8046225 = r8046211 / r8046224;
        return r8046225;
}

double f(double x, double y) {
        double r8046226 = x;
        double r8046227 = sin(r8046226);
        double r8046228 = y;
        double r8046229 = sin(r8046228);
        double r8046230 = 16.0;
        double r8046231 = r8046229 / r8046230;
        double r8046232 = r8046227 - r8046231;
        double r8046233 = 2.0;
        double r8046234 = sqrt(r8046233);
        double r8046235 = r8046232 * r8046234;
        double r8046236 = cos(r8046226);
        double r8046237 = cos(r8046228);
        double r8046238 = r8046236 - r8046237;
        double r8046239 = r8046227 / r8046230;
        double r8046240 = r8046229 - r8046239;
        double r8046241 = r8046238 * r8046240;
        double r8046242 = fma(r8046235, r8046241, r8046233);
        double r8046243 = 3.0;
        double r8046244 = r8046242 / r8046243;
        double r8046245 = 5.0;
        double r8046246 = sqrt(r8046245);
        double r8046247 = r8046243 - r8046246;
        double r8046248 = r8046247 / r8046233;
        double r8046249 = 1.0;
        double r8046250 = r8046246 - r8046249;
        double r8046251 = r8046250 / r8046233;
        double r8046252 = fma(r8046251, r8046236, r8046249);
        double r8046253 = fma(r8046237, r8046248, r8046252);
        double r8046254 = r8046244 / r8046253;
        return r8046254;
}

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(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right), \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. Final simplification0.4

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