\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{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(e^{\left(\alpha + \beta\right) \cdot \frac{\left(\beta - \alpha\right) \cdot \frac{1}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r91460 = alpha;
double r91461 = beta;
double r91462 = r91460 + r91461;
double r91463 = r91461 - r91460;
double r91464 = r91462 * r91463;
double r91465 = 2.0;
double r91466 = i;
double r91467 = r91465 * r91466;
double r91468 = r91462 + r91467;
double r91469 = r91464 / r91468;
double r91470 = r91468 + r91465;
double r91471 = r91469 / r91470;
double r91472 = 1.0;
double r91473 = r91471 + r91472;
double r91474 = r91473 / r91465;
return r91474;
}
double f(double alpha, double beta, double i) {
double r91475 = alpha;
double r91476 = beta;
double r91477 = r91475 + r91476;
double r91478 = r91476 - r91475;
double r91479 = r91477 * r91478;
double r91480 = 2.0;
double r91481 = i;
double r91482 = r91480 * r91481;
double r91483 = r91477 + r91482;
double r91484 = r91479 / r91483;
double r91485 = r91483 + r91480;
double r91486 = r91484 / r91485;
double r91487 = -1.0;
bool r91488 = r91486 <= r91487;
double r91489 = 8.0;
double r91490 = 3.0;
double r91491 = pow(r91475, r91490);
double r91492 = r91489 / r91491;
double r91493 = 4.0;
double r91494 = r91475 * r91475;
double r91495 = r91493 / r91494;
double r91496 = r91492 - r91495;
double r91497 = r91480 / r91475;
double r91498 = r91496 + r91497;
double r91499 = r91498 / r91480;
double r91500 = 1.0;
double r91501 = r91500 / r91483;
double r91502 = r91478 * r91501;
double r91503 = r91502 / r91485;
double r91504 = r91477 * r91503;
double r91505 = 1.0;
double r91506 = r91504 + r91505;
double r91507 = exp(r91506);
double r91508 = log(r91507);
double r91509 = r91508 / r91480;
double r91510 = r91488 ? r91499 : r91509;
return r91510;
}



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-frac54.2
Applied times-frac54.1
Simplified54.1
Taylor expanded around inf 33.0
Simplified33.0
if -1.0 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 13.1
rmApplied *-un-lft-identity13.1
Applied *-un-lft-identity13.1
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
rmApplied add-log-exp0.5
Applied add-log-exp0.6
Applied sum-log0.6
Simplified0.6
rmApplied div-inv0.6
Final simplification7.5
herbie shell --seed 2019323
(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))