Average Error: 29.3 → 0.2
Time: 9.4s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -29617.5726496199022:\\ \;\;\;\;\frac{-\left(12 \cdot \frac{1}{{x}^{2}} + \left(9 \cdot \frac{1}{x} + 48 \cdot \frac{1}{{x}^{3}}\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\ \mathbf{elif}\;x \le 18487.752119395096:\\ \;\;\;\;\frac{\left({\left(\frac{x}{x \cdot x - 1 \cdot 1}\right)}^{3} \cdot {\left(x - 1\right)}^{3} + \left(-{\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)\right) + \mathsf{fma}\left(-{\left(\frac{1}{x - 1}\right)}^{3}, {\left(x + 1\right)}^{3}, {\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\ \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 -29617.5726496199022:\\
\;\;\;\;\frac{-\left(12 \cdot \frac{1}{{x}^{2}} + \left(9 \cdot \frac{1}{x} + 48 \cdot \frac{1}{{x}^{3}}\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\

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

\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 r153879 = x;
        double r153880 = 1.0;
        double r153881 = r153879 + r153880;
        double r153882 = r153879 / r153881;
        double r153883 = r153879 - r153880;
        double r153884 = r153881 / r153883;
        double r153885 = r153882 - r153884;
        return r153885;
}

double f(double x) {
        double r153886 = x;
        double r153887 = -29617.572649619902;
        bool r153888 = r153886 <= r153887;
        double r153889 = 12.0;
        double r153890 = 1.0;
        double r153891 = 2.0;
        double r153892 = pow(r153886, r153891);
        double r153893 = r153890 / r153892;
        double r153894 = r153889 * r153893;
        double r153895 = 9.0;
        double r153896 = r153890 / r153886;
        double r153897 = r153895 * r153896;
        double r153898 = 48.0;
        double r153899 = 3.0;
        double r153900 = pow(r153886, r153899);
        double r153901 = r153890 / r153900;
        double r153902 = r153898 * r153901;
        double r153903 = r153897 + r153902;
        double r153904 = r153894 + r153903;
        double r153905 = -r153904;
        double r153906 = 1.0;
        double r153907 = r153886 + r153906;
        double r153908 = r153886 - r153906;
        double r153909 = r153907 / r153908;
        double r153910 = r153886 / r153907;
        double r153911 = r153910 + r153909;
        double r153912 = r153910 * r153910;
        double r153913 = fma(r153909, r153911, r153912);
        double r153914 = r153905 / r153913;
        double r153915 = 18487.752119395096;
        bool r153916 = r153886 <= r153915;
        double r153917 = r153886 * r153886;
        double r153918 = r153906 * r153906;
        double r153919 = r153917 - r153918;
        double r153920 = r153886 / r153919;
        double r153921 = pow(r153920, r153899);
        double r153922 = pow(r153908, r153899);
        double r153923 = r153921 * r153922;
        double r153924 = r153890 / r153908;
        double r153925 = pow(r153924, r153899);
        double r153926 = pow(r153907, r153899);
        double r153927 = r153925 * r153926;
        double r153928 = -r153927;
        double r153929 = r153923 + r153928;
        double r153930 = -r153925;
        double r153931 = fma(r153930, r153926, r153927);
        double r153932 = r153929 + r153931;
        double r153933 = r153932 / r153913;
        double r153934 = -r153906;
        double r153935 = r153934 / r153892;
        double r153936 = 3.0;
        double r153937 = r153936 * r153901;
        double r153938 = fma(r153936, r153896, r153937);
        double r153939 = r153935 - r153938;
        double r153940 = r153916 ? r153933 : r153939;
        double r153941 = r153888 ? r153914 : r153940;
        return r153941;
}

Error

Bits error versus x

Derivation

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

    1. Initial program 59.4

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

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

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

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

    if -29617.572649619902 < x < 18487.752119395096

    1. Initial program 0.1

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

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

      \[\leadsto \frac{{\left(\frac{x}{x + 1}\right)}^{3} - {\left(\frac{x + 1}{x - 1}\right)}^{3}}{\color{blue}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}}\]
    5. Using strategy rm
    6. Applied div-inv0.1

      \[\leadsto \frac{{\left(\frac{x}{x + 1}\right)}^{3} - {\color{blue}{\left(\left(x + 1\right) \cdot \frac{1}{x - 1}\right)}}^{3}}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\]
    7. Applied unpow-prod-down0.1

      \[\leadsto \frac{{\left(\frac{x}{x + 1}\right)}^{3} - \color{blue}{{\left(x + 1\right)}^{3} \cdot {\left(\frac{1}{x - 1}\right)}^{3}}}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\]
    8. Applied flip-+0.1

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

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

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

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left({\left(\frac{x}{x \cdot x - 1 \cdot 1}\right)}^{3}, {\left(x - 1\right)}^{3}, -{\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right) + \mathsf{fma}\left(-{\left(\frac{1}{x - 1}\right)}^{3}, {\left(x + 1\right)}^{3}, {\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)}}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\]
    12. Using strategy rm
    13. Applied fma-udef0.1

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

    if 18487.752119395096 < 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 -29617.5726496199022:\\ \;\;\;\;\frac{-\left(12 \cdot \frac{1}{{x}^{2}} + \left(9 \cdot \frac{1}{x} + 48 \cdot \frac{1}{{x}^{3}}\right)\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\ \mathbf{elif}\;x \le 18487.752119395096:\\ \;\;\;\;\frac{\left({\left(\frac{x}{x \cdot x - 1 \cdot 1}\right)}^{3} \cdot {\left(x - 1\right)}^{3} + \left(-{\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)\right) + \mathsf{fma}\left(-{\left(\frac{1}{x - 1}\right)}^{3}, {\left(x + 1\right)}^{3}, {\left(\frac{1}{x - 1}\right)}^{3} \cdot {\left(x + 1\right)}^{3}\right)}{\mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x}{x + 1} + \frac{x + 1}{x - 1}, \frac{x}{x + 1} \cdot \frac{x}{x + 1}\right)}\\ \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 2020003 +o rules:numerics
(FPCore (x)
  :name "Asymptote C"
  :precision binary64
  (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))