\cos \left(x + \varepsilon\right) - \cos x
\mathsf{fma}\left(\sin \left(\frac{1}{2} \cdot \varepsilon\right), \cos x, \cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin x\right) \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot -2\right)double f(double x, double eps) {
double r20828 = x;
double r20829 = eps;
double r20830 = r20828 + r20829;
double r20831 = cos(r20830);
double r20832 = cos(r20828);
double r20833 = r20831 - r20832;
return r20833;
}
double f(double x, double eps) {
double r20834 = 0.5;
double r20835 = eps;
double r20836 = r20834 * r20835;
double r20837 = sin(r20836);
double r20838 = x;
double r20839 = cos(r20838);
double r20840 = cos(r20836);
double r20841 = sin(r20838);
double r20842 = r20840 * r20841;
double r20843 = fma(r20837, r20839, r20842);
double r20844 = -2.0;
double r20845 = r20837 * r20844;
double r20846 = r20843 * r20845;
return r20846;
}



Bits error versus x



Bits error versus eps
Initial program 39.8
rmApplied diff-cos34.4
Simplified15.1
Taylor expanded around inf 15.1
Simplified15.1
rmApplied fma-udef15.1
Applied sin-sum0.4
rmApplied fma-def0.4
Final simplification0.4
herbie shell --seed 2019212 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))