Average Error: 37.2 → 14.3
Time: 17.5s
Precision: 64
\[\tan \left(x + \varepsilon\right) - \tan x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -2.14092216320566653 \cdot 10^{-145} \lor \neg \left(\varepsilon \le 1.7108564194720778 \cdot 10^{-75}\right):\\ \;\;\;\;\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{\cos \varepsilon \cdot \left({\left(\cos x\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)\right)} + \left(\left(\left(\frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{3}}{\left(\left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{3}\right) \cdot {\left(\cos x\right)}^{2}} + \frac{\frac{\sin x}{1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}}}{\cos x}\right) + \frac{{\left(\sin \varepsilon\right)}^{2}}{{\left(\cos \varepsilon\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} \cdot \left(\frac{{\left(\sin x\right)}^{3}}{{\left(\cos x\right)}^{3}} + \frac{\sin x}{\cos x}\right)\right) + \left(\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} - \frac{\sin x}{\cos x}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\varepsilon + {\varepsilon}^{2} \cdot \left(x + \varepsilon \cdot \frac{1}{3}\right)\\ \end{array}\]
\tan \left(x + \varepsilon\right) - \tan x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -2.14092216320566653 \cdot 10^{-145} \lor \neg \left(\varepsilon \le 1.7108564194720778 \cdot 10^{-75}\right):\\
\;\;\;\;\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{\cos \varepsilon \cdot \left({\left(\cos x\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)\right)} + \left(\left(\left(\frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{3}}{\left(\left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{3}\right) \cdot {\left(\cos x\right)}^{2}} + \frac{\frac{\sin x}{1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}}}{\cos x}\right) + \frac{{\left(\sin \varepsilon\right)}^{2}}{{\left(\cos \varepsilon\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} \cdot \left(\frac{{\left(\sin x\right)}^{3}}{{\left(\cos x\right)}^{3}} + \frac{\sin x}{\cos x}\right)\right) + \left(\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} - \frac{\sin x}{\cos x}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\varepsilon + {\varepsilon}^{2} \cdot \left(x + \varepsilon \cdot \frac{1}{3}\right)\\

\end{array}
double f(double x, double eps) {
        double r116264 = x;
        double r116265 = eps;
        double r116266 = r116264 + r116265;
        double r116267 = tan(r116266);
        double r116268 = tan(r116264);
        double r116269 = r116267 - r116268;
        return r116269;
}

double f(double x, double eps) {
        double r116270 = eps;
        double r116271 = -2.1409221632056665e-145;
        bool r116272 = r116270 <= r116271;
        double r116273 = 1.7108564194720778e-75;
        bool r116274 = r116270 <= r116273;
        double r116275 = !r116274;
        bool r116276 = r116272 || r116275;
        double r116277 = x;
        double r116278 = sin(r116277);
        double r116279 = 2.0;
        double r116280 = pow(r116278, r116279);
        double r116281 = sin(r116270);
        double r116282 = r116280 * r116281;
        double r116283 = cos(r116270);
        double r116284 = cos(r116277);
        double r116285 = pow(r116284, r116279);
        double r116286 = 1.0;
        double r116287 = r116281 * r116278;
        double r116288 = 3.0;
        double r116289 = pow(r116287, r116288);
        double r116290 = r116283 * r116284;
        double r116291 = pow(r116290, r116288);
        double r116292 = r116289 / r116291;
        double r116293 = r116286 - r116292;
        double r116294 = r116285 * r116293;
        double r116295 = r116283 * r116294;
        double r116296 = r116282 / r116295;
        double r116297 = pow(r116281, r116288);
        double r116298 = r116280 * r116297;
        double r116299 = pow(r116283, r116288);
        double r116300 = r116293 * r116299;
        double r116301 = r116300 * r116285;
        double r116302 = r116298 / r116301;
        double r116303 = r116278 / r116293;
        double r116304 = r116303 / r116284;
        double r116305 = r116302 + r116304;
        double r116306 = pow(r116281, r116279);
        double r116307 = pow(r116283, r116279);
        double r116308 = r116307 * r116293;
        double r116309 = r116306 / r116308;
        double r116310 = pow(r116278, r116288);
        double r116311 = pow(r116284, r116288);
        double r116312 = r116310 / r116311;
        double r116313 = r116278 / r116284;
        double r116314 = r116312 + r116313;
        double r116315 = r116309 * r116314;
        double r116316 = r116305 + r116315;
        double r116317 = r116283 * r116293;
        double r116318 = r116281 / r116317;
        double r116319 = r116318 - r116313;
        double r116320 = r116316 + r116319;
        double r116321 = r116296 + r116320;
        double r116322 = pow(r116270, r116279);
        double r116323 = 0.3333333333333333;
        double r116324 = r116270 * r116323;
        double r116325 = r116277 + r116324;
        double r116326 = r116322 * r116325;
        double r116327 = r116270 + r116326;
        double r116328 = r116276 ? r116321 : r116327;
        return r116328;
}

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.2
Target15.4
Herbie14.3
\[\frac{\sin \varepsilon}{\cos x \cdot \cos \left(x + \varepsilon\right)}\]

Derivation

  1. Split input into 2 regimes
  2. if eps < -2.1409221632056665e-145 or 1.7108564194720778e-75 < eps

    1. Initial program 31.9

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

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

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

      \[\leadsto \frac{\tan \varepsilon + \tan x}{\color{blue}{1 - \tan \varepsilon \cdot \tan x}} - \tan x\]
    6. Using strategy rm
    7. Applied flip3--9.5

      \[\leadsto \frac{\tan \varepsilon + \tan x}{\color{blue}{\frac{{1}^{3} - {\left(\tan \varepsilon \cdot \tan x\right)}^{3}}{1 \cdot 1 + \left(\left(\tan \varepsilon \cdot \tan x\right) \cdot \left(\tan \varepsilon \cdot \tan x\right) + 1 \cdot \left(\tan \varepsilon \cdot \tan x\right)\right)}}} - \tan x\]
    8. Simplified9.5

      \[\leadsto \frac{\tan \varepsilon + \tan x}{\frac{\color{blue}{1 - {\left(\tan \varepsilon \cdot \tan x\right)}^{3}}}{1 \cdot 1 + \left(\left(\tan \varepsilon \cdot \tan x\right) \cdot \left(\tan \varepsilon \cdot \tan x\right) + 1 \cdot \left(\tan \varepsilon \cdot \tan x\right)\right)}} - \tan x\]
    9. Simplified9.5

      \[\leadsto \frac{\tan \varepsilon + \tan x}{\frac{1 - {\left(\tan \varepsilon \cdot \tan x\right)}^{3}}{\color{blue}{\left(\tan \varepsilon \cdot \tan x\right) \cdot \left(1 + \tan \varepsilon \cdot \tan x\right) + 1}}} - \tan x\]
    10. Taylor expanded around inf 9.6

      \[\leadsto \color{blue}{\left(\frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{2} \cdot \left(\left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{3}\right)} + \left(\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{\cos \varepsilon \cdot \left({\left(\cos x\right)}^{2} \cdot \left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right)\right)} + \left(\frac{\sin x}{\left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right) \cdot \cos x} + \left(\frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{2}}{{\left(\cos x\right)}^{3} \cdot \left(\left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{2}\right)} + \left(\frac{\sin x \cdot {\left(\sin \varepsilon\right)}^{2}}{\cos x \cdot \left(\left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{2}\right)} + \frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin x\right)}^{3} \cdot {\left(\sin \varepsilon\right)}^{3}}{{\left(\cos x\right)}^{3} \cdot {\left(\cos \varepsilon\right)}^{3}}\right)}\right)\right)\right)\right)\right) - \frac{\sin x}{\cos x}}\]
    11. Simplified8.4

      \[\leadsto \color{blue}{\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{\cos \varepsilon \cdot \left({\left(\cos x\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)\right)} + \left(\left(\left(\frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{3}}{\left(\left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{3}\right) \cdot {\left(\cos x\right)}^{2}} + \frac{\frac{\sin x}{1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}}}{\cos x}\right) + \frac{{\left(\sin \varepsilon\right)}^{2}}{{\left(\cos \varepsilon\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} \cdot \left(\frac{{\left(\sin x\right)}^{3}}{{\left(\cos x\right)}^{3}} + \frac{\sin x}{\cos x}\right)\right) + \left(\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} - \frac{\sin x}{\cos x}\right)\right)}\]

    if -2.1409221632056665e-145 < eps < 1.7108564194720778e-75

    1. Initial program 49.0

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

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

      \[\leadsto \frac{\color{blue}{\tan \varepsilon + \tan x}}{1 - \tan x \cdot \tan \varepsilon} - \tan x\]
    5. Simplified49.0

      \[\leadsto \frac{\tan \varepsilon + \tan x}{\color{blue}{1 - \tan \varepsilon \cdot \tan x}} - \tan x\]
    6. Taylor expanded around 0 27.2

      \[\leadsto \color{blue}{x \cdot {\varepsilon}^{2} + \left(\frac{1}{3} \cdot {\varepsilon}^{3} + \varepsilon\right)}\]
    7. Simplified27.2

      \[\leadsto \color{blue}{\varepsilon + {\varepsilon}^{2} \cdot \left(x + \varepsilon \cdot \frac{1}{3}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification14.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -2.14092216320566653 \cdot 10^{-145} \lor \neg \left(\varepsilon \le 1.7108564194720778 \cdot 10^{-75}\right):\\ \;\;\;\;\frac{{\left(\sin x\right)}^{2} \cdot \sin \varepsilon}{\cos \varepsilon \cdot \left({\left(\cos x\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)\right)} + \left(\left(\left(\frac{{\left(\sin x\right)}^{2} \cdot {\left(\sin \varepsilon\right)}^{3}}{\left(\left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right) \cdot {\left(\cos \varepsilon\right)}^{3}\right) \cdot {\left(\cos x\right)}^{2}} + \frac{\frac{\sin x}{1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}}}{\cos x}\right) + \frac{{\left(\sin \varepsilon\right)}^{2}}{{\left(\cos \varepsilon\right)}^{2} \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} \cdot \left(\frac{{\left(\sin x\right)}^{3}}{{\left(\cos x\right)}^{3}} + \frac{\sin x}{\cos x}\right)\right) + \left(\frac{\sin \varepsilon}{\cos \varepsilon \cdot \left(1 - \frac{{\left(\sin \varepsilon \cdot \sin x\right)}^{3}}{{\left(\cos \varepsilon \cdot \cos x\right)}^{3}}\right)} - \frac{\sin x}{\cos x}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\varepsilon + {\varepsilon}^{2} \cdot \left(x + \varepsilon \cdot \frac{1}{3}\right)\\ \end{array}\]

Reproduce

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

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

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