\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -65.72641980047264:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \left(\cos x + \sin x \cdot \sin \varepsilon\right)\\
\mathbf{elif}\;\varepsilon \le 0.010182833365905121:\\
\;\;\;\;-2 \cdot \left(\sin \left(\frac{\varepsilon}{2}\right) \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 r4126414 = x;
double r4126415 = eps;
double r4126416 = r4126414 + r4126415;
double r4126417 = cos(r4126416);
double r4126418 = cos(r4126414);
double r4126419 = r4126417 - r4126418;
return r4126419;
}
double f(double x, double eps) {
double r4126420 = eps;
double r4126421 = -65.72641980047264;
bool r4126422 = r4126420 <= r4126421;
double r4126423 = x;
double r4126424 = cos(r4126423);
double r4126425 = cos(r4126420);
double r4126426 = r4126424 * r4126425;
double r4126427 = sin(r4126423);
double r4126428 = sin(r4126420);
double r4126429 = r4126427 * r4126428;
double r4126430 = r4126424 + r4126429;
double r4126431 = r4126426 - r4126430;
double r4126432 = 0.010182833365905121;
bool r4126433 = r4126420 <= r4126432;
double r4126434 = -2.0;
double r4126435 = 2.0;
double r4126436 = r4126420 / r4126435;
double r4126437 = sin(r4126436);
double r4126438 = r4126423 + r4126420;
double r4126439 = r4126438 + r4126423;
double r4126440 = r4126439 / r4126435;
double r4126441 = sin(r4126440);
double r4126442 = r4126437 * r4126441;
double r4126443 = r4126434 * r4126442;
double r4126444 = r4126426 - r4126429;
double r4126445 = r4126444 - r4126424;
double r4126446 = r4126433 ? r4126443 : r4126445;
double r4126447 = r4126422 ? r4126431 : r4126446;
return r4126447;
}



Bits error versus x



Bits error versus eps
Results
if eps < -65.72641980047264Initial program 29.6
rmApplied cos-sum0.8
Applied associate--l-0.9
if -65.72641980047264 < eps < 0.010182833365905121Initial program 49.1
rmApplied diff-cos37.8
Simplified0.9
if 0.010182833365905121 < eps Initial program 31.0
rmApplied cos-sum0.8
Final simplification0.9
herbie shell --seed 2019120
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))