\frac{\left(\frac{\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\frac{\left(\left(\mathsf{qma}\left(\left(\left(1.0\right)\right), \left(\beta - \alpha\right), \left(\frac{\left(1.0\right)}{\left(\frac{\left(2.0\right)}{\left(\frac{\alpha}{\beta}\right)}\right)}\right)\right)\right)\right)}{\left(2.0\right)}double f(double alpha, double beta) {
double r5686629 = beta;
double r5686630 = alpha;
double r5686631 = r5686629 - r5686630;
double r5686632 = r5686630 + r5686629;
double r5686633 = 2.0;
double r5686634 = /* ERROR: no posit support in C */;
double r5686635 = r5686632 + r5686634;
double r5686636 = r5686631 / r5686635;
double r5686637 = 1.0;
double r5686638 = /* ERROR: no posit support in C */;
double r5686639 = r5686636 + r5686638;
double r5686640 = r5686639 / r5686634;
return r5686640;
}
double f(double alpha, double beta) {
double r5686641 = 1.0;
double r5686642 = /* ERROR: no posit support in C */;
double r5686643 = /*Error: no posit support in C */;
double r5686644 = beta;
double r5686645 = alpha;
double r5686646 = r5686644 - r5686645;
double r5686647 = 2.0;
double r5686648 = /* ERROR: no posit support in C */;
double r5686649 = r5686645 + r5686644;
double r5686650 = r5686648 + r5686649;
double r5686651 = r5686642 / r5686650;
double r5686652 = /*Error: no posit support in C */;
double r5686653 = /*Error: no posit support in C */;
double r5686654 = r5686653 / r5686648;
return r5686654;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.7
rmApplied associate-+l+0.7
rmApplied p16-*-un-lft-identity0.7
Applied associate-/r*0.7
Simplified0.8
rmApplied p16-*-un-lft-identity0.8
Applied *p16-rgt-identity-expand0.8
Applied p16-times-frac0.8
Applied introduce-quire0.8
Applied insert-quire-fdp-add0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019168
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
(/.p16 (+.p16 (/.p16 (-.p16 beta alpha) (+.p16 (+.p16 alpha beta) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))