Average Error: 29.0 → 0.1
Time: 24.4s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -12435.32938867169286822900176048278808594 \lor \neg \left(x \le 11573.99856257406463555525988340377807617\right):\\ \;\;\;\;\frac{-1}{x \cdot x} - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\sqrt[3]{{\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}^{3}}}\right)\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -12435.32938867169286822900176048278808594 \lor \neg \left(x \le 11573.99856257406463555525988340377807617\right):\\
\;\;\;\;\frac{-1}{x \cdot x} - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\

\mathbf{else}:\\
\;\;\;\;\log \left(e^{\sqrt[3]{{\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}^{3}}}\right)\\

\end{array}
double f(double x) {
        double r107831 = x;
        double r107832 = 1.0;
        double r107833 = r107831 + r107832;
        double r107834 = r107831 / r107833;
        double r107835 = r107831 - r107832;
        double r107836 = r107833 / r107835;
        double r107837 = r107834 - r107836;
        return r107837;
}

double f(double x) {
        double r107838 = x;
        double r107839 = -12435.329388671693;
        bool r107840 = r107838 <= r107839;
        double r107841 = 11573.998562574065;
        bool r107842 = r107838 <= r107841;
        double r107843 = !r107842;
        bool r107844 = r107840 || r107843;
        double r107845 = 1.0;
        double r107846 = -r107845;
        double r107847 = r107838 * r107838;
        double r107848 = r107846 / r107847;
        double r107849 = 3.0;
        double r107850 = r107849 / r107838;
        double r107851 = 3.0;
        double r107852 = pow(r107838, r107851);
        double r107853 = r107849 / r107852;
        double r107854 = r107850 + r107853;
        double r107855 = r107848 - r107854;
        double r107856 = r107838 + r107845;
        double r107857 = r107838 / r107856;
        double r107858 = r107838 - r107845;
        double r107859 = r107856 / r107858;
        double r107860 = r107857 - r107859;
        double r107861 = pow(r107860, r107851);
        double r107862 = cbrt(r107861);
        double r107863 = exp(r107862);
        double r107864 = log(r107863);
        double r107865 = r107844 ? r107855 : r107864;
        return r107865;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -12435.329388671693 or 11573.998562574065 < x

    1. Initial program 59.3

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\log \left(e^{\frac{x + 1}{x - 1}}\right)}\]
    4. Applied add-log-exp59.3

      \[\leadsto \color{blue}{\log \left(e^{\frac{x}{x + 1}}\right)} - \log \left(e^{\frac{x + 1}{x - 1}}\right)\]
    5. Applied diff-log59.3

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

      \[\leadsto \log \color{blue}{\left(e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}\right)}\]
    7. Using strategy rm
    8. Applied add-cbrt-cube59.3

      \[\leadsto \log \left(e^{\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)}}}\right)\]
    9. Simplified59.3

      \[\leadsto \log \left(e^{\sqrt[3]{\color{blue}{{\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}^{3}}}}\right)\]
    10. 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)}\]
    11. Simplified0.0

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

    if -12435.329388671693 < x < 11573.998562574065

    1. Initial program 0.1

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

      \[\leadsto \frac{x}{x + 1} - \color{blue}{\log \left(e^{\frac{x + 1}{x - 1}}\right)}\]
    4. Applied add-log-exp0.1

      \[\leadsto \color{blue}{\log \left(e^{\frac{x}{x + 1}}\right)} - \log \left(e^{\frac{x + 1}{x - 1}}\right)\]
    5. Applied diff-log0.1

      \[\leadsto \color{blue}{\log \left(\frac{e^{\frac{x}{x + 1}}}{e^{\frac{x + 1}{x - 1}}}\right)}\]
    6. Simplified0.1

      \[\leadsto \log \color{blue}{\left(e^{\frac{x}{x + 1} - \frac{x + 1}{x - 1}}\right)}\]
    7. Using strategy rm
    8. Applied add-cbrt-cube0.1

      \[\leadsto \log \left(e^{\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)}}}\right)\]
    9. Simplified0.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -12435.32938867169286822900176048278808594 \lor \neg \left(x \le 11573.99856257406463555525988340377807617\right):\\ \;\;\;\;\frac{-1}{x \cdot x} - \left(\frac{3}{x} + \frac{3}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\sqrt[3]{{\left(\frac{x}{x + 1} - \frac{x + 1}{x - 1}\right)}^{3}}}\right)\\ \end{array}\]

Reproduce

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