\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(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}, \left(\alpha + \beta\right) \cdot \frac{1}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}double f(double alpha, double beta, double i) {
double r73381 = alpha;
double r73382 = beta;
double r73383 = r73381 + r73382;
double r73384 = r73382 - r73381;
double r73385 = r73383 * r73384;
double r73386 = 2.0;
double r73387 = i;
double r73388 = r73386 * r73387;
double r73389 = r73383 + r73388;
double r73390 = r73385 / r73389;
double r73391 = r73389 + r73386;
double r73392 = r73390 / r73391;
double r73393 = 1.0;
double r73394 = r73392 + r73393;
double r73395 = r73394 / r73386;
return r73395;
}
double f(double alpha, double beta, double i) {
double r73396 = beta;
double r73397 = alpha;
double r73398 = r73396 - r73397;
double r73399 = 2.0;
double r73400 = i;
double r73401 = r73397 + r73396;
double r73402 = fma(r73399, r73400, r73401);
double r73403 = r73402 + r73399;
double r73404 = r73398 / r73403;
double r73405 = 1.0;
double r73406 = r73405 / r73402;
double r73407 = r73401 * r73406;
double r73408 = 1.0;
double r73409 = fma(r73404, r73407, r73408);
double r73410 = r73409 / r73399;
return r73410;
}



Bits error versus alpha



Bits error versus beta



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