\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}\;\beta \le 2.134998786884618 \cdot 10^{147}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\beta, \alpha, i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(2 \cdot i\right) \cdot \mathsf{fma}\left(2, i, \alpha + \beta\right) + \left(\alpha + \beta\right) \cdot \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \frac{i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\mathsf{fma}\left(\mathsf{fma}\left(2, i, \alpha + \beta\right), \mathsf{fma}\left(2, i, \alpha + \beta\right), -1\right)}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double alpha, double beta, double i) {
double r79622 = i;
double r79623 = alpha;
double r79624 = beta;
double r79625 = r79623 + r79624;
double r79626 = r79625 + r79622;
double r79627 = r79622 * r79626;
double r79628 = r79624 * r79623;
double r79629 = r79628 + r79627;
double r79630 = r79627 * r79629;
double r79631 = 2.0;
double r79632 = r79631 * r79622;
double r79633 = r79625 + r79632;
double r79634 = r79633 * r79633;
double r79635 = r79630 / r79634;
double r79636 = 1.0;
double r79637 = r79634 - r79636;
double r79638 = r79635 / r79637;
return r79638;
}
double f(double alpha, double beta, double i) {
double r79639 = beta;
double r79640 = 2.134998786884618e+147;
bool r79641 = r79639 <= r79640;
double r79642 = alpha;
double r79643 = i;
double r79644 = r79642 + r79639;
double r79645 = r79644 + r79643;
double r79646 = r79643 * r79645;
double r79647 = fma(r79639, r79642, r79646);
double r79648 = 2.0;
double r79649 = r79648 * r79643;
double r79650 = fma(r79648, r79643, r79644);
double r79651 = r79649 * r79650;
double r79652 = r79644 * r79650;
double r79653 = r79651 + r79652;
double r79654 = r79647 / r79653;
double r79655 = 1.0;
double r79656 = -r79655;
double r79657 = fma(r79650, r79650, r79656);
double r79658 = r79646 / r79657;
double r79659 = r79654 * r79658;
double r79660 = 0.0;
double r79661 = r79641 ? r79659 : r79660;
return r79661;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if beta < 2.134998786884618e+147Initial program 51.9
Simplified53.1
rmApplied times-frac36.2
rmApplied fma-udef36.2
Applied distribute-lft-in36.2
Simplified36.2
Simplified36.2
if 2.134998786884618e+147 < beta Initial program 64.0
Simplified64.0
Taylor expanded around inf 49.6
Final simplification38.5
herbie shell --seed 2020047 +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)))