Average Error: 14.7 → 0.1
Time: 16.8s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -8014.095142187471537909004837274551391602:\\ \;\;\;\;\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{\frac{1}{x}}{x}\right)\\ \mathbf{elif}\;x \le 8524.530700947043442283757030963897705078:\\ \;\;\;\;\left(\sqrt[3]{\frac{1}{1 + x}} \cdot \sqrt[3]{\frac{1}{1 + x}}\right) \cdot \sqrt[3]{\frac{1}{1 + x}} - \frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{\frac{1}{x}}{x}\right)\\ \end{array}\]
\frac{1}{x + 1} - \frac{1}{x}
\begin{array}{l}
\mathbf{if}\;x \le -8014.095142187471537909004837274551391602:\\
\;\;\;\;\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{\frac{1}{x}}{x}\right)\\

\mathbf{elif}\;x \le 8524.530700947043442283757030963897705078:\\
\;\;\;\;\left(\sqrt[3]{\frac{1}{1 + x}} \cdot \sqrt[3]{\frac{1}{1 + x}}\right) \cdot \sqrt[3]{\frac{1}{1 + x}} - \frac{1}{x}\\

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

\end{array}
double f(double x) {
        double r2159508 = 1.0;
        double r2159509 = x;
        double r2159510 = r2159509 + r2159508;
        double r2159511 = r2159508 / r2159510;
        double r2159512 = r2159508 / r2159509;
        double r2159513 = r2159511 - r2159512;
        return r2159513;
}

double f(double x) {
        double r2159514 = x;
        double r2159515 = -8014.0951421874715;
        bool r2159516 = r2159514 <= r2159515;
        double r2159517 = 1.0;
        double r2159518 = r2159514 * r2159514;
        double r2159519 = r2159517 / r2159518;
        double r2159520 = r2159519 / r2159514;
        double r2159521 = 1.0;
        double r2159522 = r2159521 / r2159518;
        double r2159523 = r2159517 / r2159514;
        double r2159524 = r2159523 / r2159514;
        double r2159525 = fma(r2159519, r2159522, r2159524);
        double r2159526 = r2159520 - r2159525;
        double r2159527 = 8524.530700947043;
        bool r2159528 = r2159514 <= r2159527;
        double r2159529 = r2159517 + r2159514;
        double r2159530 = r2159517 / r2159529;
        double r2159531 = cbrt(r2159530);
        double r2159532 = r2159531 * r2159531;
        double r2159533 = r2159532 * r2159531;
        double r2159534 = r2159533 - r2159523;
        double r2159535 = r2159528 ? r2159534 : r2159526;
        double r2159536 = r2159516 ? r2159526 : r2159535;
        return r2159536;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -8014.0951421874715 or 8524.530700947043 < x

    1. Initial program 29.7

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

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

      \[\leadsto \color{blue}{\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{1}{x \cdot x}\right)}\]
    4. Using strategy rm
    5. Applied associate-/r*0.2

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

    if -8014.0951421874715 < x < 8524.530700947043

    1. Initial program 0.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -8014.095142187471537909004837274551391602:\\ \;\;\;\;\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{\frac{1}{x}}{x}\right)\\ \mathbf{elif}\;x \le 8524.530700947043442283757030963897705078:\\ \;\;\;\;\left(\sqrt[3]{\frac{1}{1 + x}} \cdot \sqrt[3]{\frac{1}{1 + x}}\right) \cdot \sqrt[3]{\frac{1}{1 + x}} - \frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{x \cdot x}}{x} - \mathsf{fma}\left(\frac{1}{x \cdot x}, \frac{1}{x \cdot x}, \frac{\frac{1}{x}}{x}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (x)
  :name "2frac (problem 3.3.1)"
  (- (/ 1.0 (+ x 1.0)) (/ 1.0 x)))