\cos \left(x + \varepsilon\right) - \cos x
-2 \cdot \left(\sin \left(\frac{\varepsilon}{2}\right) \cdot \frac{\left(\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) - \left(\cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin x\right) \cdot \left(\cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin x\right)}{\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right) - \cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin x}\right)double f(double x, double eps) {
double r1198908 = x;
double r1198909 = eps;
double r1198910 = r1198908 + r1198909;
double r1198911 = cos(r1198910);
double r1198912 = cos(r1198908);
double r1198913 = r1198911 - r1198912;
return r1198913;
}
double f(double x, double eps) {
double r1198914 = -2.0;
double r1198915 = eps;
double r1198916 = 2.0;
double r1198917 = r1198915 / r1198916;
double r1198918 = sin(r1198917);
double r1198919 = x;
double r1198920 = cos(r1198919);
double r1198921 = 0.5;
double r1198922 = r1198921 * r1198915;
double r1198923 = sin(r1198922);
double r1198924 = r1198920 * r1198923;
double r1198925 = r1198924 * r1198924;
double r1198926 = cos(r1198922);
double r1198927 = sin(r1198919);
double r1198928 = r1198926 * r1198927;
double r1198929 = r1198928 * r1198928;
double r1198930 = r1198925 - r1198929;
double r1198931 = r1198924 - r1198928;
double r1198932 = r1198930 / r1198931;
double r1198933 = r1198918 * r1198932;
double r1198934 = r1198914 * r1198933;
return r1198934;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.7
rmApplied diff-cos34.1
Simplified14.9
Taylor expanded around -inf 14.9
Simplified14.9
rmApplied sin-sum0.4
rmApplied flip-+0.4
Final simplification0.4
herbie shell --seed 2019130
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))