\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -0.005924238612320757:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \left(\cos x + \sin x \cdot \sin \varepsilon\right)\\
\mathbf{elif}\;\varepsilon \le 8.193560063624595 \cdot 10^{-05}:\\
\;\;\;\;\sin \left(\frac{x + \left(x + \varepsilon\right)}{2}\right) \cdot \left(-2 \cdot \sin \left(\frac{\varepsilon}{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 r733254 = x;
double r733255 = eps;
double r733256 = r733254 + r733255;
double r733257 = cos(r733256);
double r733258 = cos(r733254);
double r733259 = r733257 - r733258;
return r733259;
}
double f(double x, double eps) {
double r733260 = eps;
double r733261 = -0.005924238612320757;
bool r733262 = r733260 <= r733261;
double r733263 = x;
double r733264 = cos(r733263);
double r733265 = cos(r733260);
double r733266 = r733264 * r733265;
double r733267 = sin(r733263);
double r733268 = sin(r733260);
double r733269 = r733267 * r733268;
double r733270 = r733264 + r733269;
double r733271 = r733266 - r733270;
double r733272 = 8.193560063624595e-05;
bool r733273 = r733260 <= r733272;
double r733274 = r733263 + r733260;
double r733275 = r733263 + r733274;
double r733276 = 2.0;
double r733277 = r733275 / r733276;
double r733278 = sin(r733277);
double r733279 = -2.0;
double r733280 = r733260 / r733276;
double r733281 = sin(r733280);
double r733282 = r733279 * r733281;
double r733283 = r733278 * r733282;
double r733284 = r733266 - r733269;
double r733285 = r733284 - r733264;
double r733286 = r733273 ? r733283 : r733285;
double r733287 = r733262 ? r733271 : r733286;
return r733287;
}



Bits error versus x



Bits error versus eps
Results
if eps < -0.005924238612320757Initial program 29.1
rmApplied cos-sum0.8
Applied associate--l-0.8
if -0.005924238612320757 < eps < 8.193560063624595e-05Initial program 48.7
rmApplied diff-cos37.5
Simplified0.6
rmApplied associate-*r*0.5
if 8.193560063624595e-05 < eps Initial program 30.9
rmApplied cos-sum1.0
Final simplification0.7
herbie shell --seed 2019154
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))