\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.0354696748040020729 \lor \neg \left(x \le 0.0298852972788701925\right):\\
\;\;\;\;\frac{\frac{\frac{{1}^{3}}{x}}{\mathsf{fma}\left(1, 1, \cos x \cdot \left(\cos x + 1\right)\right)} - \frac{\frac{{\left(\cos x\right)}^{3}}{x}}{\mathsf{fma}\left(1, 1, \cos x \cdot \left(\cos x + 1\right)\right)}}{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 r35092 = 1.0;
double r35093 = x;
double r35094 = cos(r35093);
double r35095 = r35092 - r35094;
double r35096 = r35093 * r35093;
double r35097 = r35095 / r35096;
return r35097;
}
double f(double x) {
double r35098 = x;
double r35099 = -0.03546967480400207;
bool r35100 = r35098 <= r35099;
double r35101 = 0.029885297278870192;
bool r35102 = r35098 <= r35101;
double r35103 = !r35102;
bool r35104 = r35100 || r35103;
double r35105 = 1.0;
double r35106 = 3.0;
double r35107 = pow(r35105, r35106);
double r35108 = r35107 / r35098;
double r35109 = cos(r35098);
double r35110 = r35109 + r35105;
double r35111 = r35109 * r35110;
double r35112 = fma(r35105, r35105, r35111);
double r35113 = r35108 / r35112;
double r35114 = pow(r35109, r35106);
double r35115 = r35114 / r35098;
double r35116 = r35115 / r35112;
double r35117 = r35113 - r35116;
double r35118 = r35117 / r35098;
double r35119 = 4.0;
double r35120 = pow(r35098, r35119);
double r35121 = 0.001388888888888889;
double r35122 = 0.5;
double r35123 = 0.041666666666666664;
double r35124 = 2.0;
double r35125 = pow(r35098, r35124);
double r35126 = r35123 * r35125;
double r35127 = r35122 - r35126;
double r35128 = fma(r35120, r35121, r35127);
double r35129 = r35104 ? r35118 : r35128;
return r35129;
}



Bits error versus x
if x < -0.03546967480400207 or 0.029885297278870192 < x Initial program 0.9
rmApplied *-un-lft-identity0.9
Applied times-frac0.5
rmApplied associate-*r/0.5
Simplified0.4
rmApplied flip3--0.5
Applied associate-/l/0.5
Simplified0.5
rmApplied div-sub0.5
Simplified0.5
Simplified0.5
if -0.03546967480400207 < x < 0.029885297278870192Initial program 62.3
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.3
herbie shell --seed 2020024 +o rules:numerics
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))