Average Error: 29.3 → 0.2
Time: 7.0s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -15340.90493740388956211972981691360473633:\\ \;\;\;\;\frac{-\left(5 \cdot \frac{1}{{x}^{2}} + \left(6 \cdot \frac{1}{x} + 16 \cdot \frac{1}{{x}^{3}}\right)\right)}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\ \mathbf{elif}\;x \le 10654.13586289907289028633385896682739258:\\ \;\;\;\;\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}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{x}, 3 \cdot \frac{1}{{x}^{3}}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -15340.90493740388956211972981691360473633:\\
\;\;\;\;\frac{-\left(5 \cdot \frac{1}{{x}^{2}} + \left(6 \cdot \frac{1}{x} + 16 \cdot \frac{1}{{x}^{3}}\right)\right)}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\

\mathbf{elif}\;x \le 10654.13586289907289028633385896682739258:\\
\;\;\;\;\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}}\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{x}, 3 \cdot \frac{1}{{x}^{3}}\right)\\

\end{array}
double f(double x) {
        double r108598 = x;
        double r108599 = 1.0;
        double r108600 = r108598 + r108599;
        double r108601 = r108598 / r108600;
        double r108602 = r108598 - r108599;
        double r108603 = r108600 / r108602;
        double r108604 = r108601 - r108603;
        return r108604;
}

double f(double x) {
        double r108605 = x;
        double r108606 = -15340.90493740389;
        bool r108607 = r108605 <= r108606;
        double r108608 = 5.0;
        double r108609 = 1.0;
        double r108610 = 2.0;
        double r108611 = pow(r108605, r108610);
        double r108612 = r108609 / r108611;
        double r108613 = r108608 * r108612;
        double r108614 = 6.0;
        double r108615 = r108609 / r108605;
        double r108616 = r108614 * r108615;
        double r108617 = 16.0;
        double r108618 = 3.0;
        double r108619 = pow(r108605, r108618);
        double r108620 = r108609 / r108619;
        double r108621 = r108617 * r108620;
        double r108622 = r108616 + r108621;
        double r108623 = r108613 + r108622;
        double r108624 = -r108623;
        double r108625 = 1.0;
        double r108626 = r108605 + r108625;
        double r108627 = r108605 / r108626;
        double r108628 = r108605 - r108625;
        double r108629 = r108626 / r108628;
        double r108630 = r108627 + r108629;
        double r108631 = r108624 / r108630;
        double r108632 = 10654.135862899073;
        bool r108633 = r108605 <= r108632;
        double r108634 = r108627 * r108627;
        double r108635 = r108629 * r108629;
        double r108636 = r108634 - r108635;
        double r108637 = exp(r108636);
        double r108638 = log(r108637);
        double r108639 = r108638 / r108630;
        double r108640 = -r108625;
        double r108641 = r108640 / r108611;
        double r108642 = 3.0;
        double r108643 = r108642 * r108620;
        double r108644 = fma(r108642, r108615, r108643);
        double r108645 = r108641 - r108644;
        double r108646 = r108633 ? r108639 : r108645;
        double r108647 = r108607 ? r108631 : r108646;
        return r108647;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -15340.90493740389

    1. Initial program 59.5

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

      \[\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. Taylor expanded around inf 0.3

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

    if -15340.90493740389 < 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}}\]

    if 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.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -15340.90493740388956211972981691360473633:\\ \;\;\;\;\frac{-\left(5 \cdot \frac{1}{{x}^{2}} + \left(6 \cdot \frac{1}{x} + 16 \cdot \frac{1}{{x}^{3}}\right)\right)}{\frac{x}{x + 1} + \frac{x + 1}{x - 1}}\\ \mathbf{elif}\;x \le 10654.13586289907289028633385896682739258:\\ \;\;\;\;\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}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{{x}^{2}} - \mathsf{fma}\left(3, \frac{1}{x}, 3 \cdot \frac{1}{{x}^{3}}\right)\\ \end{array}\]

Reproduce

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