\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.4155618696900624 \cdot 10^{-10}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)}^{3} - {\left(\cos x\right)}^{3}}{\frac{\left({\left(\cos \varepsilon \cdot \cos x\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon\right)}^{3}\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x \cdot \cos x\right)}{\left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos \varepsilon \cdot \cos x\right) + {\left(\cos \varepsilon\right)}^{2} \cdot {\left(\cos x\right)}^{2}\right)} + \cos x \cdot \cos x}\\
\mathbf{elif}\;\varepsilon \le 1.23057486602459758 \cdot 10^{-7}:\\
\;\;\;\;\frac{\frac{7}{8} \cdot {\varepsilon}^{4} - \left(3 \cdot \left(x \cdot \varepsilon\right) + \frac{3}{2} \cdot {\varepsilon}^{2}\right)}{\left(\cos \varepsilon \cdot \cos x - \sin x \cdot \sin \varepsilon\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right) + \cos x \cdot \cos x}\\
\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \left(\sqrt[3]{\sin x \cdot \sin \varepsilon} \cdot \sqrt[3]{\sin x \cdot \sin \varepsilon}\right) \cdot \sqrt[3]{\sin x \cdot \sin \varepsilon}\right) - \cos x\\
\end{array}double f(double x, double eps) {
double r67488 = x;
double r67489 = eps;
double r67490 = r67488 + r67489;
double r67491 = cos(r67490);
double r67492 = cos(r67488);
double r67493 = r67491 - r67492;
return r67493;
}
double f(double x, double eps) {
double r67494 = eps;
double r67495 = -1.4155618696900624e-10;
bool r67496 = r67494 <= r67495;
double r67497 = x;
double r67498 = cos(r67497);
double r67499 = cos(r67494);
double r67500 = r67498 * r67499;
double r67501 = sin(r67497);
double r67502 = sin(r67494);
double r67503 = r67501 * r67502;
double r67504 = r67500 - r67503;
double r67505 = 3.0;
double r67506 = pow(r67504, r67505);
double r67507 = pow(r67498, r67505);
double r67508 = r67506 - r67507;
double r67509 = r67499 * r67498;
double r67510 = pow(r67509, r67505);
double r67511 = pow(r67503, r67505);
double r67512 = r67510 - r67511;
double r67513 = r67504 * r67504;
double r67514 = r67498 * r67498;
double r67515 = r67513 - r67514;
double r67516 = r67512 * r67515;
double r67517 = r67504 - r67498;
double r67518 = r67503 + r67509;
double r67519 = r67503 * r67518;
double r67520 = 2.0;
double r67521 = pow(r67499, r67520);
double r67522 = pow(r67498, r67520);
double r67523 = r67521 * r67522;
double r67524 = r67519 + r67523;
double r67525 = r67517 * r67524;
double r67526 = r67516 / r67525;
double r67527 = r67526 + r67514;
double r67528 = r67508 / r67527;
double r67529 = 1.2305748660245976e-07;
bool r67530 = r67494 <= r67529;
double r67531 = 0.875;
double r67532 = 4.0;
double r67533 = pow(r67494, r67532);
double r67534 = r67531 * r67533;
double r67535 = r67497 * r67494;
double r67536 = r67505 * r67535;
double r67537 = 1.5;
double r67538 = pow(r67494, r67520);
double r67539 = r67537 * r67538;
double r67540 = r67536 + r67539;
double r67541 = r67534 - r67540;
double r67542 = r67509 - r67503;
double r67543 = r67504 + r67498;
double r67544 = r67542 * r67543;
double r67545 = r67544 + r67514;
double r67546 = r67541 / r67545;
double r67547 = cbrt(r67503);
double r67548 = r67547 * r67547;
double r67549 = r67548 * r67547;
double r67550 = r67500 - r67549;
double r67551 = r67550 - r67498;
double r67552 = r67530 ? r67546 : r67551;
double r67553 = r67496 ? r67528 : r67552;
return r67553;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1.4155618696900624e-10Initial program 31.0
rmApplied cos-sum1.5
rmApplied flip3--1.7
Simplified1.7
rmApplied flip-+1.7
Applied flip3--1.7
Applied frac-times1.7
Simplified1.7
if -1.4155618696900624e-10 < eps < 1.2305748660245976e-07Initial program 49.1
rmApplied cos-sum48.8
rmApplied flip3--48.8
Simplified48.8
Taylor expanded around inf 48.8
Simplified48.8
Taylor expanded around 0 30.8
if 1.2305748660245976e-07 < eps Initial program 30.3
rmApplied cos-sum1.1
rmApplied add-cube-cbrt1.4
Final simplification15.9
herbie shell --seed 2020062
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))