\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.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -0.9999999999999963:\\
\;\;\;\;\frac{\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\left(1.0 + \sqrt[3]{\left(\left(\left(\beta + \alpha\right) \cdot \frac{\frac{\beta - \alpha}{2 \cdot i + \left(2.0 + \left(\beta + \alpha\right)\right)}}{2 \cdot i + \left(\beta + \alpha\right)}\right) \cdot \left(\left(\beta + \alpha\right) \cdot \frac{\frac{\beta - \alpha}{2 \cdot i + \left(2.0 + \left(\beta + \alpha\right)\right)}}{2 \cdot i + \left(\beta + \alpha\right)}\right)\right) \cdot \left(\left(\beta + \alpha\right) \cdot \frac{\frac{\beta - \alpha}{2 \cdot i + \left(2.0 + \left(\beta + \alpha\right)\right)}}{2 \cdot i + \left(\beta + \alpha\right)}\right)}\right) \cdot \left(\left(\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right) + 1.0\right) \cdot \left(\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right) + 1.0\right)\right)}}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r5131202 = alpha;
double r5131203 = beta;
double r5131204 = r5131202 + r5131203;
double r5131205 = r5131203 - r5131202;
double r5131206 = r5131204 * r5131205;
double r5131207 = 2.0;
double r5131208 = i;
double r5131209 = r5131207 * r5131208;
double r5131210 = r5131204 + r5131209;
double r5131211 = r5131206 / r5131210;
double r5131212 = 2.0;
double r5131213 = r5131210 + r5131212;
double r5131214 = r5131211 / r5131213;
double r5131215 = 1.0;
double r5131216 = r5131214 + r5131215;
double r5131217 = r5131216 / r5131212;
return r5131217;
}
double f(double alpha, double beta, double i) {
double r5131218 = beta;
double r5131219 = alpha;
double r5131220 = r5131218 + r5131219;
double r5131221 = r5131218 - r5131219;
double r5131222 = r5131220 * r5131221;
double r5131223 = 2.0;
double r5131224 = i;
double r5131225 = r5131223 * r5131224;
double r5131226 = r5131225 + r5131220;
double r5131227 = r5131222 / r5131226;
double r5131228 = 2.0;
double r5131229 = r5131228 + r5131226;
double r5131230 = r5131227 / r5131229;
double r5131231 = -0.9999999999999963;
bool r5131232 = r5131230 <= r5131231;
double r5131233 = 8.0;
double r5131234 = r5131219 * r5131219;
double r5131235 = r5131219 * r5131234;
double r5131236 = r5131233 / r5131235;
double r5131237 = r5131228 / r5131219;
double r5131238 = 4.0;
double r5131239 = r5131238 / r5131234;
double r5131240 = r5131237 - r5131239;
double r5131241 = r5131236 + r5131240;
double r5131242 = r5131241 / r5131228;
double r5131243 = 1.0;
double r5131244 = r5131228 + r5131220;
double r5131245 = r5131225 + r5131244;
double r5131246 = r5131221 / r5131245;
double r5131247 = r5131246 / r5131226;
double r5131248 = r5131220 * r5131247;
double r5131249 = r5131248 * r5131248;
double r5131250 = r5131249 * r5131248;
double r5131251 = cbrt(r5131250);
double r5131252 = r5131243 + r5131251;
double r5131253 = r5131221 / r5131226;
double r5131254 = r5131253 / r5131229;
double r5131255 = r5131254 * r5131220;
double r5131256 = r5131255 + r5131243;
double r5131257 = r5131256 * r5131256;
double r5131258 = r5131252 * r5131257;
double r5131259 = cbrt(r5131258);
double r5131260 = r5131259 / r5131228;
double r5131261 = r5131232 ? r5131242 : r5131260;
return r5131261;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) < -0.9999999999999963Initial program 62.7
Taylor expanded around inf 32.7
Simplified32.7
if -0.9999999999999963 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) Initial program 12.5
rmApplied *-un-lft-identity12.5
Applied *-un-lft-identity12.5
Applied times-frac0.3
Applied times-frac0.3
Simplified0.3
rmApplied add-cbrt-cube0.3
rmApplied add-cbrt-cube11.3
Applied add-cbrt-cube15.9
Applied add-cbrt-cube22.2
Applied cbrt-undiv22.2
Applied cbrt-undiv22.2
Applied add-cbrt-cube22.3
Applied cbrt-unprod22.2
Simplified0.3
Final simplification7.7
herbie shell --seed 2019163
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1) (> beta -1) (> i 0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))