\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 9.47349017426827742 \cdot 10^{80}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 \cdot \mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r104216 = alpha;
double r104217 = beta;
double r104218 = r104216 + r104217;
double r104219 = r104217 - r104216;
double r104220 = r104218 * r104219;
double r104221 = 2.0;
double r104222 = i;
double r104223 = r104221 * r104222;
double r104224 = r104218 + r104223;
double r104225 = r104220 / r104224;
double r104226 = r104224 + r104221;
double r104227 = r104225 / r104226;
double r104228 = 1.0;
double r104229 = r104227 + r104228;
double r104230 = r104229 / r104221;
return r104230;
}
double f(double alpha, double beta, double i) {
double r104231 = alpha;
double r104232 = 9.473490174268277e+80;
bool r104233 = r104231 <= r104232;
double r104234 = beta;
double r104235 = r104231 + r104234;
double r104236 = 1.0;
double r104237 = r104235 / r104236;
double r104238 = r104237 / r104236;
double r104239 = r104234 - r104231;
double r104240 = 2.0;
double r104241 = i;
double r104242 = r104240 * r104241;
double r104243 = r104235 + r104242;
double r104244 = r104239 / r104243;
double r104245 = r104243 + r104240;
double r104246 = r104244 / r104245;
double r104247 = 1.0;
double r104248 = fma(r104238, r104246, r104247);
double r104249 = r104248 / r104240;
double r104250 = 4.0;
double r104251 = -r104250;
double r104252 = 2.0;
double r104253 = pow(r104231, r104252);
double r104254 = r104236 / r104253;
double r104255 = 8.0;
double r104256 = 3.0;
double r104257 = pow(r104231, r104256);
double r104258 = r104236 / r104257;
double r104259 = r104240 / r104231;
double r104260 = fma(r104255, r104258, r104259);
double r104261 = fma(r104251, r104254, r104260);
double r104262 = r104236 * r104261;
double r104263 = r104262 / r104240;
double r104264 = r104233 ? r104249 : r104263;
return r104264;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 9.473490174268277e+80Initial program 13.1
rmApplied *-un-lft-identity13.1
Applied *-un-lft-identity13.1
Applied times-frac2.4
Applied times-frac2.4
Applied fma-def2.4
if 9.473490174268277e+80 < alpha Initial program 57.9
rmApplied *-un-lft-identity57.9
Applied *-un-lft-identity57.9
Applied distribute-lft-out57.9
Simplified42.9
rmApplied add-log-exp42.9
Taylor expanded around inf 40.6
Simplified40.6
Final simplification11.7
herbie shell --seed 2020065 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))