\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 r2661613 = i;
double r2661614 = alpha;
double r2661615 = beta;
double r2661616 = r2661614 + r2661615;
double r2661617 = r2661616 + r2661613;
double r2661618 = r2661613 * r2661617;
double r2661619 = r2661615 * r2661614;
double r2661620 = r2661619 + r2661618;
double r2661621 = r2661618 * r2661620;
double r2661622 = 2.0;
double r2661623 = /* ERROR: no posit support in C */;
double r2661624 = r2661623 * r2661613;
double r2661625 = r2661616 + r2661624;
double r2661626 = r2661625 * r2661625;
double r2661627 = r2661621 / r2661626;
double r2661628 = 1.0;
double r2661629 = /* ERROR: no posit support in C */;
double r2661630 = r2661626 - r2661629;
double r2661631 = r2661627 / r2661630;
return r2661631;
}
double f(double alpha, double beta, double i) {
double r2661632 = i;
double r2661633 = alpha;
double r2661634 = beta;
double r2661635 = r2661633 + r2661634;
double r2661636 = 2.0;
double r2661637 = r2661636 * r2661632;
double r2661638 = r2661635 + r2661637;
double r2661639 = r2661632 / r2661638;
double r2661640 = 1.0;
double r2661641 = r2661638 + r2661640;
double r2661642 = r2661635 + r2661632;
double r2661643 = r2661641 / r2661642;
double r2661644 = r2661639 / r2661643;
double r2661645 = r2661634 * r2661633;
double r2661646 = r2661632 * r2661642;
double r2661647 = r2661645 + r2661646;
double r2661648 = r2661647 / r2661638;
double r2661649 = r2661638 - r2661640;
double r2661650 = r2661648 / r2661649;
double r2661651 = r2661644 * r2661650;
return r2661651;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 3.3
rmApplied difference-of-sqr-13.3
Applied p16-times-frac1.7
Applied p16-times-frac1.7
rmApplied associate-/l*1.5
rmApplied associate-/r/1.5
Applied associate-/l*1.5
Final simplification1.5
herbie shell --seed 2019104
(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))))