\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;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 1.0
Simplified1.0
rmApplied p16-times-frac0.6
Final simplification0.6
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)))