\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.0203295408193157160769981572912001865916:\\
\;\;\;\;\frac{1 - \cos x}{x} \cdot \frac{1}{x}\\
\mathbf{elif}\;x \le 0.02765964358927324243109246992844418855384:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{1 - \cos x}}{x} \cdot \frac{\sqrt{1}}{\frac{x}{\sqrt{\log \left(e^{1 - \cos x}\right)}}}\\
\end{array}double f(double x) {
double r28701 = 1.0;
double r28702 = x;
double r28703 = cos(r28702);
double r28704 = r28701 - r28703;
double r28705 = r28702 * r28702;
double r28706 = r28704 / r28705;
return r28706;
}
double f(double x) {
double r28707 = x;
double r28708 = -0.020329540819315716;
bool r28709 = r28707 <= r28708;
double r28710 = 1.0;
double r28711 = cos(r28707);
double r28712 = r28710 - r28711;
double r28713 = r28712 / r28707;
double r28714 = 1.0;
double r28715 = r28714 / r28707;
double r28716 = r28713 * r28715;
double r28717 = 0.027659643589273242;
bool r28718 = r28707 <= r28717;
double r28719 = 0.001388888888888889;
double r28720 = 4.0;
double r28721 = pow(r28707, r28720);
double r28722 = r28719 * r28721;
double r28723 = 0.5;
double r28724 = r28722 + r28723;
double r28725 = 0.041666666666666664;
double r28726 = 2.0;
double r28727 = pow(r28707, r28726);
double r28728 = r28725 * r28727;
double r28729 = r28724 - r28728;
double r28730 = sqrt(r28712);
double r28731 = r28730 / r28707;
double r28732 = sqrt(r28714);
double r28733 = exp(r28712);
double r28734 = log(r28733);
double r28735 = sqrt(r28734);
double r28736 = r28707 / r28735;
double r28737 = r28732 / r28736;
double r28738 = r28731 * r28737;
double r28739 = r28718 ? r28729 : r28738;
double r28740 = r28709 ? r28716 : r28739;
return r28740;
}



Bits error versus x
Results
if x < -0.020329540819315716Initial program 1.2
rmApplied add-sqr-sqrt1.3
Applied times-frac0.6
rmApplied div-inv0.6
Applied associate-*r*0.6
Simplified0.5
if -0.020329540819315716 < x < 0.027659643589273242Initial program 62.3
Taylor expanded around 0 0.0
if 0.027659643589273242 < x Initial program 1.2
rmApplied add-sqr-sqrt1.3
Applied times-frac0.6
rmApplied *-un-lft-identity0.6
Applied sqrt-prod0.6
Applied associate-/l*0.6
rmApplied add-log-exp0.6
Applied add-log-exp0.6
Applied diff-log0.6
Simplified0.6
Final simplification0.3
herbie shell --seed 2019354
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))