\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 8.976072120634706026867062753663154221973 \cdot 10^{140}:\\
\;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\alpha + \left(3 + \beta\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\left(\frac{1}{\alpha} + \frac{1}{\beta}\right) - \frac{1}{{\beta}^{2}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\end{array}double f(double alpha, double beta) {
double r358231 = alpha;
double r358232 = beta;
double r358233 = r358231 + r358232;
double r358234 = r358232 * r358231;
double r358235 = r358233 + r358234;
double r358236 = 1.0;
double r358237 = r358235 + r358236;
double r358238 = 2.0;
double r358239 = r358238 * r358236;
double r358240 = r358233 + r358239;
double r358241 = r358237 / r358240;
double r358242 = r358241 / r358240;
double r358243 = r358240 + r358236;
double r358244 = r358242 / r358243;
return r358244;
}
double f(double alpha, double beta) {
double r358245 = beta;
double r358246 = 8.976072120634706e+140;
bool r358247 = r358245 <= r358246;
double r358248 = 1.0;
double r358249 = alpha;
double r358250 = r358245 + r358249;
double r358251 = fma(r358245, r358249, r358250);
double r358252 = r358248 + r358251;
double r358253 = 2.0;
double r358254 = fma(r358253, r358248, r358250);
double r358255 = r358252 / r358254;
double r358256 = r358255 / r358254;
double r358257 = 3.0;
double r358258 = r358257 + r358245;
double r358259 = r358249 + r358258;
double r358260 = r358256 / r358259;
double r358261 = 1.0;
double r358262 = sqrt(r358254);
double r358263 = r358261 / r358262;
double r358264 = r358263 / r358262;
double r358265 = r358261 / r358249;
double r358266 = r358261 / r358245;
double r358267 = r358265 + r358266;
double r358268 = 2.0;
double r358269 = pow(r358245, r358268);
double r358270 = r358261 / r358269;
double r358271 = r358267 - r358270;
double r358272 = r358264 / r358271;
double r358273 = r358272 / r358254;
double r358274 = r358247 ? r358260 : r358273;
return r358274;
}



Bits error versus alpha



Bits error versus beta
if beta < 8.976072120634706e+140Initial program 0.9
Simplified0.9
Taylor expanded around 0 0.9
Simplified0.9
if 8.976072120634706e+140 < beta Initial program 15.3
Simplified15.3
Taylor expanded around 0 15.3
Simplified15.3
rmApplied add-sqr-sqrt15.4
Applied add-sqr-sqrt15.4
Applied *-un-lft-identity15.4
Applied times-frac15.4
Applied times-frac15.4
Applied associate-/l*15.4
Simplified15.4
rmApplied associate-/r/15.4
Applied associate-/r*15.4
Taylor expanded around inf 3.8
Final simplification1.4
herbie shell --seed 2019174 +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)))