\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}\begin{array}{l}
\mathbf{if}\;i \le 1.873501385341220123808379132863112773676 \cdot 10^{112}:\\
\;\;\;\;\frac{\frac{\frac{i}{\frac{\left(\alpha + \beta\right) + i \cdot 2}{\left(\alpha + \beta\right) + i}}}{\sqrt{1} + \left(\left(\alpha + \beta\right) + i \cdot 2\right)}}{\sqrt{\sqrt{1}} + \sqrt{\left(\alpha + \beta\right) + i \cdot 2}} \cdot \frac{\frac{\alpha \cdot \beta + \left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\sqrt{\left(\alpha + \beta\right) + i \cdot 2} - \sqrt{\sqrt{1}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{i}{\frac{\left(\alpha + \beta\right) + i \cdot 2}{\left(\alpha + \beta\right) + i}}}{\sqrt{1} + \left(\left(\alpha + \beta\right) + i \cdot 2\right)} \cdot \mathsf{fma}\left(0.25, \alpha + \beta, i \cdot 0.5\right)}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1}}\\
\end{array}double f(double alpha, double beta, double i) {
double r3330405 = i;
double r3330406 = alpha;
double r3330407 = beta;
double r3330408 = r3330406 + r3330407;
double r3330409 = r3330408 + r3330405;
double r3330410 = r3330405 * r3330409;
double r3330411 = r3330407 * r3330406;
double r3330412 = r3330411 + r3330410;
double r3330413 = r3330410 * r3330412;
double r3330414 = 2.0;
double r3330415 = r3330414 * r3330405;
double r3330416 = r3330408 + r3330415;
double r3330417 = r3330416 * r3330416;
double r3330418 = r3330413 / r3330417;
double r3330419 = 1.0;
double r3330420 = r3330417 - r3330419;
double r3330421 = r3330418 / r3330420;
return r3330421;
}
double f(double alpha, double beta, double i) {
double r3330422 = i;
double r3330423 = 1.8735013853412201e+112;
bool r3330424 = r3330422 <= r3330423;
double r3330425 = alpha;
double r3330426 = beta;
double r3330427 = r3330425 + r3330426;
double r3330428 = 2.0;
double r3330429 = r3330422 * r3330428;
double r3330430 = r3330427 + r3330429;
double r3330431 = r3330427 + r3330422;
double r3330432 = r3330430 / r3330431;
double r3330433 = r3330422 / r3330432;
double r3330434 = 1.0;
double r3330435 = sqrt(r3330434);
double r3330436 = r3330435 + r3330430;
double r3330437 = r3330433 / r3330436;
double r3330438 = sqrt(r3330435);
double r3330439 = sqrt(r3330430);
double r3330440 = r3330438 + r3330439;
double r3330441 = r3330437 / r3330440;
double r3330442 = r3330425 * r3330426;
double r3330443 = r3330431 * r3330422;
double r3330444 = r3330442 + r3330443;
double r3330445 = r3330444 / r3330430;
double r3330446 = r3330439 - r3330438;
double r3330447 = r3330445 / r3330446;
double r3330448 = r3330441 * r3330447;
double r3330449 = 0.25;
double r3330450 = 0.5;
double r3330451 = r3330422 * r3330450;
double r3330452 = fma(r3330449, r3330427, r3330451);
double r3330453 = r3330437 * r3330452;
double r3330454 = r3330430 - r3330435;
double r3330455 = r3330453 / r3330454;
double r3330456 = r3330424 ? r3330448 : r3330455;
return r3330456;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if i < 1.8735013853412201e+112Initial program 36.9
rmApplied add-sqr-sqrt36.9
Applied difference-of-squares36.9
Applied times-frac14.5
Applied times-frac9.8
rmApplied associate-*r/9.8
rmApplied associate-/l*9.7
rmApplied add-sqr-sqrt9.7
Applied sqrt-prod9.7
Applied add-sqr-sqrt10.0
Applied difference-of-squares10.0
Applied times-frac10.0
if 1.8735013853412201e+112 < i Initial program 64.0
rmApplied add-sqr-sqrt64.0
Applied difference-of-squares64.0
Applied times-frac55.0
Applied times-frac54.6
rmApplied associate-*r/54.6
rmApplied associate-/l*54.6
Taylor expanded around 0 12.1
Simplified12.1
Final simplification11.4
herbie shell --seed 2019179 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 1.0))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i)))) (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0)))