\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02817374883090965551057927029887650860474 \lor \neg \left(x \le 0.03027878116855447360178388294116302859038\right):\\
\;\;\;\;\frac{1}{x} \cdot \frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\left(\cos x \cdot \left(1 + \cos x\right) + 1 \cdot 1\right) \cdot 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 r21034 = 1.0;
double r21035 = x;
double r21036 = cos(r21035);
double r21037 = r21034 - r21036;
double r21038 = r21035 * r21035;
double r21039 = r21037 / r21038;
return r21039;
}
double f(double x) {
double r21040 = x;
double r21041 = -0.028173748830909656;
bool r21042 = r21040 <= r21041;
double r21043 = 0.030278781168554474;
bool r21044 = r21040 <= r21043;
double r21045 = !r21044;
bool r21046 = r21042 || r21045;
double r21047 = 1.0;
double r21048 = r21047 / r21040;
double r21049 = 1.0;
double r21050 = 3.0;
double r21051 = pow(r21049, r21050);
double r21052 = cos(r21040);
double r21053 = pow(r21052, r21050);
double r21054 = r21051 - r21053;
double r21055 = r21049 + r21052;
double r21056 = r21052 * r21055;
double r21057 = r21049 * r21049;
double r21058 = r21056 + r21057;
double r21059 = r21058 * r21040;
double r21060 = r21054 / r21059;
double r21061 = r21048 * r21060;
double r21062 = 0.001388888888888889;
double r21063 = 4.0;
double r21064 = pow(r21040, r21063);
double r21065 = r21062 * r21064;
double r21066 = 0.5;
double r21067 = r21065 + r21066;
double r21068 = 0.041666666666666664;
double r21069 = 2.0;
double r21070 = pow(r21040, r21069);
double r21071 = r21068 * r21070;
double r21072 = r21067 - r21071;
double r21073 = r21046 ? r21061 : r21072;
return r21073;
}



Bits error versus x
Results
if x < -0.028173748830909656 or 0.030278781168554474 < x Initial 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.030278781168554474Initial program 62.3
Taylor expanded around 0 0.0
Final simplification0.3
herbie shell --seed 2019325
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))