\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{\mathsf{fma}\left(\left(\beta - \alpha\right) \cdot \frac{1}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}, \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}double f(double alpha, double beta, double i) {
double r81341 = alpha;
double r81342 = beta;
double r81343 = r81341 + r81342;
double r81344 = r81342 - r81341;
double r81345 = r81343 * r81344;
double r81346 = 2.0;
double r81347 = i;
double r81348 = r81346 * r81347;
double r81349 = r81343 + r81348;
double r81350 = r81345 / r81349;
double r81351 = r81349 + r81346;
double r81352 = r81350 / r81351;
double r81353 = 1.0;
double r81354 = r81352 + r81353;
double r81355 = r81354 / r81346;
return r81355;
}
double f(double alpha, double beta, double i) {
double r81356 = beta;
double r81357 = alpha;
double r81358 = r81356 - r81357;
double r81359 = 1.0;
double r81360 = 2.0;
double r81361 = i;
double r81362 = r81357 + r81356;
double r81363 = fma(r81360, r81361, r81362);
double r81364 = r81363 + r81360;
double r81365 = r81359 / r81364;
double r81366 = r81358 * r81365;
double r81367 = r81362 / r81363;
double r81368 = 1.0;
double r81369 = fma(r81366, r81367, r81368);
double r81370 = r81369 / r81360;
return r81370;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.9
Simplified12.2
rmApplied div-inv12.2
Final simplification12.2
herbie shell --seed 2019347 +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))