\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -9.206885999863947166050042077156678743677 \cdot 10^{-7}:\\
\;\;\;\;1 \cdot \frac{{\left(\cos \varepsilon \cdot \cos x\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 \varepsilon \cdot \cos x\right) + \left(\cos \varepsilon \cdot \cos x\right) \cdot \left(\cos \varepsilon \cdot \cos x\right)}\\
\mathbf{elif}\;\varepsilon \le 2.130358258945720065918871810595192073379 \cdot 10^{-4}:\\
\;\;\;\;1 \cdot \left(\frac{1}{24} \cdot {\varepsilon}^{4} - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x}\right)\\
\end{array}double f(double x, double eps) {
double r46360 = x;
double r46361 = eps;
double r46362 = r46360 + r46361;
double r46363 = cos(r46362);
double r46364 = cos(r46360);
double r46365 = r46363 - r46364;
return r46365;
}
double f(double x, double eps) {
double r46366 = eps;
double r46367 = -9.206885999863947e-07;
bool r46368 = r46366 <= r46367;
double r46369 = 1.0;
double r46370 = cos(r46366);
double r46371 = x;
double r46372 = cos(r46371);
double r46373 = r46370 * r46372;
double r46374 = 3.0;
double r46375 = pow(r46373, r46374);
double r46376 = sin(r46371);
double r46377 = sin(r46366);
double r46378 = r46376 * r46377;
double r46379 = r46378 + r46372;
double r46380 = pow(r46379, r46374);
double r46381 = r46375 - r46380;
double r46382 = r46379 + r46373;
double r46383 = r46379 * r46382;
double r46384 = r46373 * r46373;
double r46385 = r46383 + r46384;
double r46386 = r46381 / r46385;
double r46387 = r46369 * r46386;
double r46388 = 0.000213035825894572;
bool r46389 = r46366 <= r46388;
double r46390 = 0.041666666666666664;
double r46391 = 4.0;
double r46392 = pow(r46366, r46391);
double r46393 = r46390 * r46392;
double r46394 = r46371 * r46366;
double r46395 = 0.5;
double r46396 = 2.0;
double r46397 = pow(r46366, r46396);
double r46398 = r46395 * r46397;
double r46399 = r46394 + r46398;
double r46400 = r46393 - r46399;
double r46401 = r46369 * r46400;
double r46402 = r46372 * r46370;
double r46403 = r46402 - r46378;
double r46404 = r46403 - r46372;
double r46405 = exp(r46404);
double r46406 = log(r46405);
double r46407 = r46389 ? r46401 : r46406;
double r46408 = r46368 ? r46387 : r46407;
return r46408;
}



Bits error versus x



Bits error versus eps
Results
if eps < -9.206885999863947e-07Initial program 31.2
rmApplied cos-sum1.0
rmApplied *-un-lft-identity1.0
Applied *-un-lft-identity1.0
Applied distribute-lft-out--1.0
Simplified1.1
rmApplied flip3--1.2
Simplified1.2
if -9.206885999863947e-07 < eps < 0.000213035825894572Initial program 49.4
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 31.6
if 0.000213035825894572 < eps Initial program 30.4
rmApplied cos-sum0.9
rmApplied add-log-exp0.9
Applied add-log-exp1.0
Applied add-log-exp1.1
Applied diff-log1.2
Applied diff-log1.3
Simplified1.0
Final simplification15.8
herbie shell --seed 2019344
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))