\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1051.778674885963027918478474020957946777:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 2.50609634945020069804900303411798745401 \cdot 10^{-5}:\\
\;\;\;\;\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(-2 \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\end{array}double f(double x, double eps) {
double r1888257 = x;
double r1888258 = eps;
double r1888259 = r1888257 + r1888258;
double r1888260 = cos(r1888259);
double r1888261 = cos(r1888257);
double r1888262 = r1888260 - r1888261;
return r1888262;
}
double f(double x, double eps) {
double r1888263 = eps;
double r1888264 = -1051.778674885963;
bool r1888265 = r1888263 <= r1888264;
double r1888266 = x;
double r1888267 = cos(r1888266);
double r1888268 = cos(r1888263);
double r1888269 = r1888267 * r1888268;
double r1888270 = sin(r1888266);
double r1888271 = sin(r1888263);
double r1888272 = r1888270 * r1888271;
double r1888273 = r1888269 - r1888272;
double r1888274 = r1888273 - r1888267;
double r1888275 = 2.5060963494502007e-05;
bool r1888276 = r1888263 <= r1888275;
double r1888277 = 2.0;
double r1888278 = r1888263 / r1888277;
double r1888279 = sin(r1888278);
double r1888280 = -2.0;
double r1888281 = r1888266 + r1888263;
double r1888282 = r1888281 + r1888266;
double r1888283 = r1888282 / r1888277;
double r1888284 = sin(r1888283);
double r1888285 = cbrt(r1888284);
double r1888286 = r1888285 * r1888285;
double r1888287 = r1888285 * r1888286;
double r1888288 = r1888280 * r1888287;
double r1888289 = r1888279 * r1888288;
double r1888290 = r1888276 ? r1888289 : r1888274;
double r1888291 = r1888265 ? r1888274 : r1888290;
return r1888291;
}



Bits error versus x



Bits error versus eps
Results
if eps < -1051.778674885963 or 2.5060963494502007e-05 < eps Initial program 30.3
rmApplied cos-sum0.9
if -1051.778674885963 < eps < 2.5060963494502007e-05Initial program 49.4
rmApplied diff-cos37.5
Simplified0.6
rmApplied associate-*r*0.6
rmApplied add-cube-cbrt1.6
Final simplification1.2
herbie shell --seed 2019172
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))