Average Error: 29.6 → 0.1
Time: 28.5s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.9915371672348144:\\ \;\;\;\;\frac{-3 + \frac{-1}{x}}{x} + \frac{-3}{\left(x \cdot x\right) \cdot x}\\ \mathbf{elif}\;x \le 6909.881176444165:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt{1 + x}}, \frac{\sqrt[3]{x}}{\sqrt{1 + x}}, \left(1 + x\right) \cdot \frac{-1}{x - 1}\right) + \mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-3 + \frac{-1}{x}}{x} + \frac{-3}{\left(x \cdot x\right) \cdot x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -0.9915371672348144:\\
\;\;\;\;\frac{-3 + \frac{-1}{x}}{x} + \frac{-3}{\left(x \cdot x\right) \cdot x}\\

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

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

\end{array}
double f(double x) {
        double r4692321 = x;
        double r4692322 = 1.0;
        double r4692323 = r4692321 + r4692322;
        double r4692324 = r4692321 / r4692323;
        double r4692325 = r4692321 - r4692322;
        double r4692326 = r4692323 / r4692325;
        double r4692327 = r4692324 - r4692326;
        return r4692327;
}

double f(double x) {
        double r4692328 = x;
        double r4692329 = -0.9915371672348144;
        bool r4692330 = r4692328 <= r4692329;
        double r4692331 = -3.0;
        double r4692332 = -1.0;
        double r4692333 = r4692332 / r4692328;
        double r4692334 = r4692331 + r4692333;
        double r4692335 = r4692334 / r4692328;
        double r4692336 = r4692328 * r4692328;
        double r4692337 = r4692336 * r4692328;
        double r4692338 = r4692331 / r4692337;
        double r4692339 = r4692335 + r4692338;
        double r4692340 = 6909.881176444165;
        bool r4692341 = r4692328 <= r4692340;
        double r4692342 = cbrt(r4692328);
        double r4692343 = r4692342 * r4692342;
        double r4692344 = 1.0;
        double r4692345 = r4692344 + r4692328;
        double r4692346 = sqrt(r4692345);
        double r4692347 = r4692343 / r4692346;
        double r4692348 = r4692342 / r4692346;
        double r4692349 = r4692328 - r4692344;
        double r4692350 = r4692332 / r4692349;
        double r4692351 = r4692345 * r4692350;
        double r4692352 = fma(r4692347, r4692348, r4692351);
        double r4692353 = r4692344 / r4692349;
        double r4692354 = r4692345 * r4692353;
        double r4692355 = fma(r4692350, r4692345, r4692354);
        double r4692356 = r4692352 + r4692355;
        double r4692357 = r4692341 ? r4692356 : r4692339;
        double r4692358 = r4692330 ? r4692339 : r4692357;
        return r4692358;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -0.9915371672348144 or 6909.881176444165 < x

    1. Initial program 58.8

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

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

      \[\leadsto \color{blue}{\frac{-3}{x \cdot \left(x \cdot x\right)} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)}\]
    4. Using strategy rm
    5. Applied sub-neg0.2

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

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

    if -0.9915371672348144 < x < 6909.881176444165

    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. Applied add-sqr-sqrt0.1

      \[\leadsto \frac{x}{\color{blue}{\sqrt{x + 1} \cdot \sqrt{x + 1}}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    5. Applied add-cube-cbrt0.1

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}{\sqrt{x + 1} \cdot \sqrt{x + 1}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    6. Applied times-frac0.1

      \[\leadsto \color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt{x + 1}} \cdot \frac{\sqrt[3]{x}}{\sqrt{x + 1}}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    7. Applied prod-diff0.1

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

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

Reproduce

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