\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 -0.999999999999999889:\\
\;\;\;\;\frac{\frac{8}{{\alpha}^{3}} + \left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\log \left(e^{\frac{\left(\alpha + \beta\right) \cdot \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 r105390 = alpha;
double r105391 = beta;
double r105392 = r105390 + r105391;
double r105393 = r105391 - r105390;
double r105394 = r105392 * r105393;
double r105395 = 2.0;
double r105396 = i;
double r105397 = r105395 * r105396;
double r105398 = r105392 + r105397;
double r105399 = r105394 / r105398;
double r105400 = r105398 + r105395;
double r105401 = r105399 / r105400;
double r105402 = 1.0;
double r105403 = r105401 + r105402;
double r105404 = r105403 / r105395;
return r105404;
}
double f(double alpha, double beta, double i) {
double r105405 = alpha;
double r105406 = beta;
double r105407 = r105405 + r105406;
double r105408 = r105406 - r105405;
double r105409 = r105407 * r105408;
double r105410 = 2.0;
double r105411 = i;
double r105412 = r105410 * r105411;
double r105413 = r105407 + r105412;
double r105414 = r105409 / r105413;
double r105415 = r105413 + r105410;
double r105416 = r105414 / r105415;
double r105417 = -0.9999999999999999;
bool r105418 = r105416 <= r105417;
double r105419 = 8.0;
double r105420 = 3.0;
double r105421 = pow(r105405, r105420);
double r105422 = r105419 / r105421;
double r105423 = r105410 / r105405;
double r105424 = 4.0;
double r105425 = r105405 * r105405;
double r105426 = r105424 / r105425;
double r105427 = r105423 - r105426;
double r105428 = r105422 + r105427;
double r105429 = r105428 / r105410;
double r105430 = r105408 / r105413;
double r105431 = r105407 * r105430;
double r105432 = r105431 / r105415;
double r105433 = 1.0;
double r105434 = r105432 + r105433;
double r105435 = exp(r105434);
double r105436 = log(r105435);
double r105437 = r105436 / r105410;
double r105438 = r105418 ? r105429 : r105437;
return r105438;
}



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.2
Taylor expanded around inf 33.2
Simplified33.2
if -0.9999999999999999 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.7
rmApplied *-un-lft-identity12.7
Applied times-frac0.3
Simplified0.3
rmApplied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
Simplified0.3
Final simplification7.7
herbie shell --seed 2019199
(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))