Average Error: 29.4 → 0.2
Time: 19.3s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.9941877870754349810766825612518005073071 \lor \neg \left(x \le 7392.742446615246080909855663776397705078\right):\\ \;\;\;\;\left(-\frac{1}{x \cdot x}\right) - \left(\frac{3}{{x}^{3}} + \frac{3}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{\frac{x}{x + 1}}\right) - \frac{\sqrt{1 + x}}{\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}} \cdot \frac{\sqrt{1 + x}}{\sqrt[3]{x - 1}}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -0.9941877870754349810766825612518005073071 \lor \neg \left(x \le 7392.742446615246080909855663776397705078\right):\\
\;\;\;\;\left(-\frac{1}{x \cdot x}\right) - \left(\frac{3}{{x}^{3}} + \frac{3}{x}\right)\\

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

\end{array}
double f(double x) {
        double r120846 = x;
        double r120847 = 1.0;
        double r120848 = r120846 + r120847;
        double r120849 = r120846 / r120848;
        double r120850 = r120846 - r120847;
        double r120851 = r120848 / r120850;
        double r120852 = r120849 - r120851;
        return r120852;
}

double f(double x) {
        double r120853 = x;
        double r120854 = -0.994187787075435;
        bool r120855 = r120853 <= r120854;
        double r120856 = 7392.742446615246;
        bool r120857 = r120853 <= r120856;
        double r120858 = !r120857;
        bool r120859 = r120855 || r120858;
        double r120860 = 1.0;
        double r120861 = r120853 * r120853;
        double r120862 = r120860 / r120861;
        double r120863 = -r120862;
        double r120864 = 3.0;
        double r120865 = 3.0;
        double r120866 = pow(r120853, r120865);
        double r120867 = r120864 / r120866;
        double r120868 = r120864 / r120853;
        double r120869 = r120867 + r120868;
        double r120870 = r120863 - r120869;
        double r120871 = r120853 + r120860;
        double r120872 = r120853 / r120871;
        double r120873 = exp(r120872);
        double r120874 = log(r120873);
        double r120875 = r120860 + r120853;
        double r120876 = sqrt(r120875);
        double r120877 = r120853 - r120860;
        double r120878 = cbrt(r120877);
        double r120879 = r120878 * r120878;
        double r120880 = r120876 / r120879;
        double r120881 = r120876 / r120878;
        double r120882 = r120880 * r120881;
        double r120883 = r120874 - r120882;
        double r120884 = r120859 ? r120870 : r120883;
        return r120884;
}

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 < -0.994187787075435 or 7392.742446615246 < x

    1. Initial program 58.8

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified58.8

      \[\leadsto \color{blue}{\frac{x}{x + 1} - \frac{1 + x}{x - 1}}\]
    3. Taylor expanded around inf 0.6

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

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

    if -0.994187787075435 < x < 7392.742446615246

    1. Initial program 0.0

      \[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\frac{x}{x + 1} - \frac{1 + x}{x - 1}}\]
    3. Using strategy rm
    4. Applied add-log-exp0.0

      \[\leadsto \color{blue}{\log \left(e^{\frac{x}{x + 1}}\right)} - \frac{1 + x}{x - 1}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt0.1

      \[\leadsto \log \left(e^{\frac{x}{x + 1}}\right) - \frac{1 + x}{\color{blue}{\left(\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}\right) \cdot \sqrt[3]{x - 1}}}\]
    7. Applied add-sqr-sqrt0.1

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

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

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

Reproduce

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