\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02817374883090965551057927029887650860474:\\
\;\;\;\;\frac{1}{x} \cdot \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{x \cdot \mathsf{fma}\left(1, 1, \cos x \cdot \left(1 + \cos x\right)\right)}\\
\mathbf{elif}\;x \le 0.03577299125405768859264910020101524423808:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{x}}{\sqrt{x}} \cdot \left(\frac{1}{\sqrt{x}} - \frac{\cos x}{\sqrt{x}}\right)\\
\end{array}double f(double x) {
double r23255 = 1.0;
double r23256 = x;
double r23257 = cos(r23256);
double r23258 = r23255 - r23257;
double r23259 = r23256 * r23256;
double r23260 = r23258 / r23259;
return r23260;
}
double f(double x) {
double r23261 = x;
double r23262 = -0.028173748830909656;
bool r23263 = r23261 <= r23262;
double r23264 = 1.0;
double r23265 = r23264 / r23261;
double r23266 = 1.0;
double r23267 = 3.0;
double r23268 = pow(r23266, r23267);
double r23269 = cos(r23261);
double r23270 = pow(r23269, r23267);
double r23271 = r23268 - r23270;
double r23272 = r23266 + r23269;
double r23273 = r23269 * r23272;
double r23274 = fma(r23266, r23266, r23273);
double r23275 = r23261 * r23274;
double r23276 = r23271 / r23275;
double r23277 = r23265 * r23276;
double r23278 = 0.03577299125405769;
bool r23279 = r23261 <= r23278;
double r23280 = 0.001388888888888889;
double r23281 = 4.0;
double r23282 = pow(r23261, r23281);
double r23283 = 0.5;
double r23284 = fma(r23280, r23282, r23283);
double r23285 = 0.041666666666666664;
double r23286 = 2.0;
double r23287 = pow(r23261, r23286);
double r23288 = r23285 * r23287;
double r23289 = r23284 - r23288;
double r23290 = sqrt(r23261);
double r23291 = r23265 / r23290;
double r23292 = r23266 / r23290;
double r23293 = r23269 / r23290;
double r23294 = r23292 - r23293;
double r23295 = r23291 * r23294;
double r23296 = r23279 ? r23289 : r23295;
double r23297 = r23263 ? r23277 : r23296;
return r23297;
}



Bits error versus x
if x < -0.028173748830909656Initial program 1.0
rmApplied *-un-lft-identity1.0
Applied times-frac0.5
rmApplied flip3--0.5
Applied associate-/l/0.5
Simplified0.5
if -0.028173748830909656 < x < 0.03577299125405769Initial program 62.3
rmApplied *-un-lft-identity62.3
Applied times-frac61.3
rmApplied div-sub61.4
Taylor expanded around 0 0.0
Simplified0.0
if 0.03577299125405769 < x Initial program 1.0
rmApplied *-un-lft-identity1.0
Applied times-frac0.5
rmApplied div-sub0.7
rmApplied add-sqr-sqrt0.7
Applied *-un-lft-identity0.7
Applied times-frac0.7
Applied add-sqr-sqrt0.8
Applied *-un-lft-identity0.8
Applied times-frac0.8
Applied distribute-lft-out--0.7
Applied associate-*r*0.7
Simplified0.7
Final simplification0.3
herbie shell --seed 2019325 +o rules:numerics
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))