\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -8.5411563429199795 \cdot 10^{-10}:\\
\;\;\;\;\log \left(e^{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\sqrt[3]{{\left(\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)}^{3}}\right)}\right)\\
\mathbf{elif}\;\varepsilon \le 1.1618945885559161 \cdot 10^{-7}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{24}, {\varepsilon}^{4}, -\mathsf{fma}\left(x, \varepsilon, \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right) \cdot \left(\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x\right)}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) + \cos x}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon\right)}^{3}}{\mathsf{fma}\left(\sin x \cdot \sin \varepsilon, \mathsf{fma}\left(\cos x, \cos \varepsilon, \sin x \cdot \sin \varepsilon\right), \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)\right)} - \cos x\\
\end{array}double f(double x, double eps) {
double r65592 = x;
double r65593 = eps;
double r65594 = r65592 + r65593;
double r65595 = cos(r65594);
double r65596 = cos(r65592);
double r65597 = r65595 - r65596;
return r65597;
}
double f(double x, double eps) {
double r65598 = eps;
double r65599 = -8.54115634291998e-10;
bool r65600 = r65598 <= r65599;
double r65601 = cos(r65598);
double r65602 = x;
double r65603 = cos(r65602);
double r65604 = sin(r65602);
double r65605 = sin(r65598);
double r65606 = fma(r65604, r65605, r65603);
double r65607 = 3.0;
double r65608 = pow(r65606, r65607);
double r65609 = cbrt(r65608);
double r65610 = -r65609;
double r65611 = fma(r65601, r65603, r65610);
double r65612 = exp(r65611);
double r65613 = log(r65612);
double r65614 = 1.1618945885559161e-07;
bool r65615 = r65598 <= r65614;
double r65616 = 0.041666666666666664;
double r65617 = 4.0;
double r65618 = pow(r65598, r65617);
double r65619 = 0.5;
double r65620 = 2.0;
double r65621 = pow(r65598, r65620);
double r65622 = r65619 * r65621;
double r65623 = fma(r65602, r65598, r65622);
double r65624 = -r65623;
double r65625 = fma(r65616, r65618, r65624);
double r65626 = r65603 * r65601;
double r65627 = r65604 * r65605;
double r65628 = r65626 - r65627;
double r65629 = r65628 + r65603;
double r65630 = r65625 * r65629;
double r65631 = r65630 / r65629;
double r65632 = pow(r65626, r65607);
double r65633 = pow(r65627, r65607);
double r65634 = r65632 - r65633;
double r65635 = fma(r65603, r65601, r65627);
double r65636 = r65626 * r65626;
double r65637 = fma(r65627, r65635, r65636);
double r65638 = r65634 / r65637;
double r65639 = r65638 - r65603;
double r65640 = r65615 ? r65631 : r65639;
double r65641 = r65600 ? r65613 : r65640;
return r65641;
}



Bits error versus x



Bits error versus eps
if eps < -8.54115634291998e-10Initial program 29.8
rmApplied cos-sum1.4
rmApplied add-log-exp1.5
Applied add-log-exp1.6
Applied add-log-exp1.7
Applied diff-log1.8
Applied diff-log1.8
Simplified1.5
rmApplied add-cbrt-cube1.6
Simplified1.6
if -8.54115634291998e-10 < eps < 1.1618945885559161e-07Initial program 49.1
rmApplied cos-sum48.7
rmApplied flip--48.7
Simplified48.7
Taylor expanded around 0 30.7
Simplified30.7
if 1.1618945885559161e-07 < eps Initial program 31.2
rmApplied cos-sum1.1
rmApplied flip3--1.3
Simplified1.3
Final simplification15.6
herbie shell --seed 2020057 +o rules:numerics
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))