Average Error: 28.6 → 0.0
Time: 13.9s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3.823156336026761 \cdot 10^{+17}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \mathbf{elif}\;x \le 3512926.0072915074:\\ \;\;\;\;\frac{-3 \cdot x + -1}{\left(x - 1\right) \cdot \left(1 + x\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -3.823156336026761 \cdot 10^{+17}:\\
\;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\

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

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

\end{array}
double f(double x) {
        double r5255183 = x;
        double r5255184 = 1.0;
        double r5255185 = r5255183 + r5255184;
        double r5255186 = r5255183 / r5255185;
        double r5255187 = r5255183 - r5255184;
        double r5255188 = r5255185 / r5255187;
        double r5255189 = r5255186 - r5255188;
        return r5255189;
}

double f(double x) {
        double r5255190 = x;
        double r5255191 = -3.823156336026761e+17;
        bool r5255192 = r5255190 <= r5255191;
        double r5255193 = -1.0;
        double r5255194 = r5255190 * r5255190;
        double r5255195 = r5255193 / r5255194;
        double r5255196 = 3.0;
        double r5255197 = r5255196 / r5255190;
        double r5255198 = r5255195 - r5255197;
        double r5255199 = r5255197 / r5255194;
        double r5255200 = r5255198 - r5255199;
        double r5255201 = 3512926.0072915074;
        bool r5255202 = r5255190 <= r5255201;
        double r5255203 = -3.0;
        double r5255204 = r5255203 * r5255190;
        double r5255205 = r5255204 + r5255193;
        double r5255206 = 1.0;
        double r5255207 = r5255190 - r5255206;
        double r5255208 = r5255206 + r5255190;
        double r5255209 = r5255207 * r5255208;
        double r5255210 = r5255205 / r5255209;
        double r5255211 = r5255202 ? r5255210 : r5255200;
        double r5255212 = r5255192 ? r5255200 : r5255211;
        return r5255212;
}

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.823156336026761e+17 or 3512926.0072915074 < x

    1. Initial program 60.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Taylor expanded around inf 0.3

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

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

    if -3.823156336026761e+17 < x < 3512926.0072915074

    1. Initial program 0.9

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

      \[\leadsto \color{blue}{\frac{x \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(x + 1\right)}{\left(x + 1\right) \cdot \left(x - 1\right)}}\]
    4. 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)}\]
    5. Simplified0.0

      \[\leadsto \frac{\color{blue}{-1 + x \cdot -3}}{\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 -3.823156336026761 \cdot 10^{+17}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \mathbf{elif}\;x \le 3512926.0072915074:\\ \;\;\;\;\frac{-3 \cdot x + -1}{\left(x - 1\right) \cdot \left(1 + x\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-1}{x \cdot x} - \frac{3}{x}\right) - \frac{\frac{3}{x}}{x \cdot x}\\ \end{array}\]

Reproduce

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