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

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

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

\end{array}
double f(double x) {
        double r3369007 = x;
        double r3369008 = 1.0;
        double r3369009 = r3369007 + r3369008;
        double r3369010 = r3369007 / r3369009;
        double r3369011 = r3369007 - r3369008;
        double r3369012 = r3369009 / r3369011;
        double r3369013 = r3369010 - r3369012;
        return r3369013;
}

double f(double x) {
        double r3369014 = x;
        double r3369015 = -10256.035048410798;
        bool r3369016 = r3369014 <= r3369015;
        double r3369017 = -3.0;
        double r3369018 = r3369017 / r3369014;
        double r3369019 = -1.0;
        double r3369020 = r3369014 * r3369014;
        double r3369021 = r3369019 / r3369020;
        double r3369022 = r3369018 + r3369021;
        double r3369023 = r3369020 * r3369014;
        double r3369024 = r3369017 / r3369023;
        double r3369025 = r3369022 + r3369024;
        double r3369026 = 12063.169734821076;
        bool r3369027 = r3369014 <= r3369026;
        double r3369028 = 1.0;
        double r3369029 = r3369028 + r3369014;
        double r3369030 = r3369014 / r3369029;
        double r3369031 = r3369014 - r3369028;
        double r3369032 = r3369029 / r3369031;
        double r3369033 = r3369030 - r3369032;
        double r3369034 = r3369027 ? r3369033 : r3369025;
        double r3369035 = r3369016 ? r3369025 : r3369034;
        return r3369035;
}

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 < -10256.035048410798 or 12063.169734821076 < 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 -10256.035048410798 < x < 12063.169734821076

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.1

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

      \[\leadsto \color{blue}{\frac{\frac{x}{1}}{x + 1}} - \frac{x + 1}{x - 1}\]
    5. Simplified0.1

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

Reproduce

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