\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le \frac{-444323874425227}{37778931862957161709568}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)}\\
\mathbf{elif}\;\varepsilon \le \frac{3848614362414781}{75557863725914323419136}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon - \cos x\right) + \cos x \cdot \cos x}\\
\end{array}double f(double x, double eps) {
double r34687 = x;
double r34688 = eps;
double r34689 = r34687 + r34688;
double r34690 = cos(r34689);
double r34691 = cos(r34687);
double r34692 = r34690 - r34691;
return r34692;
}
double f(double x, double eps) {
double r34693 = eps;
double r34694 = -444323874425227.0;
double r34695 = 3.777893186295716e+22;
double r34696 = r34694 / r34695;
bool r34697 = r34693 <= r34696;
double r34698 = x;
double r34699 = cos(r34698);
double r34700 = cos(r34693);
double r34701 = r34699 * r34700;
double r34702 = 3.0;
double r34703 = pow(r34701, r34702);
double r34704 = sin(r34698);
double r34705 = sin(r34693);
double r34706 = r34704 * r34705;
double r34707 = r34706 + r34699;
double r34708 = pow(r34707, r34702);
double r34709 = r34703 - r34708;
double r34710 = r34707 + r34701;
double r34711 = r34707 * r34710;
double r34712 = r34701 * r34701;
double r34713 = r34711 + r34712;
double r34714 = r34709 / r34713;
double r34715 = 3848614362414781.0;
double r34716 = 7.555786372591432e+22;
double r34717 = r34715 / r34716;
bool r34718 = r34693 <= r34717;
double r34719 = 0.16666666666666666;
double r34720 = pow(r34698, r34702);
double r34721 = r34719 * r34720;
double r34722 = r34721 - r34698;
double r34723 = 0.5;
double r34724 = r34693 * r34723;
double r34725 = r34722 - r34724;
double r34726 = r34693 * r34725;
double r34727 = pow(r34706, r34702);
double r34728 = pow(r34699, r34702);
double r34729 = r34727 + r34728;
double r34730 = r34706 - r34699;
double r34731 = r34706 * r34730;
double r34732 = r34699 * r34699;
double r34733 = r34731 + r34732;
double r34734 = r34729 / r34733;
double r34735 = r34701 - r34734;
double r34736 = r34718 ? r34726 : r34735;
double r34737 = r34697 ? r34714 : r34736;
return r34737;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.1761155027807802e-08Initial program 32.2
rmApplied cos-sum1.2
Applied associate--l-1.2
rmApplied flip3--1.3
Simplified1.3
if -1.1761155027807802e-08 < eps < 5.093598697252222e-08Initial program 49.4
Taylor expanded around 0 32.7
Simplified32.7
if 5.093598697252222e-08 < eps Initial program 30.4
rmApplied cos-sum1.1
Applied associate--l-1.1
rmApplied flip3-+1.2
Simplified1.2
Final simplification16.6
herbie shell --seed 197574269
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))