\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 2.5101402696953266 \cdot 10^{+189}:\\
\;\;\;\;\frac{\frac{\frac{\mathsf{fma}\left(\left(i + \left(\beta + \alpha\right)\right), i, \left(\beta \cdot \alpha\right)\right)}{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)} \cdot \frac{i + \left(\beta + \alpha\right)}{\frac{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)}{i}}}{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right) - \sqrt{1.0}}}{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right) + \sqrt{1.0}}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double alpha, double beta, double i) {
double r25188326 = i;
double r25188327 = alpha;
double r25188328 = beta;
double r25188329 = r25188327 + r25188328;
double r25188330 = r25188329 + r25188326;
double r25188331 = r25188326 * r25188330;
double r25188332 = r25188328 * r25188327;
double r25188333 = r25188332 + r25188331;
double r25188334 = r25188331 * r25188333;
double r25188335 = 2.0;
double r25188336 = r25188335 * r25188326;
double r25188337 = r25188329 + r25188336;
double r25188338 = r25188337 * r25188337;
double r25188339 = r25188334 / r25188338;
double r25188340 = 1.0;
double r25188341 = r25188338 - r25188340;
double r25188342 = r25188339 / r25188341;
return r25188342;
}
double f(double alpha, double beta, double i) {
double r25188343 = alpha;
double r25188344 = 2.5101402696953266e+189;
bool r25188345 = r25188343 <= r25188344;
double r25188346 = i;
double r25188347 = beta;
double r25188348 = r25188347 + r25188343;
double r25188349 = r25188346 + r25188348;
double r25188350 = r25188347 * r25188343;
double r25188351 = fma(r25188349, r25188346, r25188350);
double r25188352 = 2.0;
double r25188353 = fma(r25188352, r25188346, r25188348);
double r25188354 = r25188351 / r25188353;
double r25188355 = r25188353 / r25188346;
double r25188356 = r25188349 / r25188355;
double r25188357 = r25188354 * r25188356;
double r25188358 = 1.0;
double r25188359 = sqrt(r25188358);
double r25188360 = r25188353 - r25188359;
double r25188361 = r25188357 / r25188360;
double r25188362 = r25188353 + r25188359;
double r25188363 = r25188361 / r25188362;
double r25188364 = 0.0;
double r25188365 = r25188345 ? r25188363 : r25188364;
return r25188365;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 2.5101402696953266e+189Initial program 51.0
Simplified51.0
rmApplied add-sqr-sqrt51.0
Applied difference-of-squares51.0
Applied times-frac35.8
Applied times-frac33.7
rmApplied associate-*l/33.7
rmApplied associate-*r/33.7
rmApplied associate-/l*33.7
if 2.5101402696953266e+189 < alpha Initial program 62.6
Simplified62.6
rmApplied add-sqr-sqrt62.6
Applied difference-of-squares62.6
Applied times-frac56.8
Applied times-frac53.6
Taylor expanded around -inf 47.0
Final simplification35.4
herbie shell --seed 2019120 +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)))