Average Error: 29.1 → 0.1
Time: 41.0s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -11180.856750468918:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \mathbf{elif}\;x \le 11958.15652724066:\\ \;\;\;\;\frac{x}{1 + x} - \left(1 + x\right) \cdot \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -11180.856750468918:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\

\mathbf{elif}\;x \le 11958.15652724066:\\
\;\;\;\;\frac{x}{1 + x} - \left(1 + x\right) \cdot \frac{1}{x - 1}\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\

\end{array}
double f(double x) {
        double r4661366 = x;
        double r4661367 = 1.0;
        double r4661368 = r4661366 + r4661367;
        double r4661369 = r4661366 / r4661368;
        double r4661370 = r4661366 - r4661367;
        double r4661371 = r4661368 / r4661370;
        double r4661372 = r4661369 - r4661371;
        return r4661372;
}

double f(double x) {
        double r4661373 = x;
        double r4661374 = -11180.856750468918;
        bool r4661375 = r4661373 <= r4661374;
        double r4661376 = -1.0;
        double r4661377 = r4661373 * r4661373;
        double r4661378 = r4661376 / r4661377;
        double r4661379 = 3.0;
        double r4661380 = r4661379 / r4661373;
        double r4661381 = r4661378 - r4661380;
        double r4661382 = r4661380 / r4661377;
        double r4661383 = r4661381 - r4661382;
        double r4661384 = 11958.15652724066;
        bool r4661385 = r4661373 <= r4661384;
        double r4661386 = 1.0;
        double r4661387 = r4661386 + r4661373;
        double r4661388 = r4661373 / r4661387;
        double r4661389 = r4661373 - r4661386;
        double r4661390 = r4661386 / r4661389;
        double r4661391 = r4661387 * r4661390;
        double r4661392 = r4661388 - r4661391;
        double r4661393 = r4661385 ? r4661392 : r4661383;
        double r4661394 = r4661375 ? r4661383 : r4661393;
        return r4661394;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -11180.856750468918 or 11958.15652724066 < x

    1. Initial program 59.4

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Taylor expanded around inf 0.3

      \[\leadsto \color{blue}{-\left(3 \cdot \frac{1}{{x}^{3}} + \left(\frac{1}{{x}^{2}} + 3 \cdot \frac{1}{x}\right)\right)}\]
    3. Simplified0.0

      \[\leadsto \color{blue}{\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}}\]

    if -11180.856750468918 < x < 11958.15652724066

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied div-inv0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -11180.856750468918:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \mathbf{elif}\;x \le 11958.15652724066:\\ \;\;\;\;\frac{x}{1 + x} - \left(1 + x\right) \cdot \frac{1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019144 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))