\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\begin{array}{l}
\mathbf{if}\;sin \le -9.428285242761686 \cdot 10^{-254}:\\
\;\;\;\;\frac{\frac{\frac{1}{sin}}{cos} \cdot \frac{1}{x}}{\frac{x \cdot \left(cos \cdot sin\right)}{\cos \left(2 \cdot x\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\cos \left(2 \cdot x\right)}{\left(cos \cdot \left(x \cdot sin\right)\right) \cdot \left(cos \cdot \left(x \cdot sin\right)\right)}\\
\end{array}double f(double x, double cos, double sin) {
double r26307249 = 2.0;
double r26307250 = x;
double r26307251 = r26307249 * r26307250;
double r26307252 = cos(r26307251);
double r26307253 = cos;
double r26307254 = pow(r26307253, r26307249);
double r26307255 = sin;
double r26307256 = pow(r26307255, r26307249);
double r26307257 = r26307250 * r26307256;
double r26307258 = r26307257 * r26307250;
double r26307259 = r26307254 * r26307258;
double r26307260 = r26307252 / r26307259;
return r26307260;
}
double f(double x, double cos, double sin) {
double r26307261 = sin;
double r26307262 = -9.428285242761686e-254;
bool r26307263 = r26307261 <= r26307262;
double r26307264 = 1.0;
double r26307265 = r26307264 / r26307261;
double r26307266 = cos;
double r26307267 = r26307265 / r26307266;
double r26307268 = x;
double r26307269 = r26307264 / r26307268;
double r26307270 = r26307267 * r26307269;
double r26307271 = r26307266 * r26307261;
double r26307272 = r26307268 * r26307271;
double r26307273 = 2.0;
double r26307274 = r26307273 * r26307268;
double r26307275 = cos(r26307274);
double r26307276 = r26307272 / r26307275;
double r26307277 = r26307270 / r26307276;
double r26307278 = r26307268 * r26307261;
double r26307279 = r26307266 * r26307278;
double r26307280 = r26307279 * r26307279;
double r26307281 = r26307275 / r26307280;
double r26307282 = r26307263 ? r26307277 : r26307281;
return r26307282;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
if sin < -9.428285242761686e-254Initial program 25.6
Simplified2.3
Taylor expanded around inf 29.3
Simplified2.4
rmApplied *-un-lft-identity2.4
Applied associate-/l*2.4
rmApplied *-un-lft-identity2.4
Applied times-frac2.4
Applied associate-/r*2.2
rmApplied add-cube-cbrt2.2
Applied times-frac2.2
Applied add-sqr-sqrt2.2
Applied times-frac2.3
Simplified2.2
Simplified2.2
if -9.428285242761686e-254 < sin Initial program 28.1
Simplified3.5
Taylor expanded around -inf 31.4
Simplified2.5
Final simplification2.4
herbie shell --seed 2019124 +o rules:numerics
(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))))