\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}\frac{e^{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\left(\frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), 1.0\right)\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\frac{\alpha + \beta}{2.0 + \mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), 1.0\right)\right)}}}{2.0}double f(double alpha, double beta, double i) {
double r3405587 = alpha;
double r3405588 = beta;
double r3405589 = r3405587 + r3405588;
double r3405590 = r3405588 - r3405587;
double r3405591 = r3405589 * r3405590;
double r3405592 = 2.0;
double r3405593 = i;
double r3405594 = r3405592 * r3405593;
double r3405595 = r3405589 + r3405594;
double r3405596 = r3405591 / r3405595;
double r3405597 = 2.0;
double r3405598 = r3405595 + r3405597;
double r3405599 = r3405596 / r3405598;
double r3405600 = 1.0;
double r3405601 = r3405599 + r3405600;
double r3405602 = r3405601 / r3405597;
return r3405602;
}
double f(double alpha, double beta, double i) {
double r3405603 = alpha;
double r3405604 = beta;
double r3405605 = r3405603 + r3405604;
double r3405606 = 2.0;
double r3405607 = 2.0;
double r3405608 = i;
double r3405609 = fma(r3405607, r3405608, r3405605);
double r3405610 = r3405606 + r3405609;
double r3405611 = r3405605 / r3405610;
double r3405612 = r3405604 - r3405603;
double r3405613 = r3405612 / r3405609;
double r3405614 = 1.0;
double r3405615 = fma(r3405611, r3405613, r3405614);
double r3405616 = log(r3405615);
double r3405617 = r3405616 * r3405616;
double r3405618 = r3405617 * r3405616;
double r3405619 = cbrt(r3405618);
double r3405620 = exp(r3405619);
double r3405621 = r3405620 / r3405606;
return r3405621;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.4
Simplified12.2
rmApplied add-exp-log12.2
rmApplied add-cbrt-cube12.2
Final simplification12.2
herbie shell --seed 2019132 +o rules:numerics
(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))