\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{1.0 + \sqrt[3]{\left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right) \cdot \left(\left(\left(\sqrt[3]{\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}} \cdot \sqrt[3]{\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}}\right) \cdot \sqrt[3]{\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}}\right) \cdot \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right)\right)}}{2.0}double f(double alpha, double beta, double i) {
double r5943279 = alpha;
double r5943280 = beta;
double r5943281 = r5943279 + r5943280;
double r5943282 = r5943280 - r5943279;
double r5943283 = r5943281 * r5943282;
double r5943284 = 2.0;
double r5943285 = i;
double r5943286 = r5943284 * r5943285;
double r5943287 = r5943281 + r5943286;
double r5943288 = r5943283 / r5943287;
double r5943289 = 2.0;
double r5943290 = r5943287 + r5943289;
double r5943291 = r5943288 / r5943290;
double r5943292 = 1.0;
double r5943293 = r5943291 + r5943292;
double r5943294 = r5943293 / r5943289;
return r5943294;
}
double f(double alpha, double beta, double i) {
double r5943295 = 1.0;
double r5943296 = alpha;
double r5943297 = beta;
double r5943298 = r5943296 + r5943297;
double r5943299 = i;
double r5943300 = 2.0;
double r5943301 = fma(r5943299, r5943300, r5943296);
double r5943302 = r5943301 + r5943297;
double r5943303 = 2.0;
double r5943304 = r5943302 + r5943303;
double r5943305 = r5943298 / r5943304;
double r5943306 = r5943297 - r5943296;
double r5943307 = r5943306 / r5943302;
double r5943308 = r5943305 * r5943307;
double r5943309 = cbrt(r5943308);
double r5943310 = r5943309 * r5943309;
double r5943311 = r5943310 * r5943309;
double r5943312 = r5943311 * r5943308;
double r5943313 = r5943308 * r5943312;
double r5943314 = cbrt(r5943313);
double r5943315 = r5943295 + r5943314;
double r5943316 = r5943315 / r5943303;
return r5943316;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.6
Simplified23.5
rmApplied add-cbrt-cube30.7
Applied add-cbrt-cube35.0
Applied cbrt-undiv35.0
Simplified12.5
rmApplied add-cube-cbrt12.5
Final simplification12.5
herbie shell --seed 2019142 +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))