double f(double alpha, double beta) {
double r2207765 = beta;
double r2207766 = alpha;
double r2207767 = r2207765 - r2207766;
double r2207768 = r2207766 + r2207765;
double r2207769 = 2.0;
double r2207770 = r2207768 + r2207769;
double r2207771 = r2207767 / r2207770;
double r2207772 = 1.0;
double r2207773 = r2207771 + r2207772;
double r2207774 = r2207773 / r2207769;
return r2207774;
}
double f(double alpha, double beta) {
double r2207775 = beta;
double r2207776 = alpha;
double r2207777 = r2207775 - r2207776;
double r2207778 = 2.0;
double r2207779 = r2207775 + r2207778;
double r2207780 = r2207776 + r2207779;
double r2207781 = r2207777 / r2207780;
double r2207782 = 1.0;
double r2207783 = r2207781 + r2207782;
double r2207784 = r2207783 / r2207778;
return r2207784;
}
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\frac{\frac{\beta - \alpha}{\alpha + \left(\beta + 2.0\right)} + 1.0}{2.0}


Bits error versus alpha



Bits error versus beta
Initial program 0.7
rmApplied associate-+l+0.7
Final simplification0.7
herbie shell --seed 2019102
(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)))