Average Error: 28.9 → 0.1
Time: 21.7s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -10953.989244522425:\\ \;\;\;\;\frac{-3}{x} + \left(\frac{\frac{-3}{x}}{x \cdot x} + \frac{-1}{x \cdot x}\right)\\ \mathbf{elif}\;x \le 10392.525291699138:\\ \;\;\;\;\frac{x}{1 + x} - \left(1 + x\right) \cdot \frac{1 + x}{x \cdot x - 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{-3}{x} + \left(\frac{\frac{-3}{x}}{x \cdot x} + \frac{-1}{x \cdot x}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -10953.989244522425:\\
\;\;\;\;\frac{-3}{x} + \left(\frac{\frac{-3}{x}}{x \cdot x} + \frac{-1}{x \cdot x}\right)\\

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

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

\end{array}
double f(double x) {
        double r5779740 = x;
        double r5779741 = 1.0;
        double r5779742 = r5779740 + r5779741;
        double r5779743 = r5779740 / r5779742;
        double r5779744 = r5779740 - r5779741;
        double r5779745 = r5779742 / r5779744;
        double r5779746 = r5779743 - r5779745;
        return r5779746;
}

double f(double x) {
        double r5779747 = x;
        double r5779748 = -10953.989244522425;
        bool r5779749 = r5779747 <= r5779748;
        double r5779750 = -3.0;
        double r5779751 = r5779750 / r5779747;
        double r5779752 = r5779747 * r5779747;
        double r5779753 = r5779751 / r5779752;
        double r5779754 = -1.0;
        double r5779755 = r5779754 / r5779752;
        double r5779756 = r5779753 + r5779755;
        double r5779757 = r5779751 + r5779756;
        double r5779758 = 10392.525291699138;
        bool r5779759 = r5779747 <= r5779758;
        double r5779760 = 1.0;
        double r5779761 = r5779760 + r5779747;
        double r5779762 = r5779747 / r5779761;
        double r5779763 = r5779752 - r5779760;
        double r5779764 = r5779761 / r5779763;
        double r5779765 = r5779761 * r5779764;
        double r5779766 = r5779762 - r5779765;
        double r5779767 = r5779759 ? r5779766 : r5779757;
        double r5779768 = r5779749 ? r5779757 : r5779767;
        return r5779768;
}

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 < -10953.989244522425 or 10392.525291699138 < x

    1. Initial program 59.4

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

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\frac{x + 1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)}\]
    5. 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)}\]
    6. Simplified0.0

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

    if -10953.989244522425 < x < 10392.525291699138

    1. Initial program 0.1

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

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

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

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

Reproduce

herbie shell --seed 2019164 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))