\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 r56600 = 2.0;
double r56601 = x;
double r56602 = r56600 * r56601;
double r56603 = cos(r56602);
double r56604 = cos;
double r56605 = pow(r56604, r56600);
double r56606 = sin;
double r56607 = pow(r56606, r56600);
double r56608 = r56601 * r56607;
double r56609 = r56608 * r56601;
double r56610 = r56605 * r56609;
double r56611 = r56603 / r56610;
return r56611;
}
double f(double x, double cos, double sin) {
double r56612 = 2.0;
double r56613 = x;
double r56614 = r56612 * r56613;
double r56615 = cos(r56614);
double r56616 = cos;
double r56617 = 2.0;
double r56618 = r56612 / r56617;
double r56619 = pow(r56616, r56618);
double r56620 = sin;
double r56621 = pow(r56620, r56618);
double r56622 = r56613 * r56621;
double r56623 = r56619 * r56622;
double r56624 = r56619 * r56623;
double r56625 = r56621 * r56613;
double r56626 = r56624 * r56625;
double r56627 = r56615 / r56626;
return r56627;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.1
rmApplied sqr-pow28.1
Applied associate-*r*21.9
rmApplied associate-*l*19.9
rmApplied associate-*r*15.9
rmApplied sqr-pow15.9
Applied associate-*l*6.6
Final simplification6.6
herbie shell --seed 2019325 +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))))