Average Error: 29.3 → 0.0
Time: 3.7s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1894516243.7978997 \lor \neg \left(x \le 115896.898570377947\right):\\ \;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\left(3 \cdot x + 1\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -1894516243.7978997 \lor \neg \left(x \le 115896.898570377947\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\

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

\end{array}
double f(double x) {
        double r118775 = x;
        double r118776 = 1.0;
        double r118777 = r118775 + r118776;
        double r118778 = r118775 / r118777;
        double r118779 = r118775 - r118776;
        double r118780 = r118777 / r118779;
        double r118781 = r118778 - r118780;
        return r118781;
}

double f(double x) {
        double r118782 = x;
        double r118783 = -1894516243.7978997;
        bool r118784 = r118782 <= r118783;
        double r118785 = 115896.89857037795;
        bool r118786 = r118782 <= r118785;
        double r118787 = !r118786;
        bool r118788 = r118784 || r118787;
        double r118789 = 1.0;
        double r118790 = -r118789;
        double r118791 = 2.0;
        double r118792 = pow(r118782, r118791);
        double r118793 = r118790 / r118792;
        double r118794 = 3.0;
        double r118795 = r118794 / r118782;
        double r118796 = r118793 - r118795;
        double r118797 = 3.0;
        double r118798 = pow(r118782, r118797);
        double r118799 = r118794 / r118798;
        double r118800 = r118796 - r118799;
        double r118801 = r118794 * r118782;
        double r118802 = r118801 + r118789;
        double r118803 = -r118802;
        double r118804 = r118782 + r118789;
        double r118805 = r118782 - r118789;
        double r118806 = r118804 * r118805;
        double r118807 = r118803 / r118806;
        double r118808 = r118788 ? r118800 : r118807;
        return r118808;
}

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 < -1894516243.7978997 or 115896.89857037795 < x

    1. Initial program 59.7

      \[\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}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}}\]

    if -1894516243.7978997 < x < 115896.89857037795

    1. Initial program 0.2

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.2

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

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

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

      \[\leadsto \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)} \cdot \frac{\sqrt[3]{x}}{x + 1} - \frac{x + 1}{x - 1}\]
    7. Using strategy rm
    8. Applied associate-*r/0.3

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

      \[\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(x + 1\right) \cdot \left(x + 1\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}}\]
    10. Simplified0.2

      \[\leadsto \frac{\color{blue}{\left(x \cdot \left(x + \left(-1\right)\right) - 1 \cdot \left(x + 1\right)\right) - x \cdot \left(x + 1\right)}}{\left(x + 1\right) \cdot \left(x - 1\right)}\]
    11. Taylor expanded around 0 0.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1894516243.7978997 \lor \neg \left(x \le 115896.898570377947\right):\\ \;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\left(3 \cdot x + 1\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020036 
(FPCore (x)
  :name "Asymptote C"
  :precision binary64
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))