\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 r80378 = i;
double r80379 = alpha;
double r80380 = beta;
double r80381 = r80379 + r80380;
double r80382 = r80381 + r80378;
double r80383 = r80378 * r80382;
double r80384 = r80380 * r80379;
double r80385 = r80384 + r80383;
double r80386 = r80383 * r80385;
double r80387 = 2.0;
double r80388 = r80387 * r80378;
double r80389 = r80381 + r80388;
double r80390 = r80389 * r80389;
double r80391 = r80386 / r80390;
double r80392 = 1.0;
double r80393 = r80390 - r80392;
double r80394 = r80391 / r80393;
return r80394;
}
double f(double alpha, double beta, double i) {
double r80395 = beta;
double r80396 = 2.134998786884618e+147;
bool r80397 = r80395 <= r80396;
double r80398 = alpha;
double r80399 = i;
double r80400 = r80398 + r80395;
double r80401 = r80400 + r80399;
double r80402 = r80399 * r80401;
double r80403 = fma(r80395, r80398, r80402);
double r80404 = 2.0;
double r80405 = r80404 * r80399;
double r80406 = fma(r80404, r80399, r80400);
double r80407 = r80405 * r80406;
double r80408 = r80400 * r80406;
double r80409 = r80407 + r80408;
double r80410 = r80403 / r80409;
double r80411 = 1.0;
double r80412 = -r80411;
double r80413 = fma(r80406, r80406, r80412);
double r80414 = r80402 / r80413;
double r80415 = r80410 * r80414;
double r80416 = 0.0;
double r80417 = r80397 ? r80415 : r80416;
return r80417;
}



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
rmApplied times-frac57.6
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)))