Average Error: 0.5 → 0.5
Time: 14.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 + \left(\log \left(e^{\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \frac{\mathsf{fma}\left(\cos x, \cos x, \cos y \cdot \left(\cos y + \cos x\right)\right) \cdot \left(\cos x - \cos y\right)}{\mathsf{fma}\left(\cos y, \cos x + \cos y, \cos x \cdot \cos x\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 + \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 + \left(\log \left(e^{\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \frac{\mathsf{fma}\left(\cos x, \cos x, \cos y \cdot \left(\cos y + \cos x\right)\right) \cdot \left(\cos x - \cos y\right)}{\mathsf{fma}\left(\cos y, \cos x + \cos y, \cos x \cdot \cos x\right)}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}
double f(double x, double y) {
        double r266518 = 2.0;
        double r266519 = sqrt(r266518);
        double r266520 = x;
        double r266521 = sin(r266520);
        double r266522 = y;
        double r266523 = sin(r266522);
        double r266524 = 16.0;
        double r266525 = r266523 / r266524;
        double r266526 = r266521 - r266525;
        double r266527 = r266519 * r266526;
        double r266528 = r266521 / r266524;
        double r266529 = r266523 - r266528;
        double r266530 = r266527 * r266529;
        double r266531 = cos(r266520);
        double r266532 = cos(r266522);
        double r266533 = r266531 - r266532;
        double r266534 = r266530 * r266533;
        double r266535 = r266518 + r266534;
        double r266536 = 3.0;
        double r266537 = 1.0;
        double r266538 = 5.0;
        double r266539 = sqrt(r266538);
        double r266540 = r266539 - r266537;
        double r266541 = r266540 / r266518;
        double r266542 = r266541 * r266531;
        double r266543 = r266537 + r266542;
        double r266544 = r266536 - r266539;
        double r266545 = r266544 / r266518;
        double r266546 = r266545 * r266532;
        double r266547 = r266543 + r266546;
        double r266548 = r266536 * r266547;
        double r266549 = r266535 / r266548;
        return r266549;
}

double f(double x, double y) {
        double r266550 = 2.0;
        double r266551 = sqrt(r266550);
        double r266552 = x;
        double r266553 = sin(r266552);
        double r266554 = y;
        double r266555 = sin(r266554);
        double r266556 = 16.0;
        double r266557 = r266555 / r266556;
        double r266558 = r266553 - r266557;
        double r266559 = r266551 * r266558;
        double r266560 = exp(r266559);
        double r266561 = log(r266560);
        double r266562 = r266553 / r266556;
        double r266563 = r266555 - r266562;
        double r266564 = r266561 * r266563;
        double r266565 = cos(r266552);
        double r266566 = cos(r266554);
        double r266567 = r266566 + r266565;
        double r266568 = r266566 * r266567;
        double r266569 = fma(r266565, r266565, r266568);
        double r266570 = r266565 - r266566;
        double r266571 = r266569 * r266570;
        double r266572 = r266565 + r266566;
        double r266573 = r266565 * r266565;
        double r266574 = fma(r266566, r266572, r266573);
        double r266575 = r266571 / r266574;
        double r266576 = r266564 * r266575;
        double r266577 = r266550 + r266576;
        double r266578 = 3.0;
        double r266579 = 1.0;
        double r266580 = 5.0;
        double r266581 = sqrt(r266580);
        double r266582 = r266581 - r266579;
        double r266583 = r266582 / r266550;
        double r266584 = r266583 * r266565;
        double r266585 = r266579 + r266584;
        double r266586 = r266578 - r266581;
        double r266587 = r266586 / r266550;
        double r266588 = r266587 * r266566;
        double r266589 = r266585 + r266588;
        double r266590 = r266578 * r266589;
        double r266591 = r266577 / r266590;
        return r266591;
}

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 flip3--0.5

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

    \[\leadsto \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 \frac{{\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}}{\color{blue}{\mathsf{fma}\left(\cos y, \cos x + \cos y, \cos x \cdot \cos x\right)}}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}\]
  5. Using strategy rm
  6. Applied add-log-exp0.5

    \[\leadsto \frac{2 + \left(\color{blue}{\log \left(e^{\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)}\right)} \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \frac{{\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}}{\mathsf{fma}\left(\cos y, \cos x + \cos y, \cos x \cdot \cos x\right)}}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}\]
  7. Using strategy rm
  8. Applied difference-cubes0.5

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

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

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

Reproduce

herbie shell --seed 2020034 +o rules:numerics
(FPCore (x y)
  :name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
  :precision binary64
  (/ (+ 2 (* (* (* (sqrt 2) (- (sin x) (/ (sin y) 16))) (- (sin y) (/ (sin x) 16))) (- (cos x) (cos y)))) (* 3 (+ (+ 1 (* (/ (- (sqrt 5) 1) 2) (cos x))) (* (/ (- 3 (sqrt 5)) 2) (cos y))))))