\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 5.7374949380522437 \cdot 10^{160}:\\
\;\;\;\;\frac{\frac{\frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) \cdot \frac{1}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r116683 = alpha;
double r116684 = beta;
double r116685 = r116683 + r116684;
double r116686 = r116684 - r116683;
double r116687 = r116685 * r116686;
double r116688 = 2.0;
double r116689 = i;
double r116690 = r116688 * r116689;
double r116691 = r116685 + r116690;
double r116692 = r116687 / r116691;
double r116693 = r116691 + r116688;
double r116694 = r116692 / r116693;
double r116695 = 1.0;
double r116696 = r116694 + r116695;
double r116697 = r116696 / r116688;
return r116697;
}
double f(double alpha, double beta, double i) {
double r116698 = alpha;
double r116699 = 5.737494938052244e+160;
bool r116700 = r116698 <= r116699;
double r116701 = beta;
double r116702 = r116698 + r116701;
double r116703 = i;
double r116704 = 2.0;
double r116705 = fma(r116703, r116704, r116702);
double r116706 = 1.0;
double r116707 = r116701 - r116698;
double r116708 = r116706 / r116707;
double r116709 = r116705 * r116708;
double r116710 = r116702 / r116709;
double r116711 = r116704 * r116703;
double r116712 = r116702 + r116711;
double r116713 = r116712 + r116704;
double r116714 = r116710 / r116713;
double r116715 = 1.0;
double r116716 = r116714 + r116715;
double r116717 = r116716 / r116704;
double r116718 = r116706 / r116698;
double r116719 = 8.0;
double r116720 = 3.0;
double r116721 = pow(r116698, r116720);
double r116722 = r116706 / r116721;
double r116723 = r116719 * r116722;
double r116724 = 4.0;
double r116725 = 2.0;
double r116726 = pow(r116698, r116725);
double r116727 = r116706 / r116726;
double r116728 = r116724 * r116727;
double r116729 = r116723 - r116728;
double r116730 = fma(r116704, r116718, r116729);
double r116731 = r116730 / r116704;
double r116732 = r116700 ? r116717 : r116731;
return r116732;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 5.737494938052244e+160Initial program 16.3
rmApplied associate-/l*5.8
Simplified5.8
rmApplied div-inv5.8
if 5.737494938052244e+160 < alpha Initial program 64.0
Taylor expanded around inf 42.2
Simplified42.2
Final simplification11.3
herbie shell --seed 2020083 +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))