\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 r64041 = 2.0;
double r64042 = x;
double r64043 = r64041 * r64042;
double r64044 = cos(r64043);
double r64045 = cos;
double r64046 = pow(r64045, r64041);
double r64047 = sin;
double r64048 = pow(r64047, r64041);
double r64049 = r64042 * r64048;
double r64050 = r64049 * r64042;
double r64051 = r64046 * r64050;
double r64052 = r64044 / r64051;
return r64052;
}
double f(double x, double cos, double sin) {
double r64053 = 2.0;
double r64054 = x;
double r64055 = r64053 * r64054;
double r64056 = cos(r64055);
double r64057 = cos;
double r64058 = 2.0;
double r64059 = r64053 / r64058;
double r64060 = pow(r64057, r64059);
double r64061 = sin;
double r64062 = pow(r64061, r64059);
double r64063 = r64054 * r64062;
double r64064 = r64060 * r64063;
double r64065 = r64060 * r64064;
double r64066 = r64062 * r64054;
double r64067 = r64065 * r64066;
double r64068 = r64056 / r64067;
return r64068;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.6
rmApplied sqr-pow27.6
Applied associate-*r*21.5
rmApplied associate-*l*19.5
rmApplied associate-*r*15.8
rmApplied sqr-pow15.8
Applied associate-*l*6.8
Final simplification6.8
herbie shell --seed 2019306 +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))))