Average Error: 39.7 → 15.8
Time: 7.9s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1.4155618696900624 \cdot 10^{-10}:\\ \;\;\;\;\frac{\left(\mathsf{fma}\left(3 \cdot \cos \varepsilon, {\left(\sin x\right)}^{2} \cdot \left({\left(\sin \varepsilon\right)}^{2} \cdot \cos x\right), {\left(\cos x \cdot \cos \varepsilon\right)}^{3}\right) - \mathsf{fma}\left(3 \cdot {\left(\cos \varepsilon\right)}^{2}, \sin x \cdot \left(\sin \varepsilon \cdot {\left(\cos x\right)}^{2}\right), {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right)\right) - {\left(\cos x\right)}^{3}}{\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.23057486602459758 \cdot 10^{-7}:\\ \;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos \varepsilon, \cos x, -\sqrt[3]{{\left(\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)}^{3}}\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.4155618696900624 \cdot 10^{-10}:\\
\;\;\;\;\frac{\left(\mathsf{fma}\left(3 \cdot \cos \varepsilon, {\left(\sin x\right)}^{2} \cdot \left({\left(\sin \varepsilon\right)}^{2} \cdot \cos x\right), {\left(\cos x \cdot \cos \varepsilon\right)}^{3}\right) - \mathsf{fma}\left(3 \cdot {\left(\cos \varepsilon\right)}^{2}, \sin x \cdot \left(\sin \varepsilon \cdot {\left(\cos x\right)}^{2}\right), {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right)\right) - {\left(\cos x\right)}^{3}}{\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.23057486602459758 \cdot 10^{-7}:\\
\;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right)\\

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

\end{array}
double f(double x, double eps) {
        double r69521 = x;
        double r69522 = eps;
        double r69523 = r69521 + r69522;
        double r69524 = cos(r69523);
        double r69525 = cos(r69521);
        double r69526 = r69524 - r69525;
        return r69526;
}

double f(double x, double eps) {
        double r69527 = eps;
        double r69528 = -1.4155618696900624e-10;
        bool r69529 = r69527 <= r69528;
        double r69530 = 3.0;
        double r69531 = cos(r69527);
        double r69532 = r69530 * r69531;
        double r69533 = x;
        double r69534 = sin(r69533);
        double r69535 = 2.0;
        double r69536 = pow(r69534, r69535);
        double r69537 = sin(r69527);
        double r69538 = pow(r69537, r69535);
        double r69539 = cos(r69533);
        double r69540 = r69538 * r69539;
        double r69541 = r69536 * r69540;
        double r69542 = r69539 * r69531;
        double r69543 = pow(r69542, r69530);
        double r69544 = fma(r69532, r69541, r69543);
        double r69545 = pow(r69531, r69535);
        double r69546 = r69530 * r69545;
        double r69547 = pow(r69539, r69535);
        double r69548 = r69537 * r69547;
        double r69549 = r69534 * r69548;
        double r69550 = r69534 * r69537;
        double r69551 = pow(r69550, r69530);
        double r69552 = fma(r69546, r69549, r69551);
        double r69553 = r69544 - r69552;
        double r69554 = pow(r69539, r69530);
        double r69555 = r69553 - r69554;
        double r69556 = r69531 * r69539;
        double r69557 = r69556 - r69550;
        double r69558 = r69542 - r69550;
        double r69559 = r69558 + r69539;
        double r69560 = r69557 * r69559;
        double r69561 = r69539 * r69539;
        double r69562 = r69560 + r69561;
        double r69563 = r69555 / r69562;
        double r69564 = 1.2305748660245976e-07;
        bool r69565 = r69527 <= r69564;
        double r69566 = pow(r69527, r69530);
        double r69567 = 0.041666666666666664;
        double r69568 = r69566 * r69567;
        double r69569 = 0.5;
        double r69570 = fma(r69569, r69527, r69533);
        double r69571 = r69568 - r69570;
        double r69572 = r69527 * r69571;
        double r69573 = fma(r69534, r69537, r69539);
        double r69574 = pow(r69573, r69530);
        double r69575 = cbrt(r69574);
        double r69576 = -r69575;
        double r69577 = fma(r69531, r69539, r69576);
        double r69578 = r69565 ? r69572 : r69577;
        double r69579 = r69529 ? r69563 : r69578;
        return r69579;
}

Error

Bits error versus x

Bits error versus eps

Derivation

  1. Split input into 3 regimes
  2. if eps < -1.4155618696900624e-10

    1. Initial program 31.0

      \[\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. Taylor expanded around inf 1.7

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

      \[\leadsto \frac{\color{blue}{\left(\mathsf{fma}\left(3 \cdot \cos \varepsilon, {\left(\sin x\right)}^{2} \cdot \left({\left(\sin \varepsilon\right)}^{2} \cdot \cos x\right), {\left(\cos x \cdot \cos \varepsilon\right)}^{3}\right) - \mathsf{fma}\left(3 \cdot {\left(\cos \varepsilon\right)}^{2}, \sin x \cdot \left(\sin \varepsilon \cdot {\left(\cos x\right)}^{2}\right), {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right)\right) - {\left(\cos x\right)}^{3}}}{\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.4155618696900624e-10 < eps < 1.2305748660245976e-07

    1. Initial program 49.1

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

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Taylor expanded around inf 48.8

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)}\]
    6. Taylor expanded around 0 30.7

      \[\leadsto \color{blue}{\frac{1}{24} \cdot {\varepsilon}^{4} - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)}\]
    7. Simplified30.7

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

    if 1.2305748660245976e-07 < eps

    1. Initial program 30.3

      \[\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. Taylor expanded around inf 1.1

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)}\]
    6. Using strategy rm
    7. Applied add-cbrt-cube1.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -1.4155618696900624 \cdot 10^{-10}:\\ \;\;\;\;\frac{\left(\mathsf{fma}\left(3 \cdot \cos \varepsilon, {\left(\sin x\right)}^{2} \cdot \left({\left(\sin \varepsilon\right)}^{2} \cdot \cos x\right), {\left(\cos x \cdot \cos \varepsilon\right)}^{3}\right) - \mathsf{fma}\left(3 \cdot {\left(\cos \varepsilon\right)}^{2}, \sin x \cdot \left(\sin \varepsilon \cdot {\left(\cos x\right)}^{2}\right), {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right)\right) - {\left(\cos x\right)}^{3}}{\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.23057486602459758 \cdot 10^{-7}:\\ \;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos \varepsilon, \cos x, -\sqrt[3]{{\left(\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)}^{3}}\right)\\ \end{array}\]

Reproduce

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