\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.6443088649730258 \cdot 10^{-8}:\\
\;\;\;\;\sqrt[3]{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3}} - \cos x\\
\mathbf{elif}\;\varepsilon \le 4.8831367818885993 \cdot 10^{-8}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - \left(\cos x \cdot \cos x\right) \cdot \cos x}{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right) + \cos x \cdot \cos x}\\
\end{array}double f(double x, double eps) {
double r68751 = x;
double r68752 = eps;
double r68753 = r68751 + r68752;
double r68754 = cos(r68753);
double r68755 = cos(r68751);
double r68756 = r68754 - r68755;
return r68756;
}
double f(double x, double eps) {
double r68757 = eps;
double r68758 = -8.644308864973026e-08;
bool r68759 = r68757 <= r68758;
double r68760 = x;
double r68761 = cos(r68760);
double r68762 = cos(r68757);
double r68763 = r68761 * r68762;
double r68764 = sin(r68760);
double r68765 = sin(r68757);
double r68766 = r68764 * r68765;
double r68767 = r68763 - r68766;
double r68768 = 3.0;
double r68769 = pow(r68767, r68768);
double r68770 = cbrt(r68769);
double r68771 = r68770 - r68761;
double r68772 = 4.883136781888599e-08;
bool r68773 = r68757 <= r68772;
double r68774 = 0.16666666666666666;
double r68775 = pow(r68760, r68768);
double r68776 = r68774 * r68775;
double r68777 = r68776 - r68760;
double r68778 = 0.5;
double r68779 = r68757 * r68778;
double r68780 = r68777 - r68779;
double r68781 = r68757 * r68780;
double r68782 = r68761 * r68761;
double r68783 = r68782 * r68761;
double r68784 = r68769 - r68783;
double r68785 = r68762 * r68761;
double r68786 = r68785 - r68766;
double r68787 = r68767 + r68761;
double r68788 = r68786 * r68787;
double r68789 = r68788 + r68782;
double r68790 = r68784 / r68789;
double r68791 = r68773 ? r68781 : r68790;
double r68792 = r68759 ? r68771 : r68791;
return r68792;
}



Bits error versus x



Bits error versus eps
Results
if eps < -8.644308864973026e-08Initial program 30.6
rmApplied cos-sum1.1
rmApplied add-cbrt-cube1.4
Simplified1.4
if -8.644308864973026e-08 < eps < 4.883136781888599e-08Initial program 49.9
Taylor expanded around 0 31.6
Simplified31.6
if 4.883136781888599e-08 < eps Initial program 30.4
rmApplied cos-sum1.2
rmApplied flip3--1.4
Simplified1.4
rmApplied add-cbrt-cube1.6
Applied rem-cube-cbrt1.4
Final simplification16.2
herbie shell --seed 2020027
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))