Average Error: 37.0 → 12.5
Time: 25.4s
Precision: 64
\[\tan \left(x + \varepsilon\right) - \tan x\]
\[\frac{\left(\frac{\sin x}{1 - \frac{\sin x \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}} - \sin x\right) \cdot \cos x}{\cos x \cdot \cos x} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)}\]
\tan \left(x + \varepsilon\right) - \tan x
\frac{\left(\frac{\sin x}{1 - \frac{\sin x \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}} - \sin x\right) \cdot \cos x}{\cos x \cdot \cos x} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)}
double f(double x, double eps) {
        double r87824 = x;
        double r87825 = eps;
        double r87826 = r87824 + r87825;
        double r87827 = tan(r87826);
        double r87828 = tan(r87824);
        double r87829 = r87827 - r87828;
        return r87829;
}

double f(double x, double eps) {
        double r87830 = x;
        double r87831 = sin(r87830);
        double r87832 = 1.0;
        double r87833 = eps;
        double r87834 = sin(r87833);
        double r87835 = cos(r87833);
        double r87836 = r87834 / r87835;
        double r87837 = r87831 * r87836;
        double r87838 = cos(r87830);
        double r87839 = r87837 / r87838;
        double r87840 = r87832 - r87839;
        double r87841 = r87831 / r87840;
        double r87842 = r87841 - r87831;
        double r87843 = r87842 * r87838;
        double r87844 = r87838 * r87838;
        double r87845 = r87843 / r87844;
        double r87846 = r87831 / r87838;
        double r87847 = r87836 * r87846;
        double r87848 = r87832 - r87847;
        double r87849 = r87835 * r87848;
        double r87850 = r87834 / r87849;
        double r87851 = r87845 + r87850;
        return r87851;
}

Error

Bits error versus x

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original37.0
Target15.2
Herbie12.5
\[\frac{\sin \varepsilon}{\cos x \cdot \cos \left(x + \varepsilon\right)}\]

Derivation

  1. Initial program 37.0

    \[\tan \left(x + \varepsilon\right) - \tan x\]
  2. Using strategy rm
  3. Applied tan-sum21.6

    \[\leadsto \color{blue}{\frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon}} - \tan x\]
  4. Simplified21.6

    \[\leadsto \frac{\tan x + \tan \varepsilon}{\color{blue}{1 - \tan \varepsilon \cdot \tan x}} - \tan x\]
  5. Taylor expanded around inf 21.7

    \[\leadsto \color{blue}{\left(\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}\right)} + \frac{\sin x}{\cos x \cdot \left(1 - \frac{\sin x \cdot \sin \varepsilon}{\cos x \cdot \cos \varepsilon}\right)}\right) - \frac{\sin x}{\cos x}}\]
  6. Simplified12.6

    \[\leadsto \color{blue}{\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)} + \left(\frac{\frac{\sin x}{1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}}}{\cos x} - \frac{\sin x}{\cos x}\right)}\]
  7. Using strategy rm
  8. Applied frac-sub12.6

    \[\leadsto \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)} + \color{blue}{\frac{\frac{\sin x}{1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}} \cdot \cos x - \cos x \cdot \sin x}{\cos x \cdot \cos x}}\]
  9. Simplified12.5

    \[\leadsto \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)} + \frac{\color{blue}{\cos x \cdot \left(\frac{\sin x}{1 - \frac{\sin x \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}} - \sin x\right)}}{\cos x \cdot \cos x}\]
  10. Final simplification12.5

    \[\leadsto \frac{\left(\frac{\sin x}{1 - \frac{\sin x \cdot \frac{\sin \varepsilon}{\cos \varepsilon}}{\cos x}} - \sin x\right) \cdot \cos x}{\cos x \cdot \cos x} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{\sin \varepsilon}{\cos \varepsilon} \cdot \frac{\sin x}{\cos x}\right)}\]

Reproduce

herbie shell --seed 2019194 
(FPCore (x eps)
  :name "2tan (problem 3.3.2)"

  :herbie-target
  (/ (sin eps) (* (cos x) (cos (+ x eps))))

  (- (tan (+ x eps)) (tan x)))