\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \cos x\right) \cdot \left(-2 \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) + \cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \left(\left(\sin x \cdot -2\right) \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right)double f(double x, double eps) {
double r19477 = x;
double r19478 = eps;
double r19479 = r19477 + r19478;
double r19480 = cos(r19479);
double r19481 = cos(r19477);
double r19482 = r19480 - r19481;
return r19482;
}
double f(double x, double eps) {
double r19483 = 0.5;
double r19484 = eps;
double r19485 = r19483 * r19484;
double r19486 = sin(r19485);
double r19487 = x;
double r19488 = cos(r19487);
double r19489 = r19486 * r19488;
double r19490 = -2.0;
double r19491 = r19490 * r19486;
double r19492 = r19489 * r19491;
double r19493 = cos(r19485);
double r19494 = sin(r19487);
double r19495 = r19494 * r19490;
double r19496 = r19495 * r19486;
double r19497 = r19493 * r19496;
double r19498 = r19492 + r19497;
return r19498;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.8
rmApplied diff-cos34.2
Simplified15.5
Taylor expanded around inf 15.5
Simplified15.5
rmApplied sin-sum0.4
Applied distribute-lft-in0.4
Simplified0.4
Simplified0.4
rmApplied associate-*l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019209
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))