\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\frac{1}{\frac{sin \cdot \left(x \cdot cos\right)}{\frac{\frac{\cos \left(2 \cdot x\right)}{x}}{cos} \cdot \frac{1}{sin}}}double f(double x, double cos, double sin) {
double r30198104 = 2.0;
double r30198105 = x;
double r30198106 = r30198104 * r30198105;
double r30198107 = cos(r30198106);
double r30198108 = cos;
double r30198109 = pow(r30198108, r30198104);
double r30198110 = sin;
double r30198111 = pow(r30198110, r30198104);
double r30198112 = r30198105 * r30198111;
double r30198113 = r30198112 * r30198105;
double r30198114 = r30198109 * r30198113;
double r30198115 = r30198107 / r30198114;
return r30198115;
}
double f(double x, double cos, double sin) {
double r30198116 = 1.0;
double r30198117 = sin;
double r30198118 = x;
double r30198119 = cos;
double r30198120 = r30198118 * r30198119;
double r30198121 = r30198117 * r30198120;
double r30198122 = 2.0;
double r30198123 = r30198122 * r30198118;
double r30198124 = cos(r30198123);
double r30198125 = r30198124 / r30198118;
double r30198126 = r30198125 / r30198119;
double r30198127 = r30198116 / r30198117;
double r30198128 = r30198126 * r30198127;
double r30198129 = r30198121 / r30198128;
double r30198130 = r30198116 / r30198129;
return r30198130;
}



Bits error versus x



Bits error versus cos



Bits error versus sin
Results
Initial program 27.8
Simplified2.7
rmApplied associate-/r*2.5
rmApplied *-un-lft-identity2.5
Applied times-frac2.6
rmApplied associate-/r*2.6
rmApplied clear-num2.8
Final simplification2.8
herbie shell --seed 2019120
(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))))