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

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

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

\end{array}
double f(double x) {
        double r2001823 = x;
        double r2001824 = 1.0;
        double r2001825 = r2001823 + r2001824;
        double r2001826 = r2001823 / r2001825;
        double r2001827 = r2001823 - r2001824;
        double r2001828 = r2001825 / r2001827;
        double r2001829 = r2001826 - r2001828;
        return r2001829;
}

double f(double x) {
        double r2001830 = x;
        double r2001831 = -8022.341442375084;
        bool r2001832 = r2001830 <= r2001831;
        double r2001833 = -3.0;
        double r2001834 = r2001830 * r2001830;
        double r2001835 = r2001834 * r2001830;
        double r2001836 = r2001833 / r2001835;
        double r2001837 = -1.0;
        double r2001838 = r2001837 / r2001834;
        double r2001839 = r2001833 / r2001830;
        double r2001840 = r2001838 + r2001839;
        double r2001841 = r2001836 + r2001840;
        double r2001842 = 6909.881176444165;
        bool r2001843 = r2001830 <= r2001842;
        double r2001844 = cbrt(r2001830);
        double r2001845 = r2001844 * r2001844;
        double r2001846 = 1.0;
        double r2001847 = r2001846 + r2001830;
        double r2001848 = r2001844 / r2001847;
        double r2001849 = r2001830 - r2001846;
        double r2001850 = r2001837 / r2001849;
        double r2001851 = r2001850 * r2001847;
        double r2001852 = fma(r2001845, r2001848, r2001851);
        double r2001853 = r2001846 / r2001849;
        double r2001854 = r2001847 * r2001853;
        double r2001855 = fma(r2001850, r2001847, r2001854);
        double r2001856 = r2001852 + r2001855;
        double r2001857 = r2001843 ? r2001856 : r2001841;
        double r2001858 = r2001832 ? r2001841 : r2001857;
        return r2001858;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8022.341442375084 or 6909.881176444165 < 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.0

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

    if -8022.341442375084 < 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 *-un-lft-identity0.1

      \[\leadsto \frac{x}{\color{blue}{1 \cdot \left(x + 1\right)}} - \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}}}{1 \cdot \left(x + 1\right)} - \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}}{1} \cdot \frac{\sqrt[3]{x}}{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}}{1}, \frac{\sqrt[3]{x}}{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 -8022.341442375084:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} + \left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \mathbf{elif}\;x \le 6909.881176444165:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \frac{\sqrt[3]{x}}{1 + x}, \frac{-1}{x - 1} \cdot \left(1 + x\right)\right) + \mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} + \left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \end{array}\]

Reproduce

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