\frac{\left(\frac{\left(\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right) \cdot \left(\frac{\left(\beta \cdot \alpha\right)}{\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right)}\right)\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right)}\right)}{\left(\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right) - \left(1.0\right)\right)}\frac{i}{\left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 1.0\right) \cdot \frac{\left(\alpha + \beta\right) + 2 \cdot i}{\left(\alpha + \beta\right) + i}} \cdot \frac{\frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}double f(double alpha, double beta, double i) {
double r3413342 = i;
double r3413343 = alpha;
double r3413344 = beta;
double r3413345 = r3413343 + r3413344;
double r3413346 = r3413345 + r3413342;
double r3413347 = r3413342 * r3413346;
double r3413348 = r3413344 * r3413343;
double r3413349 = r3413348 + r3413347;
double r3413350 = r3413347 * r3413349;
double r3413351 = 2.0;
double r3413352 = /* ERROR: no posit support in C */;
double r3413353 = r3413352 * r3413342;
double r3413354 = r3413345 + r3413353;
double r3413355 = r3413354 * r3413354;
double r3413356 = r3413350 / r3413355;
double r3413357 = 1.0;
double r3413358 = /* ERROR: no posit support in C */;
double r3413359 = r3413355 - r3413358;
double r3413360 = r3413356 / r3413359;
return r3413360;
}
double f(double alpha, double beta, double i) {
double r3413361 = i;
double r3413362 = alpha;
double r3413363 = beta;
double r3413364 = r3413362 + r3413363;
double r3413365 = 2.0;
double r3413366 = r3413365 * r3413361;
double r3413367 = r3413364 + r3413366;
double r3413368 = 1.0;
double r3413369 = r3413367 + r3413368;
double r3413370 = r3413364 + r3413361;
double r3413371 = r3413367 / r3413370;
double r3413372 = r3413369 * r3413371;
double r3413373 = r3413361 / r3413372;
double r3413374 = r3413363 * r3413362;
double r3413375 = r3413361 * r3413370;
double r3413376 = r3413374 + r3413375;
double r3413377 = r3413376 / r3413367;
double r3413378 = r3413367 - r3413368;
double r3413379 = r3413377 / r3413378;
double r3413380 = r3413373 * r3413379;
return r3413380;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 3.3
rmApplied difference-of-sqr-13.3
Applied p16-times-frac1.8
Applied p16-times-frac1.7
rmApplied associate-/l*1.5
rmApplied associate-/l/1.5
Final simplification1.5
herbie shell --seed 2019130
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 1)))
(/.p16 (/.p16 (*.p16 (*.p16 i (+.p16 (+.p16 alpha beta) i)) (+.p16 (*.p16 beta alpha) (*.p16 i (+.p16 (+.p16 alpha beta) i)))) (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)))) (-.p16 (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (real->posit16 1.0))))