\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({cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \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 r4283067 = 2.0;
double r4283068 = x;
double r4283069 = r4283067 * r4283068;
double r4283070 = cos(r4283069);
double r4283071 = cos;
double r4283072 = pow(r4283071, r4283067);
double r4283073 = sin;
double r4283074 = pow(r4283073, r4283067);
double r4283075 = r4283068 * r4283074;
double r4283076 = r4283075 * r4283068;
double r4283077 = r4283072 * r4283076;
double r4283078 = r4283070 / r4283077;
return r4283078;
}
double f(double x, double cos, double sin) {
double r4283079 = 2.0;
double r4283080 = x;
double r4283081 = r4283079 * r4283080;
double r4283082 = cos(r4283081);
double r4283083 = cos;
double r4283084 = 2.0;
double r4283085 = r4283079 / r4283084;
double r4283086 = pow(r4283083, r4283085);
double r4283087 = sin;
double r4283088 = pow(r4283087, r4283085);
double r4283089 = r4283080 * r4283088;
double r4283090 = r4283086 * r4283089;
double r4283091 = r4283090 * r4283090;
double r4283092 = r4283082 / r4283091;
return r4283092;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.0
rmApplied sqr-pow28.0
Applied associate-*r*21.8
rmApplied sqr-pow21.8
Applied associate-*l*16.6
Simplified13.6
rmApplied associate-*l*6.0
rmApplied associate-*r*2.7
Final simplification2.7
herbie shell --seed 2019174 +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))))