\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\frac{\frac{\frac{1.0}{\left(\alpha + \beta\right) + 2 \cdot i} \cdot \left(\beta + \alpha\right)}{\frac{\left(\alpha + \left(\beta + 2 \cdot i\right)\right) + 2.0}{\beta - \alpha}} + 1.0}{2.0}double f(double alpha, double beta, double i) {
double r1523000 = alpha;
double r1523001 = beta;
double r1523002 = r1523000 + r1523001;
double r1523003 = r1523001 - r1523000;
double r1523004 = r1523002 * r1523003;
double r1523005 = 2.0;
double r1523006 = /* ERROR: no posit support in C */;
double r1523007 = i;
double r1523008 = r1523006 * r1523007;
double r1523009 = r1523002 + r1523008;
double r1523010 = r1523004 / r1523009;
double r1523011 = 2.0;
double r1523012 = /* ERROR: no posit support in C */;
double r1523013 = r1523009 + r1523012;
double r1523014 = r1523010 / r1523013;
double r1523015 = 1.0;
double r1523016 = /* ERROR: no posit support in C */;
double r1523017 = r1523014 + r1523016;
double r1523018 = r1523017 / r1523012;
return r1523018;
}
double f(double alpha, double beta, double i) {
double r1523019 = 1.0;
double r1523020 = alpha;
double r1523021 = beta;
double r1523022 = r1523020 + r1523021;
double r1523023 = 2.0;
double r1523024 = i;
double r1523025 = r1523023 * r1523024;
double r1523026 = r1523022 + r1523025;
double r1523027 = r1523019 / r1523026;
double r1523028 = r1523021 + r1523020;
double r1523029 = r1523027 * r1523028;
double r1523030 = r1523021 + r1523025;
double r1523031 = r1523020 + r1523030;
double r1523032 = 2.0;
double r1523033 = r1523031 + r1523032;
double r1523034 = r1523021 - r1523020;
double r1523035 = r1523033 / r1523034;
double r1523036 = r1523029 / r1523035;
double r1523037 = r1523036 + r1523019;
double r1523038 = r1523037 / r1523032;
return r1523038;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 1.0
rmApplied *p16-rgt-identity-expand1.0
Applied p16-times-frac0.6
Simplified0.6
rmApplied associate-+l+0.6
rmApplied associate-/l*0.6
rmApplied *p16-rgt-identity-expand0.6
Applied *p16-lft-identity-expand0.6
Applied p16-times-frac0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019152
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 0)))
(/.p16 (+.p16 (/.p16 (/.p16 (*.p16 (+.p16 alpha beta) (-.p16 beta alpha)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))