\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.320893942837389302245904465927389681568 \cdot 10^{-9}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)\\
\mathbf{elif}\;\varepsilon \le 9.805431973736002190838386379022166561281 \cdot 10^{-10}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon\right)}^{3}} - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\
\end{array}double f(double x, double eps) {
double r56734 = x;
double r56735 = eps;
double r56736 = r56734 + r56735;
double r56737 = cos(r56736);
double r56738 = cos(r56734);
double r56739 = r56737 - r56738;
return r56739;
}
double f(double x, double eps) {
double r56740 = eps;
double r56741 = -1.3208939428373893e-09;
bool r56742 = r56740 <= r56741;
double r56743 = x;
double r56744 = cos(r56743);
double r56745 = cos(r56740);
double r56746 = r56744 * r56745;
double r56747 = sin(r56743);
double r56748 = sin(r56740);
double r56749 = r56747 * r56748;
double r56750 = r56749 + r56744;
double r56751 = exp(r56750);
double r56752 = log(r56751);
double r56753 = r56746 - r56752;
double r56754 = 9.805431973736002e-10;
bool r56755 = r56740 <= r56754;
double r56756 = 0.16666666666666666;
double r56757 = 3.0;
double r56758 = pow(r56743, r56757);
double r56759 = r56756 * r56758;
double r56760 = r56759 - r56743;
double r56761 = 0.5;
double r56762 = r56740 * r56761;
double r56763 = r56760 - r56762;
double r56764 = r56740 * r56763;
double r56765 = pow(r56746, r56757);
double r56766 = cbrt(r56765);
double r56767 = r56766 - r56750;
double r56768 = r56755 ? r56764 : r56767;
double r56769 = r56742 ? r56753 : r56768;
return r56769;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.3208939428373893e-09Initial program 29.9
rmApplied cos-sum1.4
Applied associate--l-1.4
rmApplied add-log-exp1.5
Applied add-log-exp1.6
Applied sum-log1.6
Simplified1.5
if -1.3208939428373893e-09 < eps < 9.805431973736002e-10Initial program 48.8
Taylor expanded around 0 31.1
Simplified31.1
if 9.805431973736002e-10 < eps Initial program 30.3
rmApplied cos-sum1.6
Applied associate--l-1.6
rmApplied add-cbrt-cube2.0
Applied add-cbrt-cube2.0
Applied cbrt-unprod2.0
Simplified2.0
Final simplification15.9
herbie shell --seed 2019362
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))