\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(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -0.9999999999999998889776975374843459576368:\\
\;\;\;\;\frac{\left(\frac{8}{\left(\alpha \cdot \alpha\right) \cdot \alpha} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\log \left(e^{1 \cdot \left(1 \cdot 1\right)} \cdot e^{\left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)\right)}\right)}{\frac{1 \cdot 1 - \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)}{\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} + 1} \cdot 1 + \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\frac{\beta + \alpha}{\left(2 + \left(\beta + \alpha\right)\right) + 2 \cdot i} \cdot \frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}\right)}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r5532573 = alpha;
double r5532574 = beta;
double r5532575 = r5532573 + r5532574;
double r5532576 = r5532574 - r5532573;
double r5532577 = r5532575 * r5532576;
double r5532578 = 2.0;
double r5532579 = i;
double r5532580 = r5532578 * r5532579;
double r5532581 = r5532575 + r5532580;
double r5532582 = r5532577 / r5532581;
double r5532583 = r5532581 + r5532578;
double r5532584 = r5532582 / r5532583;
double r5532585 = 1.0;
double r5532586 = r5532584 + r5532585;
double r5532587 = r5532586 / r5532578;
return r5532587;
}
double f(double alpha, double beta, double i) {
double r5532588 = beta;
double r5532589 = alpha;
double r5532590 = r5532588 + r5532589;
double r5532591 = r5532588 - r5532589;
double r5532592 = r5532590 * r5532591;
double r5532593 = 2.0;
double r5532594 = i;
double r5532595 = r5532593 * r5532594;
double r5532596 = r5532595 + r5532590;
double r5532597 = r5532592 / r5532596;
double r5532598 = r5532593 + r5532596;
double r5532599 = r5532597 / r5532598;
double r5532600 = -0.9999999999999999;
bool r5532601 = r5532599 <= r5532600;
double r5532602 = 8.0;
double r5532603 = r5532589 * r5532589;
double r5532604 = r5532603 * r5532589;
double r5532605 = r5532602 / r5532604;
double r5532606 = 4.0;
double r5532607 = r5532606 / r5532603;
double r5532608 = r5532605 - r5532607;
double r5532609 = r5532593 / r5532589;
double r5532610 = r5532608 + r5532609;
double r5532611 = r5532610 / r5532593;
double r5532612 = 1.0;
double r5532613 = r5532612 * r5532612;
double r5532614 = r5532612 * r5532613;
double r5532615 = exp(r5532614);
double r5532616 = r5532593 + r5532590;
double r5532617 = r5532616 + r5532595;
double r5532618 = r5532590 / r5532617;
double r5532619 = r5532591 / r5532596;
double r5532620 = r5532618 * r5532619;
double r5532621 = r5532620 * r5532620;
double r5532622 = r5532620 * r5532621;
double r5532623 = exp(r5532622);
double r5532624 = r5532615 * r5532623;
double r5532625 = log(r5532624);
double r5532626 = r5532613 - r5532621;
double r5532627 = r5532620 + r5532612;
double r5532628 = r5532626 / r5532627;
double r5532629 = r5532628 * r5532612;
double r5532630 = r5532629 + r5532621;
double r5532631 = r5532625 / r5532630;
double r5532632 = r5532631 / r5532593;
double r5532633 = r5532601 ? r5532611 : r5532632;
return r5532633;
}



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)) < -0.9999999999999999Initial program 63.3
Taylor expanded around inf 32.7
Simplified32.7
if -0.9999999999999999 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.8
rmApplied flip3-+12.8
Simplified12.8
Simplified0.3
rmApplied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
rmApplied flip--0.3
Final simplification7.4
herbie shell --seed 2019172
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))