\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.3976165695423843 \cdot 10^{-14}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\\
\mathbf{elif}\;\varepsilon \le 2.63597490420144011 \cdot 10^{-8}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\left(\cos x \cdot \cos \varepsilon - \sin \varepsilon \cdot \sin x\right) - \cos x}\right)\\
\end{array}double f(double x, double eps) {
double r52657 = x;
double r52658 = eps;
double r52659 = r52657 + r52658;
double r52660 = cos(r52659);
double r52661 = cos(r52657);
double r52662 = r52660 - r52661;
return r52662;
}
double f(double x, double eps) {
double r52663 = eps;
double r52664 = -1.3976165695423843e-14;
bool r52665 = r52663 <= r52664;
double r52666 = x;
double r52667 = cos(r52666);
double r52668 = cos(r52663);
double r52669 = r52667 * r52668;
double r52670 = sin(r52666);
double r52671 = sin(r52663);
double r52672 = r52670 * r52671;
double r52673 = r52672 + r52667;
double r52674 = r52669 - r52673;
double r52675 = 2.63597490420144e-08;
bool r52676 = r52663 <= r52675;
double r52677 = 0.16666666666666666;
double r52678 = 3.0;
double r52679 = pow(r52666, r52678);
double r52680 = r52677 * r52679;
double r52681 = r52680 - r52666;
double r52682 = 0.5;
double r52683 = r52663 * r52682;
double r52684 = r52681 - r52683;
double r52685 = r52663 * r52684;
double r52686 = r52671 * r52670;
double r52687 = r52669 - r52686;
double r52688 = r52687 - r52667;
double r52689 = exp(r52688);
double r52690 = log(r52689);
double r52691 = r52676 ? r52685 : r52690;
double r52692 = r52665 ? r52674 : r52691;
return r52692;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.3976165695423843e-14Initial program 31.1
rmApplied cos-sum2.1
Applied associate--l-2.1
if -1.3976165695423843e-14 < eps < 2.63597490420144e-08Initial program 49.3
Taylor expanded around 0 31.5
Simplified31.5
if 2.63597490420144e-08 < eps Initial program 30.3
rmApplied cos-sum1.1
rmApplied add-log-exp1.2
Applied add-log-exp1.3
Applied add-log-exp1.5
Applied diff-log1.5
Applied diff-log1.5
Simplified1.3
rmApplied *-commutative1.3
Final simplification16.0
herbie shell --seed 2020024
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))