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

\mathbf{else}:\\
\;\;\;\;\frac{1}{x + 1} - \frac{1}{x - 1}\\

\end{array}
double f(double x) {
        double r138546 = 1.0;
        double r138547 = x;
        double r138548 = r138547 + r138546;
        double r138549 = r138546 / r138548;
        double r138550 = r138547 - r138546;
        double r138551 = r138546 / r138550;
        double r138552 = r138549 - r138551;
        return r138552;
}

double f(double x) {
        double r138553 = x;
        double r138554 = -224.81714758788752;
        bool r138555 = r138553 <= r138554;
        double r138556 = 309.0060346846482;
        bool r138557 = r138553 <= r138556;
        double r138558 = !r138557;
        bool r138559 = r138555 || r138558;
        double r138560 = 2.0;
        double r138561 = -r138560;
        double r138562 = 6.0;
        double r138563 = pow(r138553, r138562);
        double r138564 = r138561 / r138563;
        double r138565 = 2.0;
        double r138566 = -r138565;
        double r138567 = pow(r138553, r138566);
        double r138568 = 1.0;
        double r138569 = 4.0;
        double r138570 = pow(r138553, r138569);
        double r138571 = r138568 / r138570;
        double r138572 = r138560 * r138571;
        double r138573 = fma(r138560, r138567, r138572);
        double r138574 = r138564 - r138573;
        double r138575 = 1.0;
        double r138576 = r138553 * r138553;
        double r138577 = r138575 * r138575;
        double r138578 = r138576 - r138577;
        double r138579 = r138575 / r138578;
        double r138580 = r138553 + r138575;
        double r138581 = -r138580;
        double r138582 = r138581 + r138580;
        double r138583 = r138579 * r138582;
        double r138584 = r138574 + r138583;
        double r138585 = r138575 / r138580;
        double r138586 = r138553 - r138575;
        double r138587 = r138575 / r138586;
        double r138588 = r138585 - r138587;
        double r138589 = r138559 ? r138584 : r138588;
        return r138589;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -224.81714758788752 or 309.0060346846482 < x

    1. Initial program 29.0

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

      \[\leadsto \frac{1}{x + 1} - \frac{1}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x + 1}}}\]
    4. Applied associate-/r/58.7

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

      \[\leadsto \frac{1}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x - 1}}} - \frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)\]
    6. Applied associate-/r/29.0

      \[\leadsto \color{blue}{\frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(x - 1\right)} - \frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)\]
    7. Applied prod-diff27.9

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

      \[\leadsto \mathsf{fma}\left(\frac{1}{x \cdot x - 1 \cdot 1}, x - 1, -\left(x + 1\right) \cdot \frac{1}{x \cdot x - 1 \cdot 1}\right) + \color{blue}{\frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(\left(-\left(x + 1\right)\right) + \left(x + 1\right)\right)}\]
    9. Taylor expanded around inf 0.8

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

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

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

    if -224.81714758788752 < x < 309.0060346846482

    1. Initial program 0.0

      \[\frac{1}{x + 1} - \frac{1}{x - 1}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.0

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

Reproduce

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