Average Error: 39.9 → 16.3
Time: 21.5s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -2.166612289023348716228650843312886209446 \cdot 10^{-7}:\\ \;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\ \mathbf{elif}\;\varepsilon \le 9.272024129006377240531960219963036884394 \cdot 10^{-8}:\\ \;\;\;\;\left(\frac{1}{6} \cdot \varepsilon\right) \cdot \left(x \cdot \left(x \cdot x\right)\right) - \mathsf{fma}\left(x, \varepsilon, \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \varepsilon\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -2.166612289023348716228650843312886209446 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\

\mathbf{elif}\;\varepsilon \le 9.272024129006377240531960219963036884394 \cdot 10^{-8}:\\
\;\;\;\;\left(\frac{1}{6} \cdot \varepsilon\right) \cdot \left(x \cdot \left(x \cdot x\right)\right) - \mathsf{fma}\left(x, \varepsilon, \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \varepsilon\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\

\end{array}
double f(double x, double eps) {
        double r1985654 = x;
        double r1985655 = eps;
        double r1985656 = r1985654 + r1985655;
        double r1985657 = cos(r1985656);
        double r1985658 = cos(r1985654);
        double r1985659 = r1985657 - r1985658;
        return r1985659;
}

double f(double x, double eps) {
        double r1985660 = eps;
        double r1985661 = -2.1666122890233487e-07;
        bool r1985662 = r1985660 <= r1985661;
        double r1985663 = x;
        double r1985664 = cos(r1985663);
        double r1985665 = cbrt(r1985664);
        double r1985666 = -r1985665;
        double r1985667 = r1985665 * r1985665;
        double r1985668 = r1985665 * r1985667;
        double r1985669 = fma(r1985666, r1985667, r1985668);
        double r1985670 = cos(r1985660);
        double r1985671 = sin(r1985660);
        double r1985672 = -r1985671;
        double r1985673 = sin(r1985663);
        double r1985674 = r1985671 * r1985673;
        double r1985675 = fma(r1985672, r1985673, r1985674);
        double r1985676 = cbrt(r1985675);
        double r1985677 = r1985676 * r1985676;
        double r1985678 = r1985676 * r1985677;
        double r1985679 = r1985678 - r1985664;
        double r1985680 = fma(r1985672, r1985673, r1985679);
        double r1985681 = fma(r1985664, r1985670, r1985680);
        double r1985682 = r1985669 + r1985681;
        double r1985683 = 9.272024129006377e-08;
        bool r1985684 = r1985660 <= r1985683;
        double r1985685 = 0.16666666666666666;
        double r1985686 = r1985685 * r1985660;
        double r1985687 = r1985663 * r1985663;
        double r1985688 = r1985663 * r1985687;
        double r1985689 = r1985686 * r1985688;
        double r1985690 = 0.5;
        double r1985691 = r1985660 * r1985690;
        double r1985692 = r1985691 * r1985660;
        double r1985693 = fma(r1985663, r1985660, r1985692);
        double r1985694 = r1985689 - r1985693;
        double r1985695 = r1985684 ? r1985694 : r1985682;
        double r1985696 = r1985662 ? r1985682 : r1985695;
        return r1985696;
}

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 2 regimes
  2. if eps < -2.1666122890233487e-07 or 9.272024129006377e-08 < eps

    1. Initial program 30.3

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Using strategy rm
    3. Applied cos-sum1.1

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Using strategy rm
    5. Applied prod-diff1.1

      \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)\right)} - \cos x\]
    6. Applied associate--l+1.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \left(\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right) - \cos x\right)}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt1.5

      \[\leadsto \mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \left(\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right) - \color{blue}{\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\cos x}}\right)\]
    9. Applied add-cube-cbrt1.5

      \[\leadsto \mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \left(\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}} - \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \sqrt[3]{\cos x}\right)\]
    10. Applied prod-diff1.5

      \[\leadsto \mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \color{blue}{\left(\mathsf{fma}\left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}, -\sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right)\right)}\]
    11. Applied associate-+r+1.5

      \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sin \varepsilon \cdot \sin x\right) + \mathsf{fma}\left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}, -\sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right)}\]
    12. Simplified1.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} - \cos x\right)\right)} + \mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right)\]

    if -2.1666122890233487e-07 < eps < 9.272024129006377e-08

    1. Initial program 50.0

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Using strategy rm
    3. Applied cos-sum49.5

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Taylor expanded around 0 32.5

      \[\leadsto \color{blue}{\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(\frac{1}{2} \cdot {\varepsilon}^{2} + x \cdot \varepsilon\right)}\]
    5. Simplified32.5

      \[\leadsto \color{blue}{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(\varepsilon \cdot \frac{1}{6}\right) - \mathsf{fma}\left(x, \varepsilon, \varepsilon \cdot \left(\varepsilon \cdot \frac{1}{2}\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification16.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -2.166612289023348716228650843312886209446 \cdot 10^{-7}:\\ \;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\ \mathbf{elif}\;\varepsilon \le 9.272024129006377240531960219963036884394 \cdot 10^{-8}:\\ \;\;\;\;\left(\frac{1}{6} \cdot \varepsilon\right) \cdot \left(x \cdot \left(x \cdot x\right)\right) - \mathsf{fma}\left(x, \varepsilon, \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \varepsilon\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-\sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}, \sqrt[3]{\cos x} \cdot \left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right)\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  (- (cos (+ x eps)) (cos x)))