\cos \left(x + \varepsilon\right) - \cos x
\left(-2 \cdot \sin x\right) \cdot \left(\cos \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \sin \left(\varepsilon \cdot \frac{1}{2}\right)\right) + \left(-2 \cdot \sin \left(\varepsilon \cdot \frac{1}{2}\right)\right) \cdot \left(\cos x \cdot \sin \left(\varepsilon \cdot \frac{1}{2}\right)\right)double f(double x, double eps) {
double r1928754 = x;
double r1928755 = eps;
double r1928756 = r1928754 + r1928755;
double r1928757 = cos(r1928756);
double r1928758 = cos(r1928754);
double r1928759 = r1928757 - r1928758;
return r1928759;
}
double f(double x, double eps) {
double r1928760 = -2.0;
double r1928761 = x;
double r1928762 = sin(r1928761);
double r1928763 = r1928760 * r1928762;
double r1928764 = eps;
double r1928765 = 0.5;
double r1928766 = r1928764 * r1928765;
double r1928767 = cos(r1928766);
double r1928768 = sin(r1928766);
double r1928769 = r1928767 * r1928768;
double r1928770 = r1928763 * r1928769;
double r1928771 = r1928760 * r1928768;
double r1928772 = cos(r1928761);
double r1928773 = r1928772 * r1928768;
double r1928774 = r1928771 * r1928773;
double r1928775 = r1928770 + r1928774;
return r1928775;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.2
rmApplied diff-cos33.7
Simplified14.7
Taylor expanded around inf 14.7
Simplified14.7
rmApplied sin-sum0.4
Applied distribute-rgt-in0.4
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019146
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))