double f(double alpha, double beta, double i) {
double r2511663 = i;
double r2511664 = alpha;
double r2511665 = beta;
double r2511666 = r2511664 + r2511665;
double r2511667 = r2511666 + r2511663;
double r2511668 = r2511663 * r2511667;
double r2511669 = r2511665 * r2511664;
double r2511670 = r2511669 + r2511668;
double r2511671 = r2511668 * r2511670;
double r2511672 = 2.0;
double r2511673 = r2511672 * r2511663;
double r2511674 = r2511666 + r2511673;
double r2511675 = r2511674 * r2511674;
double r2511676 = r2511671 / r2511675;
double r2511677 = 1.0;
double r2511678 = r2511675 - r2511677;
double r2511679 = r2511676 / r2511678;
return r2511679;
}
double f(double alpha, double beta, double i) {
double r2511680 = i;
double r2511681 = alpha;
double r2511682 = beta;
double r2511683 = r2511681 + r2511682;
double r2511684 = 2.0;
double r2511685 = r2511684 * r2511680;
double r2511686 = r2511683 + r2511685;
double r2511687 = r2511680 / r2511686;
double r2511688 = 1.0;
double r2511689 = r2511686 + r2511688;
double r2511690 = r2511683 + r2511680;
double r2511691 = r2511689 / r2511690;
double r2511692 = r2511687 / r2511691;
double r2511693 = r2511682 * r2511681;
double r2511694 = r2511680 * r2511690;
double r2511695 = r2511693 + r2511694;
double r2511696 = r2511695 / r2511686;
double r2511697 = r2511686 - r2511688;
double r2511698 = r2511696 / r2511697;
double r2511699 = r2511692 * r2511698;
return r2511699;
}
\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\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}


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.4
rmApplied associate-/r/1.4
Applied associate-/l*1.4
Final simplification1.4
herbie shell --seed 2019102 +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))))