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

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

\end{array}
double f(double x) {
        double r106436 = x;
        double r106437 = 1.0;
        double r106438 = r106436 + r106437;
        double r106439 = r106436 / r106438;
        double r106440 = r106436 - r106437;
        double r106441 = r106438 / r106440;
        double r106442 = r106439 - r106441;
        return r106442;
}

double f(double x) {
        double r106443 = x;
        double r106444 = -11755.062723959316;
        bool r106445 = r106443 <= r106444;
        double r106446 = 14618.947191620917;
        bool r106447 = r106443 <= r106446;
        double r106448 = !r106447;
        bool r106449 = r106445 || r106448;
        double r106450 = 3.0;
        double r106451 = r106450 / r106443;
        double r106452 = 1.0;
        double r106453 = r106443 * r106443;
        double r106454 = r106452 / r106453;
        double r106455 = r106451 + r106454;
        double r106456 = 3.0;
        double r106457 = pow(r106443, r106456);
        double r106458 = r106450 / r106457;
        double r106459 = r106455 + r106458;
        double r106460 = -r106459;
        double r106461 = r106443 + r106452;
        double r106462 = r106443 / r106461;
        double r106463 = r106462 * r106462;
        double r106464 = r106443 - r106452;
        double r106465 = r106461 / r106464;
        double r106466 = r106465 * r106465;
        double r106467 = r106463 - r106466;
        double r106468 = r106462 + r106465;
        double r106469 = r106467 / r106468;
        double r106470 = r106449 ? r106460 : r106469;
        return r106470;
}

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 < -11755.062723959316 or 14618.947191620917 < x

    1. Initial program 59.5

      \[\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(\left(\frac{3}{x} + \frac{1}{x \cdot x}\right) + \frac{3}{{x}^{3}}\right)}\]

    if -11755.062723959316 < x < 14618.947191620917

    1. Initial program 0.1

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

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

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

Reproduce

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