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 r8688951 = 2.0;
        double r8688952 = x;
        double r8688953 = r8688951 * r8688952;
        double r8688954 = cos(r8688953);
        double r8688955 = cos;
        double r8688956 = pow(r8688955, r8688951);
        double r8688957 = sin;
        double r8688958 = pow(r8688957, r8688951);
        double r8688959 = r8688952 * r8688958;
        double r8688960 = r8688959 * r8688952;
        double r8688961 = r8688956 * r8688960;
        double r8688962 = r8688954 / r8688961;
        return r8688962;
}

double f(double x, double cos, double sin) {
        double r8688963 = x;
        double r8688964 = cos(r8688963);
        double r8688965 = r8688964 * r8688964;
        double r8688966 = sin;
        double r8688967 = r8688966 * r8688963;
        double r8688968 = cos;
        double r8688969 = r8688967 * r8688968;
        double r8688970 = r8688969 * r8688969;
        double r8688971 = r8688965 / r8688970;
        double r8688972 = sin(r8688963);
        double r8688973 = r8688972 * r8688972;
        double r8688974 = r8688973 / r8688970;
        double r8688975 = r8688971 - r8688974;
        return r8688975;
}

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