double f(double alpha, double beta) {
double r729400 = alpha;
double r729401 = beta;
double r729402 = r729400 + r729401;
double r729403 = r729401 * r729400;
double r729404 = r729402 + r729403;
double r729405 = 1.0;
double r729406 = r729404 + r729405;
double r729407 = 2.0;
double r729408 = 1.0;
double r729409 = r729407 * r729408;
double r729410 = r729402 + r729409;
double r729411 = r729406 / r729410;
double r729412 = r729411 / r729410;
double r729413 = r729410 + r729405;
double r729414 = r729412 / r729413;
return r729414;
}
double f(double alpha, double beta) {
double r729415 = alpha;
double r729416 = beta;
double r729417 = r729415 + r729416;
double r729418 = r729416 * r729415;
double r729419 = r729417 + r729418;
double r729420 = 1.0;
double r729421 = r729419 + r729420;
double r729422 = 2.0;
double r729423 = 1.0;
double r729424 = r729422 * r729423;
double r729425 = r729417 + r729424;
double r729426 = r729421 / r729425;
double r729427 = r729426 / r729425;
double r729428 = r729425 + r729420;
double r729429 = r729427 / r729428;
return r729429;
}
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}


Bits error versus alpha



Bits error versus beta
Initial program 0.4
Final simplification0.4
herbie shell --seed 2019102
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
(/.p16 (/.p16 (/.p16 (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 beta alpha)) (real->posit16 1.0)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1))) (real->posit16 1.0))))