\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{\left(\frac{\left(\left(\frac{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\frac{\left(\frac{\left(i \cdot \left(2\right)\right)}{\alpha}\right)}{\beta}\right)}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\beta}{\alpha}\right)}\right) \cdot \left(\frac{\left(\frac{\beta}{\alpha}\right)}{\left(\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(2.0\right)}\right)}\right) - \left(\left(0.0\right) - \beta\right)\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}double f(double alpha, double beta, double i) {
double r3092066 = alpha;
double r3092067 = beta;
double r3092068 = r3092066 + r3092067;
double r3092069 = r3092067 - r3092066;
double r3092070 = r3092068 * r3092069;
double r3092071 = 2.0;
double r3092072 = /* ERROR: no posit support in C */;
double r3092073 = i;
double r3092074 = r3092072 * r3092073;
double r3092075 = r3092068 + r3092074;
double r3092076 = r3092070 / r3092075;
double r3092077 = 2.0;
double r3092078 = /* ERROR: no posit support in C */;
double r3092079 = r3092075 + r3092078;
double r3092080 = r3092076 / r3092079;
double r3092081 = 1.0;
double r3092082 = /* ERROR: no posit support in C */;
double r3092083 = r3092080 + r3092082;
double r3092084 = r3092083 / r3092078;
return r3092084;
}
double f(double alpha, double beta, double i) {
double r3092085 = alpha;
double r3092086 = beta;
double r3092087 = r3092085 + r3092086;
double r3092088 = i;
double r3092089 = 2.0;
double r3092090 = /* ERROR: no posit support in C */;
double r3092091 = r3092088 * r3092090;
double r3092092 = r3092091 + r3092085;
double r3092093 = r3092092 + r3092086;
double r3092094 = r3092087 / r3092093;
double r3092095 = r3092086 - r3092085;
double r3092096 = r3092094 * r3092095;
double r3092097 = r3092086 + r3092085;
double r3092098 = r3092096 / r3092097;
double r3092099 = r3092090 * r3092088;
double r3092100 = 2.0;
double r3092101 = /* ERROR: no posit support in C */;
double r3092102 = r3092099 + r3092101;
double r3092103 = r3092085 + r3092102;
double r3092104 = 0.0;
double r3092105 = /* ERROR: no posit support in C */;
double r3092106 = r3092105 - r3092086;
double r3092107 = r3092103 - r3092106;
double r3092108 = r3092097 / r3092107;
double r3092109 = r3092098 * r3092108;
double r3092110 = 1.0;
double r3092111 = /* ERROR: no posit support in C */;
double r3092112 = r3092109 + r3092111;
double r3092113 = r3092112 / r3092101;
return r3092113;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 0.9
Simplified1.0
rmApplied p16-times-frac0.6
rmApplied -p16-rgt-identity-expand0.6
Applied associate-+l-0.6
Applied associate-+r-0.6
Applied associate-+r-0.6
rmApplied p16-*-un-lft-identity0.6
Applied associate-/l*0.6
rmApplied p16-flip--1.0
Applied associate-/r/1.0
Applied associate-/r*1.0
Simplified0.6
Final simplification0.6
herbie shell --seed 2019168
(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)))