\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{\mathsf{fma}\left(\left(\frac{\sqrt[3]{\beta - \alpha}}{\sqrt[3]{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}} \cdot \frac{\sqrt[3]{\beta - \alpha}}{\sqrt[3]{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}}\right) \cdot \frac{\frac{\sqrt[3]{\beta - \alpha}}{2 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}}{\sqrt[3]{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}}, \alpha + \beta, 1\right)}{2}double f(double alpha, double beta, double i) {
double r116967 = alpha;
double r116968 = beta;
double r116969 = r116967 + r116968;
double r116970 = r116968 - r116967;
double r116971 = r116969 * r116970;
double r116972 = 2.0;
double r116973 = i;
double r116974 = r116972 * r116973;
double r116975 = r116969 + r116974;
double r116976 = r116971 / r116975;
double r116977 = r116975 + r116972;
double r116978 = r116976 / r116977;
double r116979 = 1.0;
double r116980 = r116978 + r116979;
double r116981 = r116980 / r116972;
return r116981;
}
double f(double alpha, double beta, double i) {
double r116982 = beta;
double r116983 = alpha;
double r116984 = r116982 - r116983;
double r116985 = cbrt(r116984);
double r116986 = i;
double r116987 = 2.0;
double r116988 = r116983 + r116982;
double r116989 = fma(r116986, r116987, r116988);
double r116990 = cbrt(r116989);
double r116991 = r116985 / r116990;
double r116992 = r116991 * r116991;
double r116993 = r116987 + r116989;
double r116994 = r116985 / r116993;
double r116995 = r116994 / r116990;
double r116996 = r116992 * r116995;
double r116997 = 1.0;
double r116998 = fma(r116996, r116988, r116997);
double r116999 = r116998 / r116987;
return r116999;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 24.5
Simplified12.7
rmApplied *-un-lft-identity12.7
Applied add-cube-cbrt12.9
Applied add-cube-cbrt12.7
Applied times-frac12.7
Applied times-frac12.7
Simplified12.7
Simplified12.7
Final simplification12.7
herbie shell --seed 2019174 +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))