\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.9999999996909236799069731205236166715622:\\
\;\;\;\;\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 r112390 = alpha;
double r112391 = beta;
double r112392 = r112390 + r112391;
double r112393 = r112391 - r112390;
double r112394 = r112392 * r112393;
double r112395 = 2.0;
double r112396 = i;
double r112397 = r112395 * r112396;
double r112398 = r112392 + r112397;
double r112399 = r112394 / r112398;
double r112400 = r112398 + r112395;
double r112401 = r112399 / r112400;
double r112402 = 1.0;
double r112403 = r112401 + r112402;
double r112404 = r112403 / r112395;
return r112404;
}
double f(double alpha, double beta, double i) {
double r112405 = alpha;
double r112406 = beta;
double r112407 = r112405 + r112406;
double r112408 = r112406 - r112405;
double r112409 = r112407 * r112408;
double r112410 = 2.0;
double r112411 = i;
double r112412 = r112410 * r112411;
double r112413 = r112407 + r112412;
double r112414 = r112409 / r112413;
double r112415 = r112413 + r112410;
double r112416 = r112414 / r112415;
double r112417 = -0.9999999996909237;
bool r112418 = r112416 <= r112417;
double r112419 = 1.0;
double r112420 = r112419 / r112405;
double r112421 = r112410 * r112420;
double r112422 = 8.0;
double r112423 = 3.0;
double r112424 = pow(r112405, r112423);
double r112425 = r112419 / r112424;
double r112426 = r112422 * r112425;
double r112427 = r112421 + r112426;
double r112428 = 4.0;
double r112429 = 2.0;
double r112430 = pow(r112405, r112429);
double r112431 = r112419 / r112430;
double r112432 = r112428 * r112431;
double r112433 = r112427 - r112432;
double r112434 = r112433 / r112410;
double r112435 = r112408 / r112413;
double r112436 = r112435 / r112415;
double r112437 = r112407 * r112436;
double r112438 = 1.0;
double r112439 = r112437 + r112438;
double r112440 = exp(r112439);
double r112441 = log(r112440);
double r112442 = r112441 / r112410;
double r112443 = r112418 ? r112434 : r112442;
return r112443;
}



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.9999999996909237Initial program 62.9
Taylor expanded around inf 31.5
if -0.9999999996909237 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.8
rmApplied *-un-lft-identity12.8
Applied *-un-lft-identity12.8
Applied times-frac0.1
Applied times-frac0.1
Simplified0.1
rmApplied add-log-exp0.1
Applied add-log-exp0.1
Applied sum-log0.1
Simplified0.1
Final simplification7.2
herbie shell --seed 2019322
(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))