double f(double x, double cos, double sin) {
double r8353320 = 2.0;
double r8353321 = x;
double r8353322 = r8353320 * r8353321;
double r8353323 = cos(r8353322);
double r8353324 = cos;
double r8353325 = pow(r8353324, r8353320);
double r8353326 = sin;
double r8353327 = pow(r8353326, r8353320);
double r8353328 = r8353321 * r8353327;
double r8353329 = r8353328 * r8353321;
double r8353330 = r8353325 * r8353329;
double r8353331 = r8353323 / r8353330;
return r8353331;
}
double f(double x, double cos, double sin) {
double r8353332 = x;
double r8353333 = cos(r8353332);
double r8353334 = r8353333 * r8353333;
double r8353335 = sin;
double r8353336 = r8353335 * r8353332;
double r8353337 = cos;
double r8353338 = r8353336 * r8353337;
double r8353339 = r8353338 * r8353338;
double r8353340 = r8353334 / r8353339;
double r8353341 = sin(r8353332);
double r8353342 = r8353341 * r8353341;
double r8353343 = r8353342 / r8353339;
double r8353344 = r8353340 - r8353343;
return r8353344;
}
\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(\left(sin \cdot x\right) \cdot cos\right) \cdot \left(\left(sin \cdot x\right) \cdot cos\right)} - \frac{\sin x \cdot \sin x}{\left(\left(sin \cdot x\right) \cdot cos\right) \cdot \left(\left(sin \cdot x\right) \cdot cos\right)}


Bits error versus x



Bits error versus cos



Bits error versus sin
Initial program 27.0
Simplified2.7
Taylor expanded around -inf 30.7
Simplified2.8
rmApplied cos-22.8
Applied div-sub2.8
Final simplification2.8
herbie shell --seed 2019101 +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))))