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

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

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

\end{array}
double f(double x) {
        double r4993681 = x;
        double r4993682 = 1.0;
        double r4993683 = r4993681 + r4993682;
        double r4993684 = r4993681 / r4993683;
        double r4993685 = r4993681 - r4993682;
        double r4993686 = r4993683 / r4993685;
        double r4993687 = r4993684 - r4993686;
        return r4993687;
}

double f(double x) {
        double r4993688 = x;
        double r4993689 = -11444.735242389535;
        bool r4993690 = r4993688 <= r4993689;
        double r4993691 = 3.0;
        double r4993692 = r4993688 * r4993688;
        double r4993693 = r4993692 * r4993688;
        double r4993694 = r4993691 / r4993693;
        double r4993695 = -r4993694;
        double r4993696 = r4993691 / r4993688;
        double r4993697 = 1.0;
        double r4993698 = r4993697 / r4993688;
        double r4993699 = r4993698 / r4993688;
        double r4993700 = r4993696 + r4993699;
        double r4993701 = r4993695 - r4993700;
        double r4993702 = 13113.526740685162;
        bool r4993703 = r4993688 <= r4993702;
        double r4993704 = 1.0;
        double r4993705 = r4993688 + r4993697;
        double r4993706 = r4993704 / r4993705;
        double r4993707 = r4993688 * r4993706;
        double r4993708 = r4993688 - r4993697;
        double r4993709 = r4993705 / r4993708;
        double r4993710 = r4993707 - r4993709;
        double r4993711 = r4993703 ? r4993710 : r4993701;
        double r4993712 = r4993690 ? r4993701 : r4993711;
        return r4993712;
}

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

Reproduce

herbie shell --seed 2019171 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))