\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|} \cdot \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 r54086 = 2.0;
double r54087 = x;
double r54088 = r54086 * r54087;
double r54089 = cos(r54088);
double r54090 = cos;
double r54091 = pow(r54090, r54086);
double r54092 = sin;
double r54093 = pow(r54092, r54086);
double r54094 = r54087 * r54093;
double r54095 = r54094 * r54087;
double r54096 = r54091 * r54095;
double r54097 = r54089 / r54096;
return r54097;
}
double f(double x, double cos, double sin) {
double r54098 = 1.0;
double r54099 = cos;
double r54100 = 2.0;
double r54101 = 2.0;
double r54102 = r54100 / r54101;
double r54103 = pow(r54099, r54102);
double r54104 = x;
double r54105 = sin;
double r54106 = pow(r54105, r54102);
double r54107 = r54104 * r54106;
double r54108 = r54103 * r54107;
double r54109 = fabs(r54108);
double r54110 = r54098 / r54109;
double r54111 = r54100 * r54104;
double r54112 = cos(r54111);
double r54113 = r54112 / r54109;
double r54114 = r54110 * r54113;
return r54114;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.9
rmApplied sqr-pow27.9
Applied associate-*l*23.5
rmApplied sqr-pow23.5
Applied associate-*r*16.5
rmApplied add-sqr-sqrt16.6
Simplified16.5
Simplified2.9
rmApplied *-un-lft-identity2.9
Applied times-frac2.6
Final simplification2.6
herbie shell --seed 2020100 +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))))