\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.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 3.5798925943844464 \cdot 10^{+172}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, \frac{\frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}}{\frac{1}{\beta - \alpha}}, 1.0\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(2.0, \frac{1}{\alpha}, \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r3530513 = alpha;
double r3530514 = beta;
double r3530515 = r3530513 + r3530514;
double r3530516 = r3530514 - r3530513;
double r3530517 = r3530515 * r3530516;
double r3530518 = 2.0;
double r3530519 = i;
double r3530520 = r3530518 * r3530519;
double r3530521 = r3530515 + r3530520;
double r3530522 = r3530517 / r3530521;
double r3530523 = 2.0;
double r3530524 = r3530521 + r3530523;
double r3530525 = r3530522 / r3530524;
double r3530526 = 1.0;
double r3530527 = r3530525 + r3530526;
double r3530528 = r3530527 / r3530523;
return r3530528;
}
double f(double alpha, double beta, double i) {
double r3530529 = alpha;
double r3530530 = 3.5798925943844464e+172;
bool r3530531 = r3530529 <= r3530530;
double r3530532 = 1.0;
double r3530533 = 2.0;
double r3530534 = i;
double r3530535 = beta;
double r3530536 = r3530529 + r3530535;
double r3530537 = fma(r3530533, r3530534, r3530536);
double r3530538 = r3530532 / r3530537;
double r3530539 = 2.0;
double r3530540 = r3530539 + r3530537;
double r3530541 = r3530536 / r3530540;
double r3530542 = r3530535 - r3530529;
double r3530543 = r3530532 / r3530542;
double r3530544 = r3530541 / r3530543;
double r3530545 = 1.0;
double r3530546 = fma(r3530538, r3530544, r3530545);
double r3530547 = r3530546 / r3530539;
double r3530548 = r3530532 / r3530529;
double r3530549 = 8.0;
double r3530550 = r3530529 * r3530529;
double r3530551 = r3530529 * r3530550;
double r3530552 = r3530549 / r3530551;
double r3530553 = fma(r3530539, r3530548, r3530552);
double r3530554 = 4.0;
double r3530555 = r3530554 / r3530550;
double r3530556 = r3530553 - r3530555;
double r3530557 = r3530556 / r3530539;
double r3530558 = r3530531 ? r3530547 : r3530557;
return r3530558;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 3.5798925943844464e+172Initial program 16.3
Simplified6.1
rmApplied div-inv6.1
rmApplied fma-udef6.1
Simplified6.1
rmApplied div-inv6.1
Applied *-un-lft-identity6.1
Applied times-frac6.1
Applied fma-def6.0
if 3.5798925943844464e+172 < alpha Initial program 63.2
Simplified48.1
rmApplied div-inv48.2
rmApplied fma-udef48.2
Simplified48.1
Taylor expanded around inf 42.2
Simplified42.2
Final simplification11.4
herbie shell --seed 2019135 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1) (> beta -1) (> i 0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))