\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.03472819889887164557240595286202733404934:\\
\;\;\;\;\frac{\frac{1}{x} - \frac{\cos x}{x}}{x}\\
\mathbf{elif}\;x \le 0.03656973987245589613470642120773845817894:\\
\;\;\;\;\frac{1}{2} + \left(x \cdot x\right) \cdot \left(\frac{1}{720} \cdot \left(x \cdot x\right) - \frac{1}{24}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x \cdot x} - \frac{\cos x}{x \cdot x}\\
\end{array}double f(double x) {
double r2064714 = 1.0;
double r2064715 = x;
double r2064716 = cos(r2064715);
double r2064717 = r2064714 - r2064716;
double r2064718 = r2064715 * r2064715;
double r2064719 = r2064717 / r2064718;
return r2064719;
}
double f(double x) {
double r2064720 = x;
double r2064721 = -0.034728198898871646;
bool r2064722 = r2064720 <= r2064721;
double r2064723 = 1.0;
double r2064724 = r2064723 / r2064720;
double r2064725 = cos(r2064720);
double r2064726 = r2064725 / r2064720;
double r2064727 = r2064724 - r2064726;
double r2064728 = r2064727 / r2064720;
double r2064729 = 0.036569739872455896;
bool r2064730 = r2064720 <= r2064729;
double r2064731 = 0.5;
double r2064732 = r2064720 * r2064720;
double r2064733 = 0.001388888888888889;
double r2064734 = r2064733 * r2064732;
double r2064735 = 0.041666666666666664;
double r2064736 = r2064734 - r2064735;
double r2064737 = r2064732 * r2064736;
double r2064738 = r2064731 + r2064737;
double r2064739 = r2064723 / r2064732;
double r2064740 = r2064725 / r2064732;
double r2064741 = r2064739 - r2064740;
double r2064742 = r2064730 ? r2064738 : r2064741;
double r2064743 = r2064722 ? r2064728 : r2064742;
return r2064743;
}



Bits error versus x
Results
if x < -0.034728198898871646Initial program 1.0
rmApplied add-sqr-sqrt1.1
Applied times-frac0.6
rmApplied associate-*r/0.6
Simplified0.5
rmApplied div-sub0.6
if -0.034728198898871646 < x < 0.036569739872455896Initial program 62.2
Taylor expanded around 0 0.0
Simplified0.0
if 0.036569739872455896 < x Initial program 1.1
rmApplied div-sub1.2
Final simplification0.5
herbie shell --seed 2019173
(FPCore (x)
:name "cos2 (problem 3.4.1)"
(/ (- 1.0 (cos x)) (* x x)))