\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.0328836280217894294519709319501998834312:\\
\;\;\;\;1 \cdot \left(\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\right)\\
\mathbf{elif}\;x \le 0.03074851402437170019843470925025030737743:\\
\;\;\;\;1 \cdot \left(\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\right)\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \frac{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{\left(\cos x \cdot \frac{{\left(\cos x\right)}^{2} - 1 \cdot 1}{\cos x - 1} + 1 \cdot 1\right) \cdot x}}{x}\\
\end{array}double f(double x) {
double r20234 = 1.0;
double r20235 = x;
double r20236 = cos(r20235);
double r20237 = r20234 - r20236;
double r20238 = r20235 * r20235;
double r20239 = r20237 / r20238;
return r20239;
}
double f(double x) {
double r20240 = x;
double r20241 = -0.03288362802178943;
bool r20242 = r20240 <= r20241;
double r20243 = 1.0;
double r20244 = 1.0;
double r20245 = cos(r20240);
double r20246 = r20244 - r20245;
double r20247 = r20243 / r20240;
double r20248 = r20247 / r20240;
double r20249 = r20246 * r20248;
double r20250 = r20243 * r20249;
double r20251 = 0.0307485140243717;
bool r20252 = r20240 <= r20251;
double r20253 = 0.001388888888888889;
double r20254 = 4.0;
double r20255 = pow(r20240, r20254);
double r20256 = r20253 * r20255;
double r20257 = 0.5;
double r20258 = r20256 + r20257;
double r20259 = 0.041666666666666664;
double r20260 = 2.0;
double r20261 = pow(r20240, r20260);
double r20262 = r20259 * r20261;
double r20263 = r20258 - r20262;
double r20264 = r20243 * r20263;
double r20265 = 3.0;
double r20266 = pow(r20244, r20265);
double r20267 = pow(r20245, r20265);
double r20268 = r20266 - r20267;
double r20269 = pow(r20245, r20260);
double r20270 = r20244 * r20244;
double r20271 = r20269 - r20270;
double r20272 = r20245 - r20244;
double r20273 = r20271 / r20272;
double r20274 = r20245 * r20273;
double r20275 = r20274 + r20270;
double r20276 = r20275 * r20240;
double r20277 = r20268 / r20276;
double r20278 = r20277 / r20240;
double r20279 = r20243 * r20278;
double r20280 = r20252 ? r20264 : r20279;
double r20281 = r20242 ? r20250 : r20280;
return r20281;
}



Bits error versus x
Results
if x < -0.03288362802178943Initial program 0.9
rmApplied *-un-lft-identity0.9
Applied times-frac0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied div-inv0.5
Applied times-frac0.5
Simplified0.5
if -0.03288362802178943 < x < 0.0307485140243717Initial program 62.3
rmApplied *-un-lft-identity62.3
Applied times-frac61.3
rmApplied *-un-lft-identity61.3
Applied *-un-lft-identity61.3
Applied times-frac61.3
Applied associate-*l*61.3
Simplified61.3
Taylor expanded around 0 0.0
if 0.0307485140243717 < x Initial program 1.2
rmApplied *-un-lft-identity1.2
Applied times-frac0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied flip3--0.5
Applied associate-/l/0.5
Simplified0.5
rmApplied flip-+0.5
Simplified0.5
Final simplification0.2
herbie shell --seed 2019291
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))