\frac{\cos \left(2.0 \cdot x\right)}{{cos}^{2.0} \cdot \left(\left(x \cdot {sin}^{2.0}\right) \cdot x\right)}\frac{\frac{\cos \left(2.0 \cdot x\right)}{{cos}^{\left(\frac{2.0}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2.0}{2}\right)}\right)}}{{cos}^{\left(\frac{2.0}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2.0}{2}\right)}\right)}double f(double x, double cos, double sin) {
double r2698363 = 2.0;
double r2698364 = x;
double r2698365 = r2698363 * r2698364;
double r2698366 = cos(r2698365);
double r2698367 = cos;
double r2698368 = pow(r2698367, r2698363);
double r2698369 = sin;
double r2698370 = pow(r2698369, r2698363);
double r2698371 = r2698364 * r2698370;
double r2698372 = r2698371 * r2698364;
double r2698373 = r2698368 * r2698372;
double r2698374 = r2698366 / r2698373;
return r2698374;
}
double f(double x, double cos, double sin) {
double r2698375 = 2.0;
double r2698376 = x;
double r2698377 = r2698375 * r2698376;
double r2698378 = cos(r2698377);
double r2698379 = cos;
double r2698380 = 2.0;
double r2698381 = r2698375 / r2698380;
double r2698382 = pow(r2698379, r2698381);
double r2698383 = sin;
double r2698384 = pow(r2698383, r2698381);
double r2698385 = r2698376 * r2698384;
double r2698386 = r2698382 * r2698385;
double r2698387 = r2698378 / r2698386;
double r2698388 = r2698387 / r2698386;
return r2698388;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.6
rmApplied sqr-pow27.6
Applied associate-*r*21.4
rmApplied associate-*l*19.6
Simplified19.6
rmApplied sqr-pow19.6
Applied unswap-sqr2.9
rmApplied associate-/r*2.6
Final simplification2.6
herbie shell --seed 2019165
(FPCore (x cos sin)
:name "cos(2*x)/(cos^2(x)*sin^2(x))"
(/ (cos (* 2.0 x)) (* (pow cos 2.0) (* (* x (pow sin 2.0)) x))))