double f(double alpha, double beta) {
double r1182788 = beta;
double r1182789 = alpha;
double r1182790 = r1182788 - r1182789;
double r1182791 = r1182789 + r1182788;
double r1182792 = 2.0;
double r1182793 = r1182791 + r1182792;
double r1182794 = r1182790 / r1182793;
double r1182795 = 1.0;
double r1182796 = r1182794 + r1182795;
double r1182797 = r1182796 / r1182792;
return r1182797;
}
double f(double alpha, double beta) {
double r1182798 = beta;
double r1182799 = alpha;
double r1182800 = r1182798 - r1182799;
double r1182801 = r1182799 + r1182798;
double r1182802 = 2.0;
double r1182803 = r1182801 + r1182802;
double r1182804 = r1182800 / r1182803;
double r1182805 = 1.0;
double r1182806 = r1182804 + r1182805;
double r1182807 = r1182806 / r1182802;
return r1182807;
}
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}


Bits error versus alpha



Bits error versus beta
Initial program 0.7
Final simplification0.7
herbie shell --seed 2019101
(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)))