\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{\left(\alpha + \beta\right) \cdot \frac{\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r116431 = alpha;
double r116432 = beta;
double r116433 = r116431 + r116432;
double r116434 = r116432 - r116431;
double r116435 = r116433 * r116434;
double r116436 = 2.0;
double r116437 = i;
double r116438 = r116436 * r116437;
double r116439 = r116433 + r116438;
double r116440 = r116435 / r116439;
double r116441 = r116439 + r116436;
double r116442 = r116440 / r116441;
double r116443 = 1.0;
double r116444 = r116442 + r116443;
double r116445 = r116444 / r116436;
return r116445;
}
double f(double alpha, double beta, double i) {
double r116446 = alpha;
double r116447 = beta;
double r116448 = r116446 + r116447;
double r116449 = r116447 - r116446;
double r116450 = r116448 * r116449;
double r116451 = 2.0;
double r116452 = i;
double r116453 = r116451 * r116452;
double r116454 = r116448 + r116453;
double r116455 = r116450 / r116454;
double r116456 = r116454 + r116451;
double r116457 = r116455 / r116456;
double r116458 = -1.0;
bool r116459 = r116457 <= r116458;
double r116460 = 8.0;
double r116461 = 3.0;
double r116462 = pow(r116446, r116461);
double r116463 = r116460 / r116462;
double r116464 = 4.0;
double r116465 = r116446 * r116446;
double r116466 = r116464 / r116465;
double r116467 = r116463 - r116466;
double r116468 = r116451 / r116446;
double r116469 = r116467 + r116468;
double r116470 = r116469 / r116451;
double r116471 = r116449 / r116454;
double r116472 = sqrt(r116456);
double r116473 = r116471 / r116472;
double r116474 = r116473 / r116472;
double r116475 = r116448 * r116474;
double r116476 = 1.0;
double r116477 = r116475 + r116476;
double r116478 = r116477 / r116451;
double r116479 = r116459 ? r116470 : r116478;
return r116479;
}



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-frac53.9
Applied times-frac53.8
Simplified53.8
Taylor expanded around inf 33.4
Simplified33.4
if -1.0 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 11.9
rmApplied *-un-lft-identity11.9
Applied *-un-lft-identity11.9
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied associate-/r*0.5
Final simplification7.8
herbie shell --seed 2020047
(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))