\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 r66086 = 2.0;
double r66087 = x;
double r66088 = r66086 * r66087;
double r66089 = cos(r66088);
double r66090 = cos;
double r66091 = pow(r66090, r66086);
double r66092 = sin;
double r66093 = pow(r66092, r66086);
double r66094 = r66087 * r66093;
double r66095 = r66094 * r66087;
double r66096 = r66091 * r66095;
double r66097 = r66089 / r66096;
return r66097;
}
double f(double x, double cos, double sin) {
double r66098 = 2.0;
double r66099 = x;
double r66100 = r66098 * r66099;
double r66101 = cos(r66100);
double r66102 = cos;
double r66103 = 2.0;
double r66104 = r66098 / r66103;
double r66105 = pow(r66102, r66104);
double r66106 = sin;
double r66107 = pow(r66106, r66104);
double r66108 = r66099 * r66107;
double r66109 = r66105 * r66108;
double r66110 = r66105 * r66109;
double r66111 = r66107 * r66099;
double r66112 = r66110 * r66111;
double r66113 = r66101 / r66112;
return r66113;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.6
rmApplied sqr-pow28.6
Applied associate-*r*22.7
rmApplied associate-*l*20.6
rmApplied associate-*r*16.8
rmApplied sqr-pow16.8
Applied associate-*l*7.1
Final simplification7.1
herbie shell --seed 2019351 +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))))