Average Error: 30.0 → 0.2
Time: 11.2s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -13007.685004338058 \lor \neg \left(x \le 10905.852488132816\right):\\ \;\;\;\;\frac{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \left(-\left(1 \cdot \frac{1}{{x}^{2}} + \left(3 \cdot \frac{1}{x} + 3 \cdot \frac{1}{{x}^{3}}\right)\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, 1, \frac{x}{x + 1}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}{\sqrt[3]{{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right)}^{3}}}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -13007.685004338058 \lor \neg \left(x \le 10905.852488132816\right):\\
\;\;\;\;\frac{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \left(-\left(1 \cdot \frac{1}{{x}^{2}} + \left(3 \cdot \frac{1}{x} + 3 \cdot \frac{1}{{x}^{3}}\right)\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, 1, \frac{x}{x + 1}\right)}\\

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

\end{array}
double f(double x) {
        double r127606 = x;
        double r127607 = 1.0;
        double r127608 = r127606 + r127607;
        double r127609 = r127606 / r127608;
        double r127610 = r127606 - r127607;
        double r127611 = r127608 / r127610;
        double r127612 = r127609 - r127611;
        return r127612;
}

double f(double x) {
        double r127613 = x;
        double r127614 = -13007.685004338058;
        bool r127615 = r127613 <= r127614;
        double r127616 = 10905.852488132816;
        bool r127617 = r127613 <= r127616;
        double r127618 = !r127617;
        bool r127619 = r127615 || r127618;
        double r127620 = 1.0;
        double r127621 = r127613 + r127620;
        double r127622 = r127613 / r127621;
        double r127623 = r127613 - r127620;
        double r127624 = r127621 / r127623;
        double r127625 = r127622 + r127624;
        double r127626 = 1.0;
        double r127627 = 2.0;
        double r127628 = pow(r127613, r127627);
        double r127629 = r127626 / r127628;
        double r127630 = r127620 * r127629;
        double r127631 = 3.0;
        double r127632 = r127626 / r127613;
        double r127633 = r127631 * r127632;
        double r127634 = 3.0;
        double r127635 = pow(r127613, r127634);
        double r127636 = r127626 / r127635;
        double r127637 = r127631 * r127636;
        double r127638 = r127633 + r127637;
        double r127639 = r127630 + r127638;
        double r127640 = -r127639;
        double r127641 = r127625 * r127640;
        double r127642 = fma(r127624, r127626, r127622);
        double r127643 = r127641 / r127642;
        double r127644 = r127622 - r127624;
        double r127645 = r127625 * r127644;
        double r127646 = pow(r127625, r127634);
        double r127647 = cbrt(r127646);
        double r127648 = r127645 / r127647;
        double r127649 = r127619 ? r127643 : r127648;
        return r127649;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -13007.685004338058 or 10905.852488132816 < x

    1. Initial program 59.2

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

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

      \[\leadsto \color{blue}{\frac{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{1}{\frac{x - 1}{x + 1}} \cdot \frac{1}{\frac{x - 1}{x + 1}}}{\frac{x}{x + 1} + \frac{1}{\frac{x - 1}{x + 1}}}}\]
    6. Simplified59.2

      \[\leadsto \frac{\color{blue}{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}}{\frac{x}{x + 1} + \frac{1}{\frac{x - 1}{x + 1}}}\]
    7. Simplified59.2

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

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

    if -13007.685004338058 < x < 10905.852488132816

    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}}}\]
    4. Using strategy rm
    5. Applied flip--0.1

      \[\leadsto \color{blue}{\frac{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{1}{\frac{x - 1}{x + 1}} \cdot \frac{1}{\frac{x - 1}{x + 1}}}{\frac{x}{x + 1} + \frac{1}{\frac{x - 1}{x + 1}}}}\]
    6. Simplified0.1

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

      \[\leadsto \frac{\left(\frac{x}{x + 1} + \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}{\color{blue}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, 1, \frac{x}{x + 1}\right)}}\]
    8. Using strategy rm
    9. Applied add-cbrt-cube0.1

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

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

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

Reproduce

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