\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)}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(\left({cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \left({sin}^{\left(\frac{2}{2}\right)} \cdot x\right)\right)}double f(double x, double cos, double sin) {
double r73079 = 2.0;
double r73080 = x;
double r73081 = r73079 * r73080;
double r73082 = cos(r73081);
double r73083 = cos;
double r73084 = pow(r73083, r73079);
double r73085 = sin;
double r73086 = pow(r73085, r73079);
double r73087 = r73080 * r73086;
double r73088 = r73087 * r73080;
double r73089 = r73084 * r73088;
double r73090 = r73082 / r73089;
return r73090;
}
double f(double x, double cos, double sin) {
double r73091 = 2.0;
double r73092 = x;
double r73093 = r73091 * r73092;
double r73094 = cos(r73093);
double r73095 = cos;
double r73096 = 2.0;
double r73097 = r73091 / r73096;
double r73098 = pow(r73095, r73097);
double r73099 = sin;
double r73100 = pow(r73099, r73097);
double r73101 = r73092 * r73100;
double r73102 = r73098 * r73101;
double r73103 = r73100 * r73092;
double r73104 = r73102 * r73103;
double r73105 = r73098 * r73104;
double r73106 = r73094 / r73105;
return r73106;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.5
rmApplied sqr-pow28.5
Applied associate-*l*23.9
rmApplied sqr-pow23.9
Applied associate-*r*16.9
rmApplied associate-*l*13.9
rmApplied associate-*r*6.4
Final simplification6.4
herbie shell --seed 2019323 +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))))