\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -0.03196418493759398127274096168548567220569:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\
\mathbf{elif}\;\varepsilon \le 9.763543264731029431170022947483744246711 \cdot 10^{-5}:\\
\;\;\;\;\left(-2 \cdot \sin \left(\frac{\varepsilon}{2}\right)\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\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 r20279 = x;
double r20280 = eps;
double r20281 = r20279 + r20280;
double r20282 = cos(r20281);
double r20283 = cos(r20279);
double r20284 = r20282 - r20283;
return r20284;
}
double f(double x, double eps) {
double r20285 = eps;
double r20286 = -0.03196418493759398;
bool r20287 = r20285 <= r20286;
double r20288 = x;
double r20289 = cos(r20288);
double r20290 = cos(r20285);
double r20291 = r20289 * r20290;
double r20292 = sin(r20288);
double r20293 = sin(r20285);
double r20294 = r20292 * r20293;
double r20295 = r20294 + r20289;
double r20296 = r20291 - r20295;
double r20297 = 9.76354326473103e-05;
bool r20298 = r20285 <= r20297;
double r20299 = -2.0;
double r20300 = 2.0;
double r20301 = r20285 / r20300;
double r20302 = sin(r20301);
double r20303 = r20299 * r20302;
double r20304 = r20288 + r20285;
double r20305 = r20304 + r20288;
double r20306 = r20305 / r20300;
double r20307 = sin(r20306);
double r20308 = r20303 * r20307;
double r20309 = r20291 - r20294;
double r20310 = r20309 - r20289;
double r20311 = r20298 ? r20308 : r20310;
double r20312 = r20287 ? r20296 : r20311;
return r20312;
}



Bits error versus x



Bits error versus eps
Results
if eps < -0.03196418493759398Initial program 29.8
rmApplied cos-sum0.8
Applied associate--l-0.8
if -0.03196418493759398 < eps < 9.76354326473103e-05Initial program 49.1
rmApplied diff-cos38.2
Simplified0.6
rmApplied associate-*r*0.6
if 9.76354326473103e-05 < eps Initial program 29.1
rmApplied cos-sum0.9
Final simplification0.7
herbie shell --seed 2019235
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))