Average Error: 14.6 → 0.4
Time: 12.2s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3.585968591078091 \cdot 10^{+108}:\\ \;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\ \mathbf{elif}\;x \le 3.0064938189587386 \cdot 10^{+29}:\\ \;\;\;\;\frac{\frac{-1 - x \cdot x}{x \cdot x + -1}}{-1 - x \cdot x} \cdot -2\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\ \end{array}\]
\frac{1}{x + 1} - \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -3.585968591078091 \cdot 10^{+108}:\\
\;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\

\mathbf{elif}\;x \le 3.0064938189587386 \cdot 10^{+29}:\\
\;\;\;\;\frac{\frac{-1 - x \cdot x}{x \cdot x + -1}}{-1 - x \cdot x} \cdot -2\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\

\end{array}
double f(double x) {
        double r4140563 = 1.0;
        double r4140564 = x;
        double r4140565 = r4140564 + r4140563;
        double r4140566 = r4140563 / r4140565;
        double r4140567 = r4140564 - r4140563;
        double r4140568 = r4140563 / r4140567;
        double r4140569 = r4140566 - r4140568;
        return r4140569;
}

double f(double x) {
        double r4140570 = x;
        double r4140571 = -3.585968591078091e+108;
        bool r4140572 = r4140570 <= r4140571;
        double r4140573 = -2.0;
        double r4140574 = r4140570 * r4140570;
        double r4140575 = -1.0;
        double r4140576 = r4140574 + r4140575;
        double r4140577 = sqrt(r4140576);
        double r4140578 = r4140573 / r4140577;
        double r4140579 = r4140578 / r4140577;
        double r4140580 = 3.0064938189587386e+29;
        bool r4140581 = r4140570 <= r4140580;
        double r4140582 = r4140575 - r4140574;
        double r4140583 = r4140582 / r4140576;
        double r4140584 = r4140583 / r4140582;
        double r4140585 = r4140584 * r4140573;
        double r4140586 = r4140581 ? r4140585 : r4140579;
        double r4140587 = r4140572 ? r4140579 : r4140586;
        return r4140587;
}

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 < -3.585968591078091e+108 or 3.0064938189587386e+29 < x

    1. Initial program 21.9

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

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

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

      \[\leadsto \frac{-2}{\color{blue}{-1 + x \cdot x}}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt0.8

      \[\leadsto \frac{-2}{\color{blue}{\sqrt{-1 + x \cdot x} \cdot \sqrt{-1 + x \cdot x}}}\]
    8. Applied associate-/r*0.8

      \[\leadsto \color{blue}{\frac{\frac{-2}{\sqrt{-1 + x \cdot x}}}{\sqrt{-1 + x \cdot x}}}\]

    if -3.585968591078091e+108 < x < 3.0064938189587386e+29

    1. Initial program 9.9

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

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

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

      \[\leadsto \frac{-2}{\color{blue}{-1 + x \cdot x}}\]
    6. Using strategy rm
    7. Applied flip-+2.5

      \[\leadsto \frac{-2}{\color{blue}{\frac{-1 \cdot -1 - \left(x \cdot x\right) \cdot \left(x \cdot x\right)}{-1 - x \cdot x}}}\]
    8. Applied associate-/r/2.6

      \[\leadsto \color{blue}{\frac{-2}{-1 \cdot -1 - \left(x \cdot x\right) \cdot \left(x \cdot x\right)} \cdot \left(-1 - x \cdot x\right)}\]
    9. Simplified2.6

      \[\leadsto \color{blue}{\frac{-2}{1 - \left(x \cdot x\right) \cdot \left(x \cdot x\right)}} \cdot \left(-1 - x \cdot x\right)\]
    10. Using strategy rm
    11. Applied div-inv2.6

      \[\leadsto \color{blue}{\left(-2 \cdot \frac{1}{1 - \left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)} \cdot \left(-1 - x \cdot x\right)\]
    12. Applied associate-*l*2.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3.585968591078091 \cdot 10^{+108}:\\ \;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\ \mathbf{elif}\;x \le 3.0064938189587386 \cdot 10^{+29}:\\ \;\;\;\;\frac{\frac{-1 - x \cdot x}{x \cdot x + -1}}{-1 - x \cdot x} \cdot -2\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-2}{\sqrt{x \cdot x + -1}}}{\sqrt{x \cdot x + -1}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019135 
(FPCore (x)
  :name "Asymptote A"
  (- (/ 1 (+ x 1)) (/ 1 (- x 1))))