\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\frac{\cos \left(2 \cdot x\right)}{\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|}}{{\left(\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right)}^{1}}double f(double x, double cos, double sin) {
double r72052 = 2.0;
double r72053 = x;
double r72054 = r72052 * r72053;
double r72055 = cos(r72054);
double r72056 = cos;
double r72057 = pow(r72056, r72052);
double r72058 = sin;
double r72059 = pow(r72058, r72052);
double r72060 = r72053 * r72059;
double r72061 = r72060 * r72053;
double r72062 = r72057 * r72061;
double r72063 = r72055 / r72062;
return r72063;
}
double f(double x, double cos, double sin) {
double r72064 = 2.0;
double r72065 = x;
double r72066 = r72064 * r72065;
double r72067 = cos(r72066);
double r72068 = cos;
double r72069 = 1.0;
double r72070 = pow(r72068, r72069);
double r72071 = sin;
double r72072 = pow(r72071, r72069);
double r72073 = r72070 * r72072;
double r72074 = pow(r72073, r72069);
double r72075 = r72074 * r72065;
double r72076 = fabs(r72075);
double r72077 = r72067 / r72076;
double r72078 = 1.0;
double r72079 = pow(r72076, r72078);
double r72080 = r72077 / r72079;
return r72080;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.1
rmApplied sqr-pow28.1
Applied associate-*r*21.9
rmApplied add-sqr-sqrt21.9
Simplified21.9
Simplified2.8
Taylor expanded around inf 2.9
rmApplied sqr-pow2.9
Applied associate-/r*2.6
Simplified2.6
Final simplification2.6
herbie shell --seed 2020049 +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))))