\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{1}{\frac{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}{\beta - \alpha}}, \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 r64591 = alpha;
double r64592 = beta;
double r64593 = r64591 + r64592;
double r64594 = r64592 - r64591;
double r64595 = r64593 * r64594;
double r64596 = 2.0;
double r64597 = i;
double r64598 = r64596 * r64597;
double r64599 = r64593 + r64598;
double r64600 = r64595 / r64599;
double r64601 = r64599 + r64596;
double r64602 = r64600 / r64601;
double r64603 = 1.0;
double r64604 = r64602 + r64603;
double r64605 = r64604 / r64596;
return r64605;
}
double f(double alpha, double beta, double i) {
double r64606 = 1.0;
double r64607 = 2.0;
double r64608 = i;
double r64609 = alpha;
double r64610 = beta;
double r64611 = r64609 + r64610;
double r64612 = fma(r64607, r64608, r64611);
double r64613 = r64612 + r64607;
double r64614 = r64610 - r64609;
double r64615 = r64613 / r64614;
double r64616 = r64606 / r64615;
double r64617 = r64606 / r64612;
double r64618 = r64611 * r64617;
double r64619 = 1.0;
double r64620 = fma(r64616, r64618, r64619);
double r64621 = r64620 / r64607;
return r64621;
}



Bits error versus alpha



Bits error versus beta



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