\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 r1013924 = alpha;
double r1013925 = beta;
double r1013926 = r1013924 + r1013925;
double r1013927 = r1013925 * r1013924;
double r1013928 = r1013926 + r1013927;
double r1013929 = 1.0;
double r1013930 = /* ERROR: no posit support in C */;
double r1013931 = r1013928 + r1013930;
double r1013932 = 2.0;
double r1013933 = /* ERROR: no posit support in C */;
double r1013934 = 1.0;
double r1013935 = /* ERROR: no posit support in C */;
double r1013936 = r1013933 * r1013935;
double r1013937 = r1013926 + r1013936;
double r1013938 = r1013931 / r1013937;
double r1013939 = r1013938 / r1013937;
double r1013940 = r1013937 + r1013930;
double r1013941 = r1013939 / r1013940;
return r1013941;
}
double f(double alpha, double beta) {
double r1013942 = alpha;
double r1013943 = beta;
double r1013944 = r1013943 * r1013942;
double r1013945 = r1013943 + r1013944;
double r1013946 = r1013942 + r1013945;
double r1013947 = 1.0;
double r1013948 = r1013946 + r1013947;
double r1013949 = r1013942 + r1013943;
double r1013950 = 2.0;
double r1013951 = 1.0;
double r1013952 = r1013950 * r1013951;
double r1013953 = r1013949 + r1013952;
double r1013954 = r1013948 / r1013953;
double r1013955 = r1013954 / r1013953;
double r1013956 = r1013953 + r1013947;
double r1013957 = r1013955 / r1013956;
return r1013957;
}



Bits error versus alpha



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