\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.19483323723045707450996508539042828545 \cdot 10^{-8}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\
\mathbf{elif}\;\varepsilon \le 1.611471127494872569020696813935555459458 \cdot 10^{-14}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{{\left(\sin \varepsilon\right)}^{3}} \cdot \sqrt[3]{{\left(\sin x\right)}^{3}}\right) + \left(\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\left(-1\right) + 1\right) - \cos x\right)\\
\end{array}double f(double x, double eps) {
double r30365 = x;
double r30366 = eps;
double r30367 = r30365 + r30366;
double r30368 = cos(r30367);
double r30369 = cos(r30365);
double r30370 = r30368 - r30369;
return r30370;
}
double f(double x, double eps) {
double r30371 = eps;
double r30372 = -8.194833237230457e-08;
bool r30373 = r30371 <= r30372;
double r30374 = cos(r30371);
double r30375 = x;
double r30376 = cos(r30375);
double r30377 = sin(r30375);
double r30378 = sin(r30371);
double r30379 = fma(r30377, r30378, r30376);
double r30380 = -r30379;
double r30381 = fma(r30374, r30376, r30380);
double r30382 = r30376 * r30374;
double r30383 = r30377 * r30378;
double r30384 = r30382 - r30383;
double r30385 = r30384 + r30376;
double r30386 = r30381 * r30385;
double r30387 = r30386 / r30385;
double r30388 = 1.6114711274948726e-14;
bool r30389 = r30371 <= r30388;
double r30390 = 0.041666666666666664;
double r30391 = 4.0;
double r30392 = pow(r30371, r30391);
double r30393 = 0.5;
double r30394 = 2.0;
double r30395 = pow(r30371, r30394);
double r30396 = r30393 * r30395;
double r30397 = fma(r30375, r30371, r30396);
double r30398 = -r30397;
double r30399 = fma(r30390, r30392, r30398);
double r30400 = r30399 * r30385;
double r30401 = r30400 / r30385;
double r30402 = 3.0;
double r30403 = pow(r30378, r30402);
double r30404 = cbrt(r30403);
double r30405 = pow(r30377, r30402);
double r30406 = cbrt(r30405);
double r30407 = r30404 * r30406;
double r30408 = -r30407;
double r30409 = fma(r30376, r30374, r30408);
double r30410 = 1.0;
double r30411 = -r30410;
double r30412 = r30411 + r30410;
double r30413 = r30383 * r30412;
double r30414 = r30413 - r30376;
double r30415 = r30409 + r30414;
double r30416 = r30389 ? r30401 : r30415;
double r30417 = r30373 ? r30387 : r30416;
return r30417;
}



Bits error versus x



Bits error versus eps
if eps < -8.194833237230457e-08Initial program 30.9
rmApplied cos-sum1.1
rmApplied flip--1.6
Simplified1.2
if -8.194833237230457e-08 < eps < 1.6114711274948726e-14Initial program 49.6
rmApplied cos-sum49.4
rmApplied flip--49.4
Simplified49.4
Taylor expanded around 0 31.9
Simplified31.9
if 1.6114711274948726e-14 < eps Initial program 31.8
rmApplied cos-sum1.7
rmApplied add-cbrt-cube1.8
Applied add-cbrt-cube1.8
Applied cbrt-unprod1.8
Simplified1.8
rmApplied unpow-prod-down1.8
Applied cbrt-prod1.8
Applied prod-diff1.8
Applied associate--l+1.8
Simplified1.8
Final simplification15.9
herbie shell --seed 2020002 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))