\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\frac{\frac{\frac{\alpha + \beta}{\left(\alpha + \beta\right) + 2 \cdot i}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}{\beta - \alpha}} + 1.0}{2.0}double f(double alpha, double beta, double i) {
double r1083803 = alpha;
double r1083804 = beta;
double r1083805 = r1083803 + r1083804;
double r1083806 = r1083804 - r1083803;
double r1083807 = r1083805 * r1083806;
double r1083808 = 2.0;
double r1083809 = /* ERROR: no posit support in C */;
double r1083810 = i;
double r1083811 = r1083809 * r1083810;
double r1083812 = r1083805 + r1083811;
double r1083813 = r1083807 / r1083812;
double r1083814 = 2.0;
double r1083815 = /* ERROR: no posit support in C */;
double r1083816 = r1083812 + r1083815;
double r1083817 = r1083813 / r1083816;
double r1083818 = 1.0;
double r1083819 = /* ERROR: no posit support in C */;
double r1083820 = r1083817 + r1083819;
double r1083821 = r1083820 / r1083815;
return r1083821;
}
double f(double alpha, double beta, double i) {
double r1083822 = alpha;
double r1083823 = beta;
double r1083824 = r1083822 + r1083823;
double r1083825 = 2.0;
double r1083826 = i;
double r1083827 = r1083825 * r1083826;
double r1083828 = r1083824 + r1083827;
double r1083829 = r1083824 / r1083828;
double r1083830 = 2.0;
double r1083831 = r1083828 + r1083830;
double r1083832 = r1083823 - r1083822;
double r1083833 = r1083831 / r1083832;
double r1083834 = r1083829 / r1083833;
double r1083835 = 1.0;
double r1083836 = r1083834 + r1083835;
double r1083837 = r1083836 / r1083830;
return r1083837;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 0.9
rmApplied associate-/l*0.6
rmApplied associate-/r/0.6
Applied associate-/l*0.6
Final simplification0.6
herbie shell --seed 2019104 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 0)))
(/.p16 (+.p16 (/.p16 (/.p16 (*.p16 (+.p16 alpha beta) (-.p16 beta alpha)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))