\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -4.95115446409742782 \cdot 10^{-9}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \sqrt[3]{{\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}\\
\mathbf{elif}\;\varepsilon \le 2.17240038846879428 \cdot 10^{-10}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \log \left(e^{\sin x \cdot \sin \varepsilon + \cos x}\right)\\
\end{array}double f(double x, double eps) {
double r60623 = x;
double r60624 = eps;
double r60625 = r60623 + r60624;
double r60626 = cos(r60625);
double r60627 = cos(r60623);
double r60628 = r60626 - r60627;
return r60628;
}
double f(double x, double eps) {
double r60629 = eps;
double r60630 = -4.951154464097428e-09;
bool r60631 = r60629 <= r60630;
double r60632 = x;
double r60633 = cos(r60632);
double r60634 = cos(r60629);
double r60635 = r60633 * r60634;
double r60636 = sin(r60632);
double r60637 = sin(r60629);
double r60638 = r60636 * r60637;
double r60639 = r60638 + r60633;
double r60640 = 3.0;
double r60641 = pow(r60639, r60640);
double r60642 = cbrt(r60641);
double r60643 = r60635 - r60642;
double r60644 = 2.1724003884687943e-10;
bool r60645 = r60629 <= r60644;
double r60646 = 0.16666666666666666;
double r60647 = pow(r60632, r60640);
double r60648 = r60646 * r60647;
double r60649 = r60648 - r60632;
double r60650 = 0.5;
double r60651 = r60629 * r60650;
double r60652 = r60649 - r60651;
double r60653 = r60629 * r60652;
double r60654 = exp(r60639);
double r60655 = log(r60654);
double r60656 = r60635 - r60655;
double r60657 = r60645 ? r60653 : r60656;
double r60658 = r60631 ? r60643 : r60657;
return r60658;
}



Bits error versus x



Bits error versus eps
Results
if eps < -4.951154464097428e-09Initial program 30.8
rmApplied cos-sum1.4
Applied associate--l-1.4
rmApplied add-cbrt-cube1.5
Simplified1.5
if -4.951154464097428e-09 < eps < 2.1724003884687943e-10Initial program 49.2
Taylor expanded around 0 31.8
Simplified31.8
if 2.1724003884687943e-10 < eps Initial program 30.8
rmApplied cos-sum1.4
Applied associate--l-1.4
rmApplied add-log-exp1.5
Applied add-log-exp1.5
Applied sum-log1.6
Simplified1.5
Final simplification15.9
herbie shell --seed 2020060
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))