\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.02958908839606369869934532346178457373753:\\
\;\;\;\;\frac{\sqrt{{1}^{3} - {\left(\sqrt[3]{\cos x}\right)}^{3} \cdot {\left(\cos x\right)}^{2}}}{x \cdot \sqrt{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}} \cdot \frac{\sqrt{1 - \cos x}}{x}\\
\mathbf{elif}\;x \le 0.02287413456233419392638062106470897560939:\\
\;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{\frac{{1}^{6} - {\left(\cos x\right)}^{6}}{{\left(\cos x\right)}^{3} + {1}^{3}}}}{x \cdot \sqrt{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}} \cdot \frac{\sqrt{1 - \cos x}}{x}\\
\end{array}double f(double x) {
double r28628 = 1.0;
double r28629 = x;
double r28630 = cos(r28629);
double r28631 = r28628 - r28630;
double r28632 = r28629 * r28629;
double r28633 = r28631 / r28632;
return r28633;
}
double f(double x) {
double r28634 = x;
double r28635 = -0.0295890883960637;
bool r28636 = r28634 <= r28635;
double r28637 = 1.0;
double r28638 = 3.0;
double r28639 = pow(r28637, r28638);
double r28640 = cos(r28634);
double r28641 = cbrt(r28640);
double r28642 = pow(r28641, r28638);
double r28643 = 2.0;
double r28644 = pow(r28640, r28643);
double r28645 = r28642 * r28644;
double r28646 = r28639 - r28645;
double r28647 = sqrt(r28646);
double r28648 = r28637 * r28637;
double r28649 = r28640 * r28640;
double r28650 = r28637 * r28640;
double r28651 = r28649 + r28650;
double r28652 = r28648 + r28651;
double r28653 = sqrt(r28652);
double r28654 = r28634 * r28653;
double r28655 = r28647 / r28654;
double r28656 = r28637 - r28640;
double r28657 = sqrt(r28656);
double r28658 = r28657 / r28634;
double r28659 = r28655 * r28658;
double r28660 = 0.022874134562334194;
bool r28661 = r28634 <= r28660;
double r28662 = 0.001388888888888889;
double r28663 = 4.0;
double r28664 = pow(r28634, r28663);
double r28665 = r28662 * r28664;
double r28666 = 0.5;
double r28667 = r28665 + r28666;
double r28668 = 0.041666666666666664;
double r28669 = pow(r28634, r28643);
double r28670 = r28668 * r28669;
double r28671 = r28667 - r28670;
double r28672 = 6.0;
double r28673 = pow(r28637, r28672);
double r28674 = pow(r28640, r28672);
double r28675 = r28673 - r28674;
double r28676 = pow(r28640, r28638);
double r28677 = r28676 + r28639;
double r28678 = r28675 / r28677;
double r28679 = sqrt(r28678);
double r28680 = r28679 / r28654;
double r28681 = r28680 * r28658;
double r28682 = r28661 ? r28671 : r28681;
double r28683 = r28636 ? r28659 : r28682;
return r28683;
}



Bits error versus x
Results
if x < -0.0295890883960637Initial program 1.0
rmApplied add-sqr-sqrt1.1
Applied times-frac0.6
rmApplied flip3--0.6
Applied sqrt-div0.6
Applied associate-/l/0.5
rmApplied add-log-exp0.5
rmApplied add-cube-cbrt0.7
Applied unpow-prod-down0.8
Applied exp-prod0.8
Applied log-pow0.7
Simplified0.6
if -0.0295890883960637 < x < 0.022874134562334194Initial program 62.4
Taylor expanded around 0 0.0
if 0.022874134562334194 < x Initial program 1.1
rmApplied add-sqr-sqrt1.2
Applied times-frac0.6
rmApplied flip3--0.5
Applied sqrt-div0.5
Applied associate-/l/0.5
rmApplied add-log-exp0.5
rmApplied flip--0.6
Simplified0.6
Simplified0.6
Final simplification0.3
herbie shell --seed 2019353
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))