\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\frac{\frac{\frac{\alpha + \beta}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}double f(double alpha, double beta, double i) {
double r102835 = alpha;
double r102836 = beta;
double r102837 = r102835 + r102836;
double r102838 = r102836 - r102835;
double r102839 = r102837 * r102838;
double r102840 = 2.0;
double r102841 = i;
double r102842 = r102840 * r102841;
double r102843 = r102837 + r102842;
double r102844 = r102839 / r102843;
double r102845 = r102843 + r102840;
double r102846 = r102844 / r102845;
double r102847 = 1.0;
double r102848 = r102846 + r102847;
double r102849 = r102848 / r102840;
return r102849;
}
double f(double alpha, double beta, double i) {
double r102850 = alpha;
double r102851 = beta;
double r102852 = r102850 + r102851;
double r102853 = i;
double r102854 = 2.0;
double r102855 = fma(r102853, r102854, r102852);
double r102856 = r102851 - r102850;
double r102857 = r102855 / r102856;
double r102858 = r102852 / r102857;
double r102859 = r102854 * r102853;
double r102860 = r102852 + r102859;
double r102861 = r102860 + r102854;
double r102862 = r102858 / r102861;
double r102863 = 1.0;
double r102864 = r102862 + r102863;
double r102865 = r102864 / r102854;
return r102865;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 24.2
rmApplied associate-/l*12.5
Simplified12.5
Final simplification12.5
herbie shell --seed 2020003 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))