Average Error: 1.0 → 1.0
Time: 49.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{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 r5535910 = 1.0;
        double r5535911 = /* ERROR: no posit support in C */;
        double r5535912 = x;
        double r5535913 = r5535912 + r5535911;
        double r5535914 = r5535911 / r5535913;
        double r5535915 = 2.0;
        double r5535916 = /* ERROR: no posit support in C */;
        double r5535917 = r5535916 / r5535912;
        double r5535918 = r5535914 - r5535917;
        double r5535919 = r5535912 - r5535911;
        double r5535920 = r5535911 / r5535919;
        double r5535921 = r5535918 + r5535920;
        return r5535921;
}

double f(double x) {
        double r5535922 = 1.0;
        double r5535923 = x;
        double r5535924 = r5535923 + r5535922;
        double r5535925 = r5535922 / r5535924;
        double r5535926 = r5535923 - r5535922;
        double r5535927 = r5535922 / r5535926;
        double r5535928 = 2.0;
        double r5535929 = r5535928 / r5535923;
        double r5535930 = r5535927 - r5535929;
        double r5535931 = r5535925 + r5535930;
        return r5535931;
}

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 sub-neg1.0

    \[\leadsto \frac{\color{blue}{\left(\frac{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(-\left(\frac{\left(2\right)}{x}\right)\right)}\right)}}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\]
  4. 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(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\right)}}\]
  5. 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)}}\]
  6. Final simplification1.0

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

Reproduce

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