Average Error: 39.7 → 1.2
Time: 16.9s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1230266.91359658050350844860076904296875:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 9.350772251334056302338876287549851440417 \cdot 10^{-5}:\\ \;\;\;\;\left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right) \cdot -2\\ \mathbf{else}:\\ \;\;\;\;\left(\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 -1230266.91359658050350844860076904296875:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\

\mathbf{elif}\;\varepsilon \le 9.350772251334056302338876287549851440417 \cdot 10^{-5}:\\
\;\;\;\;\left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right) \cdot -2\\

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

\end{array}
double f(double x, double eps) {
        double r2675173 = x;
        double r2675174 = eps;
        double r2675175 = r2675173 + r2675174;
        double r2675176 = cos(r2675175);
        double r2675177 = cos(r2675173);
        double r2675178 = r2675176 - r2675177;
        return r2675178;
}

double f(double x, double eps) {
        double r2675179 = eps;
        double r2675180 = -1230266.9135965805;
        bool r2675181 = r2675179 <= r2675180;
        double r2675182 = x;
        double r2675183 = cos(r2675182);
        double r2675184 = cos(r2675179);
        double r2675185 = r2675183 * r2675184;
        double r2675186 = sin(r2675182);
        double r2675187 = sin(r2675179);
        double r2675188 = r2675186 * r2675187;
        double r2675189 = r2675185 - r2675188;
        double r2675190 = r2675189 - r2675183;
        double r2675191 = 9.350772251334056e-05;
        bool r2675192 = r2675179 <= r2675191;
        double r2675193 = 2.0;
        double r2675194 = r2675179 / r2675193;
        double r2675195 = sin(r2675194);
        double r2675196 = r2675182 + r2675179;
        double r2675197 = r2675196 + r2675182;
        double r2675198 = r2675197 / r2675193;
        double r2675199 = sin(r2675198);
        double r2675200 = r2675199 * r2675199;
        double r2675201 = cbrt(r2675200);
        double r2675202 = cbrt(r2675199);
        double r2675203 = r2675201 * r2675202;
        double r2675204 = r2675195 * r2675203;
        double r2675205 = -2.0;
        double r2675206 = r2675204 * r2675205;
        double r2675207 = r2675192 ? r2675206 : r2675190;
        double r2675208 = r2675181 ? r2675190 : r2675207;
        return r2675208;
}

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 < -1230266.9135965805 or 9.350772251334056e-05 < eps

    1. Initial program 30.2

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

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

    if -1230266.9135965805 < eps < 9.350772251334056e-05

    1. Initial program 49.0

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

      \[\leadsto \color{blue}{-2 \cdot \left(\sin \left(\frac{\left(x + \varepsilon\right) - x}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)}\]
    4. Simplified1.0

      \[\leadsto -2 \cdot \color{blue}{\left(\sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right) \cdot \sin \left(\frac{\varepsilon}{2}\right)\right)}\]
    5. Using strategy rm
    6. Applied add-cbrt-cube4.9

      \[\leadsto -2 \cdot \left(\color{blue}{\sqrt[3]{\left(\sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right) \cdot \sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right)\right) \cdot \sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right)}} \cdot \sin \left(\frac{\varepsilon}{2}\right)\right)\]
    7. Using strategy rm
    8. Applied cbrt-prod1.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -1230266.91359658050350844860076904296875:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 9.350772251334056302338876287549851440417 \cdot 10^{-5}:\\ \;\;\;\;\left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right) \cdot -2\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \end{array}\]

Reproduce

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