double f(double x, double cos, double sin) {
double r26086038 = 2.0;
double r26086039 = x;
double r26086040 = r26086038 * r26086039;
double r26086041 = cos(r26086040);
double r26086042 = cos;
double r26086043 = pow(r26086042, r26086038);
double r26086044 = sin;
double r26086045 = pow(r26086044, r26086038);
double r26086046 = r26086039 * r26086045;
double r26086047 = r26086046 * r26086039;
double r26086048 = r26086043 * r26086047;
double r26086049 = r26086041 / r26086048;
return r26086049;
}
double f(double x, double cos, double sin) {
double r26086050 = 1.0;
double r26086051 = sin;
double r26086052 = r26086050 / r26086051;
double r26086053 = x;
double r26086054 = 2.0;
double r26086055 = r26086053 * r26086054;
double r26086056 = cos(r26086055);
double r26086057 = cos;
double r26086058 = r26086056 / r26086057;
double r26086059 = r26086058 / r26086053;
double r26086060 = r26086052 * r26086059;
double r26086061 = r26086053 * r26086057;
double r26086062 = r26086061 * r26086051;
double r26086063 = r26086060 / r26086062;
return r26086063;
}
\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\frac{1}{sin} \cdot \frac{\frac{\cos \left(x \cdot 2\right)}{cos}}{x}}{\left(x \cdot cos\right) \cdot sin}


Bits error versus x



Bits error versus cos



Bits error versus sin
Initial program 27.5
Simplified2.6
rmApplied associate-/r*2.3
rmApplied *-un-lft-identity2.3
Applied times-frac2.5
rmApplied *-un-lft-identity2.5
Applied times-frac2.5
rmApplied associate-*l/2.4
Simplified2.4
Final simplification2.4
herbie shell --seed 2019102 +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))))