\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -0.000549063754430864:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 0.14106810261025804:\\
\;\;\;\;\left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \sin \left(\frac{\mathsf{fma}\left(2, x, \varepsilon\right)}{2}\right)\right) \cdot -2\\
\mathbf{else}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \mathsf{fma}\left(\sin \varepsilon, \sin x, \cos x\right)\\
\end{array}double f(double x, double eps) {
double r298827 = x;
double r298828 = eps;
double r298829 = r298827 + r298828;
double r298830 = cos(r298829);
double r298831 = cos(r298827);
double r298832 = r298830 - r298831;
return r298832;
}
double f(double x, double eps) {
double r298833 = eps;
double r298834 = -0.000549063754430864;
bool r298835 = r298833 <= r298834;
double r298836 = x;
double r298837 = cos(r298836);
double r298838 = cos(r298833);
double r298839 = r298837 * r298838;
double r298840 = sin(r298836);
double r298841 = sin(r298833);
double r298842 = r298840 * r298841;
double r298843 = r298839 - r298842;
double r298844 = r298843 - r298837;
double r298845 = 0.14106810261025804;
bool r298846 = r298833 <= r298845;
double r298847 = 2.0;
double r298848 = r298833 / r298847;
double r298849 = sin(r298848);
double r298850 = fma(r298847, r298836, r298833);
double r298851 = r298850 / r298847;
double r298852 = sin(r298851);
double r298853 = r298849 * r298852;
double r298854 = -2.0;
double r298855 = r298853 * r298854;
double r298856 = fma(r298841, r298840, r298837);
double r298857 = r298839 - r298856;
double r298858 = r298846 ? r298855 : r298857;
double r298859 = r298835 ? r298844 : r298858;
return r298859;
}



Bits error versus x



Bits error versus eps
if eps < -0.000549063754430864Initial program 30.8
rmApplied cos-sum0.9
if -0.000549063754430864 < eps < 0.14106810261025804Initial program 49.2
rmApplied diff-cos37.2
Simplified0.6
rmApplied *-commutative0.6
if 0.14106810261025804 < eps Initial program 30.5
rmApplied cos-sum0.8
Applied associate--l-0.8
Simplified0.8
Final simplification0.7
herbie shell --seed 2019155 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))