Average Error: 29.5 → 0.2
Time: 3.9m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -8384.021630376625:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \mathbf{elif}\;x \le 12352.79489393538:\\ \;\;\;\;\frac{x}{1 + x} - \sqrt[3]{\left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right) \cdot \left(\left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right) \cdot \left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\ \end{array}\]
double f(double x) {
        double r34436512 = x;
        double r34436513 = 1.0;
        double r34436514 = r34436512 + r34436513;
        double r34436515 = r34436512 / r34436514;
        double r34436516 = r34436512 - r34436513;
        double r34436517 = r34436514 / r34436516;
        double r34436518 = r34436515 - r34436517;
        return r34436518;
}

double f(double x) {
        double r34436519 = x;
        double r34436520 = -8384.021630376625;
        bool r34436521 = r34436519 <= r34436520;
        double r34436522 = -1.0;
        double r34436523 = r34436519 * r34436519;
        double r34436524 = r34436522 / r34436523;
        double r34436525 = r34436522 / r34436519;
        double r34436526 = r34436525 / r34436523;
        double r34436527 = r34436525 + r34436526;
        double r34436528 = 3.0;
        double r34436529 = r34436527 * r34436528;
        double r34436530 = r34436524 + r34436529;
        double r34436531 = 12352.79489393538;
        bool r34436532 = r34436519 <= r34436531;
        double r34436533 = 1.0;
        double r34436534 = r34436533 + r34436519;
        double r34436535 = r34436519 / r34436534;
        double r34436536 = r34436519 - r34436533;
        double r34436537 = r34436533 / r34436536;
        double r34436538 = r34436537 * r34436534;
        double r34436539 = r34436538 * r34436538;
        double r34436540 = r34436538 * r34436539;
        double r34436541 = cbrt(r34436540);
        double r34436542 = r34436535 - r34436541;
        double r34436543 = r34436532 ? r34436542 : r34436530;
        double r34436544 = r34436521 ? r34436530 : r34436543;
        return r34436544;
}

\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -8384.021630376625:\\
\;\;\;\;\frac{-1}{x \cdot x} + \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) \cdot 3\\

\mathbf{elif}\;x \le 12352.79489393538:\\
\;\;\;\;\frac{x}{1 + x} - \sqrt[3]{\left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right) \cdot \left(\left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right) \cdot \left(\frac{1}{x - 1} \cdot \left(1 + x\right)\right)\right)}\\

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

\end{array}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8384.021630376625 or 12352.79489393538 < x

    1. Initial program 59.5

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\left(x + 1\right) \cdot \frac{1}{x - 1}}\]
    4. 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)}\]
    5. Simplified0.3

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

    if -8384.021630376625 < x < 12352.79489393538

    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}}\]
    4. Using strategy rm
    5. Applied add-cbrt-cube0.1

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

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

Reproduce

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