\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 r2641740 = i;
double r2641741 = alpha;
double r2641742 = beta;
double r2641743 = r2641741 + r2641742;
double r2641744 = r2641743 + r2641740;
double r2641745 = r2641740 * r2641744;
double r2641746 = r2641742 * r2641741;
double r2641747 = r2641746 + r2641745;
double r2641748 = r2641745 * r2641747;
double r2641749 = 2.0;
double r2641750 = /* ERROR: no posit support in C */;
double r2641751 = r2641750 * r2641740;
double r2641752 = r2641743 + r2641751;
double r2641753 = r2641752 * r2641752;
double r2641754 = r2641748 / r2641753;
double r2641755 = 1.0;
double r2641756 = /* ERROR: no posit support in C */;
double r2641757 = r2641753 - r2641756;
double r2641758 = r2641754 / r2641757;
return r2641758;
}
double f(double alpha, double beta, double i) {
double r2641759 = i;
double r2641760 = alpha;
double r2641761 = beta;
double r2641762 = r2641760 + r2641761;
double r2641763 = 2.0;
double r2641764 = r2641763 * r2641759;
double r2641765 = r2641762 + r2641764;
double r2641766 = r2641759 / r2641765;
double r2641767 = 1.0;
double r2641768 = r2641765 + r2641767;
double r2641769 = r2641762 + r2641759;
double r2641770 = r2641768 / r2641769;
double r2641771 = r2641766 / r2641770;
double r2641772 = r2641761 * r2641760;
double r2641773 = r2641759 * r2641769;
double r2641774 = r2641772 + r2641773;
double r2641775 = r2641774 / r2641765;
double r2641776 = r2641765 - r2641767;
double r2641777 = r2641775 / r2641776;
double r2641778 = r2641771 * r2641777;
return r2641778;
}



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 2019107 +o rules:numerics
(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))))