\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 2.2959203971383585 \cdot 10^{-210}:\\
\;\;\;\;\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{1}{\sqrt{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}}}{\frac{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}{\frac{\cos \left(2 \cdot x\right)}{\sqrt{\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 r59486 = 2.0;
double r59487 = x;
double r59488 = r59486 * r59487;
double r59489 = cos(r59488);
double r59490 = cos;
double r59491 = pow(r59490, r59486);
double r59492 = sin;
double r59493 = pow(r59492, r59486);
double r59494 = r59487 * r59493;
double r59495 = r59494 * r59487;
double r59496 = r59491 * r59495;
double r59497 = r59489 / r59496;
return r59497;
}
double f(double x, double cos, double sin) {
double r59498 = cos;
double r59499 = 2.2959203971383585e-210;
bool r59500 = r59498 <= r59499;
double r59501 = 2.0;
double r59502 = x;
double r59503 = r59501 * r59502;
double r59504 = cos(r59503);
double r59505 = 1.0;
double r59506 = pow(r59498, r59505);
double r59507 = sin;
double r59508 = pow(r59507, r59505);
double r59509 = r59506 * r59508;
double r59510 = pow(r59509, r59505);
double r59511 = r59510 * r59502;
double r59512 = fabs(r59511);
double r59513 = 2.0;
double r59514 = pow(r59512, r59513);
double r59515 = r59504 / r59514;
double r59516 = 1.0;
double r59517 = r59501 / r59513;
double r59518 = pow(r59498, r59517);
double r59519 = pow(r59507, r59517);
double r59520 = r59502 * r59519;
double r59521 = r59518 * r59520;
double r59522 = fabs(r59521);
double r59523 = sqrt(r59522);
double r59524 = r59516 / r59523;
double r59525 = r59504 / r59523;
double r59526 = r59522 / r59525;
double r59527 = r59524 / r59526;
double r59528 = r59500 ? r59515 : r59527;
return r59528;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if cos < 2.2959203971383585e-210Initial program 31.1
rmApplied sqr-pow31.1
Applied associate-*r*25.3
rmApplied add-sqr-sqrt25.3
Simplified25.3
Simplified3.7
Taylor expanded around 0 3.1
Simplified3.1
if 2.2959203971383585e-210 < cos Initial program 24.9
rmApplied sqr-pow24.9
Applied associate-*r*18.1
rmApplied add-sqr-sqrt18.1
Simplified18.1
Simplified2.0
rmApplied associate-/r*1.7
rmApplied add-sqr-sqrt1.8
Applied *-un-lft-identity1.8
Applied times-frac1.8
Applied associate-/l*1.8
Final simplification2.5
herbie shell --seed 2020047 +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))))