\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}^{2} \le 9.9599229247439921 \cdot 10^{-255}:\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{{\left(\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\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|}} \cdot \frac{\sqrt[3]{\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|}}\right) \cdot \frac{\sqrt[3]{\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|}\\
\end{array}double f(double x, double cos, double sin) {
double r59622 = 2.0;
double r59623 = x;
double r59624 = r59622 * r59623;
double r59625 = cos(r59624);
double r59626 = cos;
double r59627 = pow(r59626, r59622);
double r59628 = sin;
double r59629 = pow(r59628, r59622);
double r59630 = r59623 * r59629;
double r59631 = r59630 * r59623;
double r59632 = r59627 * r59631;
double r59633 = r59625 / r59632;
return r59633;
}
double f(double x, double cos, double sin) {
double r59634 = cos;
double r59635 = 2.0;
double r59636 = pow(r59634, r59635);
double r59637 = 9.959922924743992e-255;
bool r59638 = r59636 <= r59637;
double r59639 = x;
double r59640 = r59635 * r59639;
double r59641 = cos(r59640);
double r59642 = 1.0;
double r59643 = pow(r59634, r59642);
double r59644 = sin;
double r59645 = pow(r59644, r59642);
double r59646 = r59643 * r59645;
double r59647 = pow(r59646, r59642);
double r59648 = r59647 * r59639;
double r59649 = fabs(r59648);
double r59650 = 2.0;
double r59651 = pow(r59649, r59650);
double r59652 = r59641 / r59651;
double r59653 = cbrt(r59641);
double r59654 = r59635 / r59650;
double r59655 = pow(r59634, r59654);
double r59656 = pow(r59644, r59654);
double r59657 = r59639 * r59656;
double r59658 = r59655 * r59657;
double r59659 = fabs(r59658);
double r59660 = sqrt(r59659);
double r59661 = r59653 / r59660;
double r59662 = r59661 * r59661;
double r59663 = r59653 / r59659;
double r59664 = r59662 * r59663;
double r59665 = r59638 ? r59652 : r59664;
return r59665;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if (pow cos 2.0) < 9.959922924743992e-255Initial program 55.7
rmApplied sqr-pow55.7
Applied associate-*r*53.6
rmApplied add-sqr-sqrt53.6
Simplified53.5
Simplified7.8
Taylor expanded around inf 5.1
if 9.959922924743992e-255 < (pow cos 2.0) Initial program 22.4
rmApplied sqr-pow22.4
Applied associate-*r*15.2
rmApplied add-sqr-sqrt15.3
Simplified15.2
Simplified2.0
rmApplied add-cube-cbrt2.1
Applied times-frac1.8
rmApplied add-sqr-sqrt1.9
Applied times-frac1.9
Final simplification2.4
herbie shell --seed 2020081 +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))))