\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{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{{\alpha}^{2}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\frac{\alpha + \beta}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1\right)}^{3}}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r125398 = alpha;
double r125399 = beta;
double r125400 = r125398 + r125399;
double r125401 = r125399 - r125398;
double r125402 = r125400 * r125401;
double r125403 = 2.0;
double r125404 = i;
double r125405 = r125403 * r125404;
double r125406 = r125400 + r125405;
double r125407 = r125402 / r125406;
double r125408 = r125406 + r125403;
double r125409 = r125407 / r125408;
double r125410 = 1.0;
double r125411 = r125409 + r125410;
double r125412 = r125411 / r125403;
return r125412;
}
double f(double alpha, double beta, double i) {
double r125413 = alpha;
double r125414 = beta;
double r125415 = r125413 + r125414;
double r125416 = r125414 - r125413;
double r125417 = r125415 * r125416;
double r125418 = 2.0;
double r125419 = i;
double r125420 = r125418 * r125419;
double r125421 = r125415 + r125420;
double r125422 = r125417 / r125421;
double r125423 = r125421 + r125418;
double r125424 = r125422 / r125423;
double r125425 = -0.9999999999999999;
bool r125426 = r125424 <= r125425;
double r125427 = r125418 / r125413;
double r125428 = 8.0;
double r125429 = 3.0;
double r125430 = pow(r125413, r125429);
double r125431 = r125428 / r125430;
double r125432 = 4.0;
double r125433 = 2.0;
double r125434 = pow(r125413, r125433);
double r125435 = r125432 / r125434;
double r125436 = r125431 - r125435;
double r125437 = r125427 + r125436;
double r125438 = r125437 / r125418;
double r125439 = sqrt(r125423);
double r125440 = r125415 / r125439;
double r125441 = r125416 / r125421;
double r125442 = r125441 / r125439;
double r125443 = r125440 * r125442;
double r125444 = 1.0;
double r125445 = r125443 + r125444;
double r125446 = pow(r125445, r125429);
double r125447 = cbrt(r125446);
double r125448 = r125447 / r125418;
double r125449 = r125426 ? r125438 : r125448;
return r125449;
}



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.3
rmApplied add-cube-cbrt63.0
Applied *-un-lft-identity63.0
Applied times-frac54.6
Applied times-frac54.6
Simplified54.6
Taylor expanded around inf 32.0
Simplified32.0
if -0.9999999999999999 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.6
rmApplied add-cube-cbrt12.7
Applied *-un-lft-identity12.7
Applied times-frac0.6
Applied times-frac0.6
Simplified0.6
rmApplied add-cbrt-cube0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied times-frac0.4
Final simplification7.3
herbie shell --seed 2020042
(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))