double f(double x, double eps) {
double r2800934 = x;
double r2800935 = eps;
double r2800936 = r2800934 + r2800935;
double r2800937 = cos(r2800936);
double r2800938 = cos(r2800934);
double r2800939 = r2800937 - r2800938;
return r2800939;
}
double f(double x, double eps) {
double r2800940 = x;
double r2800941 = cos(r2800940);
double r2800942 = 0.5;
double r2800943 = eps;
double r2800944 = r2800942 * r2800943;
double r2800945 = sin(r2800944);
double r2800946 = r2800941 * r2800945;
double r2800947 = -2.0;
double r2800948 = r2800945 * r2800947;
double r2800949 = r2800946 * r2800948;
double r2800950 = sin(r2800940);
double r2800951 = cos(r2800944);
double r2800952 = r2800950 * r2800951;
double r2800953 = r2800952 * r2800948;
double r2800954 = r2800949 + r2800953;
return r2800954;
}
\cos \left(x + \varepsilon\right) - \cos x
\left(\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot -2\right) + \left(\sin x \cdot \cos \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot -2\right)


Bits error versus x



Bits error versus eps
Initial program 39.6
rmApplied diff-cos33.8
Simplified15.1
Taylor expanded around -inf 15.1
Simplified15.1
rmApplied sin-sum0.4
rmApplied distribute-lft-in0.4
Final simplification0.4
herbie shell --seed 2019102
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))