Average Error: 40.0 → 15.9
Time: 7.4s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -8.19483323723045707450996508539042828545 \cdot 10^{-8}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\ \mathbf{elif}\;\varepsilon \le 1.611471127494872569020696813935555459458 \cdot 10^{-14}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) + \left(\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\left(-1\right) + 1\right) - \cos x\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.19483323723045707450996508539042828545 \cdot 10^{-8}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\

\mathbf{elif}\;\varepsilon \le 1.611471127494872569020696813935555459458 \cdot 10^{-14}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\

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

\end{array}
double f(double x, double eps) {
        double r30365 = x;
        double r30366 = eps;
        double r30367 = r30365 + r30366;
        double r30368 = cos(r30367);
        double r30369 = cos(r30365);
        double r30370 = r30368 - r30369;
        return r30370;
}

double f(double x, double eps) {
        double r30371 = eps;
        double r30372 = -8.194833237230457e-08;
        bool r30373 = r30371 <= r30372;
        double r30374 = cos(r30371);
        double r30375 = x;
        double r30376 = cos(r30375);
        double r30377 = sin(r30375);
        double r30378 = sin(r30371);
        double r30379 = fma(r30377, r30378, r30376);
        double r30380 = -r30379;
        double r30381 = fma(r30374, r30376, r30380);
        double r30382 = r30376 * r30374;
        double r30383 = r30377 * r30378;
        double r30384 = r30382 - r30383;
        double r30385 = r30384 + r30376;
        double r30386 = r30381 * r30385;
        double r30387 = r30386 / r30385;
        double r30388 = 1.6114711274948726e-14;
        bool r30389 = r30371 <= r30388;
        double r30390 = 0.041666666666666664;
        double r30391 = 4.0;
        double r30392 = pow(r30371, r30391);
        double r30393 = 0.5;
        double r30394 = 2.0;
        double r30395 = pow(r30371, r30394);
        double r30396 = r30393 * r30395;
        double r30397 = fma(r30375, r30371, r30396);
        double r30398 = -r30397;
        double r30399 = fma(r30390, r30392, r30398);
        double r30400 = r30399 * r30385;
        double r30401 = r30400 / r30385;
        double r30402 = 3.0;
        double r30403 = pow(r30378, r30402);
        double r30404 = cbrt(r30403);
        double r30405 = pow(r30377, r30402);
        double r30406 = cbrt(r30405);
        double r30407 = r30404 * r30406;
        double r30408 = -r30407;
        double r30409 = fma(r30376, r30374, r30408);
        double r30410 = 1.0;
        double r30411 = -r30410;
        double r30412 = r30411 + r30410;
        double r30413 = r30383 * r30412;
        double r30414 = r30413 - r30376;
        double r30415 = r30409 + r30414;
        double r30416 = r30389 ? r30401 : r30415;
        double r30417 = r30373 ? r30387 : r30416;
        return r30417;
}

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 3 regimes
  2. if eps < -8.194833237230457e-08

    1. Initial program 30.9

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

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

      \[\leadsto \color{blue}{\frac{\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) - \cos x \cdot \cos x}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}}\]
    6. Simplified1.2

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

    if -8.194833237230457e-08 < eps < 1.6114711274948726e-14

    1. Initial program 49.6

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

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

      \[\leadsto \color{blue}{\frac{\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) - \cos x \cdot \cos x}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}}\]
    6. Simplified49.4

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\]
    7. Taylor expanded around 0 31.9

      \[\leadsto \frac{\color{blue}{\left(\frac{1}{24} \cdot {\varepsilon}^{4} - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right)} \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\]
    8. Simplified31.9

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right)} \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\]

    if 1.6114711274948726e-14 < eps

    1. Initial program 31.8

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

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

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

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

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \color{blue}{\sqrt[3]{\left(\left(\sin x \cdot \sin x\right) \cdot \sin x\right) \cdot \left(\left(\sin \varepsilon \cdot \sin \varepsilon\right) \cdot \sin \varepsilon\right)}}\right) - \cos x\]
    8. Simplified1.8

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \sqrt[3]{\color{blue}{{\left(\sin x \cdot \sin \varepsilon\right)}^{3}}}\right) - \cos x\]
    9. Using strategy rm
    10. Applied unpow-prod-down1.8

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

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \color{blue}{\sqrt[3]{{\left(\sin x\right)}^{3}} \cdot \sqrt[3]{{\left(\sin \varepsilon\right)}^{3}}}\right) - \cos x\]
    12. Applied prod-diff1.8

      \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) + \mathsf{fma}\left(-\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}}, \sqrt[3]{{\left(\sin x\right)}^{3}}, \sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right)\right)} - \cos x\]
    13. Applied associate--l+1.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) + \left(\mathsf{fma}\left(-\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}}, \sqrt[3]{{\left(\sin x\right)}^{3}}, \sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) - \cos x\right)}\]
    14. Simplified1.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -8.19483323723045707450996508539042828545 \cdot 10^{-8}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\ \mathbf{elif}\;\varepsilon \le 1.611471127494872569020696813935555459458 \cdot 10^{-14}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) + \left(\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\left(-1\right) + 1\right) - \cos x\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020002 +o rules:numerics
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))