\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\cos \left(2 \cdot x\right) \cdot {\left(\left(x \cdot sin\right) \cdot cos\right)}^{-2}double f(double x, double cos, double sin) {
double r2094501 = 2.0;
double r2094502 = x;
double r2094503 = r2094501 * r2094502;
double r2094504 = cos(r2094503);
double r2094505 = cos;
double r2094506 = pow(r2094505, r2094501);
double r2094507 = sin;
double r2094508 = pow(r2094507, r2094501);
double r2094509 = r2094502 * r2094508;
double r2094510 = r2094509 * r2094502;
double r2094511 = r2094506 * r2094510;
double r2094512 = r2094504 / r2094511;
return r2094512;
}
double f(double x, double cos, double sin) {
double r2094513 = 2.0;
double r2094514 = x;
double r2094515 = r2094513 * r2094514;
double r2094516 = cos(r2094515);
double r2094517 = sin;
double r2094518 = r2094514 * r2094517;
double r2094519 = cos;
double r2094520 = r2094518 * r2094519;
double r2094521 = -2.0;
double r2094522 = pow(r2094520, r2094521);
double r2094523 = r2094516 * r2094522;
return r2094523;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.4
Simplified2.7
rmApplied clear-num2.7
rmApplied *-un-lft-identity2.7
Applied times-frac2.7
Applied associate-/r*2.4
rmApplied associate-/r/2.4
Simplified2.7
rmApplied pow12.7
Applied pow12.7
Applied pow-prod-down2.7
Applied pow12.7
Applied pow-prod-down2.7
Applied inv-pow2.7
Applied pow-div2.7
Simplified2.7
Final simplification2.7
herbie shell --seed 2019162 +o rules:numerics
(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))))