\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.47794773121464287 \cdot 10^{-28} \lor \neg \left(\varepsilon \le 3.6043668904446245 \cdot 10^{-50}\right):\\
\;\;\;\;\left(1 \cdot \left(\cos x \cdot \cos \varepsilon\right) - \sqrt[3]{\sqrt[3]{{\left({\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right)}^{3}}}\right) - \cos x\\
\mathbf{else}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\end{array}double f(double x, double eps) {
double r53425 = x;
double r53426 = eps;
double r53427 = r53425 + r53426;
double r53428 = cos(r53427);
double r53429 = cos(r53425);
double r53430 = r53428 - r53429;
return r53430;
}
double f(double x, double eps) {
double r53431 = eps;
double r53432 = -1.4779477312146429e-28;
bool r53433 = r53431 <= r53432;
double r53434 = 3.6043668904446245e-50;
bool r53435 = r53431 <= r53434;
double r53436 = !r53435;
bool r53437 = r53433 || r53436;
double r53438 = 1.0;
double r53439 = x;
double r53440 = cos(r53439);
double r53441 = cos(r53431);
double r53442 = r53440 * r53441;
double r53443 = r53438 * r53442;
double r53444 = sin(r53439);
double r53445 = sin(r53431);
double r53446 = r53444 * r53445;
double r53447 = 3.0;
double r53448 = pow(r53446, r53447);
double r53449 = pow(r53448, r53447);
double r53450 = cbrt(r53449);
double r53451 = cbrt(r53450);
double r53452 = r53443 - r53451;
double r53453 = r53452 - r53440;
double r53454 = 0.16666666666666666;
double r53455 = pow(r53439, r53447);
double r53456 = r53454 * r53455;
double r53457 = r53456 - r53439;
double r53458 = 0.5;
double r53459 = r53431 * r53458;
double r53460 = r53457 - r53459;
double r53461 = r53431 * r53460;
double r53462 = r53437 ? r53453 : r53461;
return r53462;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.4779477312146429e-28 or 3.6043668904446245e-50 < eps Initial program 33.6
rmApplied cos-sum6.0
rmApplied *-un-lft-identity6.0
rmApplied add-cbrt-cube6.1
Applied add-cbrt-cube6.1
Applied cbrt-unprod6.1
Simplified6.1
rmApplied add-cbrt-cube6.1
Simplified6.1
if -1.4779477312146429e-28 < eps < 3.6043668904446245e-50Initial program 48.1
Taylor expanded around 0 31.4
Simplified31.4
Final simplification17.0
herbie shell --seed 2020033
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))