Average Error: 39.1 → 15.9
Time: 8.0s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1.320893942837389302245904465927389681568 \cdot 10^{-9}:\\ \;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)\\ \mathbf{elif}\;\varepsilon \le 9.805431973736002190838386379022166561281 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.320893942837389302245904465927389681568 \cdot 10^{-9}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)\\

\mathbf{elif}\;\varepsilon \le 9.805431973736002190838386379022166561281 \cdot 10^{-10}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\

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

\end{array}
double f(double x, double eps) {
        double r56734 = x;
        double r56735 = eps;
        double r56736 = r56734 + r56735;
        double r56737 = cos(r56736);
        double r56738 = cos(r56734);
        double r56739 = r56737 - r56738;
        return r56739;
}

double f(double x, double eps) {
        double r56740 = eps;
        double r56741 = -1.3208939428373893e-09;
        bool r56742 = r56740 <= r56741;
        double r56743 = x;
        double r56744 = cos(r56743);
        double r56745 = cos(r56740);
        double r56746 = r56744 * r56745;
        double r56747 = sin(r56743);
        double r56748 = sin(r56740);
        double r56749 = r56747 * r56748;
        double r56750 = r56749 + r56744;
        double r56751 = exp(r56750);
        double r56752 = log(r56751);
        double r56753 = r56746 - r56752;
        double r56754 = 9.805431973736002e-10;
        bool r56755 = r56740 <= r56754;
        double r56756 = 0.16666666666666666;
        double r56757 = 3.0;
        double r56758 = pow(r56743, r56757);
        double r56759 = r56756 * r56758;
        double r56760 = r56759 - r56743;
        double r56761 = 0.5;
        double r56762 = r56740 * r56761;
        double r56763 = r56760 - r56762;
        double r56764 = r56740 * r56763;
        double r56765 = pow(r56746, r56757);
        double r56766 = cbrt(r56765);
        double r56767 = r56766 - r56750;
        double r56768 = r56755 ? r56764 : r56767;
        double r56769 = r56742 ? r56753 : r56768;
        return r56769;
}

Error

Bits error versus x

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if eps < -1.3208939428373893e-09

    1. Initial program 29.9

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

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Applied associate--l-1.4

      \[\leadsto \color{blue}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)}\]
    5. Using strategy rm
    6. Applied add-log-exp1.5

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \color{blue}{\log \left(e^{\cos x}\right)}\right)\]
    7. Applied add-log-exp1.6

      \[\leadsto \cos x \cdot \cos \varepsilon - \left(\color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon}\right)} + \log \left(e^{\cos x}\right)\right)\]
    8. Applied sum-log1.6

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon} \cdot e^{\cos x}\right)}\]
    9. Simplified1.5

      \[\leadsto \cos x \cdot \cos \varepsilon - \log \color{blue}{\left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)}\]

    if -1.3208939428373893e-09 < eps < 9.805431973736002e-10

    1. Initial program 48.8

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Taylor expanded around 0 31.1

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

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

    if 9.805431973736002e-10 < eps

    1. Initial program 30.3

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

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Applied associate--l-1.6

      \[\leadsto \color{blue}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)}\]
    5. Using strategy rm
    6. Applied add-cbrt-cube2.0

      \[\leadsto \cos x \cdot \color{blue}{\sqrt[3]{\left(\cos \varepsilon \cdot \cos \varepsilon\right) \cdot \cos \varepsilon}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\]
    7. Applied add-cbrt-cube2.0

      \[\leadsto \color{blue}{\sqrt[3]{\left(\cos x \cdot \cos x\right) \cdot \cos x}} \cdot \sqrt[3]{\left(\cos \varepsilon \cdot \cos \varepsilon\right) \cdot \cos \varepsilon} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\]
    8. Applied cbrt-unprod2.0

      \[\leadsto \color{blue}{\sqrt[3]{\left(\left(\cos x \cdot \cos x\right) \cdot \cos x\right) \cdot \left(\left(\cos \varepsilon \cdot \cos \varepsilon\right) \cdot \cos \varepsilon\right)}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\]
    9. Simplified2.0

      \[\leadsto \sqrt[3]{\color{blue}{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification15.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -1.320893942837389302245904465927389681568 \cdot 10^{-9}:\\ \;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)\\ \mathbf{elif}\;\varepsilon \le 9.805431973736002190838386379022166561281 \cdot 10^{-10}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019362 
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))