\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\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)}{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}}}double f(double x, double cos, double sin) {
double r60831 = 2.0;
double r60832 = x;
double r60833 = r60831 * r60832;
double r60834 = cos(r60833);
double r60835 = cos;
double r60836 = pow(r60835, r60831);
double r60837 = sin;
double r60838 = pow(r60837, r60831);
double r60839 = r60832 * r60838;
double r60840 = r60839 * r60832;
double r60841 = r60836 * r60840;
double r60842 = r60834 / r60841;
return r60842;
}
double f(double x, double cos, double sin) {
double r60843 = 1.0;
double r60844 = cos;
double r60845 = 2.0;
double r60846 = 2.0;
double r60847 = r60845 / r60846;
double r60848 = pow(r60844, r60847);
double r60849 = x;
double r60850 = sin;
double r60851 = pow(r60850, r60847);
double r60852 = r60849 * r60851;
double r60853 = r60848 * r60852;
double r60854 = fabs(r60853);
double r60855 = r60845 * r60849;
double r60856 = cos(r60855);
double r60857 = r60856 / r60854;
double r60858 = r60854 / r60857;
double r60859 = r60843 / r60858;
return r60859;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.3
rmApplied sqr-pow28.3
Applied associate-*r*22.2
rmApplied add-sqr-sqrt22.3
Simplified22.2
Simplified2.9
rmApplied associate-/r*2.6
rmApplied *-un-lft-identity2.6
Applied *-un-lft-identity2.6
Applied times-frac2.6
Applied associate-/l*2.9
Final simplification2.9
herbie shell --seed 2020060 +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))))