Average Error: 39.9 → 0.8
Time: 16.4s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -6443.306290177518349082674831151962280273 \lor \neg \left(\varepsilon \le 1.459775390859078191777703503717589228472 \cdot 10^{-4}\right):\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin \varepsilon \cdot \sin x\right) - \cos x\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -6443.306290177518349082674831151962280273 \lor \neg \left(\varepsilon \le 1.459775390859078191777703503717589228472 \cdot 10^{-4}\right):\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin \varepsilon \cdot \sin x\right) - \cos x\\

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

\end{array}
double f(double x, double eps) {
        double r23514 = x;
        double r23515 = eps;
        double r23516 = r23514 + r23515;
        double r23517 = cos(r23516);
        double r23518 = cos(r23514);
        double r23519 = r23517 - r23518;
        return r23519;
}

double f(double x, double eps) {
        double r23520 = eps;
        double r23521 = -6443.306290177518;
        bool r23522 = r23520 <= r23521;
        double r23523 = 0.00014597753908590782;
        bool r23524 = r23520 <= r23523;
        double r23525 = !r23524;
        bool r23526 = r23522 || r23525;
        double r23527 = x;
        double r23528 = cos(r23527);
        double r23529 = cos(r23520);
        double r23530 = r23528 * r23529;
        double r23531 = sin(r23520);
        double r23532 = sin(r23527);
        double r23533 = r23531 * r23532;
        double r23534 = r23530 - r23533;
        double r23535 = r23534 - r23528;
        double r23536 = -2.0;
        double r23537 = 2.0;
        double r23538 = r23520 / r23537;
        double r23539 = sin(r23538);
        double r23540 = r23527 + r23520;
        double r23541 = r23540 + r23527;
        double r23542 = r23541 / r23537;
        double r23543 = sin(r23542);
        double r23544 = r23539 * r23543;
        double r23545 = r23536 * r23544;
        double r23546 = r23526 ? r23535 : r23545;
        return r23546;
}

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 < -6443.306290177518 or 0.00014597753908590782 < eps

    1. Initial program 30.3

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Simplified30.3

      \[\leadsto \color{blue}{\cos \left(\varepsilon + x\right) - \cos x}\]
    3. Using strategy rm
    4. Applied cos-sum0.9

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

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

    if -6443.306290177518 < eps < 0.00014597753908590782

    1. Initial program 49.7

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Simplified49.7

      \[\leadsto \color{blue}{\cos \left(\varepsilon + x\right) - \cos x}\]
    3. Using strategy rm
    4. Applied diff-cos37.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -6443.306290177518349082674831151962280273 \lor \neg \left(\varepsilon \le 1.459775390859078191777703503717589228472 \cdot 10^{-4}\right):\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin \varepsilon \cdot \sin x\right) - \cos x\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)\\ \end{array}\]

Reproduce

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