\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.03052087690052085813818827375598630169407:\\
\;\;\;\;\frac{\sqrt{1 - \cos x}}{x} \cdot \left(\left|\sqrt[3]{\sqrt[3]{{\left(1 - \cos x\right)}^{3}}}\right| \cdot \frac{\sqrt{\sqrt[3]{\log \left(e^{1 - \cos x}\right)}}}{x}\right)\\
\mathbf{elif}\;x \le 0.02841519458586902815988572967853542650118:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\cos x \cdot \left(\cos x + 1\right) + 1 \cdot 1}}{x \cdot x}\\
\end{array}double f(double x) {
double r49541 = 1.0;
double r49542 = x;
double r49543 = cos(r49542);
double r49544 = r49541 - r49543;
double r49545 = r49542 * r49542;
double r49546 = r49544 / r49545;
return r49546;
}
double f(double x) {
double r49547 = x;
double r49548 = -0.030520876900520858;
bool r49549 = r49547 <= r49548;
double r49550 = 1.0;
double r49551 = cos(r49547);
double r49552 = r49550 - r49551;
double r49553 = sqrt(r49552);
double r49554 = r49553 / r49547;
double r49555 = 3.0;
double r49556 = pow(r49552, r49555);
double r49557 = cbrt(r49556);
double r49558 = cbrt(r49557);
double r49559 = fabs(r49558);
double r49560 = exp(r49552);
double r49561 = log(r49560);
double r49562 = cbrt(r49561);
double r49563 = sqrt(r49562);
double r49564 = r49563 / r49547;
double r49565 = r49559 * r49564;
double r49566 = r49554 * r49565;
double r49567 = 0.028415194585869028;
bool r49568 = r49547 <= r49567;
double r49569 = 0.001388888888888889;
double r49570 = 4.0;
double r49571 = pow(r49547, r49570);
double r49572 = r49569 * r49571;
double r49573 = 0.5;
double r49574 = r49572 + r49573;
double r49575 = 0.041666666666666664;
double r49576 = 2.0;
double r49577 = pow(r49547, r49576);
double r49578 = r49575 * r49577;
double r49579 = r49574 - r49578;
double r49580 = pow(r49550, r49555);
double r49581 = pow(r49551, r49555);
double r49582 = r49580 - r49581;
double r49583 = r49551 + r49550;
double r49584 = r49551 * r49583;
double r49585 = r49550 * r49550;
double r49586 = r49584 + r49585;
double r49587 = r49582 / r49586;
double r49588 = r49547 * r49547;
double r49589 = r49587 / r49588;
double r49590 = r49568 ? r49579 : r49589;
double r49591 = r49549 ? r49566 : r49590;
return r49591;
}



Bits error versus x
Results
if x < -0.030520876900520858Initial program 1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac0.6
rmApplied *-un-lft-identity0.6
Applied add-cube-cbrt0.7
Applied sqrt-prod0.7
Applied times-frac0.7
Simplified0.7
rmApplied add-log-exp0.7
Applied add-log-exp0.7
Applied diff-log0.7
Simplified0.7
rmApplied add-cbrt-cube0.7
Simplified0.7
if -0.030520876900520858 < x < 0.028415194585869028Initial program 62.2
Taylor expanded around 0 0.0
if 0.028415194585869028 < x Initial program 1.2
rmApplied flip3--1.2
Simplified1.2
Final simplification0.5
herbie shell --seed 2019318
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))