double f(double x, double eps) {
double r3372012 = x;
double r3372013 = eps;
double r3372014 = r3372012 + r3372013;
double r3372015 = cos(r3372014);
double r3372016 = cos(r3372012);
double r3372017 = r3372015 - r3372016;
return r3372017;
}
double f(double x, double eps) {
double r3372018 = -2.0;
double r3372019 = 0.5;
double r3372020 = eps;
double r3372021 = r3372019 * r3372020;
double r3372022 = sin(r3372021);
double r3372023 = cos(r3372021);
double r3372024 = x;
double r3372025 = sin(r3372024);
double r3372026 = r3372023 * r3372025;
double r3372027 = cos(r3372024);
double r3372028 = r3372022 * r3372027;
double r3372029 = r3372026 + r3372028;
double r3372030 = r3372022 * r3372029;
double r3372031 = r3372018 * r3372030;
return r3372031;
}
\cos \left(x + \varepsilon\right) - \cos x
-2 \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \left(\cos \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin x + \sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \cos x\right)\right)


Bits error versus x



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