\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02623489072028305918449220257571141701192:\\
\;\;\;\;\frac{1}{x} \cdot \left(\sqrt{1 - \cos x} \cdot \frac{\sqrt{1 - \cos x}}{x}\right)\\
\mathbf{elif}\;x \le 0.03474417225563055516834864988595654722303:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x} \cdot \frac{\log \left(e^{1 - \cos x}\right)}{x}\\
\end{array}double f(double x) {
double r24255 = 1.0;
double r24256 = x;
double r24257 = cos(r24256);
double r24258 = r24255 - r24257;
double r24259 = r24256 * r24256;
double r24260 = r24258 / r24259;
return r24260;
}
double f(double x) {
double r24261 = x;
double r24262 = -0.02623489072028306;
bool r24263 = r24261 <= r24262;
double r24264 = 1.0;
double r24265 = r24264 / r24261;
double r24266 = 1.0;
double r24267 = cos(r24261);
double r24268 = r24266 - r24267;
double r24269 = sqrt(r24268);
double r24270 = r24269 / r24261;
double r24271 = r24269 * r24270;
double r24272 = r24265 * r24271;
double r24273 = 0.034744172255630555;
bool r24274 = r24261 <= r24273;
double r24275 = 0.001388888888888889;
double r24276 = 4.0;
double r24277 = pow(r24261, r24276);
double r24278 = r24275 * r24277;
double r24279 = 0.5;
double r24280 = r24278 + r24279;
double r24281 = 0.041666666666666664;
double r24282 = 2.0;
double r24283 = pow(r24261, r24282);
double r24284 = r24281 * r24283;
double r24285 = r24280 - r24284;
double r24286 = exp(r24268);
double r24287 = log(r24286);
double r24288 = r24287 / r24261;
double r24289 = r24265 * r24288;
double r24290 = r24274 ? r24285 : r24289;
double r24291 = r24263 ? r24272 : r24290;
return r24291;
}



Bits error versus x
Results
if x < -0.02623489072028306Initial program 1.0
rmApplied *-un-lft-identity1.0
Applied times-frac0.6
rmApplied *-un-lft-identity0.6
Applied add-sqr-sqrt0.7
Applied times-frac0.7
Simplified0.7
if -0.02623489072028306 < x < 0.034744172255630555Initial program 62.4
Taylor expanded around 0 0.0
if 0.034744172255630555 < x Initial program 1.0
rmApplied *-un-lft-identity1.0
Applied times-frac0.5
rmApplied add-log-exp0.6
Applied add-log-exp0.6
Applied diff-log0.7
Simplified0.6
Final simplification0.3
herbie shell --seed 2019350
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))