\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}\;\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} \le -1:\\
\;\;\;\;\frac{\left(\frac{2}{\alpha} + \frac{8}{{\alpha}^{3}}\right) - \frac{4}{\alpha \cdot \alpha}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\alpha + \beta\right) \cdot \frac{\sqrt[3]{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}\right)}^{3}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r116647 = alpha;
double r116648 = beta;
double r116649 = r116647 + r116648;
double r116650 = r116648 - r116647;
double r116651 = r116649 * r116650;
double r116652 = 2.0;
double r116653 = i;
double r116654 = r116652 * r116653;
double r116655 = r116649 + r116654;
double r116656 = r116651 / r116655;
double r116657 = r116655 + r116652;
double r116658 = r116656 / r116657;
double r116659 = 1.0;
double r116660 = r116658 + r116659;
double r116661 = r116660 / r116652;
return r116661;
}
double f(double alpha, double beta, double i) {
double r116662 = alpha;
double r116663 = beta;
double r116664 = r116662 + r116663;
double r116665 = r116663 - r116662;
double r116666 = r116664 * r116665;
double r116667 = 2.0;
double r116668 = i;
double r116669 = r116667 * r116668;
double r116670 = r116664 + r116669;
double r116671 = r116666 / r116670;
double r116672 = r116670 + r116667;
double r116673 = r116671 / r116672;
double r116674 = -1.0;
bool r116675 = r116673 <= r116674;
double r116676 = r116667 / r116662;
double r116677 = 8.0;
double r116678 = 3.0;
double r116679 = pow(r116662, r116678);
double r116680 = r116677 / r116679;
double r116681 = r116676 + r116680;
double r116682 = 4.0;
double r116683 = r116662 * r116662;
double r116684 = r116682 / r116683;
double r116685 = r116681 - r116684;
double r116686 = r116685 / r116667;
double r116687 = r116665 / r116670;
double r116688 = pow(r116687, r116678);
double r116689 = cbrt(r116688);
double r116690 = r116689 / r116672;
double r116691 = r116664 * r116690;
double r116692 = 1.0;
double r116693 = r116691 + r116692;
double r116694 = r116693 / r116667;
double r116695 = r116675 ? r116686 : r116694;
return r116695;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) < -1.0Initial program 63.3
rmApplied *-un-lft-identity63.3
Applied *-un-lft-identity63.3
Applied times-frac53.9
Applied times-frac53.8
Simplified53.8
rmApplied add-exp-log53.8
Taylor expanded around inf 33.4
Simplified33.4
if -1.0 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 11.9
rmApplied *-un-lft-identity11.9
Applied *-un-lft-identity11.9
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
rmApplied add-cbrt-cube16.3
Applied add-cbrt-cube22.4
Applied cbrt-undiv22.4
Simplified0.5
Final simplification7.8
herbie shell --seed 2020047
(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))