\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\varepsilon \cdot \frac{1}{2}\right) \cdot \cos x + \left(\sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)} \cdot \sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)}\right) \cdot \left(\sqrt[3]{\cos \left(\varepsilon \cdot \frac{1}{2}\right)} \cdot \sin x\right)\right) \cdot \left(-2 \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right)double f(double x, double eps) {
double r53731 = x;
double r53732 = eps;
double r53733 = r53731 + r53732;
double r53734 = cos(r53733);
double r53735 = cos(r53731);
double r53736 = r53734 - r53735;
return r53736;
}
double f(double x, double eps) {
double r53737 = eps;
double r53738 = 0.5;
double r53739 = r53737 * r53738;
double r53740 = sin(r53739);
double r53741 = x;
double r53742 = cos(r53741);
double r53743 = r53740 * r53742;
double r53744 = cos(r53739);
double r53745 = cbrt(r53744);
double r53746 = r53745 * r53745;
double r53747 = sin(r53741);
double r53748 = r53745 * r53747;
double r53749 = r53746 * r53748;
double r53750 = r53743 + r53749;
double r53751 = -2.0;
double r53752 = r53738 * r53737;
double r53753 = sin(r53752);
double r53754 = r53751 * r53753;
double r53755 = r53750 * r53754;
return r53755;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.1
rmApplied diff-cos33.5
Simplified14.9
Taylor expanded around inf 14.9
Simplified14.9
rmApplied fma-udef14.9
Applied sin-sum0.4
rmApplied add-cube-cbrt0.5
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))