\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -3.934754991620558305595464982165609946207 \cdot 10^{-8}:\\
\;\;\;\;\frac{\left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right) - \left(\sqrt[3]{\left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\sin \varepsilon \cdot \sin x\right)}\right) \cdot \sqrt[3]{\left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\sin \varepsilon \cdot \sin x\right)}}{\sin \varepsilon \cdot \sin x + \cos x \cdot \cos \varepsilon} - \cos x\\
\mathbf{elif}\;\varepsilon \le 9.775851168574081187156640883099244730994 \cdot 10^{-26}:\\
\;\;\;\;\frac{1}{6} \cdot \left(\left(x \cdot \varepsilon\right) \cdot \left(x \cdot x\right)\right) - \mathsf{fma}\left(\frac{1}{2}, \varepsilon \cdot \varepsilon, x \cdot \varepsilon\right)\\
\mathbf{else}:\\
\;\;\;\;0 \cdot \cos x + \left(\frac{\left(\left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right) - \left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\sin \varepsilon \cdot \sin x\right)\right) \cdot \mathsf{fma}\left(\sin \varepsilon \cdot \sin x, \sin \varepsilon \cdot \sin x - \cos x \cdot \cos \varepsilon, \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)\right)}{\mathsf{fma}\left(\cos x \cdot \cos \varepsilon, \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right), \left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\left(\sin \varepsilon \cdot \sin x\right) \cdot \left(\sin \varepsilon \cdot \sin x\right)\right)\right)} - \cos x\right)\\
\end{array}double f(double x, double eps) {
double r2437729 = x;
double r2437730 = eps;
double r2437731 = r2437729 + r2437730;
double r2437732 = cos(r2437731);
double r2437733 = cos(r2437729);
double r2437734 = r2437732 - r2437733;
return r2437734;
}
double f(double x, double eps) {
double r2437735 = eps;
double r2437736 = -3.934754991620558e-08;
bool r2437737 = r2437735 <= r2437736;
double r2437738 = x;
double r2437739 = cos(r2437738);
double r2437740 = cos(r2437735);
double r2437741 = r2437739 * r2437740;
double r2437742 = r2437741 * r2437741;
double r2437743 = sin(r2437735);
double r2437744 = sin(r2437738);
double r2437745 = r2437743 * r2437744;
double r2437746 = r2437745 * r2437745;
double r2437747 = cbrt(r2437746);
double r2437748 = r2437747 * r2437747;
double r2437749 = r2437748 * r2437747;
double r2437750 = r2437742 - r2437749;
double r2437751 = r2437745 + r2437741;
double r2437752 = r2437750 / r2437751;
double r2437753 = r2437752 - r2437739;
double r2437754 = 9.775851168574081e-26;
bool r2437755 = r2437735 <= r2437754;
double r2437756 = 0.16666666666666666;
double r2437757 = r2437738 * r2437735;
double r2437758 = r2437738 * r2437738;
double r2437759 = r2437757 * r2437758;
double r2437760 = r2437756 * r2437759;
double r2437761 = 0.5;
double r2437762 = r2437735 * r2437735;
double r2437763 = fma(r2437761, r2437762, r2437757);
double r2437764 = r2437760 - r2437763;
double r2437765 = 0.0;
double r2437766 = r2437765 * r2437739;
double r2437767 = r2437742 - r2437746;
double r2437768 = r2437745 - r2437741;
double r2437769 = fma(r2437745, r2437768, r2437742);
double r2437770 = r2437767 * r2437769;
double r2437771 = r2437745 * r2437746;
double r2437772 = fma(r2437741, r2437742, r2437771);
double r2437773 = r2437770 / r2437772;
double r2437774 = r2437773 - r2437739;
double r2437775 = r2437766 + r2437774;
double r2437776 = r2437755 ? r2437764 : r2437775;
double r2437777 = r2437737 ? r2437753 : r2437776;
return r2437777;
}



Bits error versus x



Bits error versus eps
if eps < -3.934754991620558e-08Initial program 30.9
rmApplied cos-sum1.2
rmApplied flip--1.3
rmApplied add-cube-cbrt1.5
if -3.934754991620558e-08 < eps < 9.775851168574081e-26Initial program 48.8
rmApplied cos-sum48.7
rmApplied flip--48.7
Taylor expanded around 0 31.6
Simplified31.5
if 9.775851168574081e-26 < eps Initial program 31.7
rmApplied cos-sum3.6
rmApplied flip--3.7
rmApplied add-cube-cbrt4.0
Applied flip3-+4.2
Applied associate-/r/4.2
Applied prod-diff4.2
Simplified3.8
Simplified3.8
Final simplification16.5
herbie shell --seed 2019171 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))