\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.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 4.811900075549953 \cdot 10^{+44}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\beta - \alpha}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}} \cdot \frac{\beta + \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\right)\right) + 1.0}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-\frac{\frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta}{\alpha}, 3.0, \mathsf{fma}\left(\frac{\frac{1}{\alpha}}{\frac{1}{2}}, 1.0, \frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta\right)\right)}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r6031668 = alpha;
double r6031669 = beta;
double r6031670 = r6031668 + r6031669;
double r6031671 = r6031669 - r6031668;
double r6031672 = r6031670 * r6031671;
double r6031673 = 2.0;
double r6031674 = i;
double r6031675 = r6031673 * r6031674;
double r6031676 = r6031670 + r6031675;
double r6031677 = r6031672 / r6031676;
double r6031678 = 2.0;
double r6031679 = r6031676 + r6031678;
double r6031680 = r6031677 / r6031679;
double r6031681 = 1.0;
double r6031682 = r6031680 + r6031681;
double r6031683 = r6031682 / r6031678;
return r6031683;
}
double f(double alpha, double beta, double i) {
double r6031684 = alpha;
double r6031685 = 4.811900075549953e+44;
bool r6031686 = r6031684 <= r6031685;
double r6031687 = beta;
double r6031688 = r6031687 - r6031684;
double r6031689 = 2.0;
double r6031690 = i;
double r6031691 = r6031687 + r6031684;
double r6031692 = fma(r6031689, r6031690, r6031691);
double r6031693 = 2.0;
double r6031694 = r6031692 + r6031693;
double r6031695 = sqrt(r6031694);
double r6031696 = r6031688 / r6031695;
double r6031697 = r6031696 / r6031695;
double r6031698 = r6031691 / r6031692;
double r6031699 = r6031697 * r6031698;
double r6031700 = log1p(r6031699);
double r6031701 = expm1(r6031700);
double r6031702 = 1.0;
double r6031703 = r6031701 + r6031702;
double r6031704 = r6031703 / r6031693;
double r6031705 = 1.0;
double r6031706 = r6031705 / r6031684;
double r6031707 = 0.5;
double r6031708 = r6031706 / r6031707;
double r6031709 = r6031708 * r6031687;
double r6031710 = r6031709 / r6031684;
double r6031711 = -r6031710;
double r6031712 = 3.0;
double r6031713 = fma(r6031708, r6031702, r6031709);
double r6031714 = fma(r6031711, r6031712, r6031713);
double r6031715 = r6031714 / r6031693;
double r6031716 = r6031686 ? r6031704 : r6031715;
return r6031716;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 4.811900075549953e+44Initial program 12.0
Simplified12.0
rmApplied expm1-log1p-u12.0
Simplified1.1
rmApplied add-sqr-sqrt1.1
Applied associate-/r*1.1
if 4.811900075549953e+44 < alpha Initial program 54.3
Simplified53.9
rmApplied expm1-log1p-u53.9
Simplified40.7
rmApplied add-cube-cbrt41.1
Applied add-cube-cbrt40.8
Applied times-frac40.8
Applied associate-*l*40.8
Taylor expanded around inf 50.7
Simplified33.1
Final simplification10.2
herbie shell --seed 2019138 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1) (> beta -1) (> i 0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))