Average Error: 36.9 → 13.0
Time: 26.6s
Precision: 64
\[\tan \left(x + \varepsilon\right) - \tan x\]
\[\left(\frac{\frac{\sin x}{\cos x}}{1 - \left(\frac{\sin \varepsilon}{\cos x} \cdot \sin x\right) \cdot \frac{1}{\cos \varepsilon}} - \frac{\sin x}{\cos x}\right) + \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \log \left(e^{\frac{\sin x}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos x}}\right)}\]
\tan \left(x + \varepsilon\right) - \tan x
\left(\frac{\frac{\sin x}{\cos x}}{1 - \left(\frac{\sin \varepsilon}{\cos x} \cdot \sin x\right) \cdot \frac{1}{\cos \varepsilon}} - \frac{\sin x}{\cos x}\right) + \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \log \left(e^{\frac{\sin x}{\cos \varepsilon} \cdot \frac{\sin \varepsilon}{\cos x}}\right)}
double f(double x, double eps) {
        double r3788405 = x;
        double r3788406 = eps;
        double r3788407 = r3788405 + r3788406;
        double r3788408 = tan(r3788407);
        double r3788409 = tan(r3788405);
        double r3788410 = r3788408 - r3788409;
        return r3788410;
}

double f(double x, double eps) {
        double r3788411 = x;
        double r3788412 = sin(r3788411);
        double r3788413 = cos(r3788411);
        double r3788414 = r3788412 / r3788413;
        double r3788415 = 1.0;
        double r3788416 = eps;
        double r3788417 = sin(r3788416);
        double r3788418 = r3788417 / r3788413;
        double r3788419 = r3788418 * r3788412;
        double r3788420 = cos(r3788416);
        double r3788421 = r3788415 / r3788420;
        double r3788422 = r3788419 * r3788421;
        double r3788423 = r3788415 - r3788422;
        double r3788424 = r3788414 / r3788423;
        double r3788425 = r3788424 - r3788414;
        double r3788426 = r3788417 / r3788420;
        double r3788427 = r3788412 / r3788420;
        double r3788428 = r3788427 * r3788418;
        double r3788429 = exp(r3788428);
        double r3788430 = log(r3788429);
        double r3788431 = r3788415 - r3788430;
        double r3788432 = r3788426 / r3788431;
        double r3788433 = r3788425 + r3788432;
        return r3788433;
}

Error

Bits error versus x

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original36.9
Target15.3
Herbie13.0
\[\frac{\sin \varepsilon}{\cos x \cdot \cos \left(x + \varepsilon\right)}\]

Derivation

  1. Initial program 36.9

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

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

    \[\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}}\]
  5. Simplified13.0

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

    \[\leadsto \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \frac{\sin \varepsilon}{\cos x} \cdot \frac{\sin x}{\cos \varepsilon}} + \left(\frac{\frac{\sin x}{\cos x}}{1 - \frac{\sin \varepsilon}{\cos x} \cdot \color{blue}{\left(\sin x \cdot \frac{1}{\cos \varepsilon}\right)}} - \frac{\sin x}{\cos x}\right)\]
  8. Applied associate-*r*13.0

    \[\leadsto \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \frac{\sin \varepsilon}{\cos x} \cdot \frac{\sin x}{\cos \varepsilon}} + \left(\frac{\frac{\sin x}{\cos x}}{1 - \color{blue}{\left(\frac{\sin \varepsilon}{\cos x} \cdot \sin x\right) \cdot \frac{1}{\cos \varepsilon}}} - \frac{\sin x}{\cos x}\right)\]
  9. Using strategy rm
  10. Applied add-log-exp13.0

    \[\leadsto \frac{\frac{\sin \varepsilon}{\cos \varepsilon}}{1 - \color{blue}{\log \left(e^{\frac{\sin \varepsilon}{\cos x} \cdot \frac{\sin x}{\cos \varepsilon}}\right)}} + \left(\frac{\frac{\sin x}{\cos x}}{1 - \left(\frac{\sin \varepsilon}{\cos x} \cdot \sin x\right) \cdot \frac{1}{\cos \varepsilon}} - \frac{\sin x}{\cos x}\right)\]
  11. Final simplification13.0

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

Reproduce

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

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

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