double f(double alpha, double beta, double i) {
double r2900806 = i;
double r2900807 = alpha;
double r2900808 = beta;
double r2900809 = r2900807 + r2900808;
double r2900810 = r2900809 + r2900806;
double r2900811 = r2900806 * r2900810;
double r2900812 = r2900808 * r2900807;
double r2900813 = r2900812 + r2900811;
double r2900814 = r2900811 * r2900813;
double r2900815 = 2.0;
double r2900816 = r2900815 * r2900806;
double r2900817 = r2900809 + r2900816;
double r2900818 = r2900817 * r2900817;
double r2900819 = r2900814 / r2900818;
double r2900820 = 1.0;
double r2900821 = r2900818 - r2900820;
double r2900822 = r2900819 / r2900821;
return r2900822;
}
double f(double alpha, double beta, double i) {
double r2900823 = i;
double r2900824 = alpha;
double r2900825 = beta;
double r2900826 = r2900824 + r2900825;
double r2900827 = 2.0;
double r2900828 = r2900827 * r2900823;
double r2900829 = r2900826 + r2900828;
double r2900830 = 1.0;
double r2900831 = r2900829 + r2900830;
double r2900832 = r2900826 + r2900823;
double r2900833 = r2900829 / r2900832;
double r2900834 = r2900831 * r2900833;
double r2900835 = r2900823 / r2900834;
double r2900836 = r2900825 * r2900824;
double r2900837 = r2900823 * r2900832;
double r2900838 = r2900836 + r2900837;
double r2900839 = r2900838 / r2900829;
double r2900840 = r2900829 - r2900830;
double r2900841 = r2900839 / r2900840;
double r2900842 = r2900835 * r2900841;
return r2900842;
}
\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{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}


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.7
Applied p16-times-frac1.6
rmApplied associate-/l*1.5
rmApplied associate-/l/1.5
Final simplification1.5
herbie shell --seed 2019101 +o rules:numerics
(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))))