\frac{1 - \cos x}{x \cdot x}\begin{array}{l}
\mathbf{if}\;x \le -0.029158977316943849:\\
\;\;\;\;\frac{\frac{1}{x}}{\frac{x}{{1}^{3} - {\left(\cos x\right)}^{3}} \cdot \left(1 \cdot 1 + \left(\frac{1}{2} + \left(\frac{1}{2} \cdot \cos \left(2 \cdot x\right) + 1 \cdot \cos x\right)\right)\right)}\\
\mathbf{elif}\;x \le 0.034763904894879627:\\
\;\;\;\;\left(0.00138888888888887 \cdot {x}^{4} + 0.5\right) - 0.041666666666666685 \cdot {x}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{x \cdot x} - \frac{\cos x}{x \cdot x}\\
\end{array}double f(double x) {
double r30888 = 1.0;
double r30889 = x;
double r30890 = cos(r30889);
double r30891 = r30888 - r30890;
double r30892 = r30889 * r30889;
double r30893 = r30891 / r30892;
return r30893;
}
double f(double x) {
double r30894 = x;
double r30895 = -0.02915897731694385;
bool r30896 = r30894 <= r30895;
double r30897 = 1.0;
double r30898 = r30897 / r30894;
double r30899 = 1.0;
double r30900 = 3.0;
double r30901 = pow(r30899, r30900);
double r30902 = cos(r30894);
double r30903 = pow(r30902, r30900);
double r30904 = r30901 - r30903;
double r30905 = r30894 / r30904;
double r30906 = r30899 * r30899;
double r30907 = 0.5;
double r30908 = 2.0;
double r30909 = r30908 * r30894;
double r30910 = cos(r30909);
double r30911 = r30907 * r30910;
double r30912 = r30899 * r30902;
double r30913 = r30911 + r30912;
double r30914 = r30907 + r30913;
double r30915 = r30906 + r30914;
double r30916 = r30905 * r30915;
double r30917 = r30898 / r30916;
double r30918 = 0.03476390489487963;
bool r30919 = r30894 <= r30918;
double r30920 = 0.00138888888888887;
double r30921 = 4.0;
double r30922 = pow(r30894, r30921);
double r30923 = r30920 * r30922;
double r30924 = 0.5;
double r30925 = r30923 + r30924;
double r30926 = 0.041666666666666685;
double r30927 = pow(r30894, r30908);
double r30928 = r30926 * r30927;
double r30929 = r30925 - r30928;
double r30930 = r30894 * r30894;
double r30931 = r30899 / r30930;
double r30932 = r30902 / r30930;
double r30933 = r30931 - r30932;
double r30934 = r30919 ? r30929 : r30933;
double r30935 = r30896 ? r30917 : r30934;
return r30935;
}



Bits error versus x
Results
if x < -0.02915897731694385Initial program 1.1
rmApplied clear-num1.2
Simplified1.1
rmApplied flip3--1.2
Applied associate-/r/1.2
Applied associate-*r*1.2
rmApplied sqr-cos1.2
Applied associate-+l+1.2
rmApplied div-inv1.2
Simplified0.6
if -0.02915897731694385 < x < 0.03476390489487963Initial program 62.2
rmApplied clear-num62.2
Simplified61.3
rmApplied flip3--61.3
Applied associate-/r/61.3
Applied associate-*r*61.3
rmApplied sqr-cos61.3
Applied associate-+l+61.3
Taylor expanded around 0 0.0
if 0.03476390489487963 < x Initial program 1.2
rmApplied div-sub1.3
Final simplification0.5
herbie shell --seed 2020042
(FPCore (x)
:name "cos2 (problem 3.4.1)"
:precision binary64
(/ (- 1 (cos x)) (* x x)))