Average Error: 1.0 → 0.6
Time: 41.4s
Precision: 64
\[\alpha \gt \left(-1\right) \land \beta \gt \left(-1\right) \land i \gt \left(0\right)\]
\[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
\[\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \frac{\beta + \alpha}{\left(2.0 + \left(\beta + \alpha\right)\right) + 2 \cdot i} + 1.0}{2.0}\]
\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}
\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \frac{\beta + \alpha}{\left(2.0 + \left(\beta + \alpha\right)\right) + 2 \cdot i} + 1.0}{2.0}
double f(double alpha, double beta, double i) {
        double r2859471 = alpha;
        double r2859472 = beta;
        double r2859473 = r2859471 + r2859472;
        double r2859474 = r2859472 - r2859471;
        double r2859475 = r2859473 * r2859474;
        double r2859476 = 2.0;
        double r2859477 = /* ERROR: no posit support in C */;
        double r2859478 = i;
        double r2859479 = r2859477 * r2859478;
        double r2859480 = r2859473 + r2859479;
        double r2859481 = r2859475 / r2859480;
        double r2859482 = 2.0;
        double r2859483 = /* ERROR: no posit support in C */;
        double r2859484 = r2859480 + r2859483;
        double r2859485 = r2859481 / r2859484;
        double r2859486 = 1.0;
        double r2859487 = /* ERROR: no posit support in C */;
        double r2859488 = r2859485 + r2859487;
        double r2859489 = r2859488 / r2859483;
        return r2859489;
}

double f(double alpha, double beta, double i) {
        double r2859490 = beta;
        double r2859491 = alpha;
        double r2859492 = r2859490 - r2859491;
        double r2859493 = 2.0;
        double r2859494 = i;
        double r2859495 = r2859493 * r2859494;
        double r2859496 = r2859490 + r2859491;
        double r2859497 = r2859495 + r2859496;
        double r2859498 = r2859492 / r2859497;
        double r2859499 = 2.0;
        double r2859500 = r2859499 + r2859496;
        double r2859501 = r2859500 + r2859495;
        double r2859502 = r2859496 / r2859501;
        double r2859503 = r2859498 * r2859502;
        double r2859504 = 1.0;
        double r2859505 = r2859503 + r2859504;
        double r2859506 = r2859505 / r2859499;
        return r2859506;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 1.0

    \[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  2. Simplified1.0

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(\frac{\left(\left(\beta - \alpha\right) \cdot \left(\frac{\beta}{\alpha}\right)\right)}{\left(\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right) \cdot \left(\frac{\left(\frac{\left(2.0\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}}\]
  3. Using strategy rm
  4. Applied p16-times-frac0.6

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \left(\frac{\left(\frac{\beta}{\alpha}\right)}{\left(\frac{\left(\frac{\left(2.0\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)\right)}}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  5. Final simplification0.6

    \[\leadsto \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \frac{\beta + \alpha}{\left(2.0 + \left(\beta + \alpha\right)\right) + 2 \cdot i} + 1.0}{2.0}\]

Reproduce

herbie shell --seed 2019133 
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 0)))
  (/.p16 (+.p16 (/.p16 (/.p16 (*.p16 (+.p16 alpha beta) (-.p16 beta alpha)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))