Average Error: 29.6 → 0.1
Time: 30.8s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -14987.58593525831747683696448802947998047:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\ \mathbf{elif}\;x \le 13279.35072476002096664160490036010742188:\\ \;\;\;\;\frac{\left(x - 1\right) \cdot x - \left(1 + x\right) \cdot \left(1 + x\right)}{\left(1 + x\right) \cdot \left(x - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -14987.58593525831747683696448802947998047:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\

\mathbf{elif}\;x \le 13279.35072476002096664160490036010742188:\\
\;\;\;\;\frac{\left(x - 1\right) \cdot x - \left(1 + x\right) \cdot \left(1 + x\right)}{\left(1 + x\right) \cdot \left(x - 1\right)}\\

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

\end{array}
double f(double x) {
        double r3861699 = x;
        double r3861700 = 1.0;
        double r3861701 = r3861699 + r3861700;
        double r3861702 = r3861699 / r3861701;
        double r3861703 = r3861699 - r3861700;
        double r3861704 = r3861701 / r3861703;
        double r3861705 = r3861702 - r3861704;
        return r3861705;
}

double f(double x) {
        double r3861706 = x;
        double r3861707 = -14987.585935258317;
        bool r3861708 = r3861706 <= r3861707;
        double r3861709 = 1.0;
        double r3861710 = -r3861709;
        double r3861711 = r3861706 * r3861706;
        double r3861712 = r3861710 / r3861711;
        double r3861713 = 3.0;
        double r3861714 = r3861711 * r3861706;
        double r3861715 = r3861713 / r3861714;
        double r3861716 = r3861712 - r3861715;
        double r3861717 = r3861713 / r3861706;
        double r3861718 = r3861716 - r3861717;
        double r3861719 = 13279.350724760021;
        bool r3861720 = r3861706 <= r3861719;
        double r3861721 = r3861706 - r3861709;
        double r3861722 = r3861721 * r3861706;
        double r3861723 = r3861709 + r3861706;
        double r3861724 = r3861723 * r3861723;
        double r3861725 = r3861722 - r3861724;
        double r3861726 = r3861723 * r3861721;
        double r3861727 = r3861725 / r3861726;
        double r3861728 = r3861720 ? r3861727 : r3861718;
        double r3861729 = r3861708 ? r3861718 : r3861728;
        return r3861729;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -14987.585935258317 or 13279.350724760021 < 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(1 \cdot \frac{1}{{x}^{2}} + \left(3 \cdot \frac{1}{x} + 3 \cdot \frac{1}{{x}^{3}}\right)\right)}\]
    3. Simplified0.0

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

    if -14987.585935258317 < x < 13279.350724760021

    1. Initial program 0.1

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

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

      \[\leadsto \left(\sqrt[3]{\frac{x}{x + 1}} \cdot \sqrt[3]{\frac{x}{x + 1}}\right) \cdot \color{blue}{\frac{\sqrt[3]{x}}{\sqrt[3]{x + 1}}} - \frac{x + 1}{x - 1}\]
    6. Applied cbrt-div0.1

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

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

      \[\leadsto \color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{x + 1}} - \frac{x + 1}{x - 1}\]
    9. Applied frac-times0.1

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -14987.58593525831747683696448802947998047:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\ \mathbf{elif}\;x \le 13279.35072476002096664160490036010742188:\\ \;\;\;\;\frac{\left(x - 1\right) \cdot x - \left(1 + x\right) \cdot \left(1 + x\right)}{\left(1 + x\right) \cdot \left(x - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{\left(x \cdot x\right) \cdot x}\right) - \frac{3}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019200 
(FPCore (x)
  :name "Asymptote C"
  (- (/ x (+ x 1.0)) (/ (+ x 1.0) (- x 1.0))))