Average Error: 29.3 → 0.1
Time: 29.4s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -10766.895377459747:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \mathbf{elif}\;x \le 7931.624520828369:\\ \;\;\;\;\frac{\frac{x}{1 + x} \cdot \frac{x}{1 + x}}{\frac{x}{1 + x} + \frac{1 + x}{x - 1}} - \frac{\frac{1 + x}{x - 1} \cdot \frac{1 + x}{x - 1}}{\frac{x}{1 + x} + \frac{1 + x}{x - 1}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \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 -10766.895377459747:\\
\;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\

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

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

\end{array}
double f(double x) {
        double r4391798 = x;
        double r4391799 = 1.0;
        double r4391800 = r4391798 + r4391799;
        double r4391801 = r4391798 / r4391800;
        double r4391802 = r4391798 - r4391799;
        double r4391803 = r4391800 / r4391802;
        double r4391804 = r4391801 - r4391803;
        return r4391804;
}

double f(double x) {
        double r4391805 = x;
        double r4391806 = -10766.895377459747;
        bool r4391807 = r4391805 <= r4391806;
        double r4391808 = -1.0;
        double r4391809 = r4391805 * r4391805;
        double r4391810 = r4391808 / r4391809;
        double r4391811 = r4391810 / r4391805;
        double r4391812 = 3.0;
        double r4391813 = -3.0;
        double r4391814 = r4391813 / r4391805;
        double r4391815 = r4391810 + r4391814;
        double r4391816 = fma(r4391811, r4391812, r4391815);
        double r4391817 = 7931.624520828369;
        bool r4391818 = r4391805 <= r4391817;
        double r4391819 = 1.0;
        double r4391820 = r4391819 + r4391805;
        double r4391821 = r4391805 / r4391820;
        double r4391822 = r4391821 * r4391821;
        double r4391823 = r4391805 - r4391819;
        double r4391824 = r4391820 / r4391823;
        double r4391825 = r4391821 + r4391824;
        double r4391826 = r4391822 / r4391825;
        double r4391827 = r4391824 * r4391824;
        double r4391828 = r4391827 / r4391825;
        double r4391829 = r4391826 - r4391828;
        double r4391830 = r4391818 ? r4391829 : r4391816;
        double r4391831 = r4391807 ? r4391816 : r4391830;
        return r4391831;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -10766.895377459747 or 7931.624520828369 < x

    1. Initial program 59.1

      \[\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.3

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

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

    if -10766.895377459747 < x < 7931.624520828369

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{\frac{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{x + 1}{x - 1} \cdot \frac{x + 1}{x - 1}}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}}\]
    4. Using strategy rm
    5. Applied div-sub0.1

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

Reproduce

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