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

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

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

\end{array}
double f(double x) {
        double r2080261 = x;
        double r2080262 = 1.0;
        double r2080263 = r2080261 + r2080262;
        double r2080264 = r2080261 / r2080263;
        double r2080265 = r2080261 - r2080262;
        double r2080266 = r2080263 / r2080265;
        double r2080267 = r2080264 - r2080266;
        return r2080267;
}

double f(double x) {
        double r2080268 = x;
        double r2080269 = -12303.308137983877;
        bool r2080270 = r2080268 <= r2080269;
        double r2080271 = -3.0;
        double r2080272 = r2080271 / r2080268;
        double r2080273 = -1.0;
        double r2080274 = r2080268 * r2080268;
        double r2080275 = r2080273 / r2080274;
        double r2080276 = r2080272 + r2080275;
        double r2080277 = r2080272 / r2080274;
        double r2080278 = r2080276 + r2080277;
        double r2080279 = 13311.743891071605;
        bool r2080280 = r2080268 <= r2080279;
        double r2080281 = 1.0;
        double r2080282 = r2080274 - r2080281;
        double r2080283 = r2080268 / r2080282;
        double r2080284 = r2080268 - r2080281;
        double r2080285 = r2080283 * r2080284;
        double r2080286 = r2080268 + r2080281;
        double r2080287 = r2080286 / r2080284;
        double r2080288 = r2080285 - r2080287;
        double r2080289 = r2080280 ? r2080288 : r2080278;
        double r2080290 = r2080270 ? r2080278 : r2080289;
        return r2080290;
}

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

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

    if -12303.308137983877 < x < 13311.743891071605

    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}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x - 1}}} - \frac{x + 1}{x - 1}\]
    4. Applied associate-/r/0.1

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

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

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

Reproduce

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