\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -5.11955164844569822 \cdot 10^{-31} \lor \neg \left(\varepsilon \le 2.81129265655088791 \cdot 10^{-6}\right):\\
\;\;\;\;1 \cdot \mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right)\right)\\
\end{array}double f(double x, double eps) {
double r102325 = x;
double r102326 = eps;
double r102327 = r102325 + r102326;
double r102328 = cos(r102327);
double r102329 = cos(r102325);
double r102330 = r102328 - r102329;
return r102330;
}
double f(double x, double eps) {
double r102331 = eps;
double r102332 = -5.119551648445698e-31;
bool r102333 = r102331 <= r102332;
double r102334 = 2.811292656550888e-06;
bool r102335 = r102331 <= r102334;
double r102336 = !r102335;
bool r102337 = r102333 || r102336;
double r102338 = 1.0;
double r102339 = cos(r102331);
double r102340 = x;
double r102341 = cos(r102340);
double r102342 = sin(r102340);
double r102343 = sin(r102331);
double r102344 = fma(r102342, r102343, r102341);
double r102345 = -r102344;
double r102346 = fma(r102339, r102341, r102345);
double r102347 = r102338 * r102346;
double r102348 = 3.0;
double r102349 = pow(r102331, r102348);
double r102350 = 0.041666666666666664;
double r102351 = r102349 * r102350;
double r102352 = 0.5;
double r102353 = fma(r102352, r102331, r102340);
double r102354 = r102351 - r102353;
double r102355 = r102331 * r102354;
double r102356 = r102338 * r102355;
double r102357 = r102337 ? r102347 : r102356;
return r102357;
}



Bits error versus x



Bits error versus eps
if eps < -5.119551648445698e-31 or 2.811292656550888e-06 < eps Initial program 31.4
rmApplied cos-sum2.9
rmApplied *-un-lft-identity2.9
Applied *-un-lft-identity2.9
Applied distribute-lft-out--2.9
Simplified2.9
if -5.119551648445698e-31 < eps < 2.811292656550888e-06Initial program 49.2
rmApplied cos-sum49.0
rmApplied *-un-lft-identity49.0
Applied *-un-lft-identity49.0
Applied distribute-lft-out--49.0
Simplified49.0
Taylor expanded around 0 30.6
Simplified30.6
Final simplification15.9
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))