Average Error: 39.8 → 1.2
Time: 17.7s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1051.778674885963027918478474020957946777:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 2.50609634945020069804900303411798745401 \cdot 10^{-5}:\\ \;\;\;\;\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(-2 \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1051.778674885963027918478474020957946777:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\

\mathbf{elif}\;\varepsilon \le 2.50609634945020069804900303411798745401 \cdot 10^{-5}:\\
\;\;\;\;\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(-2 \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\

\end{array}
double f(double x, double eps) {
        double r1888257 = x;
        double r1888258 = eps;
        double r1888259 = r1888257 + r1888258;
        double r1888260 = cos(r1888259);
        double r1888261 = cos(r1888257);
        double r1888262 = r1888260 - r1888261;
        return r1888262;
}

double f(double x, double eps) {
        double r1888263 = eps;
        double r1888264 = -1051.778674885963;
        bool r1888265 = r1888263 <= r1888264;
        double r1888266 = x;
        double r1888267 = cos(r1888266);
        double r1888268 = cos(r1888263);
        double r1888269 = r1888267 * r1888268;
        double r1888270 = sin(r1888266);
        double r1888271 = sin(r1888263);
        double r1888272 = r1888270 * r1888271;
        double r1888273 = r1888269 - r1888272;
        double r1888274 = r1888273 - r1888267;
        double r1888275 = 2.5060963494502007e-05;
        bool r1888276 = r1888263 <= r1888275;
        double r1888277 = 2.0;
        double r1888278 = r1888263 / r1888277;
        double r1888279 = sin(r1888278);
        double r1888280 = -2.0;
        double r1888281 = r1888266 + r1888263;
        double r1888282 = r1888281 + r1888266;
        double r1888283 = r1888282 / r1888277;
        double r1888284 = sin(r1888283);
        double r1888285 = cbrt(r1888284);
        double r1888286 = r1888285 * r1888285;
        double r1888287 = r1888285 * r1888286;
        double r1888288 = r1888280 * r1888287;
        double r1888289 = r1888279 * r1888288;
        double r1888290 = r1888276 ? r1888289 : r1888274;
        double r1888291 = r1888265 ? r1888274 : r1888290;
        return r1888291;
}

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 2 regimes
  2. if eps < -1051.778674885963 or 2.5060963494502007e-05 < eps

    1. Initial program 30.3

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

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

    if -1051.778674885963 < eps < 2.5060963494502007e-05

    1. Initial program 49.4

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

      \[\leadsto \color{blue}{-2 \cdot \left(\sin \left(\frac{\left(x + \varepsilon\right) - x}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)}\]
    4. Simplified0.6

      \[\leadsto -2 \cdot \color{blue}{\left(\sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right) \cdot \sin \left(\frac{\varepsilon}{2}\right)\right)}\]
    5. Using strategy rm
    6. Applied associate-*r*0.6

      \[\leadsto \color{blue}{\left(-2 \cdot \sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right)\right) \cdot \sin \left(\frac{\varepsilon}{2}\right)}\]
    7. Using strategy rm
    8. Applied add-cube-cbrt1.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -1051.778674885963027918478474020957946777:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 2.50609634945020069804900303411798745401 \cdot 10^{-5}:\\ \;\;\;\;\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(-2 \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \end{array}\]

Reproduce

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