\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 1.8246756895617496 \cdot 10^{+128}:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(i + \left(\beta + \alpha\right), i, \beta \cdot \alpha\right)}{\sqrt{1.0} + \mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} \cdot \frac{\frac{i + \left(\beta + \alpha\right)}{\frac{\mathsf{fma}\left(2, i, \beta + \alpha\right) - \sqrt{1.0}}{i}}}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} \cdot \left(\left(i + \frac{i \cdot 1.0}{\alpha \cdot \alpha}\right) - \frac{\sqrt{1.0} \cdot i}{\alpha}\right)\right) \cdot \frac{\frac{i + \left(\beta + \alpha\right)}{\frac{\mathsf{fma}\left(2, i, \beta + \alpha\right) - \sqrt{1.0}}{i}}}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\\
\end{array}double f(double alpha, double beta, double i) {
double r1773422 = i;
double r1773423 = alpha;
double r1773424 = beta;
double r1773425 = r1773423 + r1773424;
double r1773426 = r1773425 + r1773422;
double r1773427 = r1773422 * r1773426;
double r1773428 = r1773424 * r1773423;
double r1773429 = r1773428 + r1773427;
double r1773430 = r1773427 * r1773429;
double r1773431 = 2.0;
double r1773432 = r1773431 * r1773422;
double r1773433 = r1773425 + r1773432;
double r1773434 = r1773433 * r1773433;
double r1773435 = r1773430 / r1773434;
double r1773436 = 1.0;
double r1773437 = r1773434 - r1773436;
double r1773438 = r1773435 / r1773437;
return r1773438;
}
double f(double alpha, double beta, double i) {
double r1773439 = alpha;
double r1773440 = 1.8246756895617496e+128;
bool r1773441 = r1773439 <= r1773440;
double r1773442 = i;
double r1773443 = beta;
double r1773444 = r1773443 + r1773439;
double r1773445 = r1773442 + r1773444;
double r1773446 = r1773443 * r1773439;
double r1773447 = fma(r1773445, r1773442, r1773446);
double r1773448 = 1.0;
double r1773449 = sqrt(r1773448);
double r1773450 = 2.0;
double r1773451 = fma(r1773450, r1773442, r1773444);
double r1773452 = r1773449 + r1773451;
double r1773453 = r1773447 / r1773452;
double r1773454 = r1773453 / r1773451;
double r1773455 = r1773451 - r1773449;
double r1773456 = r1773455 / r1773442;
double r1773457 = r1773445 / r1773456;
double r1773458 = r1773457 / r1773451;
double r1773459 = r1773454 * r1773458;
double r1773460 = 1.0;
double r1773461 = r1773460 / r1773451;
double r1773462 = r1773442 * r1773448;
double r1773463 = r1773439 * r1773439;
double r1773464 = r1773462 / r1773463;
double r1773465 = r1773442 + r1773464;
double r1773466 = r1773449 * r1773442;
double r1773467 = r1773466 / r1773439;
double r1773468 = r1773465 - r1773467;
double r1773469 = r1773461 * r1773468;
double r1773470 = r1773469 * r1773458;
double r1773471 = r1773441 ? r1773459 : r1773470;
return r1773471;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.8246756895617496e+128Initial program 50.0
Simplified50.0
rmApplied add-sqr-sqrt50.0
Applied difference-of-squares50.0
Applied times-frac35.5
Applied times-frac34.0
rmApplied associate-/l*34.0
if 1.8246756895617496e+128 < alpha Initial program 62.4
Simplified62.4
rmApplied add-sqr-sqrt62.4
Applied difference-of-squares62.4
Applied times-frac53.9
Applied times-frac48.6
rmApplied associate-/l*48.6
rmApplied div-inv48.6
Taylor expanded around inf 23.1
Simplified23.1
Final simplification31.9
herbie shell --seed 2019156 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1.0)))