Average Error: 29.2 → 0.1
Time: 5.8m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -15147.582990964242:\\ \;\;\;\;\frac{\sqrt[3]{-1}}{x \cdot x} - (\left(\frac{3}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\frac{3}{x}\right))_*\\ \mathbf{elif}\;x \le 10532.01597020836:\\ \;\;\;\;\left(x - 1\right) \cdot \frac{x}{x \cdot x - 1} - \frac{x + 1}{x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{-1}}{x \cdot x} - (\left(\frac{3}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\frac{3}{x}\right))_*\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -15147.582990964242:\\
\;\;\;\;\frac{\sqrt[3]{-1}}{x \cdot x} - (\left(\frac{3}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\frac{3}{x}\right))_*\\

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

\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{-1}}{x \cdot x} - (\left(\frac{3}{x}\right) \cdot \left(\frac{1}{x \cdot x}\right) + \left(\frac{3}{x}\right))_*\\

\end{array}
double f(double x) {
        double r31715526 = x;
        double r31715527 = 1.0;
        double r31715528 = r31715526 + r31715527;
        double r31715529 = r31715526 / r31715528;
        double r31715530 = r31715526 - r31715527;
        double r31715531 = r31715528 / r31715530;
        double r31715532 = r31715529 - r31715531;
        return r31715532;
}

double f(double x) {
        double r31715533 = x;
        double r31715534 = -15147.582990964242;
        bool r31715535 = r31715533 <= r31715534;
        double r31715536 = -1.0;
        double r31715537 = cbrt(r31715536);
        double r31715538 = r31715533 * r31715533;
        double r31715539 = r31715537 / r31715538;
        double r31715540 = 3.0;
        double r31715541 = r31715540 / r31715533;
        double r31715542 = 1.0;
        double r31715543 = r31715542 / r31715538;
        double r31715544 = fma(r31715541, r31715543, r31715541);
        double r31715545 = r31715539 - r31715544;
        double r31715546 = 10532.01597020836;
        bool r31715547 = r31715533 <= r31715546;
        double r31715548 = r31715533 - r31715542;
        double r31715549 = r31715538 - r31715542;
        double r31715550 = r31715533 / r31715549;
        double r31715551 = r31715548 * r31715550;
        double r31715552 = r31715533 + r31715542;
        double r31715553 = r31715552 / r31715548;
        double r31715554 = r31715551 - r31715553;
        double r31715555 = r31715547 ? r31715554 : r31715545;
        double r31715556 = r31715535 ? r31715545 : r31715555;
        return r31715556;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -15147.582990964242 or 10532.01597020836 < x

    1. Initial program 59.2

      \[\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.3

      \[\leadsto \color{blue}{(3 \cdot \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) + \left(\frac{-1}{x \cdot x}\right))_*}\]
    4. Using strategy rm
    5. Applied add-cbrt-cube0.3

      \[\leadsto (3 \cdot \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) + \color{blue}{\left(\sqrt[3]{\left(\frac{-1}{x \cdot x} \cdot \frac{-1}{x \cdot x}\right) \cdot \frac{-1}{x \cdot x}}\right)})_*\]
    6. Taylor expanded around -inf 0.3

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

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

    if -15147.582990964242 < x < 10532.01597020836

    1. Initial program 0.1

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

      \[\leadsto \frac{x}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x - 1}}} - \frac{x + 1}{x - 1}\]
    4. Applied associate-/r/0.1

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

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

Reproduce

herbie shell --seed 2019107 +o rules:numerics
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))