\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -9.09194571234337580020110294837711693374 \cdot 10^{-27}:\\
\;\;\;\;\left(\left(\sqrt[3]{\cos x} \cdot \sqrt[3]{\cos x}\right) \cdot \left(\sqrt[3]{\cos x} \cdot \cos \varepsilon\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 3.672352851463477013948306603677469717173 \cdot 10^{-9}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\log \left(e^{\cos x \cdot \cos \varepsilon}\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\end{array}double f(double x, double eps) {
double r76147 = x;
double r76148 = eps;
double r76149 = r76147 + r76148;
double r76150 = cos(r76149);
double r76151 = cos(r76147);
double r76152 = r76150 - r76151;
return r76152;
}
double f(double x, double eps) {
double r76153 = eps;
double r76154 = -9.091945712343376e-27;
bool r76155 = r76153 <= r76154;
double r76156 = x;
double r76157 = cos(r76156);
double r76158 = cbrt(r76157);
double r76159 = r76158 * r76158;
double r76160 = cos(r76153);
double r76161 = r76158 * r76160;
double r76162 = r76159 * r76161;
double r76163 = sin(r76156);
double r76164 = sin(r76153);
double r76165 = r76163 * r76164;
double r76166 = r76162 - r76165;
double r76167 = r76166 - r76157;
double r76168 = 3.672352851463477e-09;
bool r76169 = r76153 <= r76168;
double r76170 = 0.16666666666666666;
double r76171 = 3.0;
double r76172 = pow(r76156, r76171);
double r76173 = r76170 * r76172;
double r76174 = r76173 - r76156;
double r76175 = 0.5;
double r76176 = r76153 * r76175;
double r76177 = r76174 - r76176;
double r76178 = r76153 * r76177;
double r76179 = r76157 * r76160;
double r76180 = exp(r76179);
double r76181 = log(r76180);
double r76182 = r76181 - r76165;
double r76183 = r76182 - r76157;
double r76184 = r76169 ? r76178 : r76183;
double r76185 = r76155 ? r76167 : r76184;
return r76185;
}



Bits error versus x



Bits error versus eps
Results
if eps < -9.091945712343376e-27Initial program 32.2
rmApplied cos-sum4.0
rmApplied add-cube-cbrt4.3
Applied associate-*l*4.3
if -9.091945712343376e-27 < eps < 3.672352851463477e-09Initial program 49.5
Taylor expanded around 0 31.5
Simplified31.5
if 3.672352851463477e-09 < eps Initial program 30.4
rmApplied cos-sum1.2
rmApplied add-log-exp1.5
Final simplification16.4
herbie shell --seed 2020001
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))