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

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

\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 r2264652 = x;
        double r2264653 = 1.0;
        double r2264654 = r2264652 + r2264653;
        double r2264655 = r2264652 / r2264654;
        double r2264656 = r2264652 - r2264653;
        double r2264657 = r2264654 / r2264656;
        double r2264658 = r2264655 - r2264657;
        return r2264658;
}

double f(double x) {
        double r2264659 = x;
        double r2264660 = -11515.964231250555;
        bool r2264661 = r2264659 <= r2264660;
        double r2264662 = -3.0;
        double r2264663 = r2264659 * r2264659;
        double r2264664 = r2264663 * r2264659;
        double r2264665 = r2264662 / r2264664;
        double r2264666 = -1.0;
        double r2264667 = r2264666 / r2264663;
        double r2264668 = r2264662 / r2264659;
        double r2264669 = r2264667 + r2264668;
        double r2264670 = r2264665 + r2264669;
        double r2264671 = 12225.500062890518;
        bool r2264672 = r2264659 <= r2264671;
        double r2264673 = 1.0;
        double r2264674 = r2264673 + r2264659;
        double r2264675 = r2264659 / r2264674;
        double r2264676 = r2264659 - r2264673;
        double r2264677 = r2264676 / r2264674;
        double r2264678 = r2264673 / r2264677;
        double r2264679 = r2264675 - r2264678;
        double r2264680 = r2264672 ? r2264679 : r2264670;
        double r2264681 = r2264661 ? r2264670 : r2264680;
        return r2264681;
}

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 < -11515.964231250555 or 12225.500062890518 < 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 -11515.964231250555 < x < 12225.500062890518

    1. Initial program 0.1

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\frac{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 -11515.964231250555:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} + \left(\frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \mathbf{elif}\;x \le 12225.500062890518:\\ \;\;\;\;\frac{x}{1 + x} - \frac{1}{\frac{x - 1}{1 + x}}\\ \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 2019155 +o rules:numerics
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))