\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -4.028105222915818 \cdot 10^{-06}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{elif}\;\varepsilon \le 0.11407284983207572:\\
\;\;\;\;-2 \cdot \left(\sin \left(\frac{1}{2} \cdot \varepsilon\right) \cdot \sin \left(\frac{\left(x + \varepsilon\right) + x}{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \left(\cos x + \sin x \cdot \sin \varepsilon\right)\\
\end{array}double f(double x, double eps) {
double r1703631 = x;
double r1703632 = eps;
double r1703633 = r1703631 + r1703632;
double r1703634 = cos(r1703633);
double r1703635 = cos(r1703631);
double r1703636 = r1703634 - r1703635;
return r1703636;
}
double f(double x, double eps) {
double r1703637 = eps;
double r1703638 = -4.028105222915818e-06;
bool r1703639 = r1703637 <= r1703638;
double r1703640 = x;
double r1703641 = cos(r1703640);
double r1703642 = cos(r1703637);
double r1703643 = r1703641 * r1703642;
double r1703644 = sin(r1703640);
double r1703645 = sin(r1703637);
double r1703646 = r1703644 * r1703645;
double r1703647 = r1703643 - r1703646;
double r1703648 = r1703647 - r1703641;
double r1703649 = 0.11407284983207572;
bool r1703650 = r1703637 <= r1703649;
double r1703651 = -2.0;
double r1703652 = 0.5;
double r1703653 = r1703652 * r1703637;
double r1703654 = sin(r1703653);
double r1703655 = r1703640 + r1703637;
double r1703656 = r1703655 + r1703640;
double r1703657 = 2.0;
double r1703658 = r1703656 / r1703657;
double r1703659 = sin(r1703658);
double r1703660 = r1703654 * r1703659;
double r1703661 = r1703651 * r1703660;
double r1703662 = r1703641 + r1703646;
double r1703663 = r1703643 - r1703662;
double r1703664 = r1703650 ? r1703661 : r1703663;
double r1703665 = r1703639 ? r1703648 : r1703664;
return r1703665;
}



Bits error versus x



Bits error versus eps
Results
if eps < -4.028105222915818e-06Initial program 30.5
rmApplied cos-sum1.0
if -4.028105222915818e-06 < eps < 0.11407284983207572Initial program 49.3
rmApplied diff-cos37.6
Simplified0.5
if 0.11407284983207572 < eps Initial program 29.6
rmApplied cos-sum0.8
Applied associate--l-0.8
Final simplification0.7
herbie shell --seed 2019164
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
(- (cos (+ x eps)) (cos x)))