\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.03119874976006306588338645724434172734618:\\
\;\;\;\;\left(\frac{1}{x} \cdot \frac{1}{x}\right) \cdot \left(1 - \cos x\right)\\
\mathbf{elif}\;x \le 0.03381719709829058423400383048829098697752:\\
\;\;\;\;\left(\frac{1}{720} \cdot \left(x \cdot x\right) - \frac{1}{24}\right) \cdot \left(x \cdot x\right) + \frac{1}{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{x} \cdot \frac{1}{x}\right) \cdot \left(1 - \cos x\right)\\
\end{array}double f(double x) {
double r798445 = 1.0;
double r798446 = x;
double r798447 = cos(r798446);
double r798448 = r798445 - r798447;
double r798449 = r798446 * r798446;
double r798450 = r798448 / r798449;
return r798450;
}
double f(double x) {
double r798451 = x;
double r798452 = -0.031198749760063066;
bool r798453 = r798451 <= r798452;
double r798454 = 1.0;
double r798455 = r798454 / r798451;
double r798456 = r798455 * r798455;
double r798457 = 1.0;
double r798458 = cos(r798451);
double r798459 = r798457 - r798458;
double r798460 = r798456 * r798459;
double r798461 = 0.033817197098290584;
bool r798462 = r798451 <= r798461;
double r798463 = 0.001388888888888889;
double r798464 = r798451 * r798451;
double r798465 = r798463 * r798464;
double r798466 = 0.041666666666666664;
double r798467 = r798465 - r798466;
double r798468 = r798467 * r798464;
double r798469 = 0.5;
double r798470 = r798468 + r798469;
double r798471 = r798462 ? r798470 : r798460;
double r798472 = r798453 ? r798460 : r798471;
return r798472;
}



Bits error versus x
Results
if x < -0.031198749760063066 or 0.033817197098290584 < x Initial program 1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac0.6
rmApplied div-inv0.6
Applied div-inv0.6
Applied swap-sqr0.6
Simplified0.6
if -0.031198749760063066 < x < 0.033817197098290584Initial program 62.4
rmApplied add-sqr-sqrt62.4
Applied times-frac61.4
Taylor expanded around 0 0.0
Simplified0.0
Final simplification0.3
herbie shell --seed 2019171
(FPCore (x)
:name "cos2 (problem 3.4.1)"
(/ (- 1.0 (cos x)) (* x x)))