\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 3.591898879565668310505104221865211871992 \cdot 10^{-101}:\\
\;\;\;\;\frac{\cos \left(x \cdot 2\right)}{\left({sin}^{\left(\frac{2}{2}\right)} \cdot \left(\left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right) \cdot \left(x \cdot {cos}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot {cos}^{\left(\frac{2}{2}\right)}}\\
\mathbf{elif}\;{cos}^{2} \le 5.979953044827646933715475705077781566284 \cdot 10^{146}:\\
\;\;\;\;\frac{\cos \left(x \cdot 2\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right) \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\cos \left(x \cdot 2\right)}{\left({sin}^{\left(\frac{2}{2}\right)} \cdot \left(\left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right) \cdot \left(x \cdot {cos}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot {cos}^{\left(\frac{2}{2}\right)}}\\
\end{array}double f(double x, double cos, double sin) {
double r3318625 = 2.0;
double r3318626 = x;
double r3318627 = r3318625 * r3318626;
double r3318628 = cos(r3318627);
double r3318629 = cos;
double r3318630 = pow(r3318629, r3318625);
double r3318631 = sin;
double r3318632 = pow(r3318631, r3318625);
double r3318633 = r3318626 * r3318632;
double r3318634 = r3318633 * r3318626;
double r3318635 = r3318630 * r3318634;
double r3318636 = r3318628 / r3318635;
return r3318636;
}
double f(double x, double cos, double sin) {
double r3318637 = cos;
double r3318638 = 2.0;
double r3318639 = pow(r3318637, r3318638);
double r3318640 = 3.591898879565668e-101;
bool r3318641 = r3318639 <= r3318640;
double r3318642 = x;
double r3318643 = r3318642 * r3318638;
double r3318644 = cos(r3318643);
double r3318645 = sin;
double r3318646 = 2.0;
double r3318647 = r3318638 / r3318646;
double r3318648 = pow(r3318645, r3318647);
double r3318649 = r3318642 * r3318648;
double r3318650 = pow(r3318637, r3318647);
double r3318651 = r3318642 * r3318650;
double r3318652 = r3318649 * r3318651;
double r3318653 = r3318648 * r3318652;
double r3318654 = r3318653 * r3318650;
double r3318655 = r3318644 / r3318654;
double r3318656 = 5.979953044827647e+146;
bool r3318657 = r3318639 <= r3318656;
double r3318658 = r3318649 * r3318649;
double r3318659 = r3318639 * r3318658;
double r3318660 = r3318644 / r3318659;
double r3318661 = r3318657 ? r3318660 : r3318655;
double r3318662 = r3318641 ? r3318655 : r3318661;
return r3318662;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if (pow cos 2.0) < 3.591898879565668e-101 or 5.979953044827647e+146 < (pow cos 2.0) Initial program 30.7
rmApplied sqr-pow30.7
Applied associate-*r*25.8
rmApplied sqr-pow25.8
Applied associate-*l*19.0
Simplified20.4
rmApplied sqr-pow20.4
Applied associate-*r*15.3
rmApplied associate-*r*10.5
if 3.591898879565668e-101 < (pow cos 2.0) < 5.979953044827647e+146Initial program 19.3
rmApplied sqr-pow19.3
Applied associate-*r*8.9
rmApplied associate-*l*4.1
Final simplification9.1
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
(/ (cos (* 2.0 x)) (* (pow cos 2.0) (* (* x (pow sin 2.0)) x))))