\frac{\left(\frac{\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\frac{\left(\beta - \alpha\right) \cdot \frac{1.0}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}double f(double alpha, double beta) {
double r3772577 = beta;
double r3772578 = alpha;
double r3772579 = r3772577 - r3772578;
double r3772580 = r3772578 + r3772577;
double r3772581 = 2.0;
double r3772582 = /* ERROR: no posit support in C */;
double r3772583 = r3772580 + r3772582;
double r3772584 = r3772579 / r3772583;
double r3772585 = 1.0;
double r3772586 = /* ERROR: no posit support in C */;
double r3772587 = r3772584 + r3772586;
double r3772588 = r3772587 / r3772582;
return r3772588;
}
double f(double alpha, double beta) {
double r3772589 = beta;
double r3772590 = alpha;
double r3772591 = r3772589 - r3772590;
double r3772592 = 1.0;
double r3772593 = r3772590 + r3772589;
double r3772594 = 2.0;
double r3772595 = r3772593 + r3772594;
double r3772596 = r3772592 / r3772595;
double r3772597 = r3772591 * r3772596;
double r3772598 = r3772597 + r3772592;
double r3772599 = r3772598 / r3772594;
return r3772599;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.7
rmApplied p16-*-un-lft-identity0.7
Applied p16-*-un-lft-identity0.7
Applied distribute-lft-out0.7
Applied *p16-rgt-identity-expand0.7
Applied p16-times-frac0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019162
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
(/.p16 (+.p16 (/.p16 (-.p16 beta alpha) (+.p16 (+.p16 alpha beta) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))