\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.033395966236815566 \lor \neg \left(x \le 0.03176890082881835\right):\\
\;\;\;\;\frac{1}{x} \cdot \frac{1 - \cos x}{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 r20324 = 1.0;
double r20325 = x;
double r20326 = cos(r20325);
double r20327 = r20324 - r20326;
double r20328 = r20325 * r20325;
double r20329 = r20327 / r20328;
return r20329;
}
double f(double x) {
double r20330 = x;
double r20331 = -0.033395966236815566;
bool r20332 = r20330 <= r20331;
double r20333 = 0.03176890082881835;
bool r20334 = r20330 <= r20333;
double r20335 = !r20334;
bool r20336 = r20332 || r20335;
double r20337 = 1.0;
double r20338 = r20337 / r20330;
double r20339 = 1.0;
double r20340 = cos(r20330);
double r20341 = r20339 - r20340;
double r20342 = r20341 / r20330;
double r20343 = r20338 * r20342;
double r20344 = 0.001388888888888889;
double r20345 = 4.0;
double r20346 = pow(r20330, r20345);
double r20347 = r20344 * r20346;
double r20348 = 0.5;
double r20349 = r20347 + r20348;
double r20350 = 0.041666666666666664;
double r20351 = 2.0;
double r20352 = pow(r20330, r20351);
double r20353 = r20350 * r20352;
double r20354 = r20349 - r20353;
double r20355 = r20336 ? r20343 : r20354;
return r20355;
}



Bits error versus x
Results
if x < -0.033395966236815566 or 0.03176890082881835 < x Initial program 1.1
rmApplied div-sub1.2
rmApplied *-un-lft-identity1.2
Applied times-frac1.2
Applied *-un-lft-identity1.2
Applied times-frac0.7
Applied distribute-lft-out--0.6
Simplified0.5
if -0.033395966236815566 < x < 0.03176890082881835Initial program 62.4
Taylor expanded around 0 0.0
Final simplification0.2
herbie shell --seed 2020064
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))