\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.029542526183904051217954389585429453291 \lor \neg \left(x \le 0.03047467434030125613131367856567521812394\right):\\
\;\;\;\;\frac{\frac{1}{x} \cdot \left(1 - \cos x\right)}{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 r17758 = 1.0;
double r17759 = x;
double r17760 = cos(r17759);
double r17761 = r17758 - r17760;
double r17762 = r17759 * r17759;
double r17763 = r17761 / r17762;
return r17763;
}
double f(double x) {
double r17764 = x;
double r17765 = -0.02954252618390405;
bool r17766 = r17764 <= r17765;
double r17767 = 0.030474674340301256;
bool r17768 = r17764 <= r17767;
double r17769 = !r17768;
bool r17770 = r17766 || r17769;
double r17771 = 1.0;
double r17772 = r17771 / r17764;
double r17773 = 1.0;
double r17774 = cos(r17764);
double r17775 = r17773 - r17774;
double r17776 = r17772 * r17775;
double r17777 = r17776 / r17764;
double r17778 = 0.001388888888888889;
double r17779 = 4.0;
double r17780 = pow(r17764, r17779);
double r17781 = r17778 * r17780;
double r17782 = 0.5;
double r17783 = r17781 + r17782;
double r17784 = 0.041666666666666664;
double r17785 = 2.0;
double r17786 = pow(r17764, r17785);
double r17787 = r17784 * r17786;
double r17788 = r17783 - r17787;
double r17789 = r17770 ? r17777 : r17788;
return r17789;
}



Bits error versus x
Results
if x < -0.02954252618390405 or 0.030474674340301256 < x Initial program 1.0
rmApplied associate-/r*0.4
rmApplied flip--0.7
Applied associate-/l/0.7
rmApplied flip-+0.5
Applied associate-*r/0.5
Applied associate-/r/0.5
Simplified0.5
if -0.02954252618390405 < x < 0.030474674340301256Initial program 62.4
Taylor expanded around 0 0.0
Final simplification0.2
herbie shell --seed 2019298
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))