\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.743701952491836792397236939600180249954 \cdot 10^{-7}:\\
\;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\
\mathbf{elif}\;\varepsilon \le 2.065310427089646560824650327850100808516 \cdot 10^{-19}:\\
\;\;\;\;\varepsilon \cdot \left(\mathsf{fma}\left(x \cdot \left(\frac{1}{6} \cdot x\right), x, \frac{-1}{2} \cdot \varepsilon\right) - x\right) + \mathsf{fma}\left(-\cos x, 1, \cos x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(-\cos x, 1, \cos x\right) + \mathsf{fma}\left(\cos x, \cos \varepsilon, \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)}\right) - \cos x\right)\right)\\
\end{array}double f(double x, double eps) {
double r2913898 = x;
double r2913899 = eps;
double r2913900 = r2913898 + r2913899;
double r2913901 = cos(r2913900);
double r2913902 = cos(r2913898);
double r2913903 = r2913901 - r2913902;
return r2913903;
}
double f(double x, double eps) {
double r2913904 = eps;
double r2913905 = -8.743701952491837e-07;
bool r2913906 = r2913904 <= r2913905;
double r2913907 = x;
double r2913908 = cos(r2913907);
double r2913909 = -r2913908;
double r2913910 = 1.0;
double r2913911 = fma(r2913909, r2913910, r2913908);
double r2913912 = cos(r2913904);
double r2913913 = sin(r2913904);
double r2913914 = -r2913913;
double r2913915 = sin(r2913907);
double r2913916 = r2913913 * r2913915;
double r2913917 = fma(r2913914, r2913915, r2913916);
double r2913918 = cbrt(r2913917);
double r2913919 = r2913918 * r2913918;
double r2913920 = r2913918 * r2913919;
double r2913921 = r2913920 - r2913908;
double r2913922 = fma(r2913914, r2913915, r2913921);
double r2913923 = fma(r2913908, r2913912, r2913922);
double r2913924 = r2913911 + r2913923;
double r2913925 = 2.0653104270896466e-19;
bool r2913926 = r2913904 <= r2913925;
double r2913927 = 0.16666666666666666;
double r2913928 = r2913927 * r2913907;
double r2913929 = r2913907 * r2913928;
double r2913930 = -0.5;
double r2913931 = r2913930 * r2913904;
double r2913932 = fma(r2913929, r2913907, r2913931);
double r2913933 = r2913932 - r2913907;
double r2913934 = r2913904 * r2913933;
double r2913935 = r2913934 + r2913911;
double r2913936 = r2913926 ? r2913935 : r2913924;
double r2913937 = r2913906 ? r2913924 : r2913936;
return r2913937;
}



Bits error versus x



Bits error versus eps
if eps < -8.743701952491837e-07 or 2.0653104270896466e-19 < eps Initial program 30.9
rmApplied cos-sum1.8
rmApplied prod-diff1.8
Applied associate--l+1.8
rmApplied *-un-lft-identity1.8
Applied add-cube-cbrt1.8
Applied prod-diff1.8
Applied associate-+r+1.8
Simplified1.8
if -8.743701952491837e-07 < eps < 2.0653104270896466e-19Initial program 49.4
rmApplied cos-sum49.3
rmApplied prod-diff49.3
Applied associate--l+49.3
rmApplied *-un-lft-identity49.3
Applied add-cube-cbrt49.3
Applied prod-diff49.3
Applied associate-+r+49.3
Simplified49.3
Taylor expanded around 0 31.6
Simplified31.6
Final simplification16.2
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))