\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\left|\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right|} \cdot \frac{\cos \left(2 \cdot x\right)}{\left|\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right|}double f(double x, double cos, double sin) {
double r44861 = 2.0;
double r44862 = x;
double r44863 = r44861 * r44862;
double r44864 = cos(r44863);
double r44865 = cos;
double r44866 = pow(r44865, r44861);
double r44867 = sin;
double r44868 = pow(r44867, r44861);
double r44869 = r44862 * r44868;
double r44870 = r44869 * r44862;
double r44871 = r44866 * r44870;
double r44872 = r44864 / r44871;
return r44872;
}
double f(double x, double cos, double sin) {
double r44873 = 1.0;
double r44874 = cos;
double r44875 = 1.0;
double r44876 = pow(r44874, r44875);
double r44877 = sin;
double r44878 = pow(r44877, r44875);
double r44879 = r44876 * r44878;
double r44880 = pow(r44879, r44875);
double r44881 = x;
double r44882 = r44880 * r44881;
double r44883 = fabs(r44882);
double r44884 = fabs(r44883);
double r44885 = r44873 / r44884;
double r44886 = 2.0;
double r44887 = r44886 * r44881;
double r44888 = cos(r44887);
double r44889 = r44888 / r44884;
double r44890 = r44885 * r44889;
return r44890;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.2
rmApplied sqr-pow28.2
Applied associate-*r*21.7
rmApplied add-sqr-sqrt21.7
Simplified21.7
Simplified2.9
Taylor expanded around inf 2.8
rmApplied add-sqr-sqrt2.8
Applied *-un-lft-identity2.8
Applied times-frac2.9
Simplified2.9
Simplified2.6
Final simplification2.6
herbie shell --seed 2020033
(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))))