\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{\frac{\left(\alpha \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) \cdot \left(\alpha \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) - 1 \cdot 1}{\alpha \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} - 1} + \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \beta}{2}double f(double alpha, double beta, double i) {
double r3985471 = alpha;
double r3985472 = beta;
double r3985473 = r3985471 + r3985472;
double r3985474 = r3985472 - r3985471;
double r3985475 = r3985473 * r3985474;
double r3985476 = 2.0;
double r3985477 = i;
double r3985478 = r3985476 * r3985477;
double r3985479 = r3985473 + r3985478;
double r3985480 = r3985475 / r3985479;
double r3985481 = r3985479 + r3985476;
double r3985482 = r3985480 / r3985481;
double r3985483 = 1.0;
double r3985484 = r3985482 + r3985483;
double r3985485 = r3985484 / r3985476;
return r3985485;
}
double f(double alpha, double beta, double i) {
double r3985486 = alpha;
double r3985487 = beta;
double r3985488 = r3985487 - r3985486;
double r3985489 = 2.0;
double r3985490 = i;
double r3985491 = r3985486 + r3985487;
double r3985492 = fma(r3985489, r3985490, r3985491);
double r3985493 = r3985488 / r3985492;
double r3985494 = r3985489 + r3985492;
double r3985495 = r3985493 / r3985494;
double r3985496 = r3985486 * r3985495;
double r3985497 = r3985496 * r3985496;
double r3985498 = 1.0;
double r3985499 = r3985498 * r3985498;
double r3985500 = r3985497 - r3985499;
double r3985501 = r3985496 - r3985498;
double r3985502 = r3985500 / r3985501;
double r3985503 = r3985495 * r3985487;
double r3985504 = r3985502 + r3985503;
double r3985505 = r3985504 / r3985489;
return r3985505;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 24.0
Simplified12.4
rmApplied fma-udef12.3
rmApplied distribute-lft-in12.3
Applied associate-+l+12.3
rmApplied flip-+12.3
Final simplification12.3
herbie shell --seed 2019179 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))