Average Error: 1.0 → 1.0
Time: 17.1s
Precision: 64
\[\frac{\left(\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\]
\[\frac{1}{x + 1} - \left(\frac{2}{x} - \frac{1}{x - 1}\right)\]
\frac{\left(\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}
\frac{1}{x + 1} - \left(\frac{2}{x} - \frac{1}{x - 1}\right)
double f(double x) {
        double r1782698 = 1.0;
        double r1782699 = /* ERROR: no posit support in C */;
        double r1782700 = x;
        double r1782701 = r1782700 + r1782699;
        double r1782702 = r1782699 / r1782701;
        double r1782703 = 2.0;
        double r1782704 = /* ERROR: no posit support in C */;
        double r1782705 = r1782704 / r1782700;
        double r1782706 = r1782702 - r1782705;
        double r1782707 = r1782700 - r1782699;
        double r1782708 = r1782699 / r1782707;
        double r1782709 = r1782706 + r1782708;
        return r1782709;
}

double f(double x) {
        double r1782710 = 1.0;
        double r1782711 = x;
        double r1782712 = r1782711 + r1782710;
        double r1782713 = r1782710 / r1782712;
        double r1782714 = 2.0;
        double r1782715 = r1782714 / r1782711;
        double r1782716 = r1782711 - r1782710;
        double r1782717 = r1782710 / r1782716;
        double r1782718 = r1782715 - r1782717;
        double r1782719 = r1782713 - r1782718;
        return r1782719;
}

Error

Bits error versus x

Derivation

  1. Initial program 1.0

    \[\frac{\left(\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\]
  2. Using strategy rm
  3. Applied associate-+l-1.0

    \[\leadsto \color{blue}{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\left(\frac{\left(2\right)}{x}\right) - \left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)\right)}\]
  4. Final simplification1.0

    \[\leadsto \frac{1}{x + 1} - \left(\frac{2}{x} - \frac{1}{x - 1}\right)\]

Reproduce

herbie shell --seed 2019124 +o rules:numerics
(FPCore (x)
  :name "3frac (problem 3.3.3)"
  (+.p16 (-.p16 (/.p16 (real->posit16 1) (+.p16 x (real->posit16 1))) (/.p16 (real->posit16 2) x)) (/.p16 (real->posit16 1) (-.p16 x (real->posit16 1)))))