\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 r75812 = 2.0;
double r75813 = x;
double r75814 = r75812 * r75813;
double r75815 = cos(r75814);
double r75816 = cos;
double r75817 = pow(r75816, r75812);
double r75818 = sin;
double r75819 = pow(r75818, r75812);
double r75820 = r75813 * r75819;
double r75821 = r75820 * r75813;
double r75822 = r75817 * r75821;
double r75823 = r75815 / r75822;
return r75823;
}
double f(double x, double cos, double sin) {
double r75824 = 2.0;
double r75825 = x;
double r75826 = r75824 * r75825;
double r75827 = cos(r75826);
double r75828 = cos;
double r75829 = 2.0;
double r75830 = r75824 / r75829;
double r75831 = pow(r75828, r75830);
double r75832 = sin;
double r75833 = pow(r75832, r75830);
double r75834 = r75825 * r75833;
double r75835 = r75831 * r75834;
double r75836 = r75831 * r75835;
double r75837 = r75833 * r75825;
double r75838 = r75836 * r75837;
double r75839 = r75827 / r75838;
return r75839;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.4
rmApplied sqr-pow28.4
Applied associate-*r*22.3
rmApplied associate-*l*20.3
rmApplied associate-*r*16.3
rmApplied sqr-pow16.3
Applied associate-*l*6.8
Final simplification6.8
herbie shell --seed 2020043 +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))))