\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 r71326 = 2.0;
double r71327 = x;
double r71328 = r71326 * r71327;
double r71329 = cos(r71328);
double r71330 = cos;
double r71331 = pow(r71330, r71326);
double r71332 = sin;
double r71333 = pow(r71332, r71326);
double r71334 = r71327 * r71333;
double r71335 = r71334 * r71327;
double r71336 = r71331 * r71335;
double r71337 = r71329 / r71336;
return r71337;
}
double f(double x, double cos, double sin) {
double r71338 = 2.0;
double r71339 = x;
double r71340 = r71338 * r71339;
double r71341 = cos(r71340);
double r71342 = cos;
double r71343 = 2.0;
double r71344 = r71338 / r71343;
double r71345 = pow(r71342, r71344);
double r71346 = sin;
double r71347 = pow(r71346, r71344);
double r71348 = r71339 * r71347;
double r71349 = r71345 * r71348;
double r71350 = r71345 * r71349;
double r71351 = r71347 * r71339;
double r71352 = r71350 * r71351;
double r71353 = r71341 / r71352;
return r71353;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.3
rmApplied sqr-pow28.3
Applied associate-*r*22.2
rmApplied associate-*l*20.0
rmApplied associate-*r*16.1
rmApplied sqr-pow16.1
Applied associate-*l*7.0
Final simplification7.0
herbie shell --seed 2019350 +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))))