\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.03379739734255029354192956247970869299024 \lor \neg \left(x \le 0.03113880728354161825377488526100933086127\right):\\
\;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\end{array}double f(double x) {
double r18239 = 1.0;
double r18240 = x;
double r18241 = cos(r18240);
double r18242 = r18239 - r18241;
double r18243 = r18240 * r18240;
double r18244 = r18242 / r18243;
return r18244;
}
double f(double x) {
double r18245 = x;
double r18246 = -0.033797397342550294;
bool r18247 = r18245 <= r18246;
double r18248 = 0.031138807283541618;
bool r18249 = r18245 <= r18248;
double r18250 = !r18249;
bool r18251 = r18247 || r18250;
double r18252 = 1.0;
double r18253 = cos(r18245);
double r18254 = r18252 - r18253;
double r18255 = 1.0;
double r18256 = r18255 / r18245;
double r18257 = r18256 / r18245;
double r18258 = r18254 * r18257;
double r18259 = 0.001388888888888889;
double r18260 = 4.0;
double r18261 = pow(r18245, r18260);
double r18262 = r18259 * r18261;
double r18263 = 0.5;
double r18264 = r18262 + r18263;
double r18265 = 0.041666666666666664;
double r18266 = 2.0;
double r18267 = pow(r18245, r18266);
double r18268 = r18265 * r18267;
double r18269 = r18264 - r18268;
double r18270 = r18251 ? r18258 : r18269;
return r18270;
}



Bits error versus x
Results
if x < -0.033797397342550294 or 0.031138807283541618 < x Initial program 0.9
rmApplied *-un-lft-identity0.9
Applied times-frac0.5
rmApplied div-sub0.7
rmApplied sub-div0.5
Applied associate-*r/0.5
Simplified0.5
rmApplied *-un-lft-identity0.5
Applied div-inv0.5
Applied times-frac0.5
Simplified0.5
if -0.033797397342550294 < x < 0.031138807283541618Initial program 62.2
Taylor expanded around 0 0.0
Final simplification0.3
herbie shell --seed 2019297
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))