\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}\frac{e^{\log \left(\mathsf{fma}\left(\left(\sqrt[3]{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}} \cdot \sqrt[3]{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}\right) \cdot \sqrt[3]{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}, \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)\right)}}{2}double f(double alpha, double beta, double i) {
double r96679 = alpha;
double r96680 = beta;
double r96681 = r96679 + r96680;
double r96682 = r96680 - r96679;
double r96683 = r96681 * r96682;
double r96684 = 2.0;
double r96685 = i;
double r96686 = r96684 * r96685;
double r96687 = r96681 + r96686;
double r96688 = r96683 / r96687;
double r96689 = r96687 + r96684;
double r96690 = r96688 / r96689;
double r96691 = 1.0;
double r96692 = r96690 + r96691;
double r96693 = r96692 / r96684;
return r96693;
}
double f(double alpha, double beta, double i) {
double r96694 = beta;
double r96695 = alpha;
double r96696 = r96694 - r96695;
double r96697 = 2.0;
double r96698 = i;
double r96699 = r96695 + r96694;
double r96700 = fma(r96697, r96698, r96699);
double r96701 = r96700 + r96697;
double r96702 = r96696 / r96701;
double r96703 = cbrt(r96702);
double r96704 = r96703 * r96703;
double r96705 = r96704 * r96703;
double r96706 = r96699 / r96700;
double r96707 = 1.0;
double r96708 = fma(r96705, r96706, r96707);
double r96709 = log(r96708);
double r96710 = exp(r96709);
double r96711 = r96710 / r96697;
return r96711;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 24.2
Simplified12.6
rmApplied add-exp-log12.6
rmApplied add-cube-cbrt12.7
Final simplification12.7
herbie shell --seed 2019350 +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))