\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|} \cdot \frac{\cos \left(2 \cdot x\right)}{\left|{\left({cos}^{1} \cdot {sin}^{1}\right)}^{1} \cdot x\right|}double f(double x, double cos, double sin) {
double r71351 = 2.0;
double r71352 = x;
double r71353 = r71351 * r71352;
double r71354 = cos(r71353);
double r71355 = cos;
double r71356 = pow(r71355, r71351);
double r71357 = sin;
double r71358 = pow(r71357, r71351);
double r71359 = r71352 * r71358;
double r71360 = r71359 * r71352;
double r71361 = r71356 * r71360;
double r71362 = r71354 / r71361;
return r71362;
}
double f(double x, double cos, double sin) {
double r71363 = 1.0;
double r71364 = cos;
double r71365 = 1.0;
double r71366 = pow(r71364, r71365);
double r71367 = sin;
double r71368 = pow(r71367, r71365);
double r71369 = r71366 * r71368;
double r71370 = pow(r71369, r71365);
double r71371 = x;
double r71372 = r71370 * r71371;
double r71373 = fabs(r71372);
double r71374 = r71363 / r71373;
double r71375 = 2.0;
double r71376 = r71375 * r71371;
double r71377 = cos(r71376);
double r71378 = r71377 / r71373;
double r71379 = r71374 * r71378;
return r71379;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 28.1
rmApplied sqr-pow28.1
Applied associate-*r*21.9
rmApplied add-sqr-sqrt21.9
Simplified21.9
Simplified3.0
Taylor expanded around inf 2.6
rmApplied add-sqr-sqrt2.8
Applied unpow-prod-down2.8
Applied *-un-lft-identity2.8
Applied times-frac2.6
Simplified2.5
Simplified2.4
Final simplification2.4
herbie shell --seed 2020003 +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))))