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

\mathbf{elif}\;x \le 11033.995023478727:\\
\;\;\;\;\mathsf{fma}\left(\frac{1 + x}{x + -1}, -1, \frac{1 + x}{x + -1}\right) + \mathsf{fma}\left(\frac{x}{\mathsf{fma}\left(x, x \cdot x, 1\right)}, \mathsf{fma}\left(x, x, 1\right) - x, -\frac{1 + x}{x + -1}\right)\\

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

\end{array}
double f(double x) {
        double r5001938 = x;
        double r5001939 = 1.0;
        double r5001940 = r5001938 + r5001939;
        double r5001941 = r5001938 / r5001940;
        double r5001942 = r5001938 - r5001939;
        double r5001943 = r5001940 / r5001942;
        double r5001944 = r5001941 - r5001943;
        return r5001944;
}

double f(double x) {
        double r5001945 = x;
        double r5001946 = -12354.188123908416;
        bool r5001947 = r5001945 <= r5001946;
        double r5001948 = 1.0;
        double r5001949 = r5001945 * r5001945;
        double r5001950 = r5001948 / r5001949;
        double r5001951 = 3.0;
        double r5001952 = r5001951 / r5001945;
        double r5001953 = fma(r5001950, r5001952, r5001952);
        double r5001954 = r5001950 + r5001953;
        double r5001955 = -r5001954;
        double r5001956 = 11033.995023478727;
        bool r5001957 = r5001945 <= r5001956;
        double r5001958 = r5001948 + r5001945;
        double r5001959 = -1.0;
        double r5001960 = r5001945 + r5001959;
        double r5001961 = r5001958 / r5001960;
        double r5001962 = fma(r5001961, r5001959, r5001961);
        double r5001963 = fma(r5001945, r5001949, r5001948);
        double r5001964 = r5001945 / r5001963;
        double r5001965 = fma(r5001945, r5001945, r5001948);
        double r5001966 = r5001965 - r5001945;
        double r5001967 = -r5001961;
        double r5001968 = fma(r5001964, r5001966, r5001967);
        double r5001969 = r5001962 + r5001968;
        double r5001970 = r5001957 ? r5001969 : r5001955;
        double r5001971 = r5001947 ? r5001955 : r5001970;
        return r5001971;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -12354.188123908416 or 11033.995023478727 < x

    1. Initial program 59.2

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

      \[\leadsto \color{blue}{x \cdot \frac{1}{x + 1}} - \frac{x + 1}{x - 1}\]
    4. Applied fma-neg60.1

      \[\leadsto \color{blue}{\mathsf{fma}\left(x, \frac{1}{x + 1}, -\frac{x + 1}{x - 1}\right)}\]
    5. 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)}\]
    6. Simplified0.0

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

    if -12354.188123908416 < x < 11033.995023478727

    1. Initial program 0.1

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.1

      \[\leadsto \frac{x}{x + 1} - \frac{x + 1}{\color{blue}{1 \cdot \left(x - 1\right)}}\]
    4. Applied associate-/r*0.1

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\frac{\frac{x + 1}{1}}{x - 1}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt0.1

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

      \[\leadsto \frac{x}{\color{blue}{\frac{{x}^{3} + {1}^{3}}{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \left(\sqrt[3]{\frac{\frac{x + 1}{1}}{x - 1}} \cdot \sqrt[3]{\frac{\frac{x + 1}{1}}{x - 1}}\right) \cdot \sqrt[3]{\frac{\frac{x + 1}{1}}{x - 1}}\]
    8. Applied associate-/r/0.1

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

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

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

      \[\leadsto \mathsf{fma}\left(\frac{x}{\mathsf{fma}\left(x, x \cdot x, 1\right)}, \mathsf{fma}\left(x, x, 1\right) - x, \frac{-\left(x + 1\right)}{x + -1}\right) + \color{blue}{\mathsf{fma}\left(\frac{x + 1}{x + -1}, -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 -12354.188123908416:\\ \;\;\;\;-\left(\frac{1}{x \cdot x} + \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{3}{x}, \frac{3}{x}\right)\right)\\ \mathbf{elif}\;x \le 11033.995023478727:\\ \;\;\;\;\mathsf{fma}\left(\frac{1 + x}{x + -1}, -1, \frac{1 + x}{x + -1}\right) + \mathsf{fma}\left(\frac{x}{\mathsf{fma}\left(x, x \cdot x, 1\right)}, \mathsf{fma}\left(x, x, 1\right) - x, -\frac{1 + x}{x + -1}\right)\\ \mathbf{else}:\\ \;\;\;\;-\left(\frac{1}{x \cdot x} + \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{3}{x}, \frac{3}{x}\right)\right)\\ \end{array}\]

Reproduce

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