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



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
(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))))