\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}{\left(1.0\right)}\right)}\frac{\frac{\frac{\left(\alpha + \left(\beta + \beta \cdot \alpha\right)\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}double f(double alpha, double beta) {
double r1701404 = alpha;
double r1701405 = beta;
double r1701406 = r1701404 + r1701405;
double r1701407 = r1701405 * r1701404;
double r1701408 = r1701406 + r1701407;
double r1701409 = 1.0;
double r1701410 = /* ERROR: no posit support in C */;
double r1701411 = r1701408 + r1701410;
double r1701412 = 2.0;
double r1701413 = /* ERROR: no posit support in C */;
double r1701414 = 1.0;
double r1701415 = /* ERROR: no posit support in C */;
double r1701416 = r1701413 * r1701415;
double r1701417 = r1701406 + r1701416;
double r1701418 = r1701411 / r1701417;
double r1701419 = r1701418 / r1701417;
double r1701420 = r1701417 + r1701410;
double r1701421 = r1701419 / r1701420;
return r1701421;
}
double f(double alpha, double beta) {
double r1701422 = alpha;
double r1701423 = beta;
double r1701424 = r1701423 * r1701422;
double r1701425 = r1701423 + r1701424;
double r1701426 = r1701422 + r1701425;
double r1701427 = 1.0;
double r1701428 = r1701426 + r1701427;
double r1701429 = r1701422 + r1701423;
double r1701430 = 2.0;
double r1701431 = 1.0;
double r1701432 = r1701430 * r1701431;
double r1701433 = r1701429 + r1701432;
double r1701434 = r1701428 / r1701433;
double r1701435 = r1701434 / r1701433;
double r1701436 = r1701433 + r1701427;
double r1701437 = r1701435 / r1701436;
return r1701437;
}



Bits error versus alpha



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