Average Error: 1.0 → 1.0
Time: 15.9s
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 r2237605 = 1.0;
        double r2237606 = /* ERROR: no posit support in C */;
        double r2237607 = x;
        double r2237608 = r2237607 + r2237606;
        double r2237609 = r2237606 / r2237608;
        double r2237610 = 2.0;
        double r2237611 = /* ERROR: no posit support in C */;
        double r2237612 = r2237611 / r2237607;
        double r2237613 = r2237609 - r2237612;
        double r2237614 = r2237607 - r2237606;
        double r2237615 = r2237606 / r2237614;
        double r2237616 = r2237613 + r2237615;
        return r2237616;
}

double f(double x) {
        double r2237617 = 1.0;
        double r2237618 = x;
        double r2237619 = r2237618 + r2237617;
        double r2237620 = r2237617 / r2237619;
        double r2237621 = 2.0;
        double r2237622 = r2237621 / r2237618;
        double r2237623 = r2237618 - r2237617;
        double r2237624 = r2237617 / r2237623;
        double r2237625 = r2237622 - r2237624;
        double r2237626 = r2237620 - r2237625;
        return r2237626;
}

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 
(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)))))