Average Error: 29.3 → 0.1
Time: 5.2s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -14119.48810080592193116899579763412475586 \lor \neg \left(x \le 10654.13586289907289028633385896682739258\right):\\ \;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{x + 1}{x - 1} \cdot \frac{x + 1}{x - 1}}\right)}{\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 -14119.48810080592193116899579763412475586 \lor \neg \left(x \le 10654.13586289907289028633385896682739258\right):\\
\;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\

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

\end{array}
double f(double x) {
        double r128642 = x;
        double r128643 = 1.0;
        double r128644 = r128642 + r128643;
        double r128645 = r128642 / r128644;
        double r128646 = r128642 - r128643;
        double r128647 = r128644 / r128646;
        double r128648 = r128645 - r128647;
        return r128648;
}

double f(double x) {
        double r128649 = x;
        double r128650 = -14119.488100805922;
        bool r128651 = r128649 <= r128650;
        double r128652 = 10654.135862899073;
        bool r128653 = r128649 <= r128652;
        double r128654 = !r128653;
        bool r128655 = r128651 || r128654;
        double r128656 = 1.0;
        double r128657 = -r128656;
        double r128658 = 2.0;
        double r128659 = pow(r128649, r128658);
        double r128660 = r128657 / r128659;
        double r128661 = 3.0;
        double r128662 = r128661 / r128649;
        double r128663 = r128660 - r128662;
        double r128664 = 3.0;
        double r128665 = pow(r128649, r128664);
        double r128666 = r128661 / r128665;
        double r128667 = r128663 - r128666;
        double r128668 = r128649 + r128656;
        double r128669 = r128649 / r128668;
        double r128670 = r128669 * r128669;
        double r128671 = r128649 - r128656;
        double r128672 = r128668 / r128671;
        double r128673 = r128672 * r128672;
        double r128674 = r128670 - r128673;
        double r128675 = exp(r128674);
        double r128676 = log(r128675);
        double r128677 = r128669 + r128672;
        double r128678 = r128676 / r128677;
        double r128679 = r128655 ? r128667 : r128678;
        return r128679;
}

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 < -14119.488100805922 or 10654.135862899073 < 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(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}}\]

    if -14119.488100805922 < x < 10654.135862899073

    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}}}\]
    4. Using strategy rm
    5. Applied add-log-exp0.1

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

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

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

      \[\leadsto \frac{\log \color{blue}{\left(e^{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{x + 1}{x - 1} \cdot \frac{x + 1}{x - 1}}\right)}}{\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 -14119.48810080592193116899579763412475586 \lor \neg \left(x \le 10654.13586289907289028633385896682739258\right):\\ \;\;\;\;\left(\frac{-1}{{x}^{2}} - \frac{3}{x}\right) - \frac{3}{{x}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\frac{x}{x + 1} \cdot \frac{x}{x + 1} - \frac{x + 1}{x - 1} \cdot \frac{x + 1}{x - 1}}\right)}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\ \end{array}\]

Reproduce

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