\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\cos \left(2 \cdot x\right)}{\left({cos}^{\left(\frac{2}{2}\right)} \cdot \left({cos}^{\left(\frac{2}{2}\right)} \cdot \left(x \cdot {sin}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot \left({sin}^{\left(\frac{2}{2}\right)} \cdot x\right)}double f(double x, double cos, double sin) {
double r56464 = 2.0;
double r56465 = x;
double r56466 = r56464 * r56465;
double r56467 = cos(r56466);
double r56468 = cos;
double r56469 = pow(r56468, r56464);
double r56470 = sin;
double r56471 = pow(r56470, r56464);
double r56472 = r56465 * r56471;
double r56473 = r56472 * r56465;
double r56474 = r56469 * r56473;
double r56475 = r56467 / r56474;
return r56475;
}
double f(double x, double cos, double sin) {
double r56476 = 2.0;
double r56477 = x;
double r56478 = r56476 * r56477;
double r56479 = cos(r56478);
double r56480 = cos;
double r56481 = 2.0;
double r56482 = r56476 / r56481;
double r56483 = pow(r56480, r56482);
double r56484 = sin;
double r56485 = pow(r56484, r56482);
double r56486 = r56477 * r56485;
double r56487 = r56483 * r56486;
double r56488 = r56483 * r56487;
double r56489 = r56485 * r56477;
double r56490 = r56488 * r56489;
double r56491 = r56479 / r56490;
return r56491;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.9
rmApplied sqr-pow27.9
Applied associate-*r*21.7
rmApplied associate-*l*19.6
rmApplied associate-*r*15.8
rmApplied sqr-pow15.8
Applied associate-*l*6.7
Final simplification6.7
herbie shell --seed 2019326 +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))))