\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02993031743019760812507534808446507668123 \lor \neg \left(x \le 0.03087561509222142355768347954381169984117\right):\\
\;\;\;\;\frac{-1 \cdot \frac{\cos x - 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 r27820 = 1.0;
double r27821 = x;
double r27822 = cos(r27821);
double r27823 = r27820 - r27822;
double r27824 = r27821 * r27821;
double r27825 = r27823 / r27824;
return r27825;
}
double f(double x) {
double r27826 = x;
double r27827 = -0.029930317430197608;
bool r27828 = r27826 <= r27827;
double r27829 = 0.030875615092221424;
bool r27830 = r27826 <= r27829;
double r27831 = !r27830;
bool r27832 = r27828 || r27831;
double r27833 = -1.0;
double r27834 = cos(r27826);
double r27835 = 1.0;
double r27836 = r27834 - r27835;
double r27837 = r27836 / r27826;
double r27838 = r27833 * r27837;
double r27839 = r27838 / r27826;
double r27840 = 0.001388888888888889;
double r27841 = 4.0;
double r27842 = pow(r27826, r27841);
double r27843 = r27840 * r27842;
double r27844 = 0.5;
double r27845 = r27843 + r27844;
double r27846 = 0.041666666666666664;
double r27847 = 2.0;
double r27848 = pow(r27826, r27847);
double r27849 = r27846 * r27848;
double r27850 = r27845 - r27849;
double r27851 = r27832 ? r27839 : r27850;
return r27851;
}



Bits error versus x
Results
if x < -0.029930317430197608 or 0.030875615092221424 < x Initial program 1.1
rmApplied associate-/r*0.5
Taylor expanded around -inf 0.5
if -0.029930317430197608 < x < 0.030875615092221424Initial program 62.2
Taylor expanded around 0 0.0
Final simplification0.2
herbie shell --seed 2019362
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))