\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.608808965388138481969471094146229006583 \cdot 10^{-5} \lor \neg \left(\varepsilon \le 260530.52023522579111158847808837890625\right):\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin \varepsilon \cdot \sin x\right) - \cos x\\
\mathbf{else}:\\
\;\;\;\;\left(\sin \left(\frac{\varepsilon}{2}\right) \cdot -2\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\\
\end{array}double f(double x, double eps) {
double r46743 = x;
double r46744 = eps;
double r46745 = r46743 + r46744;
double r46746 = cos(r46745);
double r46747 = cos(r46743);
double r46748 = r46746 - r46747;
return r46748;
}
double f(double x, double eps) {
double r46749 = eps;
double r46750 = -8.608808965388138e-05;
bool r46751 = r46749 <= r46750;
double r46752 = 260530.5202352258;
bool r46753 = r46749 <= r46752;
double r46754 = !r46753;
bool r46755 = r46751 || r46754;
double r46756 = x;
double r46757 = cos(r46756);
double r46758 = cos(r46749);
double r46759 = r46757 * r46758;
double r46760 = sin(r46749);
double r46761 = sin(r46756);
double r46762 = r46760 * r46761;
double r46763 = r46759 - r46762;
double r46764 = r46763 - r46757;
double r46765 = 2.0;
double r46766 = r46749 / r46765;
double r46767 = sin(r46766);
double r46768 = -2.0;
double r46769 = r46767 * r46768;
double r46770 = r46756 + r46749;
double r46771 = r46770 + r46756;
double r46772 = r46771 / r46765;
double r46773 = sin(r46772);
double r46774 = r46769 * r46773;
double r46775 = r46755 ? r46764 : r46774;
return r46775;
}



Bits error versus x



Bits error versus eps
Results
if eps < -8.608808965388138e-05 or 260530.5202352258 < eps Initial program 30.1
Simplified30.1
rmApplied cos-sum0.8
Simplified0.8
if -8.608808965388138e-05 < eps < 260530.5202352258Initial program 49.1
Simplified49.1
rmApplied diff-cos37.6
Simplified0.9
rmApplied pow10.9
Applied pow10.9
Applied pow-prod-down0.9
Applied pow10.9
Applied pow-prod-down0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019194
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))