\frac{\left(\frac{\left(\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right) \cdot \left(\frac{\left(\beta \cdot \alpha\right)}{\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right)}\right)\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right)}\right)}{\left(\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right) - \left(1.0\right)\right)}\frac{\frac{i}{\left(\alpha + \beta\right) + 2 \cdot i}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 1.0}{\left(\alpha + \beta\right) + i}} \cdot \frac{\frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}double f(double alpha, double beta, double i) {
double r2889515 = i;
double r2889516 = alpha;
double r2889517 = beta;
double r2889518 = r2889516 + r2889517;
double r2889519 = r2889518 + r2889515;
double r2889520 = r2889515 * r2889519;
double r2889521 = r2889517 * r2889516;
double r2889522 = r2889521 + r2889520;
double r2889523 = r2889520 * r2889522;
double r2889524 = 2.0;
double r2889525 = /* ERROR: no posit support in C */;
double r2889526 = r2889525 * r2889515;
double r2889527 = r2889518 + r2889526;
double r2889528 = r2889527 * r2889527;
double r2889529 = r2889523 / r2889528;
double r2889530 = 1.0;
double r2889531 = /* ERROR: no posit support in C */;
double r2889532 = r2889528 - r2889531;
double r2889533 = r2889529 / r2889532;
return r2889533;
}
double f(double alpha, double beta, double i) {
double r2889534 = i;
double r2889535 = alpha;
double r2889536 = beta;
double r2889537 = r2889535 + r2889536;
double r2889538 = 2.0;
double r2889539 = r2889538 * r2889534;
double r2889540 = r2889537 + r2889539;
double r2889541 = r2889534 / r2889540;
double r2889542 = 1.0;
double r2889543 = r2889540 + r2889542;
double r2889544 = r2889537 + r2889534;
double r2889545 = r2889543 / r2889544;
double r2889546 = r2889541 / r2889545;
double r2889547 = r2889536 * r2889535;
double r2889548 = r2889534 * r2889544;
double r2889549 = r2889547 + r2889548;
double r2889550 = r2889549 / r2889540;
double r2889551 = r2889540 - r2889542;
double r2889552 = r2889550 / r2889551;
double r2889553 = r2889546 * r2889552;
return r2889553;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 3.2
rmApplied difference-of-sqr-13.2
Applied p16-times-frac1.7
Applied p16-times-frac1.6
rmApplied associate-/l*1.5
rmApplied associate-/r/1.5
Applied associate-/l*1.5
Final simplification1.5
herbie shell --seed 2019121
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 1)))
(/.p16 (/.p16 (*.p16 (*.p16 i (+.p16 (+.p16 alpha beta) i)) (+.p16 (*.p16 beta alpha) (*.p16 i (+.p16 (+.p16 alpha beta) i)))) (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)))) (-.p16 (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (real->posit16 1.0))))