Average Error: 14.3 → 0.4
Time: 10.9s
Precision: 64
\[\frac{1}{x + 1} - \frac{1}{x}\]
\[\frac{-\left(1 - x\right)}{x} \cdot \frac{1}{\mathsf{fma}\left(-x, x, 1 \cdot 1\right)}\]
\frac{1}{x + 1} - \frac{1}{x}
\frac{-\left(1 - x\right)}{x} \cdot \frac{1}{\mathsf{fma}\left(-x, x, 1 \cdot 1\right)}
double f(double x) {
        double r21811 = 1.0;
        double r21812 = x;
        double r21813 = r21812 + r21811;
        double r21814 = r21811 / r21813;
        double r21815 = r21811 / r21812;
        double r21816 = r21814 - r21815;
        return r21816;
}

double f(double x) {
        double r21817 = 1.0;
        double r21818 = x;
        double r21819 = r21817 - r21818;
        double r21820 = -r21819;
        double r21821 = r21820 / r21818;
        double r21822 = -r21818;
        double r21823 = r21817 * r21817;
        double r21824 = fma(r21822, r21818, r21823);
        double r21825 = r21817 / r21824;
        double r21826 = r21821 * r21825;
        return r21826;
}

Error

Bits error versus x

Derivation

  1. Initial program 14.3

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

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

    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(1, -\left(x + 1\right), x \cdot 1\right)}}{\left(x + 1\right) \cdot x}\]
  5. Taylor expanded around 0 0.3

    \[\leadsto \frac{\color{blue}{-1}}{\left(x + 1\right) \cdot x}\]
  6. Using strategy rm
  7. Applied neg-sub00.3

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

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

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

    \[\leadsto 0 - \color{blue}{\frac{\frac{1}{1 + x}}{x}}\]
  11. Using strategy rm
  12. Applied *-un-lft-identity0.1

    \[\leadsto 0 - \frac{\frac{1}{1 + x}}{\color{blue}{1 \cdot x}}\]
  13. Applied flip-+0.4

    \[\leadsto 0 - \frac{\frac{1}{\color{blue}{\frac{1 \cdot 1 - x \cdot x}{1 - x}}}}{1 \cdot x}\]
  14. Applied associate-/r/0.4

    \[\leadsto 0 - \frac{\color{blue}{\frac{1}{1 \cdot 1 - x \cdot x} \cdot \left(1 - x\right)}}{1 \cdot x}\]
  15. Applied times-frac0.4

    \[\leadsto 0 - \color{blue}{\frac{\frac{1}{1 \cdot 1 - x \cdot x}}{1} \cdot \frac{1 - x}{x}}\]
  16. Simplified0.4

    \[\leadsto 0 - \color{blue}{\frac{1}{\mathsf{fma}\left(-x, x, 1 \cdot 1\right)}} \cdot \frac{1 - x}{x}\]
  17. Final simplification0.4

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

Reproduce

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