\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{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\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 r505651 = alpha;
double r505652 = beta;
double r505653 = r505651 + r505652;
double r505654 = r505652 * r505651;
double r505655 = r505653 + r505654;
double r505656 = 1.0;
double r505657 = /* ERROR: no posit support in C */;
double r505658 = r505655 + r505657;
double r505659 = 2.0;
double r505660 = /* ERROR: no posit support in C */;
double r505661 = 1.0;
double r505662 = /* ERROR: no posit support in C */;
double r505663 = r505660 * r505662;
double r505664 = r505653 + r505663;
double r505665 = r505658 / r505664;
double r505666 = r505665 / r505664;
double r505667 = r505664 + r505657;
double r505668 = r505666 / r505667;
return r505668;
}
double f(double alpha, double beta) {
double r505669 = alpha;
double r505670 = beta;
double r505671 = r505669 + r505670;
double r505672 = r505670 * r505669;
double r505673 = r505671 + r505672;
double r505674 = 1.0;
double r505675 = r505673 + r505674;
double r505676 = 2.0;
double r505677 = 1.0;
double r505678 = r505676 * r505677;
double r505679 = r505671 + r505678;
double r505680 = r505675 / r505679;
double r505681 = r505680 / r505679;
double r505682 = r505679 + r505674;
double r505683 = r505681 / r505682;
return r505683;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.4
Final simplification0.4
herbie shell --seed 2019120 +o rules:numerics
(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))))