Average Error: 29.4 → 0.1
Time: 27.5s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -7942.254130124484:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \mathbf{elif}\;x \le 7778.034856755284:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}, \frac{x}{\sqrt[3]{1 + x}}, \left(1 + x\right) \cdot \frac{-1}{x - 1}\right) + \mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -7942.254130124484:\\
\;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\

\mathbf{elif}\;x \le 7778.034856755284:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}, \frac{x}{\sqrt[3]{1 + x}}, \left(1 + x\right) \cdot \frac{-1}{x - 1}\right) + \mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right)\\

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

\end{array}
double f(double x) {
        double r4328193 = x;
        double r4328194 = 1.0;
        double r4328195 = r4328193 + r4328194;
        double r4328196 = r4328193 / r4328195;
        double r4328197 = r4328193 - r4328194;
        double r4328198 = r4328195 / r4328197;
        double r4328199 = r4328196 - r4328198;
        return r4328199;
}

double f(double x) {
        double r4328200 = x;
        double r4328201 = -7942.254130124484;
        bool r4328202 = r4328200 <= r4328201;
        double r4328203 = -1.0;
        double r4328204 = r4328200 * r4328200;
        double r4328205 = r4328203 / r4328204;
        double r4328206 = r4328205 / r4328200;
        double r4328207 = 3.0;
        double r4328208 = -3.0;
        double r4328209 = r4328208 / r4328200;
        double r4328210 = r4328205 + r4328209;
        double r4328211 = fma(r4328206, r4328207, r4328210);
        double r4328212 = 7778.034856755284;
        bool r4328213 = r4328200 <= r4328212;
        double r4328214 = 1.0;
        double r4328215 = r4328214 + r4328200;
        double r4328216 = cbrt(r4328215);
        double r4328217 = r4328216 * r4328216;
        double r4328218 = r4328214 / r4328217;
        double r4328219 = r4328200 / r4328216;
        double r4328220 = r4328200 - r4328214;
        double r4328221 = r4328203 / r4328220;
        double r4328222 = r4328215 * r4328221;
        double r4328223 = fma(r4328218, r4328219, r4328222);
        double r4328224 = r4328214 / r4328220;
        double r4328225 = r4328215 * r4328224;
        double r4328226 = fma(r4328221, r4328215, r4328225);
        double r4328227 = r4328223 + r4328226;
        double r4328228 = r4328213 ? r4328227 : r4328211;
        double r4328229 = r4328202 ? r4328211 : r4328228;
        return r4328229;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -7942.254130124484 or 7778.034856755284 < x

    1. Initial program 59.4

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

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

      \[\leadsto \color{blue}{\frac{-3}{x \cdot \left(x \cdot x\right)} - \mathsf{fma}\left(3, \frac{1}{x}, \frac{\frac{1}{x}}{x}\right)}\]
    4. Taylor expanded around 0 0.4

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

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

    if -7942.254130124484 < x < 7778.034856755284

    1. Initial program 0.1

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\left(x + 1\right) \cdot \frac{1}{x - 1}}\]
    4. Applied add-cube-cbrt0.1

      \[\leadsto \frac{x}{\color{blue}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    5. Applied *-un-lft-identity0.1

      \[\leadsto \frac{\color{blue}{1 \cdot x}}{\left(\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}\right) \cdot \sqrt[3]{x + 1}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    6. Applied times-frac0.1

      \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \frac{x}{\sqrt[3]{x + 1}}} - \left(x + 1\right) \cdot \frac{1}{x - 1}\]
    7. Applied prod-diff0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -7942.254130124484:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \mathbf{elif}\;x \le 7778.034856755284:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}, \frac{x}{\sqrt[3]{1 + x}}, \left(1 + x\right) \cdot \frac{-1}{x - 1}\right) + \mathsf{fma}\left(\frac{-1}{x - 1}, 1 + x, \left(1 + x\right) \cdot \frac{1}{x - 1}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x \cdot x}}{x}, 3, \frac{-1}{x \cdot x} + \frac{-3}{x}\right)\\ \end{array}\]

Reproduce

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