\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(\beta + 1.0\right) \cdot \left(\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 r1014401 = alpha;
double r1014402 = beta;
double r1014403 = r1014401 + r1014402;
double r1014404 = r1014402 * r1014401;
double r1014405 = r1014403 + r1014404;
double r1014406 = 1.0;
double r1014407 = /* ERROR: no posit support in C */;
double r1014408 = r1014405 + r1014407;
double r1014409 = 2.0;
double r1014410 = /* ERROR: no posit support in C */;
double r1014411 = 1.0;
double r1014412 = /* ERROR: no posit support in C */;
double r1014413 = r1014410 * r1014412;
double r1014414 = r1014403 + r1014413;
double r1014415 = r1014408 / r1014414;
double r1014416 = r1014415 / r1014414;
double r1014417 = r1014414 + r1014407;
double r1014418 = r1014416 / r1014417;
return r1014418;
}
double f(double alpha, double beta) {
double r1014419 = beta;
double r1014420 = 1.0;
double r1014421 = r1014419 + r1014420;
double r1014422 = alpha;
double r1014423 = r1014422 + r1014420;
double r1014424 = r1014421 * r1014423;
double r1014425 = r1014422 + r1014419;
double r1014426 = 2.0;
double r1014427 = 1.0;
double r1014428 = r1014426 * r1014427;
double r1014429 = r1014425 + r1014428;
double r1014430 = r1014424 / r1014429;
double r1014431 = r1014430 / r1014429;
double r1014432 = r1014429 + r1014420;
double r1014433 = r1014431 / r1014432;
return r1014433;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.4
rmApplied associate-+l+0.4
rmApplied associate-/l/0.4
Simplified0.4
rmApplied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019107 +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))))