\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(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right) - 4 \cdot \frac{1}{{\alpha}^{2}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(e^{\left(\alpha + \beta\right) \cdot \frac{\frac{\beta - \alpha}{\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 r112458 = alpha;
double r112459 = beta;
double r112460 = r112458 + r112459;
double r112461 = r112459 - r112458;
double r112462 = r112460 * r112461;
double r112463 = 2.0;
double r112464 = i;
double r112465 = r112463 * r112464;
double r112466 = r112460 + r112465;
double r112467 = r112462 / r112466;
double r112468 = r112466 + r112463;
double r112469 = r112467 / r112468;
double r112470 = 1.0;
double r112471 = r112469 + r112470;
double r112472 = r112471 / r112463;
return r112472;
}
double f(double alpha, double beta, double i) {
double r112473 = alpha;
double r112474 = beta;
double r112475 = r112473 + r112474;
double r112476 = r112474 - r112473;
double r112477 = r112475 * r112476;
double r112478 = 2.0;
double r112479 = i;
double r112480 = r112478 * r112479;
double r112481 = r112475 + r112480;
double r112482 = r112477 / r112481;
double r112483 = r112481 + r112478;
double r112484 = r112482 / r112483;
double r112485 = -1.0;
bool r112486 = r112484 <= r112485;
double r112487 = 1.0;
double r112488 = r112487 / r112473;
double r112489 = r112478 * r112488;
double r112490 = 8.0;
double r112491 = 3.0;
double r112492 = pow(r112473, r112491);
double r112493 = r112487 / r112492;
double r112494 = r112490 * r112493;
double r112495 = r112489 + r112494;
double r112496 = 4.0;
double r112497 = 2.0;
double r112498 = pow(r112473, r112497);
double r112499 = r112487 / r112498;
double r112500 = r112496 * r112499;
double r112501 = r112495 - r112500;
double r112502 = r112501 / r112478;
double r112503 = r112476 / r112481;
double r112504 = r112503 / r112483;
double r112505 = r112475 * r112504;
double r112506 = 1.0;
double r112507 = r112505 + r112506;
double r112508 = exp(r112507);
double r112509 = log(r112508);
double r112510 = r112509 / r112478;
double r112511 = r112486 ? r112502 : r112510;
return r112511;
}



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
rmApplied add-log-exp54.1
Applied add-log-exp54.1
Applied sum-log54.1
Simplified54.1
Taylor expanded around inf 33.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
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))