Average Error: 39.5 → 16.8
Time: 19.4s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -9.96860938961082837469659534187634268005 \cdot 10^{-32}:\\ \;\;\;\;\left(\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 1.727671650573475359983827061988170825657 \cdot 10^{-7}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\frac{{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right)}^{3} + \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \left(-{\left(\cos x\right)}^{2}\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x} + \cos x \cdot \cos x}\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -9.96860938961082837469659534187634268005 \cdot 10^{-32}:\\
\;\;\;\;\left(\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \sin x \cdot \sin \varepsilon\right) - \cos x\\

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

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

\end{array}
double f(double x, double eps) {
        double r41049 = x;
        double r41050 = eps;
        double r41051 = r41049 + r41050;
        double r41052 = cos(r41051);
        double r41053 = cos(r41049);
        double r41054 = r41052 - r41053;
        return r41054;
}

double f(double x, double eps) {
        double r41055 = eps;
        double r41056 = -9.968609389610828e-32;
        bool r41057 = r41055 <= r41056;
        double r41058 = x;
        double r41059 = cos(r41058);
        double r41060 = cos(r41055);
        double r41061 = r41059 * r41060;
        double r41062 = 3.0;
        double r41063 = pow(r41061, r41062);
        double r41064 = cbrt(r41063);
        double r41065 = sin(r41058);
        double r41066 = sin(r41055);
        double r41067 = r41065 * r41066;
        double r41068 = r41064 - r41067;
        double r41069 = r41068 - r41059;
        double r41070 = 1.7276716505734754e-07;
        bool r41071 = r41055 <= r41070;
        double r41072 = 0.16666666666666666;
        double r41073 = pow(r41058, r41062);
        double r41074 = r41072 * r41073;
        double r41075 = r41074 - r41058;
        double r41076 = 0.5;
        double r41077 = r41055 * r41076;
        double r41078 = r41075 - r41077;
        double r41079 = r41055 * r41078;
        double r41080 = r41061 - r41067;
        double r41081 = pow(r41080, r41062);
        double r41082 = pow(r41059, r41062);
        double r41083 = r41081 - r41082;
        double r41084 = r41060 * r41059;
        double r41085 = r41084 - r41067;
        double r41086 = pow(r41085, r41062);
        double r41087 = 2.0;
        double r41088 = pow(r41059, r41087);
        double r41089 = -r41088;
        double r41090 = r41080 * r41089;
        double r41091 = r41086 + r41090;
        double r41092 = r41080 - r41059;
        double r41093 = r41091 / r41092;
        double r41094 = r41059 * r41059;
        double r41095 = r41093 + r41094;
        double r41096 = r41083 / r41095;
        double r41097 = r41071 ? r41079 : r41096;
        double r41098 = r41057 ? r41069 : r41097;
        return r41098;
}

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 < -9.968609389610828e-32

    1. Initial program 31.9

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

      \[\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-cube5.1

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

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

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

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

    if -9.968609389610828e-32 < eps < 1.7276716505734754e-07

    1. Initial program 48.8

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

      \[\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. Simplified32.3

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

    if 1.7276716505734754e-07 < eps

    1. Initial program 30.5

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

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

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

      \[\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. Using strategy rm
    8. Applied flip-+1.2

      \[\leadsto \frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right) \cdot \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}} + \cos x \cdot \cos x}\]
    9. Applied associate-*r/1.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -9.96860938961082837469659534187634268005 \cdot 10^{-32}:\\ \;\;\;\;\left(\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 1.727671650573475359983827061988170825657 \cdot 10^{-7}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\frac{{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right)}^{3} + \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \left(-{\left(\cos x\right)}^{2}\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x} + \cos x \cdot \cos x}\\ \end{array}\]

Reproduce

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