\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 r58829 = 2.0;
double r58830 = x;
double r58831 = r58829 * r58830;
double r58832 = cos(r58831);
double r58833 = cos;
double r58834 = pow(r58833, r58829);
double r58835 = sin;
double r58836 = pow(r58835, r58829);
double r58837 = r58830 * r58836;
double r58838 = r58837 * r58830;
double r58839 = r58834 * r58838;
double r58840 = r58832 / r58839;
return r58840;
}
double f(double x, double cos, double sin) {
double r58841 = 2.0;
double r58842 = x;
double r58843 = r58841 * r58842;
double r58844 = cos(r58843);
double r58845 = cos;
double r58846 = 2.0;
double r58847 = r58841 / r58846;
double r58848 = pow(r58845, r58847);
double r58849 = sin;
double r58850 = pow(r58849, r58847);
double r58851 = r58842 * r58850;
double r58852 = r58848 * r58851;
double r58853 = r58848 * r58852;
double r58854 = r58850 * r58842;
double r58855 = r58853 * r58854;
double r58856 = r58844 / r58855;
return r58856;
}



Bits error versus x



Bits error versus cos



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