\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\begin{array}{l}
\mathbf{if}\;\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot {sin}^{2}\right) \cdot x\right) \cdot {cos}^{2}} \le -0.0:\\
\;\;\;\;\left(\sqrt[3]{\cos \left(2 \cdot x\right)} \cdot \sqrt[3]{\cos \left(2 \cdot x\right)}\right) \cdot \left(\frac{\frac{1}{cos}}{sin \cdot x} \cdot \left(\sqrt[3]{\cos \left(2 \cdot x\right)} \cdot \frac{\frac{1}{cos}}{sin \cdot x}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot \left(sin \cdot cos\right)\right) \cdot \left(x \cdot \left(sin \cdot cos\right)\right)}\\
\end{array}double f(double x, double cos, double sin) {
double r1917482 = 2.0;
double r1917483 = x;
double r1917484 = r1917482 * r1917483;
double r1917485 = cos(r1917484);
double r1917486 = cos;
double r1917487 = pow(r1917486, r1917482);
double r1917488 = sin;
double r1917489 = pow(r1917488, r1917482);
double r1917490 = r1917483 * r1917489;
double r1917491 = r1917490 * r1917483;
double r1917492 = r1917487 * r1917491;
double r1917493 = r1917485 / r1917492;
return r1917493;
}
double f(double x, double cos, double sin) {
double r1917494 = 2.0;
double r1917495 = x;
double r1917496 = r1917494 * r1917495;
double r1917497 = cos(r1917496);
double r1917498 = sin;
double r1917499 = pow(r1917498, r1917494);
double r1917500 = r1917495 * r1917499;
double r1917501 = r1917500 * r1917495;
double r1917502 = cos;
double r1917503 = pow(r1917502, r1917494);
double r1917504 = r1917501 * r1917503;
double r1917505 = r1917497 / r1917504;
double r1917506 = -0.0;
bool r1917507 = r1917505 <= r1917506;
double r1917508 = cbrt(r1917497);
double r1917509 = r1917508 * r1917508;
double r1917510 = 1.0;
double r1917511 = r1917510 / r1917502;
double r1917512 = r1917498 * r1917495;
double r1917513 = r1917511 / r1917512;
double r1917514 = r1917508 * r1917513;
double r1917515 = r1917513 * r1917514;
double r1917516 = r1917509 * r1917515;
double r1917517 = r1917498 * r1917502;
double r1917518 = r1917495 * r1917517;
double r1917519 = r1917518 * r1917518;
double r1917520 = r1917497 / r1917519;
double r1917521 = r1917507 ? r1917516 : r1917520;
return r1917521;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if (/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))) < -0.0Initial program 17.0
Simplified1.7
rmApplied div-inv1.7
rmApplied pow11.7
Applied pow11.7
Applied pow-prod-down1.7
Applied pow11.7
Applied pow-prod-down1.7
Applied pow11.7
Applied pow11.7
Applied pow-prod-down1.7
Applied pow11.7
Applied pow-prod-down1.7
Applied pow-prod-up1.7
Applied pow-flip1.4
Simplified1.4
Taylor expanded around inf 2.6
rmApplied add-cube-cbrt2.7
Applied associate-*l*2.7
Simplified0.4
if -0.0 < (/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))) Initial program 45.2
Simplified4.6
rmApplied div-inv4.6
rmApplied pow14.6
Applied pow14.6
Applied pow-prod-down4.6
Applied pow14.6
Applied pow-prod-down4.6
Applied pow14.6
Applied pow14.6
Applied pow-prod-down4.6
Applied pow14.6
Applied pow-prod-down4.6
Applied pow-prod-up4.6
Applied pow-flip4.5
Simplified4.5
Taylor expanded around inf 3.0
Taylor expanded around inf 48.4
Simplified3.2
Final simplification1.5
herbie shell --seed 2019158
(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))))