\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}\;2 \cdot i \leq 4.3536151651021257 \cdot 10^{-219} \lor \neg \left(2 \cdot i \leq 1.0861756241842032 \cdot 10^{-199}\right):\\
\;\;\;\;\frac{\left(\alpha + \beta\right) \cdot \left(\left(\sqrt[3]{1} \cdot \frac{\sqrt[3]{1}}{\frac{\alpha + \left(2 \cdot i + \beta\right)}{\beta - \alpha} \cdot \sqrt{\alpha + \left(\beta + \left(2 + 2 \cdot i\right)\right)}}\right) \cdot \frac{\sqrt[3]{1}}{\sqrt{\alpha + \left(\beta + \left(2 + 2 \cdot i\right)\right)}}\right) + 1}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\
\end{array}(FPCore (alpha beta i)
:precision binary64
(/
(+
(/
(/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i)))
(+ (+ (+ alpha beta) (* 2.0 i)) 2.0))
1.0)
2.0))(FPCore (alpha beta i)
:precision binary64
(if (or (<= (* 2.0 i) 4.3536151651021257e-219)
(not (<= (* 2.0 i) 1.0861756241842032e-199)))
(/
(+
(*
(+ alpha beta)
(*
(*
(cbrt 1.0)
(/
(cbrt 1.0)
(*
(/ (+ alpha (+ (* 2.0 i) beta)) (- beta alpha))
(sqrt (+ alpha (+ beta (+ 2.0 (* 2.0 i))))))))
(/ (cbrt 1.0) (sqrt (+ alpha (+ beta (+ 2.0 (* 2.0 i))))))))
1.0)
2.0)
(/
(+ (/ 2.0 alpha) (- (/ 8.0 (pow alpha 3.0)) (/ 4.0 (* alpha alpha))))
2.0)))double code(double alpha, double beta, double i) {
return (((double) (((((double) (((double) (alpha + beta)) * ((double) (beta - alpha)))) / ((double) (((double) (alpha + beta)) + ((double) (2.0 * i))))) / ((double) (((double) (((double) (alpha + beta)) + ((double) (2.0 * i)))) + 2.0))) + 1.0)) / 2.0);
}
double code(double alpha, double beta, double i) {
double VAR;
if (((((double) (2.0 * i)) <= 4.3536151651021257e-219) || !(((double) (2.0 * i)) <= 1.0861756241842032e-199))) {
VAR = (((double) (((double) (((double) (alpha + beta)) * ((double) (((double) (((double) cbrt(1.0)) * (((double) cbrt(1.0)) / ((double) ((((double) (alpha + ((double) (((double) (2.0 * i)) + beta)))) / ((double) (beta - alpha))) * ((double) sqrt(((double) (alpha + ((double) (beta + ((double) (2.0 + ((double) (2.0 * i))))))))))))))) * (((double) cbrt(1.0)) / ((double) sqrt(((double) (alpha + ((double) (beta + ((double) (2.0 + ((double) (2.0 * i))))))))))))))) + 1.0)) / 2.0);
} else {
VAR = (((double) ((2.0 / alpha) + ((double) ((8.0 / ((double) pow(alpha, 3.0))) - (4.0 / ((double) (alpha * alpha))))))) / 2.0);
}
return VAR;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (* 2.0 i) < 4.35361516510212565e-219 or 1.08617562418420315e-199 < (* 2.0 i) Initial program 23.9
Simplified19.5
rmApplied clear-num19.5
Simplified12.4
rmApplied add-sqr-sqrt12.5
Applied associate-*r*12.5
Simplified12.5
rmApplied add-cube-cbrt12.5
Applied times-frac12.5
Simplified12.5
Simplified12.5
if 4.35361516510212565e-219 < (* 2.0 i) < 1.08617562418420315e-199Initial program 23.2
Simplified21.4
Taylor expanded around inf 50.3
Simplified50.3
Final simplification13.7
herbie shell --seed 2020198
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:precision binary64
:pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))