\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2.0 \cdot i}}{\left(\left(\alpha + \beta\right) + 2.0 \cdot i\right) + 2.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 6.642737521362061 \cdot 10^{+58}:\\
\;\;\;\;\frac{\beta \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2.0, i, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(2.0, i, \beta + \alpha\right)} + \sqrt[3]{\left(\mathsf{fma}\left(\alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2.0, i, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(2.0, i, \beta + \alpha\right)}, 1.0\right) \cdot \mathsf{fma}\left(\alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2.0, i, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(2.0, i, \beta + \alpha\right)}, 1.0\right)\right) \cdot \mathsf{fma}\left(\alpha, \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2.0, i, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(2.0, i, \beta + \alpha\right)}, 1.0\right)}}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\beta \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2.0, i, \beta + \alpha\right)}}{2.0 + \mathsf{fma}\left(2.0, i, \beta + \alpha\right)} + \left(\left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right) + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r3750608 = alpha;
double r3750609 = beta;
double r3750610 = r3750608 + r3750609;
double r3750611 = r3750609 - r3750608;
double r3750612 = r3750610 * r3750611;
double r3750613 = 2.0;
double r3750614 = i;
double r3750615 = r3750613 * r3750614;
double r3750616 = r3750610 + r3750615;
double r3750617 = r3750612 / r3750616;
double r3750618 = r3750616 + r3750613;
double r3750619 = r3750617 / r3750618;
double r3750620 = 1.0;
double r3750621 = r3750619 + r3750620;
double r3750622 = r3750621 / r3750613;
return r3750622;
}
double f(double alpha, double beta, double i) {
double r3750623 = alpha;
double r3750624 = 6.642737521362061e+58;
bool r3750625 = r3750623 <= r3750624;
double r3750626 = beta;
double r3750627 = r3750626 - r3750623;
double r3750628 = 2.0;
double r3750629 = i;
double r3750630 = r3750626 + r3750623;
double r3750631 = fma(r3750628, r3750629, r3750630);
double r3750632 = r3750627 / r3750631;
double r3750633 = r3750628 + r3750631;
double r3750634 = r3750632 / r3750633;
double r3750635 = r3750626 * r3750634;
double r3750636 = 1.0;
double r3750637 = fma(r3750623, r3750634, r3750636);
double r3750638 = r3750637 * r3750637;
double r3750639 = r3750638 * r3750637;
double r3750640 = cbrt(r3750639);
double r3750641 = r3750635 + r3750640;
double r3750642 = r3750641 / r3750628;
double r3750643 = r3750628 / r3750623;
double r3750644 = 4.0;
double r3750645 = r3750623 * r3750623;
double r3750646 = r3750644 / r3750645;
double r3750647 = r3750643 - r3750646;
double r3750648 = 8.0;
double r3750649 = r3750648 / r3750623;
double r3750650 = r3750649 / r3750645;
double r3750651 = r3750647 + r3750650;
double r3750652 = r3750635 + r3750651;
double r3750653 = r3750652 / r3750628;
double r3750654 = r3750625 ? r3750642 : r3750653;
return r3750654;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 6.642737521362061e+58Initial program 12.1
Simplified9.0
rmApplied associate-/r*1.4
rmApplied fma-udef1.4
rmApplied distribute-rgt-in1.4
Applied associate-+l+1.4
rmApplied add-cbrt-cube1.4
Simplified1.4
if 6.642737521362061e+58 < alpha Initial program 56.1
Simplified48.0
rmApplied associate-/r*42.1
rmApplied fma-udef41.6
rmApplied distribute-rgt-in41.6
Applied associate-+l+41.6
Taylor expanded around inf 40.8
Simplified40.8
Final simplification12.0
herbie shell --seed 2019165 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
: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))