\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\frac{\cos \left(2 \cdot x\right)}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)}}{{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)}double f(double x, double cos, double sin) {
double r59608 = 2.0;
double r59609 = x;
double r59610 = r59608 * r59609;
double r59611 = cos(r59610);
double r59612 = cos;
double r59613 = pow(r59612, r59608);
double r59614 = sin;
double r59615 = pow(r59614, r59608);
double r59616 = r59609 * r59615;
double r59617 = r59616 * r59609;
double r59618 = r59613 * r59617;
double r59619 = r59611 / r59618;
return r59619;
}
double f(double x, double cos, double sin) {
double r59620 = 2.0;
double r59621 = x;
double r59622 = r59620 * r59621;
double r59623 = cos(r59622);
double r59624 = cos;
double r59625 = 2.0;
double r59626 = r59620 / r59625;
double r59627 = pow(r59624, r59626);
double r59628 = sin;
double r59629 = pow(r59628, r59626);
double r59630 = r59621 * r59629;
double r59631 = r59627 * r59630;
double r59632 = r59623 / r59631;
double r59633 = r59632 / r59631;
return r59633;
}



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.3
rmApplied associate-*l*20.2
Simplified20.2
rmApplied sqr-pow20.2
Applied unswap-sqr2.9
rmApplied associate-/r*2.7
Final simplification2.7
herbie shell --seed 2020046
(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))))