\cos \left(x + \varepsilon\right) - \cos x
\left(-2 \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right)\right) \cdot \left(\cos x \cdot \sin \left(\frac{1}{2} \cdot \varepsilon\right) + \left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \left(\sqrt[3]{\sin x} \cdot \cos \left(\frac{1}{2} \cdot \varepsilon\right)\right)\right)double f(double x, double eps) {
double r33604 = x;
double r33605 = eps;
double r33606 = r33604 + r33605;
double r33607 = cos(r33606);
double r33608 = cos(r33604);
double r33609 = r33607 - r33608;
return r33609;
}
double f(double x, double eps) {
double r33610 = -2.0;
double r33611 = 0.5;
double r33612 = eps;
double r33613 = r33611 * r33612;
double r33614 = sin(r33613);
double r33615 = r33610 * r33614;
double r33616 = x;
double r33617 = cos(r33616);
double r33618 = r33617 * r33614;
double r33619 = sin(r33616);
double r33620 = cbrt(r33619);
double r33621 = r33620 * r33620;
double r33622 = cos(r33613);
double r33623 = r33620 * r33622;
double r33624 = r33621 * r33623;
double r33625 = r33618 + r33624;
double r33626 = r33615 * r33625;
return r33626;
}



Bits error versus x



Bits error versus eps
Results
Initial program 39.8
rmApplied diff-cos34.4
Simplified15.1
Taylor expanded around inf 15.1
Simplified15.1
rmApplied sin-sum0.4
Simplified0.4
Simplified0.4
rmApplied add-cube-cbrt0.8
Applied associate-*l*0.8
Final simplification0.8
herbie shell --seed 2019212
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))