\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le \frac{-2208485107613559}{18446744073709551616} \lor \neg \left(\varepsilon \le \frac{4576821635158953}{4.676805239458889338251791464692105662899 \cdot 10^{49}}\right):\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\
\mathbf{else}:\\
\;\;\;\;\frac{{\varepsilon}^{4}}{24} - \left(x \cdot \varepsilon - \frac{-{\varepsilon}^{2}}{2}\right)\\
\end{array}double f(double x, double eps) {
double r33175 = x;
double r33176 = eps;
double r33177 = r33175 + r33176;
double r33178 = cos(r33177);
double r33179 = cos(r33175);
double r33180 = r33178 - r33179;
return r33180;
}
double f(double x, double eps) {
double r33181 = eps;
double r33182 = -2208485107613559.0;
double r33183 = 1.8446744073709552e+19;
double r33184 = r33182 / r33183;
bool r33185 = r33181 <= r33184;
double r33186 = 4576821635158953.0;
double r33187 = 4.6768052394588893e+49;
double r33188 = r33186 / r33187;
bool r33189 = r33181 <= r33188;
double r33190 = !r33189;
bool r33191 = r33185 || r33190;
double r33192 = x;
double r33193 = cos(r33192);
double r33194 = cos(r33181);
double r33195 = r33193 * r33194;
double r33196 = sin(r33192);
double r33197 = sin(r33181);
double r33198 = r33196 * r33197;
double r33199 = r33195 - r33198;
double r33200 = r33199 - r33193;
double r33201 = 4.0;
double r33202 = pow(r33181, r33201);
double r33203 = 24.0;
double r33204 = r33202 / r33203;
double r33205 = r33192 * r33181;
double r33206 = 2.0;
double r33207 = pow(r33181, r33206);
double r33208 = -r33207;
double r33209 = r33208 / r33206;
double r33210 = r33205 - r33209;
double r33211 = r33204 - r33210;
double r33212 = r33191 ? r33200 : r33211;
return r33212;
}



Bits error versus x



Bits error versus eps
Results
if eps < -0.00011972221757882519Initial program 30.8
rmApplied cos-sum0.8
rmApplied add-log-exp0.9
Applied add-log-exp1.0
Applied add-log-exp1.1
Applied diff-log1.1
Applied diff-log1.2
Simplified1.0
if -0.00011972221757882519 < eps < 9.786213880671446e-35Initial program 48.1
rmApplied cos-sum47.8
Taylor expanded around inf 47.8
Taylor expanded around 0 30.0
Simplified30.0
if 9.786213880671446e-35 < eps Initial program 32.2
rmApplied cos-sum5.6
Taylor expanded around inf 5.6
rmApplied add-log-exp5.7
Applied add-log-exp5.7
Applied sum-log5.8
Simplified5.7
Final simplification15.8
herbie shell --seed 2019303
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))