Average Error: 29.4 → 0.0
Time: 6.1m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -15094.517806336768:\\ \;\;\;\;\left(\frac{\sqrt[3]{-1}}{x \cdot x} - \frac{3}{x} \cdot \frac{1}{x \cdot x}\right) - \frac{3}{x}\\ \mathbf{elif}\;x \le 11782.052645302434:\\ \;\;\;\;(x \cdot \left(\frac{1}{x + 1}\right) + \left(-\frac{x + 1}{x - 1}\right))_*\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\sqrt[3]{-1}}{x \cdot x} - \frac{3}{x} \cdot \frac{1}{x \cdot x}\right) - \frac{3}{x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -15094.517806336768:\\
\;\;\;\;\left(\frac{\sqrt[3]{-1}}{x \cdot x} - \frac{3}{x} \cdot \frac{1}{x \cdot x}\right) - \frac{3}{x}\\

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

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

\end{array}
double f(double x) {
        double r26283171 = x;
        double r26283172 = 1.0;
        double r26283173 = r26283171 + r26283172;
        double r26283174 = r26283171 / r26283173;
        double r26283175 = r26283171 - r26283172;
        double r26283176 = r26283173 / r26283175;
        double r26283177 = r26283174 - r26283176;
        return r26283177;
}

double f(double x) {
        double r26283178 = x;
        double r26283179 = -15094.517806336768;
        bool r26283180 = r26283178 <= r26283179;
        double r26283181 = -1.0;
        double r26283182 = cbrt(r26283181);
        double r26283183 = r26283178 * r26283178;
        double r26283184 = r26283182 / r26283183;
        double r26283185 = 3.0;
        double r26283186 = r26283185 / r26283178;
        double r26283187 = 1.0;
        double r26283188 = r26283187 / r26283183;
        double r26283189 = r26283186 * r26283188;
        double r26283190 = r26283184 - r26283189;
        double r26283191 = r26283190 - r26283186;
        double r26283192 = 11782.052645302434;
        bool r26283193 = r26283178 <= r26283192;
        double r26283194 = r26283178 + r26283187;
        double r26283195 = r26283187 / r26283194;
        double r26283196 = r26283178 - r26283187;
        double r26283197 = r26283194 / r26283196;
        double r26283198 = -r26283197;
        double r26283199 = fma(r26283178, r26283195, r26283198);
        double r26283200 = r26283193 ? r26283199 : r26283191;
        double r26283201 = r26283180 ? r26283191 : r26283200;
        return r26283201;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -15094.517806336768 or 11782.052645302434 < x

    1. Initial program 59.1

      \[\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) + \left(\frac{-1}{x \cdot \color{blue}{\sqrt[3]{\left(x \cdot x\right) \cdot x}}}\right))_*\]
    6. Applied add-cbrt-cube0.3

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

      \[\leadsto (3 \cdot \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) + \left(\frac{-1}{\color{blue}{\sqrt[3]{\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right)}}}\right))_*\]
    8. Applied add-cbrt-cube0.3

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

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

      \[\leadsto (3 \cdot \left(\frac{-1}{x} + \frac{\frac{-1}{x}}{x \cdot x}\right) + \left(\sqrt[3]{\color{blue}{\frac{-1}{\left(x \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot \left(x \cdot x\right)\right)}}}\right))_*\]
    11. 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)}\]
    12. 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))_*}\]
    13. Using strategy rm
    14. Applied fma-udef0.0

      \[\leadsto \frac{\sqrt[3]{-1}}{x \cdot x} - \color{blue}{\left(\frac{3}{x} \cdot \frac{1}{x \cdot x} + \frac{3}{x}\right)}\]
    15. Applied associate--r+0.0

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

    if -15094.517806336768 < x < 11782.052645302434

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{x \cdot \frac{1}{x + 1}} - \frac{x + 1}{x - 1}\]
    4. Applied fma-neg0.1

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

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

Reproduce

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