\cos \left(x + \varepsilon\right) - \cos x
\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right) + \sin x \cdot \cos \left(\frac{1}{2} \cdot \varepsilon\right)\right)\right) \cdot -2\right) \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)double f(double x, double eps) {
double r1022511 = x;
double r1022512 = eps;
double r1022513 = r1022511 + r1022512;
double r1022514 = cos(r1022513);
double r1022515 = cos(r1022511);
double r1022516 = r1022514 - r1022515;
return r1022516;
}
double f(double x, double eps) {
double r1022517 = x;
double r1022518 = cos(r1022517);
double r1022519 = 0.5;
double r1022520 = eps;
double r1022521 = r1022519 * r1022520;
double r1022522 = sin(r1022521);
double r1022523 = r1022518 * r1022522;
double r1022524 = sin(r1022517);
double r1022525 = cos(r1022521);
double r1022526 = r1022524 * r1022525;
double r1022527 = r1022523 + r1022526;
double r1022528 = expm1(r1022527);
double r1022529 = log1p(r1022528);
double r1022530 = -2.0;
double r1022531 = r1022529 * r1022530;
double r1022532 = r1022531 * r1022522;
return r1022532;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.6
rmApplied diff-cos34.3
Simplified15.3
Taylor expanded around inf 15.3
Simplified15.3
rmApplied fma-udef15.3
Applied sin-sum0.4
rmApplied log1p-expm1-u0.4
Final simplification0.4
herbie shell --seed 2019139 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))