Average Error: 29.9 → 0.1
Time: 37.0s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -13258.447866903614:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\ \mathbf{elif}\;x \le 11803.399742628724:\\ \;\;\;\;\sqrt[3]{\left(\left(\mathsf{fma}\left(-\left(x + 1\right), \frac{x + 1}{x \cdot x - 1}, \frac{x + 1}{x \cdot x - 1} \cdot \left(x + 1\right)\right) + \mathsf{fma}\left(x, \frac{1}{x + 1}, \frac{-\left(x + 1\right)}{x \cdot x - 1} \cdot \left(x + 1\right)\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -13258.447866903614:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\

\mathbf{elif}\;x \le 11803.399742628724:\\
\;\;\;\;\sqrt[3]{\left(\left(\mathsf{fma}\left(-\left(x + 1\right), \frac{x + 1}{x \cdot x - 1}, \frac{x + 1}{x \cdot x - 1} \cdot \left(x + 1\right)\right) + \mathsf{fma}\left(x, \frac{1}{x + 1}, \frac{-\left(x + 1\right)}{x \cdot x - 1} \cdot \left(x + 1\right)\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\\

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

\end{array}
double f(double x) {
        double r6491660 = x;
        double r6491661 = 1.0;
        double r6491662 = r6491660 + r6491661;
        double r6491663 = r6491660 / r6491662;
        double r6491664 = r6491660 - r6491661;
        double r6491665 = r6491662 / r6491664;
        double r6491666 = r6491663 - r6491665;
        return r6491666;
}

double f(double x) {
        double r6491667 = x;
        double r6491668 = -13258.447866903614;
        bool r6491669 = r6491667 <= r6491668;
        double r6491670 = -3.0;
        double r6491671 = r6491667 * r6491667;
        double r6491672 = r6491671 * r6491667;
        double r6491673 = r6491670 / r6491672;
        double r6491674 = 3.0;
        double r6491675 = r6491674 / r6491667;
        double r6491676 = 1.0;
        double r6491677 = r6491676 / r6491671;
        double r6491678 = r6491675 + r6491677;
        double r6491679 = r6491673 - r6491678;
        double r6491680 = 11803.399742628724;
        bool r6491681 = r6491667 <= r6491680;
        double r6491682 = r6491667 + r6491676;
        double r6491683 = -r6491682;
        double r6491684 = r6491671 - r6491676;
        double r6491685 = r6491682 / r6491684;
        double r6491686 = r6491685 * r6491682;
        double r6491687 = fma(r6491683, r6491685, r6491686);
        double r6491688 = r6491676 / r6491682;
        double r6491689 = r6491683 / r6491684;
        double r6491690 = r6491689 * r6491682;
        double r6491691 = fma(r6491667, r6491688, r6491690);
        double r6491692 = r6491687 + r6491691;
        double r6491693 = r6491667 / r6491682;
        double r6491694 = r6491667 - r6491676;
        double r6491695 = r6491682 / r6491694;
        double r6491696 = r6491693 - r6491695;
        double r6491697 = r6491692 * r6491696;
        double r6491698 = r6491697 * r6491696;
        double r6491699 = cbrt(r6491698);
        double r6491700 = r6491681 ? r6491699 : r6491679;
        double r6491701 = r6491669 ? r6491679 : r6491700;
        return r6491701;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -13258.447866903614 or 11803.399742628724 < x

    1. Initial program 59.3

      \[\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}{\frac{-3}{x \cdot \left(x \cdot x\right)} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)}\]

    if -13258.447866903614 < x < 11803.399742628724

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-cbrt-cube0.1

      \[\leadsto \color{blue}{\sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}}\]
    4. Using strategy rm
    5. Applied flip--0.1

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

      \[\leadsto \sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \color{blue}{\frac{x + 1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\]
    7. Applied div-inv0.1

      \[\leadsto \sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \left(\color{blue}{x \cdot \frac{1}{x + 1}} - \frac{x + 1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\]
    8. Applied prod-diff0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -13258.447866903614:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\ \mathbf{elif}\;x \le 11803.399742628724:\\ \;\;\;\;\sqrt[3]{\left(\left(\mathsf{fma}\left(-\left(x + 1\right), \frac{x + 1}{x \cdot x - 1}, \frac{x + 1}{x \cdot x - 1} \cdot \left(x + 1\right)\right) + \mathsf{fma}\left(x, \frac{1}{x + 1}, \frac{-\left(x + 1\right)}{x \cdot x - 1} \cdot \left(x + 1\right)\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{3}{x} + \frac{1}{x \cdot x}\right)\\ \end{array}\]

Reproduce

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