\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\frac{\frac{1}{cos}}{x} \cdot \frac{\cos \left(x \cdot 2\right)}{sin}}{\left(x \cdot cos\right) \cdot sin}double f(double x, double cos, double sin) {
double r31835300 = 2.0;
double r31835301 = x;
double r31835302 = r31835300 * r31835301;
double r31835303 = cos(r31835302);
double r31835304 = cos;
double r31835305 = pow(r31835304, r31835300);
double r31835306 = sin;
double r31835307 = pow(r31835306, r31835300);
double r31835308 = r31835301 * r31835307;
double r31835309 = r31835308 * r31835301;
double r31835310 = r31835305 * r31835309;
double r31835311 = r31835303 / r31835310;
return r31835311;
}
double f(double x, double cos, double sin) {
double r31835312 = 1.0;
double r31835313 = cos;
double r31835314 = r31835312 / r31835313;
double r31835315 = x;
double r31835316 = r31835314 / r31835315;
double r31835317 = 2.0;
double r31835318 = r31835315 * r31835317;
double r31835319 = cos(r31835318);
double r31835320 = sin;
double r31835321 = r31835319 / r31835320;
double r31835322 = r31835316 * r31835321;
double r31835323 = r31835315 * r31835313;
double r31835324 = r31835323 * r31835320;
double r31835325 = r31835322 / r31835324;
return r31835325;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.2
Simplified2.8
rmApplied associate-/r*2.6
rmApplied *-un-lft-identity2.6
Applied times-frac2.7
rmApplied *-un-lft-identity2.7
Applied times-frac2.7
rmApplied associate-*l/2.7
Simplified2.7
Final simplification2.7
herbie shell --seed 2019128
(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))))