\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le \frac{-6457174413487957}{36893488147419103232} \lor \neg \left(\varepsilon \le \frac{6058263222398397}{302231454903657293676544}\right):\\
\;\;\;\;\cos \varepsilon \cdot \cos x - \left(\sqrt[3]{{\left(\sin x \cdot \sin \varepsilon\right)}^{3}} + \cos x\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{{\varepsilon}^{4}}{24} - \left(x \cdot \varepsilon - \frac{-{\varepsilon}^{2}}{2}\right)\\
\end{array}double f(double x, double eps) {
double r209207 = x;
double r209208 = eps;
double r209209 = r209207 + r209208;
double r209210 = cos(r209209);
double r209211 = cos(r209207);
double r209212 = r209210 - r209211;
return r209212;
}
double f(double x, double eps) {
double r209213 = eps;
double r209214 = -6457174413487957.0;
double r209215 = 3.6893488147419103e+19;
double r209216 = r209214 / r209215;
bool r209217 = r209213 <= r209216;
double r209218 = 6058263222398397.0;
double r209219 = 3.022314549036573e+23;
double r209220 = r209218 / r209219;
bool r209221 = r209213 <= r209220;
double r209222 = !r209221;
bool r209223 = r209217 || r209222;
double r209224 = cos(r209213);
double r209225 = x;
double r209226 = cos(r209225);
double r209227 = r209224 * r209226;
double r209228 = sin(r209225);
double r209229 = sin(r209213);
double r209230 = r209228 * r209229;
double r209231 = 3.0;
double r209232 = pow(r209230, r209231);
double r209233 = cbrt(r209232);
double r209234 = r209233 + r209226;
double r209235 = r209227 - r209234;
double r209236 = 4.0;
double r209237 = pow(r209213, r209236);
double r209238 = 24.0;
double r209239 = r209237 / r209238;
double r209240 = r209225 * r209213;
double r209241 = 2.0;
double r209242 = pow(r209213, r209241);
double r209243 = -r209242;
double r209244 = r209243 / r209241;
double r209245 = r209240 - r209244;
double r209246 = r209239 - r209245;
double r209247 = r209223 ? r209235 : r209246;
return r209247;
}



Bits error versus x



Bits error versus eps
Results
if eps < -0.0001750220631805364 or 2.004511153324394e-08 < eps Initial program 30.2
rmApplied cos-sum1.0
Taylor expanded around inf 1.0
rmApplied add-cbrt-cube1.1
Applied add-cbrt-cube1.2
Applied cbrt-unprod1.1
Simplified1.1
if -0.0001750220631805364 < eps < 2.004511153324394e-08Initial program 49.6
rmApplied cos-sum49.3
Taylor expanded around inf 49.3
Taylor expanded around 0 31.4
Simplified31.4
Final simplification15.8
herbie shell --seed 350497007
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))