\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{\cos x \cdot \cos x}{\left(cos \cdot \left(sin \cdot x\right)\right) \cdot \left(cos \cdot \left(sin \cdot x\right)\right)} - \frac{\sin x \cdot \sin x}{\left(cos \cdot \left(sin \cdot x\right)\right) \cdot \left(cos \cdot \left(sin \cdot x\right)\right)}double f(double x, double cos, double sin) {
double r1145004 = 2.0;
double r1145005 = x;
double r1145006 = r1145004 * r1145005;
double r1145007 = cos(r1145006);
double r1145008 = cos;
double r1145009 = pow(r1145008, r1145004);
double r1145010 = sin;
double r1145011 = pow(r1145010, r1145004);
double r1145012 = r1145005 * r1145011;
double r1145013 = r1145012 * r1145005;
double r1145014 = r1145009 * r1145013;
double r1145015 = r1145007 / r1145014;
return r1145015;
}
double f(double x, double cos, double sin) {
double r1145016 = x;
double r1145017 = cos(r1145016);
double r1145018 = r1145017 * r1145017;
double r1145019 = cos;
double r1145020 = sin;
double r1145021 = r1145020 * r1145016;
double r1145022 = r1145019 * r1145021;
double r1145023 = r1145022 * r1145022;
double r1145024 = r1145018 / r1145023;
double r1145025 = sin(r1145016);
double r1145026 = r1145025 * r1145025;
double r1145027 = r1145026 / r1145023;
double r1145028 = r1145024 - r1145027;
return r1145028;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.5
Simplified2.8
Taylor expanded around -inf 30.9
Simplified2.7
rmApplied cos-22.8
Applied div-sub2.8
Final simplification2.8
herbie shell --seed 2019133
(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))))