Average Error: 14.9 → 0.4
Time: 28.3s
Precision: 64
\[\frac{1.0}{x + 1.0} - \frac{1.0}{x}\]
\[\frac{-1.0}{x \cdot \left(1.0 + x\right)}\]
\frac{1.0}{x + 1.0} - \frac{1.0}{x}
\frac{-1.0}{x \cdot \left(1.0 + x\right)}
double f(double x) {
        double r3074903 = 1.0;
        double r3074904 = x;
        double r3074905 = r3074904 + r3074903;
        double r3074906 = r3074903 / r3074905;
        double r3074907 = r3074903 / r3074904;
        double r3074908 = r3074906 - r3074907;
        return r3074908;
}

double f(double x) {
        double r3074909 = 1.0;
        double r3074910 = -r3074909;
        double r3074911 = x;
        double r3074912 = r3074909 + r3074911;
        double r3074913 = r3074911 * r3074912;
        double r3074914 = r3074910 / r3074913;
        return r3074914;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 14.9

    \[\frac{1.0}{x + 1.0} - \frac{1.0}{x}\]
  2. Using strategy rm
  3. Applied frac-sub14.3

    \[\leadsto \color{blue}{\frac{1.0 \cdot x - \left(x + 1.0\right) \cdot 1.0}{\left(x + 1.0\right) \cdot x}}\]
  4. Taylor expanded around 0 0.4

    \[\leadsto \frac{\color{blue}{-1.0}}{\left(x + 1.0\right) \cdot x}\]
  5. Final simplification0.4

    \[\leadsto \frac{-1.0}{x \cdot \left(1.0 + x\right)}\]

Reproduce

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