\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\left(cos \cdot x\right) \cdot sin} \cdot \frac{1}{\frac{cos \cdot x}{\frac{\cos \left(x \cdot 2\right)}{sin}}}double f(double x, double cos, double sin) {
double r23094087 = 2.0;
double r23094088 = x;
double r23094089 = r23094087 * r23094088;
double r23094090 = cos(r23094089);
double r23094091 = cos;
double r23094092 = pow(r23094091, r23094087);
double r23094093 = sin;
double r23094094 = pow(r23094093, r23094087);
double r23094095 = r23094088 * r23094094;
double r23094096 = r23094095 * r23094088;
double r23094097 = r23094092 * r23094096;
double r23094098 = r23094090 / r23094097;
return r23094098;
}
double f(double x, double cos, double sin) {
double r23094099 = 1.0;
double r23094100 = cos;
double r23094101 = x;
double r23094102 = r23094100 * r23094101;
double r23094103 = sin;
double r23094104 = r23094102 * r23094103;
double r23094105 = r23094099 / r23094104;
double r23094106 = 2.0;
double r23094107 = r23094101 * r23094106;
double r23094108 = cos(r23094107);
double r23094109 = r23094108 / r23094103;
double r23094110 = r23094102 / r23094109;
double r23094111 = r23094099 / r23094110;
double r23094112 = r23094105 * r23094111;
return r23094112;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.3
Simplified2.8
rmApplied associate-/r*2.6
rmApplied associate-/r*2.5
rmApplied *-un-lft-identity2.5
Applied associate-/l*2.6
rmApplied div-inv2.6
Final simplification2.6
herbie shell --seed 2019121
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))))