\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.031030980254842244 \lor \neg \left(x \le 0.0254535513975123508\right):\\
\;\;\;\;\frac{1 - \cos x}{x} \cdot \frac{1}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-\frac{1}{576}\right) \cdot {x}^{4} + \left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) \cdot \left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right)}{\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) + \frac{1}{24} \cdot {x}^{2}}\\
\end{array}double f(double x) {
double r35534 = 1.0;
double r35535 = x;
double r35536 = cos(r35535);
double r35537 = r35534 - r35536;
double r35538 = r35535 * r35535;
double r35539 = r35537 / r35538;
return r35539;
}
double f(double x) {
double r35540 = x;
double r35541 = -0.031030980254842244;
bool r35542 = r35540 <= r35541;
double r35543 = 0.02545355139751235;
bool r35544 = r35540 <= r35543;
double r35545 = !r35544;
bool r35546 = r35542 || r35545;
double r35547 = 1.0;
double r35548 = cos(r35540);
double r35549 = r35547 - r35548;
double r35550 = r35549 / r35540;
double r35551 = 1.0;
double r35552 = r35551 / r35540;
double r35553 = r35550 * r35552;
double r35554 = 0.001736111111111111;
double r35555 = -r35554;
double r35556 = 4.0;
double r35557 = pow(r35540, r35556);
double r35558 = r35555 * r35557;
double r35559 = 0.001388888888888889;
double r35560 = r35559 * r35557;
double r35561 = 0.5;
double r35562 = r35560 + r35561;
double r35563 = r35562 * r35562;
double r35564 = r35558 + r35563;
double r35565 = 0.041666666666666664;
double r35566 = 2.0;
double r35567 = pow(r35540, r35566);
double r35568 = r35565 * r35567;
double r35569 = r35562 + r35568;
double r35570 = r35564 / r35569;
double r35571 = r35546 ? r35553 : r35570;
return r35571;
}



Bits error versus x
Results
if x < -0.031030980254842244 or 0.02545355139751235 < x Initial program 1.1
rmApplied associate-/r*0.5
rmApplied div-inv0.5
if -0.031030980254842244 < x < 0.02545355139751235Initial program 62.4
Taylor expanded around 0 0.0
rmApplied flip--0.0
Simplified0.0
Final simplification0.2
herbie shell --seed 2020035
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))