\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{\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} + \left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \alpha + 1\right)}{2}double f(double alpha, double beta, double i) {
double r3805278 = alpha;
double r3805279 = beta;
double r3805280 = r3805278 + r3805279;
double r3805281 = r3805279 - r3805278;
double r3805282 = r3805280 * r3805281;
double r3805283 = 2.0;
double r3805284 = i;
double r3805285 = r3805283 * r3805284;
double r3805286 = r3805280 + r3805285;
double r3805287 = r3805282 / r3805286;
double r3805288 = r3805286 + r3805283;
double r3805289 = r3805287 / r3805288;
double r3805290 = 1.0;
double r3805291 = r3805289 + r3805290;
double r3805292 = r3805291 / r3805283;
return r3805292;
}
double f(double alpha, double beta, double i) {
double r3805293 = beta;
double r3805294 = 2.0;
double r3805295 = i;
double r3805296 = alpha;
double r3805297 = r3805296 + r3805293;
double r3805298 = fma(r3805294, r3805295, r3805297);
double r3805299 = r3805293 / r3805298;
double r3805300 = r3805296 / r3805298;
double r3805301 = r3805299 - r3805300;
double r3805302 = r3805294 + r3805298;
double r3805303 = r3805301 / r3805302;
double r3805304 = r3805293 * r3805303;
double r3805305 = r3805303 * r3805296;
double r3805306 = 1.0;
double r3805307 = r3805305 + r3805306;
double r3805308 = r3805304 + r3805307;
double r3805309 = r3805308 / r3805294;
return r3805309;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.8
Simplified19.4
rmApplied associate-/r*12.2
rmApplied fma-udef12.1
rmApplied div-sub12.1
rmApplied distribute-lft-in12.1
Applied associate-+l+12.1
Final simplification12.1
herbie shell --seed 2019172 +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))