Average Error: 1.0 → 1.0
Time: 58.4s
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{1}{x - 1} - \frac{2}{x}\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{1}{x - 1} - \frac{2}{x}\right)
double f(double x) {
        double r2332925 = 1.0;
        double r2332926 = /* ERROR: no posit support in C */;
        double r2332927 = x;
        double r2332928 = r2332927 + r2332926;
        double r2332929 = r2332926 / r2332928;
        double r2332930 = 2.0;
        double r2332931 = /* ERROR: no posit support in C */;
        double r2332932 = r2332931 / r2332927;
        double r2332933 = r2332929 - r2332932;
        double r2332934 = r2332927 - r2332926;
        double r2332935 = r2332926 / r2332934;
        double r2332936 = r2332933 + r2332935;
        return r2332936;
}

double f(double x) {
        double r2332937 = 1.0;
        double r2332938 = x;
        double r2332939 = r2332938 + r2332937;
        double r2332940 = r2332937 / r2332939;
        double r2332941 = r2332938 - r2332937;
        double r2332942 = r2332937 / r2332941;
        double r2332943 = 2.0;
        double r2332944 = r2332943 / r2332938;
        double r2332945 = r2332942 - r2332944;
        double r2332946 = r2332940 + r2332945;
        return r2332946;
}

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 +p16-rgt-identity-expand1.0

    \[\leadsto \frac{\left(\color{blue}{\left(\frac{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(0.0\right)}\right)} - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\]
  4. Applied associate--l+1.0

    \[\leadsto \frac{\color{blue}{\left(\frac{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(\left(0.0\right) - \left(\frac{\left(2\right)}{x}\right)\right)}\right)}}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\]
  5. Applied associate-+l+1.0

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(\frac{\left(\left(0.0\right) - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\right)}}\]
  6. Simplified1.0

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

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

Reproduce

herbie shell --seed 2019153 
(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)))))