Average Error: 29.4 → 0.1
Time: 15.3s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -14718.56289520824611827265471220016479492 \lor \neg \left(x \le 7392.742446615246080909855663776397705078\right):\\ \;\;\;\;\left(-\frac{1}{x \cdot x}\right) - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + 1} - \frac{1}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \frac{1 + x}{\sqrt[3]{x - 1}}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -14718.56289520824611827265471220016479492 \lor \neg \left(x \le 7392.742446615246080909855663776397705078\right):\\
\;\;\;\;\left(-\frac{1}{x \cdot x}\right) - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + 1} - \frac{1}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \frac{1 + x}{\sqrt[3]{x - 1}}\\

\end{array}
double f(double x) {
        double r88145 = x;
        double r88146 = 1.0;
        double r88147 = r88145 + r88146;
        double r88148 = r88145 / r88147;
        double r88149 = r88145 - r88146;
        double r88150 = r88147 / r88149;
        double r88151 = r88148 - r88150;
        return r88151;
}

double f(double x) {
        double r88152 = x;
        double r88153 = -14718.562895208246;
        bool r88154 = r88152 <= r88153;
        double r88155 = 7392.742446615246;
        bool r88156 = r88152 <= r88155;
        double r88157 = !r88156;
        bool r88158 = r88154 || r88157;
        double r88159 = 1.0;
        double r88160 = r88152 * r88152;
        double r88161 = r88159 / r88160;
        double r88162 = -r88161;
        double r88163 = 3.0;
        double r88164 = r88163 / r88152;
        double r88165 = 3.0;
        double r88166 = pow(r88152, r88165);
        double r88167 = r88163 / r88166;
        double r88168 = r88164 + r88167;
        double r88169 = r88162 - r88168;
        double r88170 = r88152 + r88159;
        double r88171 = r88152 / r88170;
        double r88172 = 1.0;
        double r88173 = r88152 - r88159;
        double r88174 = cbrt(r88173);
        double r88175 = r88174 * r88174;
        double r88176 = r88172 / r88175;
        double r88177 = r88159 + r88152;
        double r88178 = r88177 / r88174;
        double r88179 = r88176 * r88178;
        double r88180 = r88171 - r88179;
        double r88181 = r88158 ? r88169 : r88180;
        return r88181;
}

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 < -14718.562895208246 or 7392.742446615246 < x

    1. Initial program 59.3

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified59.3

      \[\leadsto \color{blue}{\frac{x}{x + 1} - \frac{1 + x}{x - 1}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt60.1

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

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\frac{1}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \frac{1 + x}{\sqrt[3]{x - 1}}}\]
    7. 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)}\]
    8. Simplified0.0

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

    if -14718.562895208246 < x < 7392.742446615246

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified0.1

      \[\leadsto \color{blue}{\frac{x}{x + 1} - \frac{1 + x}{x - 1}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt0.1

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

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

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

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

Reproduce

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