Average Error: 0.5 → 0.4
Time: 41.8s
Precision: 64
\[\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\]
\[\frac{\frac{\mathsf{fma}\left(\frac{\left(\left(\cos x \cdot \left(\cos x \cdot \cos x\right) - \left(\cos y \cdot \cos y\right) \cdot \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\sin x + \frac{\sin y}{16.0}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)}{\left(\left(\cos x \cdot \cos y + \cos y \cdot \cos y\right) + \cos x \cdot \cos x\right) \cdot \left(\sin x + \frac{\sin y}{16.0}\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{\sqrt{5.0} + 3.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}
\frac{\frac{\mathsf{fma}\left(\frac{\left(\left(\cos x \cdot \left(\cos x \cdot \cos x\right) - \left(\cos y \cdot \cos y\right) \cdot \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\sin x + \frac{\sin y}{16.0}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)}{\left(\left(\cos x \cdot \cos y + \cos y \cdot \cos y\right) + \cos x \cdot \cos x\right) \cdot \left(\sin x + \frac{\sin y}{16.0}\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{\sqrt{5.0} + 3.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}
double f(double x, double y) {
        double r7127565 = 2.0;
        double r7127566 = sqrt(r7127565);
        double r7127567 = x;
        double r7127568 = sin(r7127567);
        double r7127569 = y;
        double r7127570 = sin(r7127569);
        double r7127571 = 16.0;
        double r7127572 = r7127570 / r7127571;
        double r7127573 = r7127568 - r7127572;
        double r7127574 = r7127566 * r7127573;
        double r7127575 = r7127568 / r7127571;
        double r7127576 = r7127570 - r7127575;
        double r7127577 = r7127574 * r7127576;
        double r7127578 = cos(r7127567);
        double r7127579 = cos(r7127569);
        double r7127580 = r7127578 - r7127579;
        double r7127581 = r7127577 * r7127580;
        double r7127582 = r7127565 + r7127581;
        double r7127583 = 3.0;
        double r7127584 = 1.0;
        double r7127585 = 5.0;
        double r7127586 = sqrt(r7127585);
        double r7127587 = r7127586 - r7127584;
        double r7127588 = r7127587 / r7127565;
        double r7127589 = r7127588 * r7127578;
        double r7127590 = r7127584 + r7127589;
        double r7127591 = r7127583 - r7127586;
        double r7127592 = r7127591 / r7127565;
        double r7127593 = r7127592 * r7127579;
        double r7127594 = r7127590 + r7127593;
        double r7127595 = r7127583 * r7127594;
        double r7127596 = r7127582 / r7127595;
        return r7127596;
}

double f(double x, double y) {
        double r7127597 = x;
        double r7127598 = cos(r7127597);
        double r7127599 = r7127598 * r7127598;
        double r7127600 = r7127598 * r7127599;
        double r7127601 = y;
        double r7127602 = cos(r7127601);
        double r7127603 = r7127602 * r7127602;
        double r7127604 = r7127603 * r7127602;
        double r7127605 = r7127600 - r7127604;
        double r7127606 = 2.0;
        double r7127607 = sqrt(r7127606);
        double r7127608 = r7127605 * r7127607;
        double r7127609 = sin(r7127597);
        double r7127610 = sin(r7127601);
        double r7127611 = 16.0;
        double r7127612 = r7127610 / r7127611;
        double r7127613 = r7127609 + r7127612;
        double r7127614 = r7127609 - r7127612;
        double r7127615 = r7127613 * r7127614;
        double r7127616 = r7127608 * r7127615;
        double r7127617 = r7127598 * r7127602;
        double r7127618 = r7127617 + r7127603;
        double r7127619 = r7127618 + r7127599;
        double r7127620 = r7127619 * r7127613;
        double r7127621 = r7127616 / r7127620;
        double r7127622 = r7127609 / r7127611;
        double r7127623 = r7127610 - r7127622;
        double r7127624 = fma(r7127621, r7127623, r7127606);
        double r7127625 = 3.0;
        double r7127626 = r7127625 * r7127625;
        double r7127627 = 5.0;
        double r7127628 = r7127626 - r7127627;
        double r7127629 = sqrt(r7127627);
        double r7127630 = r7127629 + r7127625;
        double r7127631 = r7127628 / r7127630;
        double r7127632 = r7127631 / r7127606;
        double r7127633 = 1.0;
        double r7127634 = r7127629 - r7127633;
        double r7127635 = r7127634 / r7127606;
        double r7127636 = fma(r7127598, r7127635, r7127633);
        double r7127637 = fma(r7127632, r7127602, r7127636);
        double r7127638 = r7127624 / r7127637;
        double r7127639 = r7127638 / r7127625;
        return r7127639;
}

Error

Bits error versus x

Bits error versus y

Derivation

  1. Initial program 0.5

    \[\frac{2.0 + \left(\left(\sqrt{2.0} \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16.0}\right)\right) \cdot \left(\cos x - \cos y\right)}{3.0 \cdot \left(\left(1.0 + \frac{\sqrt{5.0} - 1.0}{2.0} \cdot \cos x\right) + \frac{3.0 - \sqrt{5.0}}{2.0} \cdot \cos y\right)}\]
  2. Simplified0.5

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{3.0 - \sqrt{5.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right) \cdot 3.0}}\]
  3. Using strategy rm
  4. Applied flip--0.5

    \[\leadsto \frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\color{blue}{\frac{3.0 \cdot 3.0 - \sqrt{5.0} \cdot \sqrt{5.0}}{3.0 + \sqrt{5.0}}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right) \cdot 3.0}\]
  5. Simplified0.4

    \[\leadsto \frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{\color{blue}{3.0 \cdot 3.0 - 5.0}}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right) \cdot 3.0}\]
  6. Using strategy rm
  7. Applied associate-/r*0.4

    \[\leadsto \color{blue}{\frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\left(\cos x - \cos y\right) \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}}\]
  8. Using strategy rm
  9. Applied flip3--0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\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)}} \cdot \sqrt{2.0}\right), \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
  10. Applied associate-*l/0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \color{blue}{\frac{\left({\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}\right) \cdot \sqrt{2.0}}{\cos x \cdot \cos x + \left(\cos y \cdot \cos y + \cos x \cdot \cos y\right)}}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
  11. Applied flip--0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\color{blue}{\frac{\sin x \cdot \sin x - \frac{\sin y}{16.0} \cdot \frac{\sin y}{16.0}}{\sin x + \frac{\sin y}{16.0}}} \cdot \frac{\left({\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}\right) \cdot \sqrt{2.0}}{\cos x \cdot \cos x + \left(\cos y \cdot \cos y + \cos x \cdot \cos y\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
  12. Applied frac-times0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\color{blue}{\frac{\left(\sin x \cdot \sin x - \frac{\sin y}{16.0} \cdot \frac{\sin y}{16.0}\right) \cdot \left(\left({\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}\right) \cdot \sqrt{2.0}\right)}{\left(\sin x + \frac{\sin y}{16.0}\right) \cdot \left(\cos x \cdot \cos x + \left(\cos y \cdot \cos y + \cos x \cdot \cos y\right)\right)}}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
  13. Simplified0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\frac{\color{blue}{\left(\left(\sin x - \frac{\sin y}{16.0}\right) \cdot \left(\sin x + \frac{\sin y}{16.0}\right)\right) \cdot \left(\left(\cos x \cdot \left(\cos x \cdot \cos x\right) - \cos y \cdot \left(\cos y \cdot \cos y\right)\right) \cdot \sqrt{2.0}\right)}}{\left(\sin x + \frac{\sin y}{16.0}\right) \cdot \left(\cos x \cdot \cos x + \left(\cos y \cdot \cos y + \cos x \cdot \cos y\right)\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{3.0 + \sqrt{5.0}}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]
  14. Final simplification0.4

    \[\leadsto \frac{\frac{\mathsf{fma}\left(\frac{\left(\left(\cos x \cdot \left(\cos x \cdot \cos x\right) - \left(\cos y \cdot \cos y\right) \cdot \cos y\right) \cdot \sqrt{2.0}\right) \cdot \left(\left(\sin x + \frac{\sin y}{16.0}\right) \cdot \left(\sin x - \frac{\sin y}{16.0}\right)\right)}{\left(\left(\cos x \cdot \cos y + \cos y \cdot \cos y\right) + \cos x \cdot \cos x\right) \cdot \left(\sin x + \frac{\sin y}{16.0}\right)}, \sin y - \frac{\sin x}{16.0}, 2.0\right)}{\mathsf{fma}\left(\frac{\frac{3.0 \cdot 3.0 - 5.0}{\sqrt{5.0} + 3.0}}{2.0}, \cos y, \mathsf{fma}\left(\cos x, \frac{\sqrt{5.0} - 1.0}{2.0}, 1.0\right)\right)}}{3.0}\]

Reproduce

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