\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\begin{array}{l}
\mathbf{if}\;cos \le 6.232019318103981264981760981632279977703 \cdot 10^{-261} \lor \neg \left(cos \le 1.078284058365084368444078192287207459986 \cdot 10^{220}\right):\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{{\left(\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\cos \left(2 \cdot x\right)}{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}}{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}\\
\end{array}double f(double x, double cos, double sin) {
double r51151 = 2.0;
double r51152 = x;
double r51153 = r51151 * r51152;
double r51154 = cos(r51153);
double r51155 = cos;
double r51156 = pow(r51155, r51151);
double r51157 = sin;
double r51158 = pow(r51157, r51151);
double r51159 = r51152 * r51158;
double r51160 = r51159 * r51152;
double r51161 = r51156 * r51160;
double r51162 = r51154 / r51161;
return r51162;
}
double f(double x, double cos, double sin) {
double r51163 = cos;
double r51164 = 6.232019318103981e-261;
bool r51165 = r51163 <= r51164;
double r51166 = 1.0782840583650844e+220;
bool r51167 = r51163 <= r51166;
double r51168 = !r51167;
bool r51169 = r51165 || r51168;
double r51170 = 2.0;
double r51171 = x;
double r51172 = r51170 * r51171;
double r51173 = cos(r51172);
double r51174 = 1.0;
double r51175 = pow(r51163, r51174);
double r51176 = sin;
double r51177 = pow(r51176, r51174);
double r51178 = r51175 * r51177;
double r51179 = pow(r51178, r51174);
double r51180 = r51179 * r51171;
double r51181 = fabs(r51180);
double r51182 = 2.0;
double r51183 = pow(r51181, r51182);
double r51184 = r51173 / r51183;
double r51185 = r51170 / r51182;
double r51186 = pow(r51163, r51185);
double r51187 = pow(r51176, r51185);
double r51188 = r51171 * r51187;
double r51189 = r51186 * r51188;
double r51190 = fabs(r51189);
double r51191 = r51173 / r51190;
double r51192 = r51191 / r51190;
double r51193 = r51169 ? r51184 : r51192;
return r51193;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if cos < 6.232019318103981e-261 or 1.0782840583650844e+220 < cos Initial program 29.4
rmApplied sqr-pow29.4
Applied associate-*l*24.7
rmApplied sqr-pow24.7
Applied associate-*r*18.0
rmApplied add-sqr-sqrt18.1
Simplified18.0
Simplified3.9
Taylor expanded around 0 2.9
Simplified2.9
if 6.232019318103981e-261 < cos < 1.0782840583650844e+220Initial program 26.8
rmApplied sqr-pow26.8
Applied associate-*l*22.5
rmApplied sqr-pow22.5
Applied associate-*r*15.1
rmApplied add-sqr-sqrt15.2
Simplified15.1
Simplified1.8
rmApplied associate-/r*1.4
Final simplification2.4
herbie shell --seed 2019362 +o rules:numerics
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
:precision binary64
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))))