Average Error: 29.4 → 0.1
Time: 12.4s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -11444.73524238953541498631238937377929688:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\ \mathbf{elif}\;x \le 13113.52674068516171246301382780075073242:\\ \;\;\;\;x \cdot \frac{1}{x + 1} - \frac{x + 1}{x - 1}\\ \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 -11444.73524238953541498631238937377929688:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\

\mathbf{elif}\;x \le 13113.52674068516171246301382780075073242:\\
\;\;\;\;x \cdot \frac{1}{x + 1} - \frac{x + 1}{x - 1}\\

\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 r4942817 = x;
        double r4942818 = 1.0;
        double r4942819 = r4942817 + r4942818;
        double r4942820 = r4942817 / r4942819;
        double r4942821 = r4942817 - r4942818;
        double r4942822 = r4942819 / r4942821;
        double r4942823 = r4942820 - r4942822;
        return r4942823;
}

double f(double x) {
        double r4942824 = x;
        double r4942825 = -11444.735242389535;
        bool r4942826 = r4942824 <= r4942825;
        double r4942827 = 3.0;
        double r4942828 = -r4942827;
        double r4942829 = r4942824 * r4942824;
        double r4942830 = r4942829 * r4942824;
        double r4942831 = r4942828 / r4942830;
        double r4942832 = 1.0;
        double r4942833 = r4942832 / r4942829;
        double r4942834 = r4942827 / r4942824;
        double r4942835 = r4942833 + r4942834;
        double r4942836 = r4942831 - r4942835;
        double r4942837 = 13113.526740685162;
        bool r4942838 = r4942824 <= r4942837;
        double r4942839 = 1.0;
        double r4942840 = r4942824 + r4942832;
        double r4942841 = r4942839 / r4942840;
        double r4942842 = r4942824 * r4942841;
        double r4942843 = r4942824 - r4942832;
        double r4942844 = r4942840 / r4942843;
        double r4942845 = r4942842 - r4942844;
        double r4942846 = r4942838 ? r4942845 : r4942836;
        double r4942847 = r4942826 ? r4942836 : r4942846;
        return r4942847;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -11444.735242389535 or 13113.526740685162 < x

    1. Initial program 59.3

      \[\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(1 \cdot \frac{1}{{x}^{2}} + 3 \cdot \frac{1}{x}\right)\right)}\]
    3. Simplified0.0

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

    if -11444.735242389535 < x < 13113.526740685162

    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}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -11444.73524238953541498631238937377929688:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\ \mathbf{elif}\;x \le 13113.52674068516171246301382780075073242:\\ \;\;\;\;x \cdot \frac{1}{x + 1} - \frac{x + 1}{x - 1}\\ \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 2019171 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))