\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \cos x + \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)double f(double x, double eps) {
double r1030019 = x;
double r1030020 = eps;
double r1030021 = r1030019 + r1030020;
double r1030022 = cos(r1030021);
double r1030023 = cos(r1030019);
double r1030024 = r1030022 - r1030023;
return r1030024;
}
double f(double x, double eps) {
double r1030025 = 0.5;
double r1030026 = eps;
double r1030027 = r1030025 * r1030026;
double r1030028 = sin(r1030027);
double r1030029 = x;
double r1030030 = cos(r1030029);
double r1030031 = r1030028 * r1030030;
double r1030032 = sin(r1030029);
double r1030033 = cos(r1030027);
double r1030034 = r1030032 * r1030033;
double r1030035 = r1030031 + r1030034;
double r1030036 = -2.0;
double r1030037 = r1030028 * r1030036;
double r1030038 = r1030035 * r1030037;
return r1030038;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.9
rmApplied diff-cos34.1
Simplified15.1
Taylor expanded around inf 15.1
Simplified15.1
rmApplied sin-sum0.4
Final simplification0.4
herbie shell --seed 2019137
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))