\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.0} + 1.0}{2.0}\frac{1.0 + \frac{\left(\beta - \alpha\right) \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2.0}}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2.0}double f(double alpha, double beta, double i) {
double r5176264 = alpha;
double r5176265 = beta;
double r5176266 = r5176264 + r5176265;
double r5176267 = r5176265 - r5176264;
double r5176268 = r5176266 * r5176267;
double r5176269 = 2.0;
double r5176270 = i;
double r5176271 = r5176269 * r5176270;
double r5176272 = r5176266 + r5176271;
double r5176273 = r5176268 / r5176272;
double r5176274 = 2.0;
double r5176275 = r5176272 + r5176274;
double r5176276 = r5176273 / r5176275;
double r5176277 = 1.0;
double r5176278 = r5176276 + r5176277;
double r5176279 = r5176278 / r5176274;
return r5176279;
}
double f(double alpha, double beta, double i) {
double r5176280 = 1.0;
double r5176281 = beta;
double r5176282 = alpha;
double r5176283 = r5176281 - r5176282;
double r5176284 = r5176282 + r5176281;
double r5176285 = 2.0;
double r5176286 = i;
double r5176287 = fma(r5176285, r5176286, r5176284);
double r5176288 = 2.0;
double r5176289 = r5176287 + r5176288;
double r5176290 = r5176284 / r5176289;
double r5176291 = r5176283 * r5176290;
double r5176292 = r5176291 / r5176287;
double r5176293 = r5176280 + r5176292;
double r5176294 = r5176293 / r5176288;
return r5176294;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.5
Simplified19.5
rmApplied associate-/r*12.3
rmApplied fma-udef12.2
rmApplied associate-*r/12.2
Final simplification12.2
herbie shell --seed 2019165 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1) (> beta -1) (> i 0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))