\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{\beta + \alpha}{i \cdot 2 + \left(\left(\beta + \alpha\right) + 2.0\right)} \cdot \frac{\beta - \alpha}{\left(\beta + 2 \cdot i\right) + \alpha} + 1.0}{2.0}double f(double alpha, double beta, double i) {
double r4147429 = alpha;
double r4147430 = beta;
double r4147431 = r4147429 + r4147430;
double r4147432 = r4147430 - r4147429;
double r4147433 = r4147431 * r4147432;
double r4147434 = 2.0;
double r4147435 = /* ERROR: no posit support in C */;
double r4147436 = i;
double r4147437 = r4147435 * r4147436;
double r4147438 = r4147431 + r4147437;
double r4147439 = r4147433 / r4147438;
double r4147440 = 2.0;
double r4147441 = /* ERROR: no posit support in C */;
double r4147442 = r4147438 + r4147441;
double r4147443 = r4147439 / r4147442;
double r4147444 = 1.0;
double r4147445 = /* ERROR: no posit support in C */;
double r4147446 = r4147443 + r4147445;
double r4147447 = r4147446 / r4147441;
return r4147447;
}
double f(double alpha, double beta, double i) {
double r4147448 = beta;
double r4147449 = alpha;
double r4147450 = r4147448 + r4147449;
double r4147451 = i;
double r4147452 = 2.0;
double r4147453 = r4147451 * r4147452;
double r4147454 = 2.0;
double r4147455 = r4147450 + r4147454;
double r4147456 = r4147453 + r4147455;
double r4147457 = r4147450 / r4147456;
double r4147458 = r4147448 - r4147449;
double r4147459 = r4147452 * r4147451;
double r4147460 = r4147448 + r4147459;
double r4147461 = r4147460 + r4147449;
double r4147462 = r4147458 / r4147461;
double r4147463 = r4147457 * r4147462;
double r4147464 = 1.0;
double r4147465 = r4147463 + r4147464;
double r4147466 = r4147465 / r4147454;
return r4147466;
}



Bits error versus alpha



Bits error versus beta



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