Average Error: 1.0 → 1.0
Time: 5.5m
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{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\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{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}
double f(double x) {
        double r7270418 = 1.0;
        double r7270419 = /* ERROR: no posit support in C */;
        double r7270420 = x;
        double r7270421 = r7270420 + r7270419;
        double r7270422 = r7270419 / r7270421;
        double r7270423 = 2.0;
        double r7270424 = /* ERROR: no posit support in C */;
        double r7270425 = r7270424 / r7270420;
        double r7270426 = r7270422 - r7270425;
        double r7270427 = r7270420 - r7270419;
        double r7270428 = r7270419 / r7270427;
        double r7270429 = r7270426 + r7270428;
        return r7270429;
}

double f(double x) {
        double r7270430 = 1.0;
        double r7270431 = /* ERROR: no posit support in C */;
        double r7270432 = x;
        double r7270433 = r7270432 + r7270431;
        double r7270434 = r7270431 / r7270433;
        double r7270435 = r7270432 - r7270431;
        double r7270436 = r7270431 / r7270435;
        double r7270437 = 2.0;
        double r7270438 = /* ERROR: no posit support in C */;
        double r7270439 = r7270438 / r7270432;
        double r7270440 = r7270436 - r7270439;
        double r7270441 = r7270434 + r7270440;
        return r7270441;
}

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{\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right)}{\left(\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}\]

Reproduce

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