\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \cos x + \left(\sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)} \cdot \sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)}\right) \cdot \left(\sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)} \cdot \sin x\right)\right) \cdot \left(-2 \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right)double f(double x, double eps) {
double r20415 = x;
double r20416 = eps;
double r20417 = r20415 + r20416;
double r20418 = cos(r20417);
double r20419 = cos(r20415);
double r20420 = r20418 - r20419;
return r20420;
}
double f(double x, double eps) {
double r20421 = eps;
double r20422 = 0.5;
double r20423 = r20421 * r20422;
double r20424 = sin(r20423);
double r20425 = x;
double r20426 = cos(r20425);
double r20427 = r20424 * r20426;
double r20428 = cos(r20423);
double r20429 = cbrt(r20428);
double r20430 = r20429 * r20429;
double r20431 = sin(r20425);
double r20432 = r20429 * r20431;
double r20433 = r20430 * r20432;
double r20434 = r20427 + r20433;
double r20435 = -2.0;
double r20436 = r20422 * r20421;
double r20437 = sin(r20436);
double r20438 = r20435 * r20437;
double r20439 = r20434 * r20438;
return r20439;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.1
rmApplied diff-cos33.5
Simplified14.9
Taylor expanded around inf 14.9
Simplified14.9
rmApplied fma-udef14.9
Applied sin-sum0.4
rmApplied add-cube-cbrt0.5
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))