\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\begin{array}{l}
\mathbf{if}\;\beta \le 3.109119190261578358132330194373949295203 \cdot 10^{60}:\\
\;\;\;\;\frac{\frac{1}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}{\frac{\mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right) + 1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{2}{\beta}}{\beta} + \left(1 - \frac{1}{\beta}\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}\\
\end{array}double f(double alpha, double beta) {
double r3465288 = alpha;
double r3465289 = beta;
double r3465290 = r3465288 + r3465289;
double r3465291 = r3465289 * r3465288;
double r3465292 = r3465290 + r3465291;
double r3465293 = 1.0;
double r3465294 = r3465292 + r3465293;
double r3465295 = 2.0;
double r3465296 = r3465295 * r3465293;
double r3465297 = r3465290 + r3465296;
double r3465298 = r3465294 / r3465297;
double r3465299 = r3465298 / r3465297;
double r3465300 = r3465297 + r3465293;
double r3465301 = r3465299 / r3465300;
return r3465301;
}
double f(double alpha, double beta) {
double r3465302 = beta;
double r3465303 = 3.1091191902615784e+60;
bool r3465304 = r3465302 <= r3465303;
double r3465305 = 1.0;
double r3465306 = 2.0;
double r3465307 = 1.0;
double r3465308 = alpha;
double r3465309 = r3465302 + r3465308;
double r3465310 = fma(r3465306, r3465307, r3465309);
double r3465311 = r3465310 + r3465307;
double r3465312 = fma(r3465302, r3465308, r3465309);
double r3465313 = r3465312 + r3465307;
double r3465314 = r3465313 / r3465310;
double r3465315 = r3465311 / r3465314;
double r3465316 = r3465305 / r3465315;
double r3465317 = r3465316 / r3465310;
double r3465318 = r3465306 / r3465302;
double r3465319 = r3465318 / r3465302;
double r3465320 = r3465307 / r3465302;
double r3465321 = r3465305 - r3465320;
double r3465322 = r3465319 + r3465321;
double r3465323 = r3465322 / r3465310;
double r3465324 = r3465323 / r3465311;
double r3465325 = r3465304 ? r3465317 : r3465324;
return r3465325;
}



Bits error versus alpha



Bits error versus beta
if beta < 3.1091191902615784e+60Initial program 0.3
Simplified0.3
rmApplied clear-num0.5
rmApplied associate-/r/0.5
Applied associate-/r*0.3
if 3.1091191902615784e+60 < beta Initial program 13.4
Simplified13.4
Taylor expanded around inf 11.5
Simplified11.5
Final simplification3.3
herbie shell --seed 2019192 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)))