\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.03020423764333628538492071413656958611682:\\
\;\;\;\;\frac{1}{x} \cdot \frac{\frac{{1}^{3} - \log \left(e^{{\left(\cos x\right)}^{3}}\right)}{\mathsf{fma}\left(1, 1, \cos x \cdot \frac{{1}^{3} + {\left(\cos x\right)}^{3}}{\mathsf{fma}\left(1, 1, \cos x \cdot \left(\cos x - 1\right)\right)}\right)}}{x}\\
\mathbf{elif}\;x \le 0.03141600742422194503244980978706735186279:\\
\;\;\;\;\mathsf{fma}\left(\frac{-1}{24}, x \cdot x, \mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x} \cdot \frac{\frac{{\left({1}^{3}\right)}^{3} - {\left({\left(\cos x\right)}^{3}\right)}^{3}}{\mathsf{fma}\left(1, 1, \cos x \cdot \left(1 + \cos x\right)\right) \cdot \left(\mathsf{fma}\left({\left(\cos x\right)}^{3}, {1}^{3}, {\left(\cos x\right)}^{6}\right) + {1}^{6}\right)}}{x}\\
\end{array}double f(double x) {
double r21250 = 1.0;
double r21251 = x;
double r21252 = cos(r21251);
double r21253 = r21250 - r21252;
double r21254 = r21251 * r21251;
double r21255 = r21253 / r21254;
return r21255;
}
double f(double x) {
double r21256 = x;
double r21257 = -0.030204237643336285;
bool r21258 = r21256 <= r21257;
double r21259 = 1.0;
double r21260 = r21259 / r21256;
double r21261 = 1.0;
double r21262 = 3.0;
double r21263 = pow(r21261, r21262);
double r21264 = cos(r21256);
double r21265 = pow(r21264, r21262);
double r21266 = exp(r21265);
double r21267 = log(r21266);
double r21268 = r21263 - r21267;
double r21269 = r21263 + r21265;
double r21270 = r21264 - r21261;
double r21271 = r21264 * r21270;
double r21272 = fma(r21261, r21261, r21271);
double r21273 = r21269 / r21272;
double r21274 = r21264 * r21273;
double r21275 = fma(r21261, r21261, r21274);
double r21276 = r21268 / r21275;
double r21277 = r21276 / r21256;
double r21278 = r21260 * r21277;
double r21279 = 0.031416007424221945;
bool r21280 = r21256 <= r21279;
double r21281 = -0.041666666666666664;
double r21282 = r21256 * r21256;
double r21283 = 0.001388888888888889;
double r21284 = 4.0;
double r21285 = pow(r21256, r21284);
double r21286 = 0.5;
double r21287 = fma(r21283, r21285, r21286);
double r21288 = fma(r21281, r21282, r21287);
double r21289 = pow(r21263, r21262);
double r21290 = pow(r21265, r21262);
double r21291 = r21289 - r21290;
double r21292 = r21261 + r21264;
double r21293 = r21264 * r21292;
double r21294 = fma(r21261, r21261, r21293);
double r21295 = 6.0;
double r21296 = pow(r21264, r21295);
double r21297 = fma(r21265, r21263, r21296);
double r21298 = pow(r21261, r21295);
double r21299 = r21297 + r21298;
double r21300 = r21294 * r21299;
double r21301 = r21291 / r21300;
double r21302 = r21301 / r21256;
double r21303 = r21260 * r21302;
double r21304 = r21280 ? r21288 : r21303;
double r21305 = r21258 ? r21278 : r21304;
return r21305;
}



Bits error versus x
if x < -0.030204237643336285Initial program 1.1
rmApplied *-un-lft-identity1.1
Applied times-frac0.5
rmApplied flip3--0.5
Simplified0.5
rmApplied add-log-exp0.5
rmApplied flip3-+0.5
Simplified0.5
if -0.030204237643336285 < x < 0.031416007424221945Initial program 62.2
rmApplied *-un-lft-identity62.2
Applied times-frac61.3
Taylor expanded around 0 0.0
Simplified0.0
if 0.031416007424221945 < x Initial program 1.2
rmApplied *-un-lft-identity1.2
Applied times-frac0.5
rmApplied flip3--0.5
Simplified0.5
rmApplied flip3--0.5
Applied associate-/l/0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019347 +o rules:numerics
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))