\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.9118824918033931 \cdot 10^{-16} \lor \neg \left(\varepsilon \le 2.2379838828549683 \cdot 10^{-7}\right):\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sqrt[3]{{\left(\sin x \cdot \sin \varepsilon\right)}^{3}}\right) - \cos x\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon - \cos x\right)\right) \cdot \left(\frac{1}{24} \cdot {\varepsilon}^{4} - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right)}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon - \cos x\right)}\\
\end{array}double f(double x, double eps) {
double r58421 = x;
double r58422 = eps;
double r58423 = r58421 + r58422;
double r58424 = cos(r58423);
double r58425 = cos(r58421);
double r58426 = r58424 - r58425;
return r58426;
}
double f(double x, double eps) {
double r58427 = eps;
double r58428 = -8.911882491803393e-16;
bool r58429 = r58427 <= r58428;
double r58430 = 2.2379838828549683e-07;
bool r58431 = r58427 <= r58430;
double r58432 = !r58431;
bool r58433 = r58429 || r58432;
double r58434 = x;
double r58435 = cos(r58434);
double r58436 = cos(r58427);
double r58437 = r58435 * r58436;
double r58438 = sin(r58434);
double r58439 = sin(r58427);
double r58440 = r58438 * r58439;
double r58441 = 3.0;
double r58442 = pow(r58440, r58441);
double r58443 = cbrt(r58442);
double r58444 = r58437 - r58443;
double r58445 = r58444 - r58435;
double r58446 = r58440 - r58435;
double r58447 = r58437 - r58446;
double r58448 = 0.041666666666666664;
double r58449 = 4.0;
double r58450 = pow(r58427, r58449);
double r58451 = r58448 * r58450;
double r58452 = r58434 * r58427;
double r58453 = 0.5;
double r58454 = 2.0;
double r58455 = pow(r58427, r58454);
double r58456 = r58453 * r58455;
double r58457 = r58452 + r58456;
double r58458 = r58451 - r58457;
double r58459 = r58447 * r58458;
double r58460 = r58459 / r58447;
double r58461 = r58433 ? r58445 : r58460;
return r58461;
}



Bits error versus x



Bits error versus eps
Results
if eps < -8.911882491803393e-16 or 2.2379838828549683e-07 < eps Initial program 31.1
rmApplied cos-sum1.7
rmApplied add-cbrt-cube1.8
Applied add-cbrt-cube1.8
Applied cbrt-unprod1.8
Simplified1.8
if -8.911882491803393e-16 < eps < 2.2379838828549683e-07Initial program 48.9
rmApplied cos-sum48.7
rmApplied add-cbrt-cube48.7
Applied add-cbrt-cube48.7
Applied cbrt-unprod48.7
Simplified48.7
rmApplied flip--48.7
Simplified48.7
Simplified48.7
Taylor expanded around 0 31.2
Final simplification16.1
herbie shell --seed 2020046
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))