\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 4.9887567759118044 \cdot 10^{104}:\\
\;\;\;\;\frac{i \cdot \sqrt{\mathsf{fma}\left(\beta, \alpha, i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}}{{\left(\left(\alpha + \beta\right) + 2 \cdot i\right)}^{3} + \mathsf{fma}\left(i, 2, \alpha + \beta\right) \cdot \left(-1\right)} \cdot \frac{\left(\alpha + \beta\right) + i}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\sqrt{\mathsf{fma}\left(\beta, \alpha, i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}}}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double alpha, double beta, double i) {
double r107458 = i;
double r107459 = alpha;
double r107460 = beta;
double r107461 = r107459 + r107460;
double r107462 = r107461 + r107458;
double r107463 = r107458 * r107462;
double r107464 = r107460 * r107459;
double r107465 = r107464 + r107463;
double r107466 = r107463 * r107465;
double r107467 = 2.0;
double r107468 = r107467 * r107458;
double r107469 = r107461 + r107468;
double r107470 = r107469 * r107469;
double r107471 = r107466 / r107470;
double r107472 = 1.0;
double r107473 = r107470 - r107472;
double r107474 = r107471 / r107473;
return r107474;
}
double f(double alpha, double beta, double i) {
double r107475 = i;
double r107476 = 4.9887567759118044e+104;
bool r107477 = r107475 <= r107476;
double r107478 = beta;
double r107479 = alpha;
double r107480 = r107479 + r107478;
double r107481 = r107480 + r107475;
double r107482 = r107475 * r107481;
double r107483 = fma(r107478, r107479, r107482);
double r107484 = sqrt(r107483);
double r107485 = r107475 * r107484;
double r107486 = 2.0;
double r107487 = r107486 * r107475;
double r107488 = r107480 + r107487;
double r107489 = 3.0;
double r107490 = pow(r107488, r107489);
double r107491 = fma(r107475, r107486, r107480);
double r107492 = 1.0;
double r107493 = -r107492;
double r107494 = r107491 * r107493;
double r107495 = r107490 + r107494;
double r107496 = r107485 / r107495;
double r107497 = r107491 / r107484;
double r107498 = r107481 / r107497;
double r107499 = r107496 * r107498;
double r107500 = 0.0;
double r107501 = r107477 ? r107499 : r107500;
return r107501;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if i < 4.9887567759118044e+104Initial program 35.0
Simplified30.8
rmApplied add-sqr-sqrt30.8
Applied times-frac20.6
Applied times-frac20.7
Simplified20.7
if 4.9887567759118044e+104 < i Initial program 64.0
Simplified63.6
Taylor expanded around inf 61.2
Final simplification47.5
herbie shell --seed 2020056 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:precision binary64
: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)))