\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02958908839606369869934532346178457373753:\\
\;\;\;\;\frac{\sqrt{1 - \cos x}}{x} \cdot \frac{\sqrt{{1}^{3} - {\left(\sqrt[3]{\cos x}\right)}^{3} \cdot {\left(\cos x\right)}^{2}}}{x \cdot \sqrt{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}\\
\mathbf{elif}\;x \le 0.02287413456233419392638062106470897560939:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{1 - \cos x}}{x} \cdot \frac{\sqrt{\frac{{1}^{6} - {\left(\cos x\right)}^{6}}{{1}^{3} + {\left(\cos x\right)}^{3}}}}{x \cdot \sqrt{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}\\
\end{array}double f(double x) {
double r22092 = 1.0;
double r22093 = x;
double r22094 = cos(r22093);
double r22095 = r22092 - r22094;
double r22096 = r22093 * r22093;
double r22097 = r22095 / r22096;
return r22097;
}
double f(double x) {
double r22098 = x;
double r22099 = -0.0295890883960637;
bool r22100 = r22098 <= r22099;
double r22101 = 1.0;
double r22102 = cos(r22098);
double r22103 = r22101 - r22102;
double r22104 = sqrt(r22103);
double r22105 = r22104 / r22098;
double r22106 = 3.0;
double r22107 = pow(r22101, r22106);
double r22108 = cbrt(r22102);
double r22109 = pow(r22108, r22106);
double r22110 = 2.0;
double r22111 = pow(r22102, r22110);
double r22112 = r22109 * r22111;
double r22113 = r22107 - r22112;
double r22114 = sqrt(r22113);
double r22115 = r22101 * r22101;
double r22116 = r22102 * r22102;
double r22117 = r22101 * r22102;
double r22118 = r22116 + r22117;
double r22119 = r22115 + r22118;
double r22120 = sqrt(r22119);
double r22121 = r22098 * r22120;
double r22122 = r22114 / r22121;
double r22123 = r22105 * r22122;
double r22124 = 0.022874134562334194;
bool r22125 = r22098 <= r22124;
double r22126 = 0.001388888888888889;
double r22127 = 4.0;
double r22128 = pow(r22098, r22127);
double r22129 = r22126 * r22128;
double r22130 = 0.5;
double r22131 = r22129 + r22130;
double r22132 = 0.041666666666666664;
double r22133 = pow(r22098, r22110);
double r22134 = r22132 * r22133;
double r22135 = r22131 - r22134;
double r22136 = 6.0;
double r22137 = pow(r22101, r22136);
double r22138 = pow(r22102, r22136);
double r22139 = r22137 - r22138;
double r22140 = pow(r22102, r22106);
double r22141 = r22107 + r22140;
double r22142 = r22139 / r22141;
double r22143 = sqrt(r22142);
double r22144 = r22143 / r22121;
double r22145 = r22105 * r22144;
double r22146 = r22125 ? r22135 : r22145;
double r22147 = r22100 ? r22123 : r22146;
return r22147;
}



Bits error versus x
Results
if x < -0.0295890883960637Initial program 1.0
rmApplied add-sqr-sqrt1.1
Applied times-frac0.6
rmApplied flip3--0.6
Applied sqrt-div0.6
Applied associate-/l/0.5
rmApplied add-log-exp0.5
rmApplied add-cube-cbrt0.7
Applied unpow-prod-down0.8
Applied exp-prod0.8
Applied log-pow0.7
Simplified0.6
if -0.0295890883960637 < x < 0.022874134562334194Initial program 62.4
Taylor expanded around 0 0.0
if 0.022874134562334194 < x Initial program 1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac0.6
rmApplied flip3--0.5
Applied sqrt-div0.5
Applied associate-/l/0.5
rmApplied flip--0.6
Simplified0.6
Final simplification0.3
herbie shell --seed 2019353
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))