\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le \frac{-5117057790700741}{1208925819614629174706176} \lor \neg \left(\varepsilon \le \frac{8032266710981389}{37778931862957161709568}\right):\\
\;\;\;\;\cos \varepsilon \cdot \cos x - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\
\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 r38722 = x;
double r38723 = eps;
double r38724 = r38722 + r38723;
double r38725 = cos(r38724);
double r38726 = cos(r38722);
double r38727 = r38725 - r38726;
return r38727;
}
double f(double x, double eps) {
double r38728 = eps;
double r38729 = -5117057790700741.0;
double r38730 = 1.2089258196146292e+24;
double r38731 = r38729 / r38730;
bool r38732 = r38728 <= r38731;
double r38733 = 8032266710981389.0;
double r38734 = 3.777893186295716e+22;
double r38735 = r38733 / r38734;
bool r38736 = r38728 <= r38735;
double r38737 = !r38736;
bool r38738 = r38732 || r38737;
double r38739 = cos(r38728);
double r38740 = x;
double r38741 = cos(r38740);
double r38742 = r38739 * r38741;
double r38743 = sin(r38740);
double r38744 = sin(r38728);
double r38745 = r38743 * r38744;
double r38746 = r38745 + r38741;
double r38747 = r38742 - r38746;
double r38748 = 0.16666666666666666;
double r38749 = 3.0;
double r38750 = pow(r38740, r38749);
double r38751 = r38748 * r38750;
double r38752 = r38751 - r38740;
double r38753 = 0.5;
double r38754 = r38728 * r38753;
double r38755 = r38752 - r38754;
double r38756 = r38728 * r38755;
double r38757 = r38738 ? r38747 : r38756;
return r38757;
}



Bits error versus x



Bits error versus eps
Results
if eps < -4.2327309977810814e-09Initial program 30.7
rmApplied cos-sum1.3
rmApplied sub-neg1.3
Applied associate--l+1.3
rmApplied add-log-exp1.4
Applied add-log-exp1.4
Applied neg-log1.5
Applied diff-log1.5
Applied add-log-exp1.6
Applied sum-log1.7
Simplified1.4
if -4.2327309977810814e-09 < eps < 2.126123295417241e-07Initial program 49.1
Taylor expanded around 0 31.5
Simplified31.5
if 2.126123295417241e-07 < eps Initial program 30.3
rmApplied cos-sum1.1
rmApplied add-log-exp1.2
rmApplied flip--1.7
Simplified1.3
Simplified1.2
Final simplification16.0
herbie shell --seed 2019304
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))