\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\frac{\cos \left(2 \cdot x\right)}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)}}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)}double f(double x, double cos, double sin) {
double r3670050 = 2.0;
double r3670051 = x;
double r3670052 = r3670050 * r3670051;
double r3670053 = cos(r3670052);
double r3670054 = cos;
double r3670055 = pow(r3670054, r3670050);
double r3670056 = sin;
double r3670057 = pow(r3670056, r3670050);
double r3670058 = r3670051 * r3670057;
double r3670059 = r3670058 * r3670051;
double r3670060 = r3670055 * r3670059;
double r3670061 = r3670053 / r3670060;
return r3670061;
}
double f(double x, double cos, double sin) {
double r3670062 = 2.0;
double r3670063 = x;
double r3670064 = r3670062 * r3670063;
double r3670065 = cos(r3670064);
double r3670066 = cos;
double r3670067 = 2.0;
double r3670068 = r3670062 / r3670067;
double r3670069 = pow(r3670066, r3670068);
double r3670070 = sin;
double r3670071 = pow(r3670070, r3670068);
double r3670072 = r3670063 * r3670071;
double r3670073 = r3670069 * r3670072;
double r3670074 = r3670065 / r3670073;
double r3670075 = r3670074 / r3670073;
return r3670075;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.2
rmApplied sqr-pow28.2
Applied associate-*r*21.7
rmApplied associate-*l*19.7
Simplified19.7
rmApplied sqr-pow19.7
Applied unswap-sqr2.8
rmApplied associate-/r*2.6
Final simplification2.6
herbie shell --seed 2019171
(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))))