Average Error: 29.1 → 0.1
Time: 7.7m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -7026.080445317886:\\ \;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\ \mathbf{elif}\;x \le 8751.46375761691:\\ \;\;\;\;\mathsf{fma}\left(\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{1 + x} \cdot \sqrt[3]{1 + x}}\right), \left(\frac{\sqrt[3]{x}}{\sqrt[3]{1 + x}}\right), \left(-\frac{1 + x}{x - 1}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -7026.080445317886:\\
\;\;\;\;\left(\frac{-3}{x} - \frac{1}{x \cdot x}\right) + \frac{\frac{-3}{x}}{x \cdot x}\\

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

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

\end{array}
double f(double x) {
        double r33926971 = x;
        double r33926972 = 1.0;
        double r33926973 = r33926971 + r33926972;
        double r33926974 = r33926971 / r33926973;
        double r33926975 = r33926971 - r33926972;
        double r33926976 = r33926973 / r33926975;
        double r33926977 = r33926974 - r33926976;
        return r33926977;
}

double f(double x) {
        double r33926978 = x;
        double r33926979 = -7026.080445317886;
        bool r33926980 = r33926978 <= r33926979;
        double r33926981 = -3.0;
        double r33926982 = r33926981 / r33926978;
        double r33926983 = 1.0;
        double r33926984 = r33926978 * r33926978;
        double r33926985 = r33926983 / r33926984;
        double r33926986 = r33926982 - r33926985;
        double r33926987 = r33926982 / r33926984;
        double r33926988 = r33926986 + r33926987;
        double r33926989 = 8751.46375761691;
        bool r33926990 = r33926978 <= r33926989;
        double r33926991 = cbrt(r33926978);
        double r33926992 = r33926991 * r33926991;
        double r33926993 = r33926983 + r33926978;
        double r33926994 = cbrt(r33926993);
        double r33926995 = r33926994 * r33926994;
        double r33926996 = r33926992 / r33926995;
        double r33926997 = r33926991 / r33926994;
        double r33926998 = r33926978 - r33926983;
        double r33926999 = r33926993 / r33926998;
        double r33927000 = -r33926999;
        double r33927001 = fma(r33926996, r33926997, r33927000);
        double r33927002 = r33926990 ? r33927001 : r33926988;
        double r33927003 = r33926980 ? r33926988 : r33927002;
        return r33927003;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -7026.080445317886 or 8751.46375761691 < x

    1. Initial program 59.4

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

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

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

    if -7026.080445317886 < x < 8751.46375761691

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. 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}}} - \frac{x + 1}{x - 1}\]
    4. Applied add-cube-cbrt0.1

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

      \[\leadsto \color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{x + 1} \cdot \sqrt[3]{x + 1}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{x + 1}}} - \frac{x + 1}{x - 1}\]
    6. Applied fma-neg0.1

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

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

Reproduce

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