\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}\;x \le 5.4433641186682693 \cdot 10^{-168} \lor \neg \left(x \le 2.73621970403785706 \cdot 10^{219}\right):\\
\;\;\;\;\cos \left(2 \cdot x\right) \cdot \frac{\frac{1}{\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|}\\
\mathbf{else}:\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{{\left(\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right)}^{2}}\\
\end{array}double f(double x, double cos, double sin) {
double r59814 = 2.0;
double r59815 = x;
double r59816 = r59814 * r59815;
double r59817 = cos(r59816);
double r59818 = cos;
double r59819 = pow(r59818, r59814);
double r59820 = sin;
double r59821 = pow(r59820, r59814);
double r59822 = r59815 * r59821;
double r59823 = r59822 * r59815;
double r59824 = r59819 * r59823;
double r59825 = r59817 / r59824;
return r59825;
}
double f(double x, double cos, double sin) {
double r59826 = x;
double r59827 = 5.443364118668269e-168;
bool r59828 = r59826 <= r59827;
double r59829 = 2.736219704037857e+219;
bool r59830 = r59826 <= r59829;
double r59831 = !r59830;
bool r59832 = r59828 || r59831;
double r59833 = 2.0;
double r59834 = r59833 * r59826;
double r59835 = cos(r59834);
double r59836 = 1.0;
double r59837 = cos;
double r59838 = 2.0;
double r59839 = r59833 / r59838;
double r59840 = pow(r59837, r59839);
double r59841 = sin;
double r59842 = pow(r59841, r59839);
double r59843 = r59826 * r59842;
double r59844 = r59840 * r59843;
double r59845 = fabs(r59844);
double r59846 = r59836 / r59845;
double r59847 = r59846 / r59845;
double r59848 = r59835 * r59847;
double r59849 = 1.0;
double r59850 = pow(r59837, r59849);
double r59851 = pow(r59841, r59849);
double r59852 = r59850 * r59851;
double r59853 = pow(r59852, r59849);
double r59854 = r59853 * r59826;
double r59855 = fabs(r59854);
double r59856 = pow(r59855, r59838);
double r59857 = r59835 / r59856;
double r59858 = r59832 ? r59848 : r59857;
return r59858;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if x < 5.443364118668269e-168 or 2.736219704037857e+219 < x Initial program 29.6
rmApplied sqr-pow29.6
Applied associate-*r*22.0
rmApplied add-sqr-sqrt22.0
Simplified22.0
Simplified3.1
rmApplied associate-/r*2.8
rmApplied *-un-lft-identity2.8
Applied div-inv2.8
Applied times-frac2.8
Simplified2.8
if 5.443364118668269e-168 < x < 2.736219704037857e+219Initial program 24.4
rmApplied sqr-pow24.4
Applied associate-*r*20.9
rmApplied add-sqr-sqrt20.9
Simplified20.9
Simplified2.3
Taylor expanded around inf 0.9
Final simplification2.2
herbie shell --seed 2020020 +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))))