\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 r30890 = 1.0;
double r30891 = x;
double r30892 = cos(r30891);
double r30893 = r30890 - r30892;
double r30894 = r30891 * r30891;
double r30895 = r30893 / r30894;
return r30895;
}
double f(double x) {
double r30896 = x;
double r30897 = -0.02915897731694385;
bool r30898 = r30896 <= r30897;
double r30899 = 1.0;
double r30900 = r30899 / r30896;
double r30901 = 1.0;
double r30902 = 3.0;
double r30903 = pow(r30901, r30902);
double r30904 = cos(r30896);
double r30905 = pow(r30904, r30902);
double r30906 = r30903 - r30905;
double r30907 = r30896 / r30906;
double r30908 = r30901 * r30901;
double r30909 = 0.5;
double r30910 = 2.0;
double r30911 = r30910 * r30896;
double r30912 = cos(r30911);
double r30913 = r30909 * r30912;
double r30914 = r30901 * r30904;
double r30915 = r30913 + r30914;
double r30916 = r30909 + r30915;
double r30917 = r30908 + r30916;
double r30918 = r30907 * r30917;
double r30919 = r30900 / r30918;
double r30920 = 0.03476390489487963;
bool r30921 = r30896 <= r30920;
double r30922 = 0.00138888888888887;
double r30923 = 4.0;
double r30924 = pow(r30896, r30923);
double r30925 = r30922 * r30924;
double r30926 = 0.5;
double r30927 = r30925 + r30926;
double r30928 = 0.041666666666666685;
double r30929 = pow(r30896, r30910);
double r30930 = r30928 * r30929;
double r30931 = r30927 - r30930;
double r30932 = r30896 * r30896;
double r30933 = r30901 / r30932;
double r30934 = r30904 / r30932;
double r30935 = r30933 - r30934;
double r30936 = r30921 ? r30931 : r30935;
double r30937 = r30898 ? r30919 : r30936;
return r30937;
}



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)))