\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\cos \left(2 \cdot x\right)}{{\left(\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|\right)}^{2}}double f(double x, double cos, double sin) {
double r71871 = 2.0;
double r71872 = x;
double r71873 = r71871 * r71872;
double r71874 = cos(r71873);
double r71875 = cos;
double r71876 = pow(r71875, r71871);
double r71877 = sin;
double r71878 = pow(r71877, r71871);
double r71879 = r71872 * r71878;
double r71880 = r71879 * r71872;
double r71881 = r71876 * r71880;
double r71882 = r71874 / r71881;
return r71882;
}
double f(double x, double cos, double sin) {
double r71883 = 2.0;
double r71884 = x;
double r71885 = r71883 * r71884;
double r71886 = cos(r71885);
double r71887 = cos;
double r71888 = 1.0;
double r71889 = pow(r71887, r71888);
double r71890 = sin;
double r71891 = pow(r71890, r71888);
double r71892 = r71889 * r71891;
double r71893 = pow(r71892, r71888);
double r71894 = r71893 * r71884;
double r71895 = fabs(r71894);
double r71896 = 2.0;
double r71897 = pow(r71895, r71896);
double r71898 = r71886 / r71897;
return r71898;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.8
rmApplied sqr-pow28.8
Applied associate-*l*24.1
rmApplied sqr-pow24.1
Applied associate-*r*16.7
rmApplied add-sqr-sqrt16.8
Simplified16.7
Simplified3.0
Taylor expanded around inf 2.9
Final simplification2.9
herbie shell --seed 2020062 +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))))