\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot -2\right) \cdot \mathsf{fma}\left(\sin x, \cos \left(\frac{1}{2} \cdot \varepsilon\right), \sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \cos x\right)double f(double x, double eps) {
double r1653750 = x;
double r1653751 = eps;
double r1653752 = r1653750 + r1653751;
double r1653753 = cos(r1653752);
double r1653754 = cos(r1653750);
double r1653755 = r1653753 - r1653754;
return r1653755;
}
double f(double x, double eps) {
double r1653756 = 0.5;
double r1653757 = eps;
double r1653758 = r1653756 * r1653757;
double r1653759 = sin(r1653758);
double r1653760 = -2.0;
double r1653761 = r1653759 * r1653760;
double r1653762 = x;
double r1653763 = sin(r1653762);
double r1653764 = cos(r1653758);
double r1653765 = cos(r1653762);
double r1653766 = r1653759 * r1653765;
double r1653767 = fma(r1653763, r1653764, r1653766);
double r1653768 = r1653761 * r1653767;
return r1653768;
}



Bits error versus x



Bits error versus eps
Initial program 39.3
rmApplied diff-cos33.7
Simplified14.9
Taylor expanded around -inf 14.9
Simplified14.9
rmApplied fma-udef14.9
Applied sin-sum0.4
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019138 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))