\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.0203295408193157160769981572912001865916 \lor \neg \left(x \le 0.02935328501821784022429717708746466087177\right):\\
\;\;\;\;\frac{1 - \cos x}{x} \cdot \frac{1}{x}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left({x}^{4}, \frac{1}{720}, \frac{1}{2} - \frac{1}{24} \cdot {x}^{2}\right)\\
\end{array}double f(double x) {
double r27764 = 1.0;
double r27765 = x;
double r27766 = cos(r27765);
double r27767 = r27764 - r27766;
double r27768 = r27765 * r27765;
double r27769 = r27767 / r27768;
return r27769;
}
double f(double x) {
double r27770 = x;
double r27771 = -0.020329540819315716;
bool r27772 = r27770 <= r27771;
double r27773 = 0.02935328501821784;
bool r27774 = r27770 <= r27773;
double r27775 = !r27774;
bool r27776 = r27772 || r27775;
double r27777 = 1.0;
double r27778 = cos(r27770);
double r27779 = r27777 - r27778;
double r27780 = r27779 / r27770;
double r27781 = 1.0;
double r27782 = r27781 / r27770;
double r27783 = r27780 * r27782;
double r27784 = 4.0;
double r27785 = pow(r27770, r27784);
double r27786 = 0.001388888888888889;
double r27787 = 0.5;
double r27788 = 0.041666666666666664;
double r27789 = 2.0;
double r27790 = pow(r27770, r27789);
double r27791 = r27788 * r27790;
double r27792 = r27787 - r27791;
double r27793 = fma(r27785, r27786, r27792);
double r27794 = r27776 ? r27783 : r27793;
return r27794;
}



Bits error versus x
if x < -0.020329540819315716 or 0.02935328501821784 < x Initial program 1.2
rmApplied add-sqr-sqrt1.3
Applied times-frac0.6
rmApplied div-inv0.6
Applied associate-*r*0.6
Simplified0.5
if -0.020329540819315716 < x < 0.02935328501821784Initial program 62.3
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.3
herbie shell --seed 2019354 +o rules:numerics
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))