Average Error: 14.5 → 0.0
Time: 28.2s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -247.204822595503:\\ \;\;\;\;\mathsf{fma}\left(-2, {x}^{-2} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\ \mathbf{elif}\;x \le 223.76966427677394:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{1 + x}{\mathsf{fma}\left(x, x, -1\right)}\right) + \mathsf{fma}\left(\frac{-1}{\mathsf{fma}\left(x, x, -1\right)}, 1 + x, \frac{1 + x}{\mathsf{fma}\left(x, x, -1\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-2, {x}^{-2} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\ \end{array}\]
\frac{1}{x + 1} - \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -247.204822595503:\\
\;\;\;\;\mathsf{fma}\left(-2, {x}^{-2} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\

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

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

\end{array}
double f(double x) {
        double r6293050 = 1.0;
        double r6293051 = x;
        double r6293052 = r6293051 + r6293050;
        double r6293053 = r6293050 / r6293052;
        double r6293054 = r6293051 - r6293050;
        double r6293055 = r6293050 / r6293054;
        double r6293056 = r6293053 - r6293055;
        return r6293056;
}

double f(double x) {
        double r6293057 = x;
        double r6293058 = -247.204822595503;
        bool r6293059 = r6293057 <= r6293058;
        double r6293060 = -2.0;
        double r6293061 = pow(r6293057, r6293060);
        double r6293062 = 1.0;
        double r6293063 = r6293057 * r6293057;
        double r6293064 = r6293063 * r6293063;
        double r6293065 = r6293064 * r6293063;
        double r6293066 = r6293062 / r6293065;
        double r6293067 = r6293061 + r6293066;
        double r6293068 = r6293060 / r6293064;
        double r6293069 = fma(r6293060, r6293067, r6293068);
        double r6293070 = 223.76966427677394;
        bool r6293071 = r6293057 <= r6293070;
        double r6293072 = r6293062 + r6293057;
        double r6293073 = r6293062 / r6293072;
        double r6293074 = -1.0;
        double r6293075 = fma(r6293057, r6293057, r6293074);
        double r6293076 = r6293072 / r6293075;
        double r6293077 = r6293073 - r6293076;
        double r6293078 = r6293074 / r6293075;
        double r6293079 = fma(r6293078, r6293072, r6293076);
        double r6293080 = r6293077 + r6293079;
        double r6293081 = r6293071 ? r6293080 : r6293069;
        double r6293082 = r6293059 ? r6293069 : r6293081;
        return r6293082;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -247.204822595503 or 223.76966427677394 < x

    1. Initial program 29.8

      \[\frac{1}{x + 1} - \frac{1}{x - 1}\]
    2. Taylor expanded around inf 0.9

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(-2, \frac{1}{x \cdot x} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)}\]
    4. Using strategy rm
    5. Applied pow10.9

      \[\leadsto \mathsf{fma}\left(-2, \frac{1}{x \cdot \color{blue}{{x}^{1}}} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\]
    6. Applied pow10.9

      \[\leadsto \mathsf{fma}\left(-2, \frac{1}{\color{blue}{{x}^{1}} \cdot {x}^{1}} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\]
    7. Applied pow-prod-up0.9

      \[\leadsto \mathsf{fma}\left(-2, \frac{1}{\color{blue}{{x}^{\left(1 + 1\right)}}} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\]
    8. Applied pow-flip0.0

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

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

    if -247.204822595503 < x < 223.76966427677394

    1. Initial program 0.0

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

      \[\leadsto \frac{1}{x + 1} - \frac{1}{\color{blue}{\frac{x \cdot x - 1 \cdot 1}{x + 1}}}\]
    4. Applied associate-/r/0.0

      \[\leadsto \frac{1}{x + 1} - \color{blue}{\frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)}\]
    5. Applied *-un-lft-identity0.0

      \[\leadsto \frac{1}{\color{blue}{1 \cdot \left(x + 1\right)}} - \frac{1}{x \cdot x - 1 \cdot 1} \cdot \left(x + 1\right)\]
    6. Applied add-cube-cbrt0.0

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -247.204822595503:\\ \;\;\;\;\mathsf{fma}\left(-2, {x}^{-2} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\ \mathbf{elif}\;x \le 223.76966427677394:\\ \;\;\;\;\left(\frac{1}{1 + x} - \frac{1 + x}{\mathsf{fma}\left(x, x, -1\right)}\right) + \mathsf{fma}\left(\frac{-1}{\mathsf{fma}\left(x, x, -1\right)}, 1 + x, \frac{1 + x}{\mathsf{fma}\left(x, x, -1\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-2, {x}^{-2} + \frac{1}{\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)}, \frac{-2}{\left(x \cdot x\right) \cdot \left(x \cdot x\right)}\right)\\ \end{array}\]

Reproduce

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