\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}\;\alpha \le 2.601017870935635787954715209782533925741 \cdot 10^{45}:\\
\;\;\;\;\frac{\frac{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\alpha + \left(\beta + 1\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r89226 = alpha;
double r89227 = beta;
double r89228 = r89226 + r89227;
double r89229 = r89227 * r89226;
double r89230 = r89228 + r89229;
double r89231 = 1.0;
double r89232 = r89230 + r89231;
double r89233 = 2.0;
double r89234 = r89233 * r89231;
double r89235 = r89228 + r89234;
double r89236 = r89232 / r89235;
double r89237 = r89236 / r89235;
double r89238 = r89235 + r89231;
double r89239 = r89237 / r89238;
return r89239;
}
double f(double alpha, double beta) {
double r89240 = alpha;
double r89241 = 2.6010178709356358e+45;
bool r89242 = r89240 <= r89241;
double r89243 = beta;
double r89244 = 1.0;
double r89245 = fma(r89240, r89243, r89244);
double r89246 = r89240 + r89245;
double r89247 = r89243 + r89246;
double r89248 = 2.0;
double r89249 = r89240 + r89243;
double r89250 = fma(r89244, r89248, r89249);
double r89251 = fma(r89244, r89248, r89244);
double r89252 = r89240 + r89251;
double r89253 = r89243 + r89252;
double r89254 = r89250 * r89253;
double r89255 = r89247 / r89254;
double r89256 = r89255 / r89250;
double r89257 = r89243 + r89244;
double r89258 = r89240 + r89257;
double r89259 = r89258 / r89254;
double r89260 = r89259 / r89250;
double r89261 = r89242 ? r89256 : r89260;
return r89261;
}



Bits error versus alpha



Bits error versus beta
if alpha < 2.6010178709356358e+45Initial program 0.2
Simplified0.5
if 2.6010178709356358e+45 < alpha Initial program 11.4
Simplified14.1
Taylor expanded around 0 10.8
Final simplification3.4
herbie shell --seed 2019352 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))