\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{\left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) + \sqrt{1.0}} \cdot \frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i + \beta \cdot \alpha}{\left(\alpha + \beta\right) + i \cdot 2}}}{\frac{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1.0}}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i + \beta \cdot \alpha}{\left(\alpha + \beta\right) + i \cdot 2}}}}double f(double alpha, double beta, double i) {
double r2188981 = i;
double r2188982 = alpha;
double r2188983 = beta;
double r2188984 = r2188982 + r2188983;
double r2188985 = r2188984 + r2188981;
double r2188986 = r2188981 * r2188985;
double r2188987 = r2188983 * r2188982;
double r2188988 = r2188987 + r2188986;
double r2188989 = r2188986 * r2188988;
double r2188990 = 2.0;
double r2188991 = r2188990 * r2188981;
double r2188992 = r2188984 + r2188991;
double r2188993 = r2188992 * r2188992;
double r2188994 = r2188989 / r2188993;
double r2188995 = 1.0;
double r2188996 = r2188993 - r2188995;
double r2188997 = r2188994 / r2188996;
return r2188997;
}
double f(double alpha, double beta, double i) {
double r2188998 = alpha;
double r2188999 = beta;
double r2189000 = r2188998 + r2188999;
double r2189001 = i;
double r2189002 = r2189000 + r2189001;
double r2189003 = r2189002 * r2189001;
double r2189004 = 2.0;
double r2189005 = r2189001 * r2189004;
double r2189006 = r2189000 + r2189005;
double r2189007 = r2189003 / r2189006;
double r2189008 = 1.0;
double r2189009 = sqrt(r2189008);
double r2189010 = r2189006 + r2189009;
double r2189011 = r2189007 / r2189010;
double r2189012 = r2188999 * r2188998;
double r2189013 = r2189003 + r2189012;
double r2189014 = r2189013 / r2189006;
double r2189015 = sqrt(r2189014);
double r2189016 = r2189006 - r2189009;
double r2189017 = r2189016 / r2189015;
double r2189018 = r2189015 / r2189017;
double r2189019 = r2189011 * r2189018;
return r2189019;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
Initial program 52.6
rmApplied add-sqr-sqrt52.6
Applied difference-of-squares52.6
Applied times-frac38.7
Applied times-frac36.7
rmApplied add-sqr-sqrt36.8
Applied associate-/l*36.8
Final simplification36.8
herbie shell --seed 2019152
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1.0)))