Average Error: 39.8 → 16.2
Time: 21.7s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -8.743701952491836792397236939600180249954 \cdot 10^{-7}:\\ \;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 2.065310427089646560824650327850100808516 \cdot 10^{-19}:\\ \;\;\;\;\varepsilon \cdot \left(\mathsf{fma}\left(x \cdot \left(\frac{1}{6} \cdot x\right), x, \frac{-1}{2} \cdot \varepsilon\right) - x\right) + \mathsf{fma}\left(-\cos x, 1, \cos x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 -8.743701952491836792397236939600180249954 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 2.065310427089646560824650327850100808516 \cdot 10^{-19}:\\
\;\;\;\;\varepsilon \cdot \left(\mathsf{fma}\left(x \cdot \left(\frac{1}{6} \cdot x\right), x, \frac{-1}{2} \cdot \varepsilon\right) - x\right) + \mathsf{fma}\left(-\cos x, 1, \cos x\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 r2913898 = x;
        double r2913899 = eps;
        double r2913900 = r2913898 + r2913899;
        double r2913901 = cos(r2913900);
        double r2913902 = cos(r2913898);
        double r2913903 = r2913901 - r2913902;
        return r2913903;
}

double f(double x, double eps) {
        double r2913904 = eps;
        double r2913905 = -8.743701952491837e-07;
        bool r2913906 = r2913904 <= r2913905;
        double r2913907 = x;
        double r2913908 = cos(r2913907);
        double r2913909 = -r2913908;
        double r2913910 = 1.0;
        double r2913911 = fma(r2913909, r2913910, r2913908);
        double r2913912 = cos(r2913904);
        double r2913913 = sin(r2913904);
        double r2913914 = -r2913913;
        double r2913915 = sin(r2913907);
        double r2913916 = r2913913 * r2913915;
        double r2913917 = fma(r2913914, r2913915, r2913916);
        double r2913918 = cbrt(r2913917);
        double r2913919 = r2913918 * r2913918;
        double r2913920 = r2913918 * r2913919;
        double r2913921 = r2913920 - r2913908;
        double r2913922 = fma(r2913914, r2913915, r2913921);
        double r2913923 = fma(r2913908, r2913912, r2913922);
        double r2913924 = r2913911 + r2913923;
        double r2913925 = 2.0653104270896466e-19;
        bool r2913926 = r2913904 <= r2913925;
        double r2913927 = 0.16666666666666666;
        double r2913928 = r2913927 * r2913907;
        double r2913929 = r2913907 * r2913928;
        double r2913930 = -0.5;
        double r2913931 = r2913930 * r2913904;
        double r2913932 = fma(r2913929, r2913907, r2913931);
        double r2913933 = r2913932 - r2913907;
        double r2913934 = r2913904 * r2913933;
        double r2913935 = r2913934 + r2913911;
        double r2913936 = r2913926 ? r2913935 : r2913924;
        double r2913937 = r2913906 ? r2913924 : r2913936;
        return r2913937;
}

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 2 regimes
  2. if eps < -8.743701952491837e-07 or 2.0653104270896466e-19 < eps

    1. Initial program 30.9

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

      \[\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.8

      \[\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.8

      \[\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 *-un-lft-identity1.8

      \[\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}{1 \cdot \cos x}\right)\]
    9. Applied add-cube-cbrt1.8

      \[\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)}} - 1 \cdot \cos x\right)\]
    10. Applied prod-diff1.8

      \[\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)}, -\cos x \cdot 1\right) + \mathsf{fma}\left(-\cos x, 1, \cos x \cdot 1\right)\right)}\]
    11. Applied associate-+r+1.8

      \[\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)}, -\cos x \cdot 1\right)\right) + \mathsf{fma}\left(-\cos x, 1, \cos x \cdot 1\right)}\]
    12. Simplified1.8

      \[\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(-\cos x, 1, \cos x \cdot 1\right)\]

    if -8.743701952491837e-07 < eps < 2.0653104270896466e-19

    1. Initial program 49.4

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

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

      \[\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+49.3

      \[\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 *-un-lft-identity49.3

      \[\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}{1 \cdot \cos x}\right)\]
    9. Applied add-cube-cbrt49.3

      \[\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)}} - 1 \cdot \cos x\right)\]
    10. Applied prod-diff49.3

      \[\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)}, -\cos x \cdot 1\right) + \mathsf{fma}\left(-\cos x, 1, \cos x \cdot 1\right)\right)}\]
    11. Applied associate-+r+49.3

      \[\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)}, -\cos x \cdot 1\right)\right) + \mathsf{fma}\left(-\cos x, 1, \cos x \cdot 1\right)}\]
    12. Simplified49.3

      \[\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(-\cos x, 1, \cos x \cdot 1\right)\]
    13. Taylor expanded around 0 31.6

      \[\leadsto \color{blue}{\left(\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(\frac{1}{2} \cdot {\varepsilon}^{2} + x \cdot \varepsilon\right)\right)} + \mathsf{fma}\left(-\cos x, 1, \cos x \cdot 1\right)\]
    14. Simplified31.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -8.743701952491836792397236939600180249954 \cdot 10^{-7}:\\ \;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 2.065310427089646560824650327850100808516 \cdot 10^{-19}:\\ \;\;\;\;\varepsilon \cdot \left(\mathsf{fma}\left(x \cdot \left(\frac{1}{6} \cdot x\right), x, \frac{-1}{2} \cdot \varepsilon\right) - x\right) + \mathsf{fma}\left(-\cos x, 1, \cos x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\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 2019172 +o rules:numerics
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  (- (cos (+ x eps)) (cos x)))