Average Error: 14.3 → 0.0
Time: 6.2s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -228.13929609903033 \lor \neg \left(x \le 219.779744927135624\right):\\ \;\;\;\;\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, {x}^{\left(-2\right)}, 2 \cdot \frac{1}{{x}^{4}}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{{x}^{3} + {1}^{3}}, x \cdot x + \left(1 \cdot 1 - x \cdot 1\right), -\frac{1}{x - 1}\right)\\ \end{array}\]
\frac{1}{x + 1} - \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -228.13929609903033 \lor \neg \left(x \le 219.779744927135624\right):\\
\;\;\;\;\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, {x}^{\left(-2\right)}, 2 \cdot \frac{1}{{x}^{4}}\right)\\

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

\end{array}
double f(double x) {
        double r153597 = 1.0;
        double r153598 = x;
        double r153599 = r153598 + r153597;
        double r153600 = r153597 / r153599;
        double r153601 = r153598 - r153597;
        double r153602 = r153597 / r153601;
        double r153603 = r153600 - r153602;
        return r153603;
}

double f(double x) {
        double r153604 = x;
        double r153605 = -228.13929609903033;
        bool r153606 = r153604 <= r153605;
        double r153607 = 219.77974492713562;
        bool r153608 = r153604 <= r153607;
        double r153609 = !r153608;
        bool r153610 = r153606 || r153609;
        double r153611 = 2.0;
        double r153612 = -r153611;
        double r153613 = 6.0;
        double r153614 = pow(r153604, r153613);
        double r153615 = r153612 / r153614;
        double r153616 = 2.0;
        double r153617 = -r153616;
        double r153618 = pow(r153604, r153617);
        double r153619 = 1.0;
        double r153620 = 4.0;
        double r153621 = pow(r153604, r153620);
        double r153622 = r153619 / r153621;
        double r153623 = r153611 * r153622;
        double r153624 = fma(r153611, r153618, r153623);
        double r153625 = r153615 - r153624;
        double r153626 = 1.0;
        double r153627 = 3.0;
        double r153628 = pow(r153604, r153627);
        double r153629 = pow(r153626, r153627);
        double r153630 = r153628 + r153629;
        double r153631 = r153626 / r153630;
        double r153632 = r153604 * r153604;
        double r153633 = r153626 * r153626;
        double r153634 = r153604 * r153626;
        double r153635 = r153633 - r153634;
        double r153636 = r153632 + r153635;
        double r153637 = r153604 - r153626;
        double r153638 = r153626 / r153637;
        double r153639 = -r153638;
        double r153640 = fma(r153631, r153636, r153639);
        double r153641 = r153610 ? r153625 : r153640;
        return r153641;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -228.13929609903033 or 219.77974492713562 < x

    1. Initial program 28.8

      \[\frac{1}{x + 1} - \frac{1}{x - 1}\]
    2. Taylor expanded around inf 0.7

      \[\leadsto \color{blue}{-\left(2 \cdot \frac{1}{{x}^{6}} + \left(2 \cdot \frac{1}{{x}^{2}} + 2 \cdot \frac{1}{{x}^{4}}\right)\right)}\]
    3. Simplified0.7

      \[\leadsto \color{blue}{\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, \frac{1}{{x}^{2}}, 2 \cdot \frac{1}{{x}^{4}}\right)}\]
    4. Using strategy rm
    5. Applied pow-flip0.0

      \[\leadsto \frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, \color{blue}{{x}^{\left(-2\right)}}, 2 \cdot \frac{1}{{x}^{4}}\right)\]

    if -228.13929609903033 < x < 219.77974492713562

    1. Initial program 0.0

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

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

      \[\leadsto \color{blue}{\frac{1}{{x}^{3} + {1}^{3}} \cdot \left(x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)\right)} - \frac{1}{x - 1}\]
    5. Applied fma-neg0.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -228.13929609903033 \lor \neg \left(x \le 219.779744927135624\right):\\ \;\;\;\;\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, {x}^{\left(-2\right)}, 2 \cdot \frac{1}{{x}^{4}}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{{x}^{3} + {1}^{3}}, x \cdot x + \left(1 \cdot 1 - x \cdot 1\right), -\frac{1}{x - 1}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020036 +o rules:numerics
(FPCore (x)
  :name "Asymptote A"
  :precision binary64
  (- (/ 1 (+ x 1)) (/ 1 (- x 1))))