Average Error: 14.3 → 0.0
Time: 5.3s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x - 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -228.13929609903033 \lor \neg \left(x \le 219.779744927135624\right):\\ \;\;\;\;\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, {x}^{\left(-2\right)}, 2 \cdot \frac{1}{{x}^{4}}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{{x}^{3} + {1}^{3}}, x \cdot x + \left(1 \cdot 1 - x \cdot 1\right), -\frac{1}{x - 1}\right)\\ \end{array}\]
\frac{1}{x + 1} - \frac{1}{x - 1}
\begin{array}{l}
\mathbf{if}\;x \le -228.13929609903033 \lor \neg \left(x \le 219.779744927135624\right):\\
\;\;\;\;\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, {x}^{\left(-2\right)}, 2 \cdot \frac{1}{{x}^{4}}\right)\\

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

\end{array}
double f(double x) {
        double r151143 = 1.0;
        double r151144 = x;
        double r151145 = r151144 + r151143;
        double r151146 = r151143 / r151145;
        double r151147 = r151144 - r151143;
        double r151148 = r151143 / r151147;
        double r151149 = r151146 - r151148;
        return r151149;
}

double f(double x) {
        double r151150 = x;
        double r151151 = -228.13929609903033;
        bool r151152 = r151150 <= r151151;
        double r151153 = 219.77974492713562;
        bool r151154 = r151150 <= r151153;
        double r151155 = !r151154;
        bool r151156 = r151152 || r151155;
        double r151157 = 2.0;
        double r151158 = -r151157;
        double r151159 = 6.0;
        double r151160 = pow(r151150, r151159);
        double r151161 = r151158 / r151160;
        double r151162 = 2.0;
        double r151163 = -r151162;
        double r151164 = pow(r151150, r151163);
        double r151165 = 1.0;
        double r151166 = 4.0;
        double r151167 = pow(r151150, r151166);
        double r151168 = r151165 / r151167;
        double r151169 = r151157 * r151168;
        double r151170 = fma(r151157, r151164, r151169);
        double r151171 = r151161 - r151170;
        double r151172 = 1.0;
        double r151173 = 3.0;
        double r151174 = pow(r151150, r151173);
        double r151175 = pow(r151172, r151173);
        double r151176 = r151174 + r151175;
        double r151177 = r151172 / r151176;
        double r151178 = r151150 * r151150;
        double r151179 = r151172 * r151172;
        double r151180 = r151150 * r151172;
        double r151181 = r151179 - r151180;
        double r151182 = r151178 + r151181;
        double r151183 = r151150 - r151172;
        double r151184 = r151172 / r151183;
        double r151185 = -r151184;
        double r151186 = fma(r151177, r151182, r151185);
        double r151187 = r151156 ? r151171 : r151186;
        return r151187;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -228.13929609903033 or 219.77974492713562 < x

    1. Initial program 28.8

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

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

      \[\leadsto \color{blue}{\frac{-2}{{x}^{6}} - \mathsf{fma}\left(2, \frac{1}{{x}^{2}}, 2 \cdot \frac{1}{{x}^{4}}\right)}\]
    4. Using strategy rm
    5. Applied pow-flip0.0

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

    if -228.13929609903033 < x < 219.77974492713562

    1. Initial program 0.0

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

      \[\leadsto \frac{1}{\color{blue}{\frac{{x}^{3} + {1}^{3}}{x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)}}} - \frac{1}{x - 1}\]
    4. Applied associate-/r/0.0

      \[\leadsto \color{blue}{\frac{1}{{x}^{3} + {1}^{3}} \cdot \left(x \cdot x + \left(1 \cdot 1 - x \cdot 1\right)\right)} - \frac{1}{x - 1}\]
    5. Applied fma-neg0.0

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

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

Reproduce

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