Average Error: 29.3 → 0.1
Time: 21.2s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -11166.74680765492303180508315563201904297 \lor \neg \left(x \le 17625.54287631354236509650945663452148438\right):\\ \;\;\;\;\left(\frac{-1}{x} + \frac{1}{x}\right) \cdot \left(3 + \frac{1}{x}\right) + \mathsf{fma}\left(-\sqrt[3]{\frac{3}{{x}^{3}}} \cdot \sqrt[3]{\frac{3}{{x}^{3}}}, \sqrt[3]{\frac{3}{{x}^{3}}}, -\frac{3 + \frac{1}{x}}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{1 \cdot 1 - x \cdot x}, 1 - x, -\frac{x + 1}{x - 1}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -11166.74680765492303180508315563201904297 \lor \neg \left(x \le 17625.54287631354236509650945663452148438\right):\\
\;\;\;\;\left(\frac{-1}{x} + \frac{1}{x}\right) \cdot \left(3 + \frac{1}{x}\right) + \mathsf{fma}\left(-\sqrt[3]{\frac{3}{{x}^{3}}} \cdot \sqrt[3]{\frac{3}{{x}^{3}}}, \sqrt[3]{\frac{3}{{x}^{3}}}, -\frac{3 + \frac{1}{x}}{x}\right)\\

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

\end{array}
double f(double x) {
        double r154594 = x;
        double r154595 = 1.0;
        double r154596 = r154594 + r154595;
        double r154597 = r154594 / r154596;
        double r154598 = r154594 - r154595;
        double r154599 = r154596 / r154598;
        double r154600 = r154597 - r154599;
        return r154600;
}

double f(double x) {
        double r154601 = x;
        double r154602 = -11166.746807654923;
        bool r154603 = r154601 <= r154602;
        double r154604 = 17625.542876313542;
        bool r154605 = r154601 <= r154604;
        double r154606 = !r154605;
        bool r154607 = r154603 || r154606;
        double r154608 = -1.0;
        double r154609 = r154608 / r154601;
        double r154610 = 1.0;
        double r154611 = r154610 / r154601;
        double r154612 = r154609 + r154611;
        double r154613 = 3.0;
        double r154614 = 1.0;
        double r154615 = r154614 / r154601;
        double r154616 = r154613 + r154615;
        double r154617 = r154612 * r154616;
        double r154618 = 3.0;
        double r154619 = pow(r154601, r154618);
        double r154620 = r154613 / r154619;
        double r154621 = cbrt(r154620);
        double r154622 = r154621 * r154621;
        double r154623 = -r154622;
        double r154624 = r154616 / r154601;
        double r154625 = -r154624;
        double r154626 = fma(r154623, r154621, r154625);
        double r154627 = r154617 + r154626;
        double r154628 = r154614 * r154614;
        double r154629 = r154601 * r154601;
        double r154630 = r154628 - r154629;
        double r154631 = r154601 / r154630;
        double r154632 = r154614 - r154601;
        double r154633 = r154601 + r154614;
        double r154634 = r154601 - r154614;
        double r154635 = r154633 / r154634;
        double r154636 = -r154635;
        double r154637 = fma(r154631, r154632, r154636);
        double r154638 = r154607 ? r154627 : r154637;
        return r154638;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -11166.746807654923 or 17625.542876313542 < x

    1. Initial program 59.4

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified59.4

      \[\leadsto \color{blue}{\frac{x}{1 + x} - \frac{1 + x}{x - 1}}\]
    3. Taylor expanded around inf 0.3

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

      \[\leadsto \color{blue}{\left(-\frac{3}{{x}^{3}}\right) - \left(\frac{3}{x} + \frac{\frac{1}{x}}{x}\right)}\]
    5. Using strategy rm
    6. Applied div-inv0.0

      \[\leadsto \left(-\frac{3}{{x}^{3}}\right) - \left(\frac{3}{x} + \color{blue}{\frac{1}{x} \cdot \frac{1}{x}}\right)\]
    7. Applied div-inv0.3

      \[\leadsto \left(-\frac{3}{{x}^{3}}\right) - \left(\color{blue}{3 \cdot \frac{1}{x}} + \frac{1}{x} \cdot \frac{1}{x}\right)\]
    8. Applied distribute-rgt-out0.3

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

      \[\leadsto \left(-\color{blue}{\left(\sqrt[3]{\frac{3}{{x}^{3}}} \cdot \sqrt[3]{\frac{3}{{x}^{3}}}\right) \cdot \sqrt[3]{\frac{3}{{x}^{3}}}}\right) - \frac{1}{x} \cdot \left(3 + \frac{1}{x}\right)\]
    10. Applied distribute-lft-neg-in0.3

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

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

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

      \[\leadsto \mathsf{fma}\left(\left(-\sqrt[3]{\frac{3}{{x}^{3}}}\right) \cdot \sqrt[3]{\frac{3}{{x}^{3}}}, \sqrt[3]{\frac{3}{{x}^{3}}}, -\frac{3 + \frac{1}{x}}{x}\right) + \color{blue}{\left(3 + \frac{1}{x}\right) \cdot \left(\frac{-1}{x} + \frac{1}{x}\right)}\]

    if -11166.746807654923 < x < 17625.542876313542

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified0.1

      \[\leadsto \color{blue}{\frac{x}{1 + x} - \frac{1 + x}{x - 1}}\]
    3. Using strategy rm
    4. Applied flip-+0.1

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

      \[\leadsto \color{blue}{\frac{x}{1 \cdot 1 - x \cdot x} \cdot \left(1 - x\right)} - \frac{1 + x}{x - 1}\]
    6. Applied fma-neg0.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{1 \cdot 1 - x \cdot x}, 1 - x, -\frac{1 + x}{x - 1}\right)}\]
    7. Simplified0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -11166.74680765492303180508315563201904297 \lor \neg \left(x \le 17625.54287631354236509650945663452148438\right):\\ \;\;\;\;\left(\frac{-1}{x} + \frac{1}{x}\right) \cdot \left(3 + \frac{1}{x}\right) + \mathsf{fma}\left(-\sqrt[3]{\frac{3}{{x}^{3}}} \cdot \sqrt[3]{\frac{3}{{x}^{3}}}, \sqrt[3]{\frac{3}{{x}^{3}}}, -\frac{3 + \frac{1}{x}}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{1 \cdot 1 - x \cdot x}, 1 - x, -\frac{x + 1}{x - 1}\right)\\ \end{array}\]

Reproduce

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