\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(\alpha + \left(\beta + \beta \cdot \alpha\right)\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 r899013 = alpha;
double r899014 = beta;
double r899015 = r899013 + r899014;
double r899016 = r899014 * r899013;
double r899017 = r899015 + r899016;
double r899018 = 1.0;
double r899019 = /* ERROR: no posit support in C */;
double r899020 = r899017 + r899019;
double r899021 = 2.0;
double r899022 = /* ERROR: no posit support in C */;
double r899023 = 1.0;
double r899024 = /* ERROR: no posit support in C */;
double r899025 = r899022 * r899024;
double r899026 = r899015 + r899025;
double r899027 = r899020 / r899026;
double r899028 = r899027 / r899026;
double r899029 = r899026 + r899019;
double r899030 = r899028 / r899029;
return r899030;
}
double f(double alpha, double beta) {
double r899031 = alpha;
double r899032 = beta;
double r899033 = r899032 * r899031;
double r899034 = r899032 + r899033;
double r899035 = r899031 + r899034;
double r899036 = 1.0;
double r899037 = r899035 + r899036;
double r899038 = r899031 + r899032;
double r899039 = 2.0;
double r899040 = 1.0;
double r899041 = r899039 * r899040;
double r899042 = r899038 + r899041;
double r899043 = r899037 / r899042;
double r899044 = r899043 / r899042;
double r899045 = r899042 + r899036;
double r899046 = r899044 / r899045;
return r899046;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.4
rmApplied associate-+l+0.4
Final simplification0.4
herbie shell --seed 2019119
(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))))