\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 r61809 = 2.0;
double r61810 = x;
double r61811 = r61809 * r61810;
double r61812 = cos(r61811);
double r61813 = cos;
double r61814 = pow(r61813, r61809);
double r61815 = sin;
double r61816 = pow(r61815, r61809);
double r61817 = r61810 * r61816;
double r61818 = r61817 * r61810;
double r61819 = r61814 * r61818;
double r61820 = r61812 / r61819;
return r61820;
}
double f(double x, double cos, double sin) {
double r61821 = 2.0;
double r61822 = x;
double r61823 = r61821 * r61822;
double r61824 = cos(r61823);
double r61825 = cos;
double r61826 = 2.0;
double r61827 = r61821 / r61826;
double r61828 = pow(r61825, r61827);
double r61829 = sin;
double r61830 = pow(r61829, r61827);
double r61831 = r61822 * r61830;
double r61832 = r61828 * r61831;
double r61833 = r61828 * r61832;
double r61834 = r61830 * r61822;
double r61835 = r61833 * r61834;
double r61836 = r61824 / r61835;
return r61836;
}



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.0
rmApplied associate-*l*20.1
rmApplied associate-*r*16.1
rmApplied sqr-pow16.1
Applied associate-*l*7.0
Final simplification7.0
herbie shell --seed 2020047 +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))))