\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -3.18854517915407509 \cdot 10^{-11}:\\
\;\;\;\;\left(\log \left(e^{\cos x \cdot \cos \varepsilon}\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 3.24354239355510184 \cdot 10^{-8}:\\
\;\;\;\;\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \log \left(e^{\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \left(\sqrt[3]{\sin x} \cdot \sin \varepsilon\right)}\right)\right) - \cos x\\
\end{array}double f(double x, double eps) {
double r45611 = x;
double r45612 = eps;
double r45613 = r45611 + r45612;
double r45614 = cos(r45613);
double r45615 = cos(r45611);
double r45616 = r45614 - r45615;
return r45616;
}
double f(double x, double eps) {
double r45617 = eps;
double r45618 = -3.188545179154075e-11;
bool r45619 = r45617 <= r45618;
double r45620 = x;
double r45621 = cos(r45620);
double r45622 = cos(r45617);
double r45623 = r45621 * r45622;
double r45624 = exp(r45623);
double r45625 = log(r45624);
double r45626 = sin(r45620);
double r45627 = sin(r45617);
double r45628 = r45626 * r45627;
double r45629 = r45625 - r45628;
double r45630 = r45629 - r45621;
double r45631 = 3.243542393555102e-08;
bool r45632 = r45617 <= r45631;
double r45633 = 0.16666666666666666;
double r45634 = 3.0;
double r45635 = pow(r45620, r45634);
double r45636 = r45635 * r45617;
double r45637 = r45633 * r45636;
double r45638 = r45620 * r45617;
double r45639 = 0.5;
double r45640 = 2.0;
double r45641 = pow(r45617, r45640);
double r45642 = r45639 * r45641;
double r45643 = r45638 + r45642;
double r45644 = r45637 - r45643;
double r45645 = cbrt(r45626);
double r45646 = r45645 * r45645;
double r45647 = r45645 * r45627;
double r45648 = r45646 * r45647;
double r45649 = exp(r45648);
double r45650 = log(r45649);
double r45651 = r45623 - r45650;
double r45652 = r45651 - r45621;
double r45653 = r45632 ? r45644 : r45652;
double r45654 = r45619 ? r45630 : r45653;
return r45654;
}



Bits error versus x



Bits error versus eps
Results
if eps < -3.188545179154075e-11Initial program 31.3
rmApplied cos-sum1.6
rmApplied add-log-exp1.8
if -3.188545179154075e-11 < eps < 3.243542393555102e-08Initial program 49.2
rmApplied cos-sum48.9
rmApplied flip3--49.1
Simplified49.1
Taylor expanded around 0 32.1
if 3.243542393555102e-08 < eps Initial program 29.6
rmApplied cos-sum1.1
rmApplied add-log-exp1.3
rmApplied add-cube-cbrt1.4
Applied associate-*l*1.4
Final simplification16.5
herbie shell --seed 2020081
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))