Average Error: 1.0 → 1.0
Time: 16.3s
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 r2029729 = 1.0;
        double r2029730 = /* ERROR: no posit support in C */;
        double r2029731 = x;
        double r2029732 = r2029731 + r2029730;
        double r2029733 = r2029730 / r2029732;
        double r2029734 = 2.0;
        double r2029735 = /* ERROR: no posit support in C */;
        double r2029736 = r2029735 / r2029731;
        double r2029737 = r2029733 - r2029736;
        double r2029738 = r2029731 - r2029730;
        double r2029739 = r2029730 / r2029738;
        double r2029740 = r2029737 + r2029739;
        return r2029740;
}

double f(double x) {
        double r2029741 = 1.0;
        double r2029742 = x;
        double r2029743 = r2029742 + r2029741;
        double r2029744 = r2029741 / r2029743;
        double r2029745 = 2.0;
        double r2029746 = r2029745 / r2029742;
        double r2029747 = r2029742 - r2029741;
        double r2029748 = r2029741 / r2029747;
        double r2029749 = r2029746 - r2029748;
        double r2029750 = r2029744 - r2029749;
        return r2029750;
}

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