\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.4155618696900624 \cdot 10^{-10}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\frac{\left({\left(\cos \varepsilon \cdot \cos x\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x \cdot \cos x\right)}{\left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos \varepsilon \cdot \cos x\right) + {\left(\cos \varepsilon\right)}^{2} \cdot {\left(\cos x\right)}^{2}\right)} + \cos x \cdot \cos x}\\
\mathbf{elif}\;\varepsilon \le 1.23057486602459758 \cdot 10^{-7}:\\
\;\;\;\;\frac{\frac{7}{8} \cdot {\varepsilon}^{4} - \left(3 \cdot \left(x \cdot \varepsilon\right) + \frac{3}{2} \cdot {\varepsilon}^{2}\right)}{\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}\\
\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \left(\sqrt[3]{\sin x \cdot \sin \varepsilon} \cdot \sqrt[3]{\sin x \cdot \sin \varepsilon}\right) \cdot \sqrt[3]{\sin x \cdot \sin \varepsilon}\right) - \cos x\\
\end{array}double f(double x, double eps) {
double r41801 = x;
double r41802 = eps;
double r41803 = r41801 + r41802;
double r41804 = cos(r41803);
double r41805 = cos(r41801);
double r41806 = r41804 - r41805;
return r41806;
}
double f(double x, double eps) {
double r41807 = eps;
double r41808 = -1.4155618696900624e-10;
bool r41809 = r41807 <= r41808;
double r41810 = x;
double r41811 = cos(r41810);
double r41812 = cos(r41807);
double r41813 = r41811 * r41812;
double r41814 = sin(r41810);
double r41815 = sin(r41807);
double r41816 = r41814 * r41815;
double r41817 = r41813 - r41816;
double r41818 = 3.0;
double r41819 = pow(r41817, r41818);
double r41820 = pow(r41811, r41818);
double r41821 = r41819 - r41820;
double r41822 = r41812 * r41811;
double r41823 = pow(r41822, r41818);
double r41824 = pow(r41816, r41818);
double r41825 = r41823 - r41824;
double r41826 = r41817 * r41817;
double r41827 = r41811 * r41811;
double r41828 = r41826 - r41827;
double r41829 = r41825 * r41828;
double r41830 = r41817 - r41811;
double r41831 = r41816 + r41822;
double r41832 = r41816 * r41831;
double r41833 = 2.0;
double r41834 = pow(r41812, r41833);
double r41835 = pow(r41811, r41833);
double r41836 = r41834 * r41835;
double r41837 = r41832 + r41836;
double r41838 = r41830 * r41837;
double r41839 = r41829 / r41838;
double r41840 = r41839 + r41827;
double r41841 = r41821 / r41840;
double r41842 = 1.2305748660245976e-07;
bool r41843 = r41807 <= r41842;
double r41844 = 0.875;
double r41845 = 4.0;
double r41846 = pow(r41807, r41845);
double r41847 = r41844 * r41846;
double r41848 = r41810 * r41807;
double r41849 = r41818 * r41848;
double r41850 = 1.5;
double r41851 = pow(r41807, r41833);
double r41852 = r41850 * r41851;
double r41853 = r41849 + r41852;
double r41854 = r41847 - r41853;
double r41855 = r41822 - r41816;
double r41856 = r41817 + r41811;
double r41857 = r41855 * r41856;
double r41858 = r41857 + r41827;
double r41859 = r41854 / r41858;
double r41860 = cbrt(r41816);
double r41861 = r41860 * r41860;
double r41862 = r41861 * r41860;
double r41863 = r41813 - r41862;
double r41864 = r41863 - r41811;
double r41865 = r41843 ? r41859 : r41864;
double r41866 = r41809 ? r41841 : r41865;
return r41866;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.4155618696900624e-10Initial program 31.0
rmApplied cos-sum1.5
rmApplied flip3--1.7
Simplified1.7
rmApplied flip-+1.7
Applied flip3--1.7
Applied frac-times1.7
Simplified1.7
if -1.4155618696900624e-10 < eps < 1.2305748660245976e-07Initial program 49.1
rmApplied cos-sum48.8
rmApplied flip3--48.8
Simplified48.8
Taylor expanded around inf 48.8
Simplified48.8
Taylor expanded around 0 30.8
if 1.2305748660245976e-07 < eps Initial program 30.3
rmApplied cos-sum1.1
rmApplied add-cube-cbrt1.4
Final simplification15.9
herbie shell --seed 2020062
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))