\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -2.8559924841132814 \cdot 10^{-05}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 0.00686024552453565:\\
\;\;\;\;\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(-2 \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)\\
\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 r2739006 = x;
double r2739007 = eps;
double r2739008 = r2739006 + r2739007;
double r2739009 = cos(r2739008);
double r2739010 = cos(r2739006);
double r2739011 = r2739009 - r2739010;
return r2739011;
}
double f(double x, double eps) {
double r2739012 = eps;
double r2739013 = -2.8559924841132814e-05;
bool r2739014 = r2739012 <= r2739013;
double r2739015 = x;
double r2739016 = cos(r2739015);
double r2739017 = cos(r2739012);
double r2739018 = r2739016 * r2739017;
double r2739019 = sin(r2739015);
double r2739020 = sin(r2739012);
double r2739021 = r2739019 * r2739020;
double r2739022 = r2739018 - r2739021;
double r2739023 = r2739022 - r2739016;
double r2739024 = 0.00686024552453565;
bool r2739025 = r2739012 <= r2739024;
double r2739026 = 2.0;
double r2739027 = r2739012 / r2739026;
double r2739028 = sin(r2739027);
double r2739029 = -2.0;
double r2739030 = r2739015 + r2739012;
double r2739031 = r2739030 + r2739015;
double r2739032 = r2739031 / r2739026;
double r2739033 = sin(r2739032);
double r2739034 = r2739029 * r2739033;
double r2739035 = r2739028 * r2739034;
double r2739036 = r2739025 ? r2739035 : r2739023;
double r2739037 = r2739014 ? r2739023 : r2739036;
return r2739037;
}



Bits error versus x



Bits error versus eps
Results
if eps < -2.8559924841132814e-05 or 0.00686024552453565 < eps Initial program 29.8
rmApplied cos-sum0.9
if -2.8559924841132814e-05 < eps < 0.00686024552453565Initial program 48.4
rmApplied diff-cos36.8
Simplified0.5
rmApplied associate-*r*0.5
Final simplification0.7
herbie shell --seed 2019112 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))