\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({cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot \left({sin}^{\left(\frac{2}{2}\right)} \cdot x\right)}double f(double x, double cos, double sin) {
double r49241 = 2.0;
double r49242 = x;
double r49243 = r49241 * r49242;
double r49244 = cos(r49243);
double r49245 = cos;
double r49246 = pow(r49245, r49241);
double r49247 = sin;
double r49248 = pow(r49247, r49241);
double r49249 = r49242 * r49248;
double r49250 = r49249 * r49242;
double r49251 = r49246 * r49250;
double r49252 = r49244 / r49251;
return r49252;
}
double f(double x, double cos, double sin) {
double r49253 = 2.0;
double r49254 = x;
double r49255 = r49253 * r49254;
double r49256 = cos(r49255);
double r49257 = cos;
double r49258 = 2.0;
double r49259 = r49253 / r49258;
double r49260 = pow(r49257, r49259);
double r49261 = sin;
double r49262 = pow(r49261, r49259);
double r49263 = r49254 * r49262;
double r49264 = r49260 * r49263;
double r49265 = r49260 * r49264;
double r49266 = r49262 * r49254;
double r49267 = r49265 * r49266;
double r49268 = r49256 / r49267;
return r49268;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.3
rmApplied sqr-pow28.3
Applied associate-*r*22.0
rmApplied associate-*l*20.1
rmApplied associate-*r*16.1
rmApplied sqr-pow16.1
Applied associate-*l*7.0
Final simplification7.0
herbie shell --seed 2020047 +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))))