Average Error: 39.9 → 16.8
Time: 11.1s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -4.2532742587969492 \cdot 10^{-10}:\\ \;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)} - \cos x\\ \mathbf{elif}\;\varepsilon \le 4.38346934273984842 \cdot 10^{-11}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\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 -4.2532742587969492 \cdot 10^{-10}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)} - \cos x\\

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

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

\end{array}
double f(double x, double eps) {
        double r78490 = x;
        double r78491 = eps;
        double r78492 = r78490 + r78491;
        double r78493 = cos(r78492);
        double r78494 = cos(r78490);
        double r78495 = r78493 - r78494;
        return r78495;
}

double f(double x, double eps) {
        double r78496 = eps;
        double r78497 = -4.253274258796949e-10;
        bool r78498 = r78496 <= r78497;
        double r78499 = x;
        double r78500 = cos(r78499);
        double r78501 = cos(r78496);
        double r78502 = r78500 * r78501;
        double r78503 = 3.0;
        double r78504 = pow(r78502, r78503);
        double r78505 = sin(r78499);
        double r78506 = sin(r78496);
        double r78507 = r78505 * r78506;
        double r78508 = pow(r78507, r78503);
        double r78509 = r78504 - r78508;
        double r78510 = r78507 + r78502;
        double r78511 = r78507 * r78510;
        double r78512 = r78502 * r78502;
        double r78513 = r78511 + r78512;
        double r78514 = r78509 / r78513;
        double r78515 = r78514 - r78500;
        double r78516 = 4.3834693427398484e-11;
        bool r78517 = r78496 <= r78516;
        double r78518 = 0.16666666666666666;
        double r78519 = pow(r78499, r78503);
        double r78520 = r78518 * r78519;
        double r78521 = r78520 - r78499;
        double r78522 = 0.5;
        double r78523 = r78496 * r78522;
        double r78524 = r78521 - r78523;
        double r78525 = r78496 * r78524;
        double r78526 = r78502 - r78507;
        double r78527 = exp(r78526);
        double r78528 = log(r78527);
        double r78529 = r78528 - r78500;
        double r78530 = r78517 ? r78525 : r78529;
        double r78531 = r78498 ? r78515 : r78530;
        return r78531;
}

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 < -4.253274258796949e-10

    1. Initial program 30.0

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

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

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

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

    if -4.253274258796949e-10 < eps < 4.3834693427398484e-11

    1. Initial program 49.5

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

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

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

    if 4.3834693427398484e-11 < eps

    1. Initial program 30.8

      \[\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. Using strategy rm
    5. Applied add-log-exp1.7

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

      \[\leadsto \left(\color{blue}{\log \left(e^{\cos x \cdot \cos \varepsilon}\right)} - \log \left(e^{\sin x \cdot \sin \varepsilon}\right)\right) - \cos x\]
    7. Applied diff-log1.9

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

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

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

Reproduce

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