\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 4.038875915762911997488013555117102077087 \cdot 10^{148}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\mathsf{fma}\left(\frac{1}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}, \frac{\beta - \alpha}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}, 1\right)\right)}^{3}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r128239 = alpha;
double r128240 = beta;
double r128241 = r128239 + r128240;
double r128242 = r128240 - r128239;
double r128243 = r128241 * r128242;
double r128244 = 2.0;
double r128245 = i;
double r128246 = r128244 * r128245;
double r128247 = r128241 + r128246;
double r128248 = r128243 / r128247;
double r128249 = r128247 + r128244;
double r128250 = r128248 / r128249;
double r128251 = 1.0;
double r128252 = r128250 + r128251;
double r128253 = r128252 / r128244;
return r128253;
}
double f(double alpha, double beta, double i) {
double r128254 = alpha;
double r128255 = 4.038875915762912e+148;
bool r128256 = r128254 <= r128255;
double r128257 = 1.0;
double r128258 = beta;
double r128259 = r128254 + r128258;
double r128260 = 2.0;
double r128261 = i;
double r128262 = r128260 * r128261;
double r128263 = r128259 + r128262;
double r128264 = r128263 + r128260;
double r128265 = sqrt(r128264);
double r128266 = r128257 / r128265;
double r128267 = r128258 - r128254;
double r128268 = r128267 / r128265;
double r128269 = fma(r128261, r128260, r128259);
double r128270 = r128259 / r128269;
double r128271 = r128268 * r128270;
double r128272 = 1.0;
double r128273 = fma(r128266, r128271, r128272);
double r128274 = 3.0;
double r128275 = pow(r128273, r128274);
double r128276 = cbrt(r128275);
double r128277 = r128276 / r128260;
double r128278 = r128257 / r128254;
double r128279 = 8.0;
double r128280 = pow(r128254, r128274);
double r128281 = r128257 / r128280;
double r128282 = r128279 * r128281;
double r128283 = 4.0;
double r128284 = 2.0;
double r128285 = pow(r128254, r128284);
double r128286 = r128257 / r128285;
double r128287 = r128283 * r128286;
double r128288 = r128282 - r128287;
double r128289 = fma(r128260, r128278, r128288);
double r128290 = r128289 / r128260;
double r128291 = r128256 ? r128277 : r128290;
return r128291;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 4.038875915762912e+148Initial program 15.5
rmApplied add-sqr-sqrt15.5
Applied *-un-lft-identity15.5
Applied times-frac15.5
Simplified5.0
rmApplied add-cbrt-cube5.0
Simplified5.0
if 4.038875915762912e+148 < alpha Initial program 63.4
Taylor expanded around inf 41.4
Simplified41.4
Final simplification11.3
herbie shell --seed 2019354 +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))