Average Error: 0.5 → 0.4
Time: 44.2s
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{\mathsf{fma}\left(\sqrt[3]{\left(\left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right)\right) \cdot \left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right)} \cdot \left(\sin x - \frac{\sin y}{16}\right), \sin y - \frac{\sin x}{16}, 2\right)}{3 \cdot \mathsf{fma}\left(\frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 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{\mathsf{fma}\left(\sqrt[3]{\left(\left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right)\right) \cdot \left(\sqrt{2} \cdot \left(\cos x - \cos y\right)\right)} \cdot \left(\sin x - \frac{\sin y}{16}\right), \sin y - \frac{\sin x}{16}, 2\right)}{3 \cdot \mathsf{fma}\left(\frac{\frac{3 \cdot 3 - 5}{\sqrt{5} + 3}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}
double f(double x, double y) {
        double r7702448 = 2.0;
        double r7702449 = sqrt(r7702448);
        double r7702450 = x;
        double r7702451 = sin(r7702450);
        double r7702452 = y;
        double r7702453 = sin(r7702452);
        double r7702454 = 16.0;
        double r7702455 = r7702453 / r7702454;
        double r7702456 = r7702451 - r7702455;
        double r7702457 = r7702449 * r7702456;
        double r7702458 = r7702451 / r7702454;
        double r7702459 = r7702453 - r7702458;
        double r7702460 = r7702457 * r7702459;
        double r7702461 = cos(r7702450);
        double r7702462 = cos(r7702452);
        double r7702463 = r7702461 - r7702462;
        double r7702464 = r7702460 * r7702463;
        double r7702465 = r7702448 + r7702464;
        double r7702466 = 3.0;
        double r7702467 = 1.0;
        double r7702468 = 5.0;
        double r7702469 = sqrt(r7702468);
        double r7702470 = r7702469 - r7702467;
        double r7702471 = r7702470 / r7702448;
        double r7702472 = r7702471 * r7702461;
        double r7702473 = r7702467 + r7702472;
        double r7702474 = r7702466 - r7702469;
        double r7702475 = r7702474 / r7702448;
        double r7702476 = r7702475 * r7702462;
        double r7702477 = r7702473 + r7702476;
        double r7702478 = r7702466 * r7702477;
        double r7702479 = r7702465 / r7702478;
        return r7702479;
}

double f(double x, double y) {
        double r7702480 = 2.0;
        double r7702481 = sqrt(r7702480);
        double r7702482 = x;
        double r7702483 = cos(r7702482);
        double r7702484 = y;
        double r7702485 = cos(r7702484);
        double r7702486 = r7702483 - r7702485;
        double r7702487 = r7702481 * r7702486;
        double r7702488 = r7702487 * r7702487;
        double r7702489 = r7702488 * r7702487;
        double r7702490 = cbrt(r7702489);
        double r7702491 = sin(r7702482);
        double r7702492 = sin(r7702484);
        double r7702493 = 16.0;
        double r7702494 = r7702492 / r7702493;
        double r7702495 = r7702491 - r7702494;
        double r7702496 = r7702490 * r7702495;
        double r7702497 = r7702491 / r7702493;
        double r7702498 = r7702492 - r7702497;
        double r7702499 = fma(r7702496, r7702498, r7702480);
        double r7702500 = 3.0;
        double r7702501 = r7702500 * r7702500;
        double r7702502 = 5.0;
        double r7702503 = r7702501 - r7702502;
        double r7702504 = sqrt(r7702502);
        double r7702505 = r7702504 + r7702500;
        double r7702506 = r7702503 / r7702505;
        double r7702507 = r7702506 / r7702480;
        double r7702508 = 1.0;
        double r7702509 = r7702504 - r7702508;
        double r7702510 = r7702509 / r7702480;
        double r7702511 = fma(r7702483, r7702510, r7702508);
        double r7702512 = fma(r7702507, r7702485, r7702511);
        double r7702513 = r7702500 * r7702512;
        double r7702514 = r7702499 / r7702513;
        return r7702514;
}

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.5

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2}\right), \sin y - \frac{\sin x}{16}, 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3}}\]
  3. Using strategy rm
  4. Applied flip--0.5

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

    \[\leadsto \frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2}\right), \sin y - \frac{\sin x}{16}, 2\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{3 \cdot 3 - 5}}{3 + \sqrt{5}}}{2}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3}\]
  6. Using strategy rm
  7. Applied add-cbrt-cube0.4

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

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

Reproduce

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