\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}{\left(1.0\right)}\right)}\frac{\frac{1.0}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\left(\mathsf{qma}\left(\left(\mathsf{qma}\left(\left(\left(\alpha + \beta\right)\right), \left(\beta \cdot \alpha\right), 1.0\right)\right), 1.0, 1.0\right)\right)}} \cdot \frac{1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}double f(double alpha, double beta) {
double r3809624 = alpha;
double r3809625 = beta;
double r3809626 = r3809624 + r3809625;
double r3809627 = r3809625 * r3809624;
double r3809628 = r3809626 + r3809627;
double r3809629 = 1.0;
double r3809630 = /* ERROR: no posit support in C */;
double r3809631 = r3809628 + r3809630;
double r3809632 = 2.0;
double r3809633 = /* ERROR: no posit support in C */;
double r3809634 = 1.0;
double r3809635 = /* ERROR: no posit support in C */;
double r3809636 = r3809633 * r3809635;
double r3809637 = r3809626 + r3809636;
double r3809638 = r3809631 / r3809637;
double r3809639 = r3809638 / r3809637;
double r3809640 = r3809637 + r3809630;
double r3809641 = r3809639 / r3809640;
return r3809641;
}
double f(double alpha, double beta) {
double r3809642 = 1.0;
double r3809643 = alpha;
double r3809644 = beta;
double r3809645 = r3809643 + r3809644;
double r3809646 = 2.0;
double r3809647 = 1.0;
double r3809648 = r3809646 * r3809647;
double r3809649 = r3809645 + r3809648;
double r3809650 = /*Error: no posit support in C */;
double r3809651 = r3809644 * r3809643;
double r3809652 = /*Error: no posit support in C */;
double r3809653 = /*Error: no posit support in C */;
double r3809654 = /*Error: no posit support in C */;
double r3809655 = r3809649 / r3809654;
double r3809656 = r3809642 / r3809655;
double r3809657 = r3809642 / r3809649;
double r3809658 = r3809656 * r3809657;
double r3809659 = r3809649 + r3809642;
double r3809660 = r3809658 / r3809659;
return r3809660;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.4
rmApplied introduce-quire0.4
Applied insert-quire-add0.4
Applied insert-quire-add0.3
rmApplied p16-*-un-lft-identity0.3
Applied associate-/l*0.4
rmApplied associate-/r/0.4
Applied p16-*-un-lft-identity0.4
Applied p16-times-frac0.4
Final simplification0.4
herbie shell --seed 2019162
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
(/.p16 (/.p16 (/.p16 (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 beta alpha)) (real->posit16 1.0)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1))) (real->posit16 1.0))))