\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 {cos}^{\left(\frac{2}{2}\right)}\right) \cdot {sin}^{\left(\frac{2}{2}\right)}} \cdot \frac{1}{\left(x \cdot {cos}^{\left(\frac{2}{2}\right)}\right) \cdot {sin}^{\left(\frac{2}{2}\right)}}double f(double x, double cos, double sin) {
double r2700695 = 2.0;
double r2700696 = x;
double r2700697 = r2700695 * r2700696;
double r2700698 = cos(r2700697);
double r2700699 = cos;
double r2700700 = pow(r2700699, r2700695);
double r2700701 = sin;
double r2700702 = pow(r2700701, r2700695);
double r2700703 = r2700696 * r2700702;
double r2700704 = r2700703 * r2700696;
double r2700705 = r2700700 * r2700704;
double r2700706 = r2700698 / r2700705;
return r2700706;
}
double f(double x, double cos, double sin) {
double r2700707 = x;
double r2700708 = 2.0;
double r2700709 = r2700707 * r2700708;
double r2700710 = cos(r2700709);
double r2700711 = cos;
double r2700712 = 2.0;
double r2700713 = r2700708 / r2700712;
double r2700714 = pow(r2700711, r2700713);
double r2700715 = r2700707 * r2700714;
double r2700716 = sin;
double r2700717 = pow(r2700716, r2700713);
double r2700718 = r2700715 * r2700717;
double r2700719 = r2700710 / r2700718;
double r2700720 = 1.0;
double r2700721 = r2700720 / r2700718;
double r2700722 = r2700719 * r2700721;
return r2700722;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.8
rmApplied sqr-pow27.8
Applied associate-*r*22.0
rmApplied sqr-pow22.0
Applied associate-*l*16.7
Simplified6.5
rmApplied associate-/r*6.2
rmApplied *-un-lft-identity6.2
Applied unpow-prod-down6.2
Applied *-un-lft-identity6.2
Applied times-frac6.2
Applied times-frac2.7
Simplified4.7
Simplified2.6
Final simplification2.6
herbie shell --seed 2019172 +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))))