\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{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}double f(double alpha, double beta, double i) {
double r149684 = alpha;
double r149685 = beta;
double r149686 = r149684 + r149685;
double r149687 = r149685 - r149684;
double r149688 = r149686 * r149687;
double r149689 = 2.0;
double r149690 = i;
double r149691 = r149689 * r149690;
double r149692 = r149686 + r149691;
double r149693 = r149688 / r149692;
double r149694 = r149692 + r149689;
double r149695 = r149693 / r149694;
double r149696 = 1.0;
double r149697 = r149695 + r149696;
double r149698 = r149697 / r149689;
return r149698;
}
double f(double alpha, double beta, double i) {
double r149699 = 1.0;
double r149700 = 2.0;
double r149701 = i;
double r149702 = beta;
double r149703 = fma(r149700, r149701, r149702);
double r149704 = alpha;
double r149705 = r149703 + r149704;
double r149706 = r149704 + r149702;
double r149707 = r149705 / r149706;
double r149708 = r149702 - r149704;
double r149709 = r149707 / r149708;
double r149710 = r149699 / r149709;
double r149711 = r149700 * r149701;
double r149712 = r149706 + r149711;
double r149713 = r149712 + r149700;
double r149714 = r149699 / r149713;
double r149715 = 1.0;
double r149716 = fma(r149710, r149714, r149715);
double r149717 = r149716 / r149700;
return r149717;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.8
rmApplied clear-num23.8
Simplified12.0
rmApplied div-inv12.0
Applied fma-def12.1
Final simplification12.1
herbie shell --seed 2019353 +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))