\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 r23344 = 1.0;
double r23345 = x;
double r23346 = cos(r23345);
double r23347 = r23344 - r23346;
double r23348 = r23345 * r23345;
double r23349 = r23347 / r23348;
return r23349;
}
double f(double x) {
double r23350 = x;
double r23351 = -0.028173748830909656;
bool r23352 = r23350 <= r23351;
double r23353 = 1.0;
double r23354 = r23353 / r23350;
double r23355 = 1.0;
double r23356 = 3.0;
double r23357 = pow(r23355, r23356);
double r23358 = cos(r23350);
double r23359 = pow(r23358, r23356);
double r23360 = r23357 - r23359;
double r23361 = r23355 + r23358;
double r23362 = r23358 * r23361;
double r23363 = fma(r23355, r23355, r23362);
double r23364 = r23350 * r23363;
double r23365 = r23360 / r23364;
double r23366 = r23354 * r23365;
double r23367 = 0.03577299125405769;
bool r23368 = r23350 <= r23367;
double r23369 = 0.001388888888888889;
double r23370 = 4.0;
double r23371 = pow(r23350, r23370);
double r23372 = 0.5;
double r23373 = fma(r23369, r23371, r23372);
double r23374 = 0.041666666666666664;
double r23375 = 2.0;
double r23376 = pow(r23350, r23375);
double r23377 = r23374 * r23376;
double r23378 = r23373 - r23377;
double r23379 = sqrt(r23350);
double r23380 = r23354 / r23379;
double r23381 = r23355 / r23379;
double r23382 = r23358 / r23379;
double r23383 = r23381 - r23382;
double r23384 = r23380 * r23383;
double r23385 = r23368 ? r23378 : r23384;
double r23386 = r23352 ? r23366 : r23385;
return r23386;
}



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)))