Average Error: 29.1 → 0.1
Time: 1.2m
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -16169.55925066577:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\ \mathbf{elif}\;x \le 14245.787973373435:\\ \;\;\;\;\sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \mathsf{fma}\left(x, \frac{1}{x + 1}, \frac{-\left(x + 1\right)}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\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 -16169.55925066577:\\
\;\;\;\;\frac{-3}{\left(x \cdot x\right) \cdot x} - \left(\frac{1}{x \cdot x} + \frac{3}{x}\right)\\

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

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

\end{array}
double f(double x) {
        double r5349875 = x;
        double r5349876 = 1.0;
        double r5349877 = r5349875 + r5349876;
        double r5349878 = r5349875 / r5349877;
        double r5349879 = r5349875 - r5349876;
        double r5349880 = r5349877 / r5349879;
        double r5349881 = r5349878 - r5349880;
        return r5349881;
}

double f(double x) {
        double r5349882 = x;
        double r5349883 = -16169.55925066577;
        bool r5349884 = r5349882 <= r5349883;
        double r5349885 = -3.0;
        double r5349886 = r5349882 * r5349882;
        double r5349887 = r5349886 * r5349882;
        double r5349888 = r5349885 / r5349887;
        double r5349889 = 1.0;
        double r5349890 = r5349889 / r5349886;
        double r5349891 = 3.0;
        double r5349892 = r5349891 / r5349882;
        double r5349893 = r5349890 + r5349892;
        double r5349894 = r5349888 - r5349893;
        double r5349895 = 14245.787973373435;
        bool r5349896 = r5349882 <= r5349895;
        double r5349897 = r5349882 + r5349889;
        double r5349898 = r5349882 / r5349897;
        double r5349899 = r5349882 - r5349889;
        double r5349900 = r5349897 / r5349899;
        double r5349901 = r5349898 - r5349900;
        double r5349902 = r5349889 / r5349897;
        double r5349903 = -r5349897;
        double r5349904 = r5349903 / r5349899;
        double r5349905 = fma(r5349882, r5349902, r5349904);
        double r5349906 = r5349901 * r5349905;
        double r5349907 = r5349906 * r5349901;
        double r5349908 = cbrt(r5349907);
        double r5349909 = r5349896 ? r5349908 : r5349894;
        double r5349910 = r5349884 ? r5349894 : r5349909;
        return r5349910;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -16169.55925066577 or 14245.787973373435 < x

    1. Initial program 59.5

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied add-cbrt-cube59.5

      \[\leadsto \color{blue}{\sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}}\]
    4. 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)}\]
    5. Simplified0.0

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

    if -16169.55925066577 < x < 14245.787973373435

    1. Initial program 0.1

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

      \[\leadsto \color{blue}{\sqrt[3]{\left(\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)\right) \cdot \left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}}\]
    4. Using strategy rm
    5. Applied div-inv0.1

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

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

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

Reproduce

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