\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{\frac{i}{\left(\alpha + \beta\right) + 2 \cdot i}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 1.0}{\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 r2781856 = i;
double r2781857 = alpha;
double r2781858 = beta;
double r2781859 = r2781857 + r2781858;
double r2781860 = r2781859 + r2781856;
double r2781861 = r2781856 * r2781860;
double r2781862 = r2781858 * r2781857;
double r2781863 = r2781862 + r2781861;
double r2781864 = r2781861 * r2781863;
double r2781865 = 2.0;
double r2781866 = /* ERROR: no posit support in C */;
double r2781867 = r2781866 * r2781856;
double r2781868 = r2781859 + r2781867;
double r2781869 = r2781868 * r2781868;
double r2781870 = r2781864 / r2781869;
double r2781871 = 1.0;
double r2781872 = /* ERROR: no posit support in C */;
double r2781873 = r2781869 - r2781872;
double r2781874 = r2781870 / r2781873;
return r2781874;
}
double f(double alpha, double beta, double i) {
double r2781875 = i;
double r2781876 = alpha;
double r2781877 = beta;
double r2781878 = r2781876 + r2781877;
double r2781879 = 2.0;
double r2781880 = r2781879 * r2781875;
double r2781881 = r2781878 + r2781880;
double r2781882 = r2781875 / r2781881;
double r2781883 = 1.0;
double r2781884 = r2781881 + r2781883;
double r2781885 = r2781878 + r2781875;
double r2781886 = r2781884 / r2781885;
double r2781887 = r2781882 / r2781886;
double r2781888 = r2781877 * r2781876;
double r2781889 = r2781875 * r2781885;
double r2781890 = r2781888 + r2781889;
double r2781891 = r2781890 / r2781881;
double r2781892 = r2781881 - r2781883;
double r2781893 = r2781891 / r2781892;
double r2781894 = r2781887 * r2781893;
return r2781894;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 3.3
rmApplied difference-of-sqr-13.2
Applied p16-times-frac1.7
Applied p16-times-frac1.6
rmApplied associate-/l*1.5
rmApplied associate-/r/1.5
Applied associate-/l*1.5
Final simplification1.5
herbie shell --seed 2019120
(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))))