\cos \left(x + \varepsilon\right) - \cos x
\left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot -2\right) \cdot \mathsf{fma}\left(\cos \left(\frac{1}{2} \cdot \varepsilon\right), \sin x, \sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \cos x\right)double f(double x, double eps) {
double r1794034 = x;
double r1794035 = eps;
double r1794036 = r1794034 + r1794035;
double r1794037 = cos(r1794036);
double r1794038 = cos(r1794034);
double r1794039 = r1794037 - r1794038;
return r1794039;
}
double f(double x, double eps) {
double r1794040 = 0.5;
double r1794041 = eps;
double r1794042 = r1794040 * r1794041;
double r1794043 = sin(r1794042);
double r1794044 = -2.0;
double r1794045 = r1794043 * r1794044;
double r1794046 = cos(r1794042);
double r1794047 = x;
double r1794048 = sin(r1794047);
double r1794049 = cos(r1794047);
double r1794050 = r1794043 * r1794049;
double r1794051 = fma(r1794046, r1794048, r1794050);
double r1794052 = r1794045 * r1794051;
return r1794052;
}



Bits error versus x



Bits error versus eps
Initial program 40.4
rmApplied diff-cos34.5
Simplified15.6
Taylor expanded around inf 15.6
Simplified15.6
rmApplied fma-udef15.6
Applied sin-sum0.4
Simplified0.4
Simplified0.4
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019162 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))