\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.5371929371909745 \cdot 10^{209}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\alpha + \beta}{\sqrt{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}} \cdot {\left(\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2\right)}^{\frac{-3}{4}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{8}{{\alpha}^{3}} + \left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r90636 = alpha;
double r90637 = beta;
double r90638 = r90636 + r90637;
double r90639 = r90637 - r90636;
double r90640 = r90638 * r90639;
double r90641 = 2.0;
double r90642 = i;
double r90643 = r90641 * r90642;
double r90644 = r90638 + r90643;
double r90645 = r90640 / r90644;
double r90646 = r90644 + r90641;
double r90647 = r90645 / r90646;
double r90648 = 1.0;
double r90649 = r90647 + r90648;
double r90650 = r90649 / r90641;
return r90650;
}
double f(double alpha, double beta, double i) {
double r90651 = alpha;
double r90652 = 1.5371929371909745e+209;
bool r90653 = r90651 <= r90652;
double r90654 = beta;
double r90655 = r90651 + r90654;
double r90656 = 2.0;
double r90657 = i;
double r90658 = fma(r90656, r90657, r90655);
double r90659 = r90658 + r90656;
double r90660 = sqrt(r90659);
double r90661 = sqrt(r90660);
double r90662 = r90655 / r90661;
double r90663 = -0.75;
double r90664 = pow(r90659, r90663);
double r90665 = r90662 * r90664;
double r90666 = r90654 - r90651;
double r90667 = r90666 / r90658;
double r90668 = 1.0;
double r90669 = fma(r90665, r90667, r90668);
double r90670 = r90669 / r90656;
double r90671 = 8.0;
double r90672 = 3.0;
double r90673 = pow(r90651, r90672);
double r90674 = r90671 / r90673;
double r90675 = r90656 / r90651;
double r90676 = 4.0;
double r90677 = r90651 * r90651;
double r90678 = r90676 / r90677;
double r90679 = r90675 - r90678;
double r90680 = r90674 + r90679;
double r90681 = r90680 / r90656;
double r90682 = r90653 ? r90670 : r90681;
return r90682;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.5371929371909745e+209Initial program 18.9
Simplified7.4
rmApplied add-sqr-sqrt7.4
Applied associate-/r*7.4
rmApplied add-sqr-sqrt7.4
Applied sqrt-prod7.5
Applied div-inv7.5
Applied times-frac7.4
rmApplied pow1/27.4
Applied sqrt-pow17.4
Applied pow1/27.4
Applied pow-flip7.4
Applied pow-div7.4
Simplified7.4
if 1.5371929371909745e+209 < alpha Initial program 64.0
Simplified50.3
Taylor expanded around inf 40.5
Simplified40.5
Final simplification10.9
herbie shell --seed 2020046 +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))