\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}\begin{array}{l}
\mathbf{if}\;\alpha \le 6.021952390523362835514021153198990246696 \cdot 10^{45}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2}, \beta + \alpha, 1\right)\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{\frac{8}{\alpha \cdot \alpha}}{\alpha}\right) + \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2} \cdot \beta}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r4394655 = alpha;
double r4394656 = beta;
double r4394657 = r4394655 + r4394656;
double r4394658 = r4394656 - r4394655;
double r4394659 = r4394657 * r4394658;
double r4394660 = 2.0;
double r4394661 = i;
double r4394662 = r4394660 * r4394661;
double r4394663 = r4394657 + r4394662;
double r4394664 = r4394659 / r4394663;
double r4394665 = r4394663 + r4394660;
double r4394666 = r4394664 / r4394665;
double r4394667 = 1.0;
double r4394668 = r4394666 + r4394667;
double r4394669 = r4394668 / r4394660;
return r4394669;
}
double f(double alpha, double beta, double i) {
double r4394670 = alpha;
double r4394671 = 6.021952390523363e+45;
bool r4394672 = r4394670 <= r4394671;
double r4394673 = beta;
double r4394674 = 2.0;
double r4394675 = i;
double r4394676 = r4394673 + r4394670;
double r4394677 = fma(r4394674, r4394675, r4394676);
double r4394678 = r4394673 / r4394677;
double r4394679 = r4394670 / r4394677;
double r4394680 = r4394678 - r4394679;
double r4394681 = r4394677 + r4394674;
double r4394682 = r4394680 / r4394681;
double r4394683 = 1.0;
double r4394684 = fma(r4394682, r4394676, r4394683);
double r4394685 = log(r4394684);
double r4394686 = exp(r4394685);
double r4394687 = r4394686 / r4394674;
double r4394688 = r4394674 / r4394670;
double r4394689 = 4.0;
double r4394690 = r4394670 * r4394670;
double r4394691 = r4394689 / r4394690;
double r4394692 = r4394688 - r4394691;
double r4394693 = 8.0;
double r4394694 = r4394693 / r4394690;
double r4394695 = r4394694 / r4394670;
double r4394696 = r4394692 + r4394695;
double r4394697 = r4394682 * r4394673;
double r4394698 = r4394696 + r4394697;
double r4394699 = r4394698 / r4394674;
double r4394700 = r4394672 ? r4394687 : r4394699;
return r4394700;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 6.021952390523363e+45Initial program 11.7
Simplified1.1
rmApplied fma-udef1.2
rmApplied div-sub1.2
rmApplied add-exp-log1.2
Simplified1.1
if 6.021952390523363e+45 < alpha Initial program 54.8
Simplified40.5
rmApplied fma-udef40.1
rmApplied div-sub40.1
rmApplied distribute-rgt-in40.1
Applied associate-+l+40.2
Taylor expanded around inf 40.4
Simplified40.4
Final simplification12.2
herbie shell --seed 2019172 +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))