Average Error: 27.0 → 2.8
Time: 1.3m
Precision: 64
\[\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)}\]
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)}

Error

Bits error versus x

Bits error versus cos

Bits error versus sin

Derivation

  1. Initial program 27.0

    \[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
  2. Simplified2.7

    \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{\left(sin \cdot \left(x \cdot cos\right)\right) \cdot \left(sin \cdot \left(x \cdot cos\right)\right)}}\]
  3. Taylor expanded around -inf 30.7

    \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{{sin}^{2} \cdot \left({x}^{2} \cdot {cos}^{2}\right)}}\]
  4. Simplified2.8

    \[\leadsto \color{blue}{\frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}}\]
  5. Using strategy rm
  6. Applied cos-22.8

    \[\leadsto \frac{\color{blue}{\cos x \cdot \cos x - \sin x \cdot \sin x}}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}\]
  7. Applied div-sub2.8

    \[\leadsto \color{blue}{\frac{\cos x \cdot \cos x}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)} - \frac{\sin x \cdot \sin x}{\left(\left(x \cdot sin\right) \cdot cos\right) \cdot \left(\left(x \cdot sin\right) \cdot cos\right)}}\]
  8. Final simplification2.8

    \[\leadsto \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)}\]

Reproduce

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))))