\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 1.12143143054116757 \cdot 10^{50}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\mathsf{fma}\left(\frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)\right)}^{2} \cdot \log \left(e^{\mathsf{fma}\left(\frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right) - \frac{4}{\alpha \cdot \alpha}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r154625 = alpha;
double r154626 = beta;
double r154627 = r154625 + r154626;
double r154628 = r154626 - r154625;
double r154629 = r154627 * r154628;
double r154630 = 2.0;
double r154631 = i;
double r154632 = r154630 * r154631;
double r154633 = r154627 + r154632;
double r154634 = r154629 / r154633;
double r154635 = r154633 + r154630;
double r154636 = r154634 / r154635;
double r154637 = 1.0;
double r154638 = r154636 + r154637;
double r154639 = r154638 / r154630;
return r154639;
}
double f(double alpha, double beta, double i) {
double r154640 = alpha;
double r154641 = 1.1214314305411676e+50;
bool r154642 = r154640 <= r154641;
double r154643 = beta;
double r154644 = r154640 + r154643;
double r154645 = 2.0;
double r154646 = i;
double r154647 = fma(r154645, r154646, r154644);
double r154648 = r154647 + r154645;
double r154649 = r154644 / r154648;
double r154650 = r154643 - r154640;
double r154651 = r154650 / r154647;
double r154652 = 1.0;
double r154653 = fma(r154649, r154651, r154652);
double r154654 = 2.0;
double r154655 = pow(r154653, r154654);
double r154656 = exp(r154653);
double r154657 = log(r154656);
double r154658 = r154655 * r154657;
double r154659 = cbrt(r154658);
double r154660 = r154659 / r154645;
double r154661 = 8.0;
double r154662 = 3.0;
double r154663 = pow(r154640, r154662);
double r154664 = r154661 / r154663;
double r154665 = r154645 / r154640;
double r154666 = r154664 + r154665;
double r154667 = 4.0;
double r154668 = r154640 * r154640;
double r154669 = r154667 / r154668;
double r154670 = r154666 - r154669;
double r154671 = r154670 / r154645;
double r154672 = r154642 ? r154660 : r154671;
return r154672;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.1214314305411676e+50Initial program 11.8
Simplified1.3
rmApplied add-log-exp1.4
rmApplied add-cbrt-cube1.4
Simplified1.4
rmApplied add-log-exp1.4
rmApplied unpow31.4
Simplified1.4
if 1.1214314305411676e+50 < alpha Initial program 54.9
Simplified40.4
rmApplied add-log-exp40.5
Taylor expanded around inf 40.4
Simplified40.4
Final simplification12.1
herbie shell --seed 2020042 +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))