\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\frac{{\left(\sqrt{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}\right)}^{4}}{\cos \left(2 \cdot x\right)}}double f(double x, double cos, double sin) {
double r59816 = 2.0;
double r59817 = x;
double r59818 = r59816 * r59817;
double r59819 = cos(r59818);
double r59820 = cos;
double r59821 = pow(r59820, r59816);
double r59822 = sin;
double r59823 = pow(r59822, r59816);
double r59824 = r59817 * r59823;
double r59825 = r59824 * r59817;
double r59826 = r59821 * r59825;
double r59827 = r59819 / r59826;
return r59827;
}
double f(double x, double cos, double sin) {
double r59828 = 1.0;
double r59829 = cos;
double r59830 = 2.0;
double r59831 = 2.0;
double r59832 = r59830 / r59831;
double r59833 = pow(r59829, r59832);
double r59834 = x;
double r59835 = sin;
double r59836 = pow(r59835, r59832);
double r59837 = r59834 * r59836;
double r59838 = r59833 * r59837;
double r59839 = fabs(r59838);
double r59840 = sqrt(r59839);
double r59841 = 4.0;
double r59842 = pow(r59840, r59841);
double r59843 = r59830 * r59834;
double r59844 = cos(r59843);
double r59845 = r59842 / r59844;
double r59846 = r59828 / r59845;
return r59846;
}



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.2
rmApplied add-sqr-sqrt22.2
Simplified22.2
Simplified2.8
rmApplied *-un-lft-identity2.8
Applied times-frac2.6
rmApplied add-sqr-sqrt2.6
Applied associate-/r*2.6
Final simplification3.0
herbie shell --seed 2019294
(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))))