Average Error: 28.8 → 0.1
Time: 12.3s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 3.906903492056912341467977967113256454468 \cdot 10^{-5}:\\ \;\;\;\;-\left(\frac{3}{x} + \left(\frac{3}{{x}^{3}} + \frac{1}{x \cdot x}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(x, x, 1 \cdot \left(x + 1\right)\right), -\frac{x + 1}{{x}^{3} - {1}^{3}}, \frac{\frac{x}{\sqrt[3]{x + 1}}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right) + \frac{x + 1}{{x}^{3} - {1}^{3}} \cdot \left(\left(-\mathsf{fma}\left(x, x, 1 \cdot \left(x + 1\right)\right)\right) + \mathsf{fma}\left(x, x, 1 \cdot \left(x + 1\right)\right)\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;\frac{x}{x + 1} - \frac{x + 1}{x - 1} \le 3.906903492056912341467977967113256454468 \cdot 10^{-5}:\\
\;\;\;\;-\left(\frac{3}{x} + \left(\frac{3}{{x}^{3}} + \frac{1}{x \cdot x}\right)\right)\\

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

\end{array}
double f(double x) {
        double r118723 = x;
        double r118724 = 1.0;
        double r118725 = r118723 + r118724;
        double r118726 = r118723 / r118725;
        double r118727 = r118723 - r118724;
        double r118728 = r118725 / r118727;
        double r118729 = r118726 - r118728;
        return r118729;
}

double f(double x) {
        double r118730 = x;
        double r118731 = 1.0;
        double r118732 = r118730 + r118731;
        double r118733 = r118730 / r118732;
        double r118734 = r118730 - r118731;
        double r118735 = r118732 / r118734;
        double r118736 = r118733 - r118735;
        double r118737 = 3.9069034920569123e-05;
        bool r118738 = r118736 <= r118737;
        double r118739 = 3.0;
        double r118740 = r118739 / r118730;
        double r118741 = 3.0;
        double r118742 = pow(r118730, r118741);
        double r118743 = r118739 / r118742;
        double r118744 = r118730 * r118730;
        double r118745 = r118731 / r118744;
        double r118746 = r118743 + r118745;
        double r118747 = r118740 + r118746;
        double r118748 = -r118747;
        double r118749 = r118731 * r118732;
        double r118750 = fma(r118730, r118730, r118749);
        double r118751 = pow(r118731, r118741);
        double r118752 = r118742 - r118751;
        double r118753 = r118732 / r118752;
        double r118754 = -r118753;
        double r118755 = cbrt(r118732);
        double r118756 = r118730 / r118755;
        double r118757 = r118731 + r118730;
        double r118758 = cbrt(r118757);
        double r118759 = r118758 * r118758;
        double r118760 = r118756 / r118759;
        double r118761 = fma(r118750, r118754, r118760);
        double r118762 = -r118750;
        double r118763 = r118762 + r118750;
        double r118764 = r118753 * r118763;
        double r118765 = r118761 + r118764;
        double r118766 = r118738 ? r118748 : r118765;
        return r118766;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))) < 3.9069034920569123e-05

    1. Initial program 59.1

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

      \[\leadsto \color{blue}{\sqrt{\frac{x}{x + 1} - \frac{x + 1}{x - 1}} \cdot \sqrt{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}}\]
    4. Taylor expanded around inf 0.5

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

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

    if 3.9069034920569123e-05 < (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0)))

    1. Initial program 0.1

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

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\frac{x + 1}{{x}^{3} - {1}^{3}} \cdot \left(x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)\right)}\]
    5. Applied add-cube-cbrt0.1

      \[\leadsto \frac{x}{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \frac{x + 1}{{x}^{3} - {1}^{3}} \cdot \left(x \cdot x + \left(1 \cdot 1 + x \cdot 1\right)\right)\]
    6. Applied *-un-lft-identity0.1

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

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

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

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

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

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

Reproduce

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