\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 \cdot \frac{1.0}{\left(\alpha + \beta\right) + 2.0} + \left(-\alpha\right) \cdot \frac{1.0}{\left(\alpha + \beta\right) + 2.0}\right) + 1.0}{2.0}double f(double alpha, double beta) {
double r861370 = beta;
double r861371 = alpha;
double r861372 = r861370 - r861371;
double r861373 = r861371 + r861370;
double r861374 = 2.0;
double r861375 = /* ERROR: no posit support in C */;
double r861376 = r861373 + r861375;
double r861377 = r861372 / r861376;
double r861378 = 1.0;
double r861379 = /* ERROR: no posit support in C */;
double r861380 = r861377 + r861379;
double r861381 = r861380 / r861375;
return r861381;
}
double f(double alpha, double beta) {
double r861382 = beta;
double r861383 = 1.0;
double r861384 = alpha;
double r861385 = r861384 + r861382;
double r861386 = 2.0;
double r861387 = r861385 + r861386;
double r861388 = r861383 / r861387;
double r861389 = r861382 * r861388;
double r861390 = -r861384;
double r861391 = r861390 * r861388;
double r861392 = r861389 + r861391;
double r861393 = r861392 + r861383;
double r861394 = r861393 / r861386;
return r861394;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.7
rmApplied p16-*-un-lft-identity0.7
Applied associate-/l*0.7
rmApplied associate-/r/0.8
rmApplied sub-neg0.8
Applied distribute-rgt-in0.7
Final simplification0.7
herbie shell --seed 2019154 +o rules:numerics
(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)))