\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -3766637.3963067145:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 2.0821597107803942 \cdot 10^{-05}:\\
\;\;\;\;-2 \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin \left(\frac{\mathsf{fma}\left(2, x, \varepsilon\right)}{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 r1500408 = x;
double r1500409 = eps;
double r1500410 = r1500408 + r1500409;
double r1500411 = cos(r1500410);
double r1500412 = cos(r1500408);
double r1500413 = r1500411 - r1500412;
return r1500413;
}
double f(double x, double eps) {
double r1500414 = eps;
double r1500415 = -3766637.3963067145;
bool r1500416 = r1500414 <= r1500415;
double r1500417 = x;
double r1500418 = cos(r1500417);
double r1500419 = cos(r1500414);
double r1500420 = r1500418 * r1500419;
double r1500421 = sin(r1500417);
double r1500422 = sin(r1500414);
double r1500423 = r1500421 * r1500422;
double r1500424 = r1500420 - r1500423;
double r1500425 = r1500424 - r1500418;
double r1500426 = 2.0821597107803942e-05;
bool r1500427 = r1500414 <= r1500426;
double r1500428 = -2.0;
double r1500429 = 0.5;
double r1500430 = r1500429 * r1500414;
double r1500431 = sin(r1500430);
double r1500432 = 2.0;
double r1500433 = fma(r1500432, r1500417, r1500414);
double r1500434 = r1500433 / r1500432;
double r1500435 = sin(r1500434);
double r1500436 = r1500431 * r1500435;
double r1500437 = r1500428 * r1500436;
double r1500438 = r1500427 ? r1500437 : r1500425;
double r1500439 = r1500416 ? r1500425 : r1500438;
return r1500439;
}



Bits error versus x



Bits error versus eps
if eps < -3766637.3963067145 or 2.0821597107803942e-05 < eps Initial program 29.6
rmApplied cos-sum0.9
if -3766637.3963067145 < eps < 2.0821597107803942e-05Initial program 48.7
rmApplied diff-cos37.7
Simplified1.0
Final simplification0.9
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))