\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\frac{\left(x \cdot sin\right) \cdot cos}{\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot sin\right) \cdot cos}}}double f(double x, double cos, double sin) {
double r2732910 = 2.0;
double r2732911 = x;
double r2732912 = r2732910 * r2732911;
double r2732913 = cos(r2732912);
double r2732914 = cos;
double r2732915 = pow(r2732914, r2732910);
double r2732916 = sin;
double r2732917 = pow(r2732916, r2732910);
double r2732918 = r2732911 * r2732917;
double r2732919 = r2732918 * r2732911;
double r2732920 = r2732915 * r2732919;
double r2732921 = r2732913 / r2732920;
return r2732921;
}
double f(double x, double cos, double sin) {
double r2732922 = 1.0;
double r2732923 = x;
double r2732924 = sin;
double r2732925 = r2732923 * r2732924;
double r2732926 = cos;
double r2732927 = r2732925 * r2732926;
double r2732928 = 2.0;
double r2732929 = r2732928 * r2732923;
double r2732930 = cos(r2732929);
double r2732931 = r2732930 / r2732927;
double r2732932 = r2732927 / r2732931;
double r2732933 = r2732922 / r2732932;
return r2732933;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.6
Simplified3.1
rmApplied associate-/r*2.8
rmApplied *-un-lft-identity2.8
Applied associate-/l*3.1
Final simplification3.1
herbie shell --seed 2019141 +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))))