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

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

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

\end{array}
double f(double x, double eps) {
        double r31072 = x;
        double r31073 = eps;
        double r31074 = r31072 + r31073;
        double r31075 = cos(r31074);
        double r31076 = cos(r31072);
        double r31077 = r31075 - r31076;
        return r31077;
}

double f(double x, double eps) {
        double r31078 = eps;
        double r31079 = -1.1531548156266982e-10;
        bool r31080 = r31078 <= r31079;
        double r31081 = x;
        double r31082 = cos(r31081);
        double r31083 = cos(r31078);
        double r31084 = r31082 * r31083;
        double r31085 = sin(r31081);
        double r31086 = sin(r31078);
        double r31087 = r31085 * r31086;
        double r31088 = r31084 - r31087;
        double r31089 = 3.0;
        double r31090 = pow(r31088, r31089);
        double r31091 = 2.0;
        double r31092 = pow(r31082, r31091);
        double r31093 = r31082 * r31092;
        double r31094 = r31090 - r31093;
        double r31095 = r31083 * r31082;
        double r31096 = r31095 - r31087;
        double r31097 = r31088 + r31082;
        double r31098 = r31096 * r31097;
        double r31099 = r31082 * r31082;
        double r31100 = r31098 + r31099;
        double r31101 = r31094 / r31100;
        double r31102 = 1.1816527817000312e-06;
        bool r31103 = r31078 <= r31102;
        double r31104 = 0.16666666666666666;
        double r31105 = pow(r31081, r31089);
        double r31106 = r31104 * r31105;
        double r31107 = r31106 - r31081;
        double r31108 = 0.5;
        double r31109 = r31078 * r31108;
        double r31110 = r31107 - r31109;
        double r31111 = r31078 * r31110;
        double r31112 = exp(r31087);
        double r31113 = sqrt(r31112);
        double r31114 = log(r31113);
        double r31115 = r31114 + r31114;
        double r31116 = r31084 - r31115;
        double r31117 = r31116 - r31082;
        double r31118 = r31103 ? r31111 : r31117;
        double r31119 = r31080 ? r31101 : r31118;
        return r31119;
}

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.1531548156266982e-10

    1. Initial program 30.5

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

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

      \[\leadsto \color{blue}{\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \left(\cos x \cdot \cos x + \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \cos x\right)}}\]
    6. Simplified1.7

      \[\leadsto \frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\color{blue}{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right) + \cos x \cdot \cos x}}\]
    7. Using strategy rm
    8. Applied cube-mult1.7

      \[\leadsto \frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - \color{blue}{\cos x \cdot \left(\cos x \cdot \cos x\right)}}{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right) + \cos x \cdot \cos x}\]
    9. Simplified1.7

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

    if -1.1531548156266982e-10 < eps < 1.1816527817000312e-06

    1. Initial program 49.7

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

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

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

    if 1.1816527817000312e-06 < eps

    1. Initial program 30.6

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

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

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon}\right)}\right) - \cos x\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt1.3

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \log \color{blue}{\left(\sqrt{e^{\sin x \cdot \sin \varepsilon}} \cdot \sqrt{e^{\sin x \cdot \sin \varepsilon}}\right)}\right) - \cos x\]
    8. Applied log-prod1.2

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

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

Reproduce

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