Average Error: 28.9 → 0.2
Time: 4.2s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -12332.7484463211567 \lor \neg \left(x \le 13264.4327344624\right):\\ \;\;\;\;\frac{-1}{{x}^{2}} - 3 \cdot \left(\frac{1}{x} + \frac{1}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\frac{x \cdot \left(x - 1\right) - \left(x + 1\right) \cdot \left(x + 1\right)}{x \cdot x - 1 \cdot 1}}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -12332.7484463211567 \lor \neg \left(x \le 13264.4327344624\right):\\
\;\;\;\;\frac{-1}{{x}^{2}} - 3 \cdot \left(\frac{1}{x} + \frac{1}{{x}^{3}}\right)\\

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

\end{array}
double f(double x) {
        double r134484 = x;
        double r134485 = 1.0;
        double r134486 = r134484 + r134485;
        double r134487 = r134484 / r134486;
        double r134488 = r134484 - r134485;
        double r134489 = r134486 / r134488;
        double r134490 = r134487 - r134489;
        return r134490;
}

double f(double x) {
        double r134491 = x;
        double r134492 = -12332.748446321157;
        bool r134493 = r134491 <= r134492;
        double r134494 = 13264.4327344624;
        bool r134495 = r134491 <= r134494;
        double r134496 = !r134495;
        bool r134497 = r134493 || r134496;
        double r134498 = 1.0;
        double r134499 = -r134498;
        double r134500 = 2.0;
        double r134501 = pow(r134491, r134500);
        double r134502 = r134499 / r134501;
        double r134503 = 3.0;
        double r134504 = 1.0;
        double r134505 = r134504 / r134491;
        double r134506 = 3.0;
        double r134507 = pow(r134491, r134506);
        double r134508 = r134504 / r134507;
        double r134509 = r134505 + r134508;
        double r134510 = r134503 * r134509;
        double r134511 = r134502 - r134510;
        double r134512 = r134491 - r134498;
        double r134513 = r134491 * r134512;
        double r134514 = r134491 + r134498;
        double r134515 = r134514 * r134514;
        double r134516 = r134513 - r134515;
        double r134517 = r134491 * r134491;
        double r134518 = r134498 * r134498;
        double r134519 = r134517 - r134518;
        double r134520 = r134516 / r134519;
        double r134521 = exp(r134520);
        double r134522 = log(r134521);
        double r134523 = r134497 ? r134511 : r134522;
        return r134523;
}

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 < -12332.748446321157 or 13264.4327344624 < x

    1. Initial program 59.1

      \[\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.3

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

    if -12332.748446321157 < x < 13264.4327344624

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-log-exp0.1

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\log \left(e^{\frac{x + 1}{x - 1}}\right)}\]
    4. Applied add-log-exp0.1

      \[\leadsto \color{blue}{\log \left(e^{\frac{x}{x + 1}}\right)} - \log \left(e^{\frac{x + 1}{x - 1}}\right)\]
    5. Applied diff-log0.1

      \[\leadsto \color{blue}{\log \left(\frac{e^{\frac{x}{x + 1}}}{e^{\frac{x + 1}{x - 1}}}\right)}\]
    6. Simplified0.1

      \[\leadsto \log \color{blue}{\left(e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}\right)}\]
    7. Using strategy rm
    8. Applied frac-sub0.1

      \[\leadsto \log \left(e^{\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)}}}\right)\]
    9. Simplified0.1

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

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

Reproduce

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