\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -2.979810964893114292557903597185422883762 \cdot 10^{-22}:\\
\;\;\;\;\log \left(e^{\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon}\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 1.075814197720993254357452900693559172396 \cdot 10^{-6}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\sqrt[3]{{\left(\cos \varepsilon \cdot \cos x - \left(\sin x \cdot \sin \varepsilon + \cos x\right)\right)}^{3}}\\
\end{array}double f(double x, double eps) {
double r173091 = x;
double r173092 = eps;
double r173093 = r173091 + r173092;
double r173094 = cos(r173093);
double r173095 = cos(r173091);
double r173096 = r173094 - r173095;
return r173096;
}
double f(double x, double eps) {
double r173097 = eps;
double r173098 = -2.9798109648931143e-22;
bool r173099 = r173097 <= r173098;
double r173100 = x;
double r173101 = cos(r173100);
double r173102 = cos(r173097);
double r173103 = r173101 * r173102;
double r173104 = sin(r173100);
double r173105 = sin(r173097);
double r173106 = r173104 * r173105;
double r173107 = r173103 - r173106;
double r173108 = exp(r173107);
double r173109 = log(r173108);
double r173110 = r173109 - r173101;
double r173111 = 1.0758141977209933e-06;
bool r173112 = r173097 <= r173111;
double r173113 = 0.16666666666666666;
double r173114 = 3.0;
double r173115 = pow(r173100, r173114);
double r173116 = r173113 * r173115;
double r173117 = r173116 - r173100;
double r173118 = 0.5;
double r173119 = r173097 * r173118;
double r173120 = r173117 - r173119;
double r173121 = r173097 * r173120;
double r173122 = r173102 * r173101;
double r173123 = r173106 + r173101;
double r173124 = r173122 - r173123;
double r173125 = pow(r173124, r173114);
double r173126 = cbrt(r173125);
double r173127 = r173112 ? r173121 : r173126;
double r173128 = r173099 ? r173110 : r173127;
return r173128;
}



Bits error versus x



Bits error versus eps
Results
if eps < -2.9798109648931143e-22Initial program 32.0
rmApplied cos-sum3.7
rmApplied add-log-exp3.8
Applied add-log-exp3.9
Applied diff-log3.9
Simplified3.8
if -2.9798109648931143e-22 < eps < 1.0758141977209933e-06Initial program 49.0
Taylor expanded around 0 32.7
Simplified32.7
if 1.0758141977209933e-06 < eps Initial program 31.2
rmApplied cos-sum1.0
Applied associate--l-1.1
rmApplied add-cbrt-cube1.3
Simplified1.3
Final simplification16.8
herbie shell --seed 2019322
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))