\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\cos \left(x \cdot 2\right)}{\left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right) \cdot {cos}^{\left(\frac{2}{2}\right)}} \cdot \frac{1}{\left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right) \cdot {cos}^{\left(\frac{2}{2}\right)}}double f(double x, double cos, double sin) {
double r2943695 = 2.0;
double r2943696 = x;
double r2943697 = r2943695 * r2943696;
double r2943698 = cos(r2943697);
double r2943699 = cos;
double r2943700 = pow(r2943699, r2943695);
double r2943701 = sin;
double r2943702 = pow(r2943701, r2943695);
double r2943703 = r2943696 * r2943702;
double r2943704 = r2943703 * r2943696;
double r2943705 = r2943700 * r2943704;
double r2943706 = r2943698 / r2943705;
return r2943706;
}
double f(double x, double cos, double sin) {
double r2943707 = x;
double r2943708 = 2.0;
double r2943709 = r2943707 * r2943708;
double r2943710 = cos(r2943709);
double r2943711 = sin;
double r2943712 = 2.0;
double r2943713 = r2943708 / r2943712;
double r2943714 = pow(r2943711, r2943713);
double r2943715 = r2943707 * r2943714;
double r2943716 = cos;
double r2943717 = pow(r2943716, r2943713);
double r2943718 = r2943715 * r2943717;
double r2943719 = r2943710 / r2943718;
double r2943720 = 1.0;
double r2943721 = r2943720 / r2943718;
double r2943722 = r2943719 * r2943721;
return r2943722;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.0
rmApplied sqr-pow28.0
Applied associate-*r*22.0
rmApplied associate-*l*20.1
Simplified20.1
rmApplied sqr-pow20.1
Applied unswap-sqr2.9
rmApplied *-un-lft-identity2.9
Applied times-frac2.7
Final simplification2.7
herbie shell --seed 2019170 +o rules:numerics
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
(/ (cos (* 2.0 x)) (* (pow cos 2.0) (* (* x (pow sin 2.0)) x))))