\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\cos \left(x \cdot 2\right)}{\left(x \cdot sin\right) \cdot cos} \cdot \left(\frac{1}{cos} \cdot \frac{1}{x \cdot sin}\right)double f(double x, double cos, double sin) {
double r730764 = 2.0;
double r730765 = x;
double r730766 = r730764 * r730765;
double r730767 = cos(r730766);
double r730768 = cos;
double r730769 = pow(r730768, r730764);
double r730770 = sin;
double r730771 = pow(r730770, r730764);
double r730772 = r730765 * r730771;
double r730773 = r730772 * r730765;
double r730774 = r730769 * r730773;
double r730775 = r730767 / r730774;
return r730775;
}
double f(double x, double cos, double sin) {
double r730776 = x;
double r730777 = 2.0;
double r730778 = r730776 * r730777;
double r730779 = cos(r730778);
double r730780 = sin;
double r730781 = r730776 * r730780;
double r730782 = cos;
double r730783 = r730781 * r730782;
double r730784 = r730779 / r730783;
double r730785 = 1.0;
double r730786 = r730785 / r730782;
double r730787 = r730785 / r730781;
double r730788 = r730786 * r730787;
double r730789 = r730784 * r730788;
return r730789;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.8
Simplified2.7
rmApplied *-un-lft-identity2.7
Applied times-frac2.5
rmApplied *-un-lft-identity2.5
Applied times-frac2.6
Final simplification2.6
herbie shell --seed 2019156 +o rules:numerics
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))))