\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02680284925783882 \lor \neg \left(x \le 0.0326302713396224922\right):\\
\;\;\;\;\frac{\sqrt{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\cos x \cdot \left(\cos x + 1\right) + 1 \cdot 1}}}{x} \cdot \frac{\sqrt{1 - \cos x}}{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 r30759 = 1.0;
double r30760 = x;
double r30761 = cos(r30760);
double r30762 = r30759 - r30761;
double r30763 = r30760 * r30760;
double r30764 = r30762 / r30763;
return r30764;
}
double f(double x) {
double r30765 = x;
double r30766 = -0.026802849257838823;
bool r30767 = r30765 <= r30766;
double r30768 = 0.03263027133962249;
bool r30769 = r30765 <= r30768;
double r30770 = !r30769;
bool r30771 = r30767 || r30770;
double r30772 = 1.0;
double r30773 = 3.0;
double r30774 = pow(r30772, r30773);
double r30775 = cos(r30765);
double r30776 = pow(r30775, r30773);
double r30777 = r30774 - r30776;
double r30778 = r30775 + r30772;
double r30779 = r30775 * r30778;
double r30780 = r30772 * r30772;
double r30781 = r30779 + r30780;
double r30782 = r30777 / r30781;
double r30783 = sqrt(r30782);
double r30784 = r30783 / r30765;
double r30785 = r30772 - r30775;
double r30786 = sqrt(r30785);
double r30787 = r30786 / r30765;
double r30788 = r30784 * r30787;
double r30789 = 0.001736111111111111;
double r30790 = -r30789;
double r30791 = 4.0;
double r30792 = pow(r30765, r30791);
double r30793 = r30790 * r30792;
double r30794 = 0.001388888888888889;
double r30795 = r30794 * r30792;
double r30796 = 0.5;
double r30797 = r30795 + r30796;
double r30798 = r30797 * r30797;
double r30799 = r30793 + r30798;
double r30800 = 0.041666666666666664;
double r30801 = 2.0;
double r30802 = pow(r30765, r30801);
double r30803 = r30800 * r30802;
double r30804 = r30797 + r30803;
double r30805 = r30799 / r30804;
double r30806 = r30771 ? r30788 : r30805;
return r30806;
}



Bits error versus x
Results
if x < -0.026802849257838823 or 0.03263027133962249 < x Initial program 1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac0.6
rmApplied flip3--0.6
Simplified0.6
if -0.026802849257838823 < x < 0.03263027133962249Initial program 62.3
Taylor expanded around 0 0.0
rmApplied flip--0.0
Simplified0.0
Final simplification0.3
herbie shell --seed 2020065
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))