double f(double alpha, double beta, double i) {
double r2303885 = i;
double r2303886 = alpha;
double r2303887 = beta;
double r2303888 = r2303886 + r2303887;
double r2303889 = r2303888 + r2303885;
double r2303890 = r2303885 * r2303889;
double r2303891 = r2303887 * r2303886;
double r2303892 = r2303891 + r2303890;
double r2303893 = r2303890 * r2303892;
double r2303894 = 2.0;
double r2303895 = r2303894 * r2303885;
double r2303896 = r2303888 + r2303895;
double r2303897 = r2303896 * r2303896;
double r2303898 = r2303893 / r2303897;
double r2303899 = 1.0;
double r2303900 = r2303897 - r2303899;
double r2303901 = r2303898 / r2303900;
return r2303901;
}
double f(double alpha, double beta, double i) {
double r2303902 = i;
double r2303903 = alpha;
double r2303904 = beta;
double r2303905 = r2303903 + r2303904;
double r2303906 = 2.0;
double r2303907 = r2303906 * r2303902;
double r2303908 = r2303905 + r2303907;
double r2303909 = r2303902 / r2303908;
double r2303910 = 1.0;
double r2303911 = r2303908 + r2303910;
double r2303912 = r2303905 + r2303902;
double r2303913 = r2303911 / r2303912;
double r2303914 = r2303909 / r2303913;
double r2303915 = r2303904 * r2303903;
double r2303916 = r2303902 * r2303912;
double r2303917 = r2303915 + r2303916;
double r2303918 = r2303917 / r2303908;
double r2303919 = r2303908 - r2303910;
double r2303920 = r2303918 / r2303919;
double r2303921 = r2303914 * r2303920;
return r2303921;
}
\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\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}


Bits error versus alpha



Bits error versus beta



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