\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|} \cdot \frac{\frac{\cos \left(2 \cdot x\right)}{\sqrt{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}}}{\sqrt{\left|{cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right|}}double f(double x, double cos, double sin) {
double r60533 = 2.0;
double r60534 = x;
double r60535 = r60533 * r60534;
double r60536 = cos(r60535);
double r60537 = cos;
double r60538 = pow(r60537, r60533);
double r60539 = sin;
double r60540 = pow(r60539, r60533);
double r60541 = r60534 * r60540;
double r60542 = r60541 * r60534;
double r60543 = r60538 * r60542;
double r60544 = r60536 / r60543;
return r60544;
}
double f(double x, double cos, double sin) {
double r60545 = 1.0;
double r60546 = cos;
double r60547 = 2.0;
double r60548 = 2.0;
double r60549 = r60547 / r60548;
double r60550 = pow(r60546, r60549);
double r60551 = x;
double r60552 = sin;
double r60553 = pow(r60552, r60549);
double r60554 = r60551 * r60553;
double r60555 = r60550 * r60554;
double r60556 = fabs(r60555);
double r60557 = r60545 / r60556;
double r60558 = r60547 * r60551;
double r60559 = cos(r60558);
double r60560 = sqrt(r60556);
double r60561 = r60559 / r60560;
double r60562 = r60561 / r60560;
double r60563 = r60557 * r60562;
return r60563;
}



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.3
Simplified22.2
Simplified2.9
rmApplied *-un-lft-identity2.9
Applied times-frac2.7
rmApplied add-sqr-sqrt2.7
Applied associate-/r*2.7
Final simplification2.7
herbie shell --seed 2020060 +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))))