\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 r3966038 = i;
double r3966039 = alpha;
double r3966040 = beta;
double r3966041 = r3966039 + r3966040;
double r3966042 = r3966041 + r3966038;
double r3966043 = r3966038 * r3966042;
double r3966044 = r3966040 * r3966039;
double r3966045 = r3966044 + r3966043;
double r3966046 = r3966043 * r3966045;
double r3966047 = 2.0;
double r3966048 = r3966047 * r3966038;
double r3966049 = r3966041 + r3966048;
double r3966050 = r3966049 * r3966049;
double r3966051 = r3966046 / r3966050;
double r3966052 = 1.0;
double r3966053 = r3966050 - r3966052;
double r3966054 = r3966051 / r3966053;
return r3966054;
}
double f(double alpha, double beta, double i) {
double r3966055 = alpha;
double r3966056 = beta;
double r3966057 = r3966055 + r3966056;
double r3966058 = i;
double r3966059 = r3966057 + r3966058;
double r3966060 = r3966059 * r3966058;
double r3966061 = 2.0;
double r3966062 = r3966058 * r3966061;
double r3966063 = r3966057 + r3966062;
double r3966064 = r3966060 / r3966063;
double r3966065 = 1.0;
double r3966066 = sqrt(r3966065);
double r3966067 = r3966063 + r3966066;
double r3966068 = r3966064 / r3966067;
double r3966069 = r3966056 * r3966055;
double r3966070 = r3966060 + r3966069;
double r3966071 = r3966070 / r3966063;
double r3966072 = sqrt(r3966071);
double r3966073 = r3966063 - r3966066;
double r3966074 = r3966073 / r3966072;
double r3966075 = r3966072 / r3966074;
double r3966076 = r3966068 * r3966075;
return r3966076;
}



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)))