Average Error: 29.1 → 0.1
Time: 19.6s
Precision: 64
\[\frac{x}{x + 1} - \frac{x + 1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -10364.72278293059571296907961368560791016 \lor \neg \left(x \le 12015.49448950132136815227568149566650391\right):\\ \;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{x}{{x}^{3} + {1}^{3}}\right)}^{3}, {\left(\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)\right)}^{3}, \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right) + \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \left(\frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)} + \frac{1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)}{\mathsf{fma}\left(\frac{x}{1 + x}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}\\ \end{array}\]
\frac{x}{x + 1} - \frac{x + 1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -10364.72278293059571296907961368560791016 \lor \neg \left(x \le 12015.49448950132136815227568149566650391\right):\\
\;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\

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

\end{array}
double f(double x) {
        double r94131 = x;
        double r94132 = 1.0;
        double r94133 = r94131 + r94132;
        double r94134 = r94131 / r94133;
        double r94135 = r94131 - r94132;
        double r94136 = r94133 / r94135;
        double r94137 = r94134 - r94136;
        return r94137;
}

double f(double x) {
        double r94138 = x;
        double r94139 = -10364.722782930596;
        bool r94140 = r94138 <= r94139;
        double r94141 = 12015.494489501321;
        bool r94142 = r94138 <= r94141;
        double r94143 = !r94142;
        bool r94144 = r94140 || r94143;
        double r94145 = 1.0;
        double r94146 = r94138 * r94138;
        double r94147 = r94145 / r94146;
        double r94148 = 3.0;
        double r94149 = r94148 / r94138;
        double r94150 = r94147 + r94149;
        double r94151 = 3.0;
        double r94152 = pow(r94138, r94151);
        double r94153 = r94148 / r94152;
        double r94154 = r94150 + r94153;
        double r94155 = -r94154;
        double r94156 = pow(r94145, r94151);
        double r94157 = r94152 + r94156;
        double r94158 = r94138 / r94157;
        double r94159 = pow(r94158, r94151);
        double r94160 = r94145 - r94138;
        double r94161 = r94145 * r94160;
        double r94162 = fma(r94138, r94138, r94161);
        double r94163 = pow(r94162, r94151);
        double r94164 = r94138 + r94145;
        double r94165 = pow(r94164, r94151);
        double r94166 = r94138 - r94145;
        double r94167 = r94165 / r94166;
        double r94168 = -1.0;
        double r94169 = r94166 * r94166;
        double r94170 = r94168 / r94169;
        double r94171 = r94167 * r94170;
        double r94172 = fma(r94159, r94163, r94171);
        double r94173 = 1.0;
        double r94174 = r94173 / r94169;
        double r94175 = r94170 + r94174;
        double r94176 = r94167 * r94175;
        double r94177 = r94172 + r94176;
        double r94178 = r94145 + r94138;
        double r94179 = r94138 / r94178;
        double r94180 = r94164 / r94166;
        double r94181 = r94138 / r94166;
        double r94182 = fma(r94180, r94180, r94181);
        double r94183 = fma(r94179, r94179, r94182);
        double r94184 = r94177 / r94183;
        double r94185 = r94144 ? r94155 : r94184;
        return r94185;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -10364.722782930596 or 12015.494489501321 < x

    1. Initial program 59.2

      \[\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.0

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

    if -10364.722782930596 < x < 12015.494489501321

    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}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt0.2

      \[\leadsto \frac{{\left(\frac{x}{x + 1}\right)}^{3} - {\left(\frac{x + 1}{\color{blue}{\left(\sqrt[3]{x - 1} \cdot \sqrt[3]{x - 1}\right) \cdot \sqrt[3]{x - 1}}}\right)}^{3}}{\mathsf{fma}\left(\frac{x}{1 + x}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}\]
    7. Applied *-un-lft-identity0.2

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

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

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

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -10364.72278293059571296907961368560791016 \lor \neg \left(x \le 12015.49448950132136815227568149566650391\right):\\ \;\;\;\;-\left(\left(\frac{1}{x \cdot x} + \frac{3}{x}\right) + \frac{3}{{x}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left({\left(\frac{x}{{x}^{3} + {1}^{3}}\right)}^{3}, {\left(\mathsf{fma}\left(x, x, 1 \cdot \left(1 - x\right)\right)\right)}^{3}, \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right) + \frac{{\left(x + 1\right)}^{3}}{x - 1} \cdot \left(\frac{-1}{\left(x - 1\right) \cdot \left(x - 1\right)} + \frac{1}{\left(x - 1\right) \cdot \left(x - 1\right)}\right)}{\mathsf{fma}\left(\frac{x}{1 + x}, \frac{x}{1 + x}, \mathsf{fma}\left(\frac{x + 1}{x - 1}, \frac{x + 1}{x - 1}, \frac{x}{x - 1}\right)\right)}\\ \end{array}\]

Reproduce

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