\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)}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(\left({cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right)}double f(double x, double cos, double sin) {
double r70688 = 2.0;
double r70689 = x;
double r70690 = r70688 * r70689;
double r70691 = cos(r70690);
double r70692 = cos;
double r70693 = pow(r70692, r70688);
double r70694 = sin;
double r70695 = pow(r70694, r70688);
double r70696 = r70689 * r70695;
double r70697 = r70696 * r70689;
double r70698 = r70693 * r70697;
double r70699 = r70691 / r70698;
return r70699;
}
double f(double x, double cos, double sin) {
double r70700 = 2.0;
double r70701 = x;
double r70702 = r70700 * r70701;
double r70703 = cos(r70702);
double r70704 = cos;
double r70705 = 2.0;
double r70706 = r70700 / r70705;
double r70707 = pow(r70704, r70706);
double r70708 = sin;
double r70709 = pow(r70708, r70706);
double r70710 = r70701 * r70709;
double r70711 = r70707 * r70710;
double r70712 = r70711 * r70710;
double r70713 = r70707 * r70712;
double r70714 = r70703 / r70713;
return r70714;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.2
rmApplied sqr-pow28.2
Applied associate-*l*23.4
rmApplied sqr-pow23.4
Applied associate-*r*16.1
rmApplied associate-*l*13.3
Simplified13.3
rmApplied associate-*r*5.6
Final simplification5.6
herbie shell --seed 2020042
(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))))