\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 r56969 = 2.0;
double r56970 = x;
double r56971 = r56969 * r56970;
double r56972 = cos(r56971);
double r56973 = cos;
double r56974 = pow(r56973, r56969);
double r56975 = sin;
double r56976 = pow(r56975, r56969);
double r56977 = r56970 * r56976;
double r56978 = r56977 * r56970;
double r56979 = r56974 * r56978;
double r56980 = r56972 / r56979;
return r56980;
}
double f(double x, double cos, double sin) {
double r56981 = 2.0;
double r56982 = x;
double r56983 = r56981 * r56982;
double r56984 = cos(r56983);
double r56985 = cos;
double r56986 = 2.0;
double r56987 = r56981 / r56986;
double r56988 = pow(r56985, r56987);
double r56989 = sin;
double r56990 = pow(r56989, r56987);
double r56991 = r56982 * r56990;
double r56992 = r56988 * r56991;
double r56993 = r56988 * r56992;
double r56994 = r56990 * r56982;
double r56995 = r56993 * r56994;
double r56996 = r56984 / r56995;
return r56996;
}



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*16.0
rmApplied sqr-pow16.0
Applied associate-*l*6.5
Final simplification6.5
herbie shell --seed 2019209 +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))))