\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 + \beta\right) + \left(\beta \cdot \alpha + 1.0\right)}{\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 r1170215 = alpha;
double r1170216 = beta;
double r1170217 = r1170215 + r1170216;
double r1170218 = r1170216 * r1170215;
double r1170219 = r1170217 + r1170218;
double r1170220 = 1.0;
double r1170221 = /* ERROR: no posit support in C */;
double r1170222 = r1170219 + r1170221;
double r1170223 = 2.0;
double r1170224 = /* ERROR: no posit support in C */;
double r1170225 = 1.0;
double r1170226 = /* ERROR: no posit support in C */;
double r1170227 = r1170224 * r1170226;
double r1170228 = r1170217 + r1170227;
double r1170229 = r1170222 / r1170228;
double r1170230 = r1170229 / r1170228;
double r1170231 = r1170228 + r1170221;
double r1170232 = r1170230 / r1170231;
return r1170232;
}
double f(double alpha, double beta) {
double r1170233 = alpha;
double r1170234 = beta;
double r1170235 = r1170233 + r1170234;
double r1170236 = r1170234 * r1170233;
double r1170237 = 1.0;
double r1170238 = r1170236 + r1170237;
double r1170239 = r1170235 + r1170238;
double r1170240 = 2.0;
double r1170241 = 1.0;
double r1170242 = r1170240 * r1170241;
double r1170243 = r1170235 + r1170242;
double r1170244 = r1170239 / r1170243;
double r1170245 = r1170244 / r1170243;
double r1170246 = r1170243 + r1170237;
double r1170247 = r1170245 / r1170246;
return r1170247;
}



Bits error versus alpha



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