\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{1 + \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \left(\alpha + \beta\right)}{2}double f(double alpha, double beta, double i) {
double r3791187 = alpha;
double r3791188 = beta;
double r3791189 = r3791187 + r3791188;
double r3791190 = r3791188 - r3791187;
double r3791191 = r3791189 * r3791190;
double r3791192 = 2.0;
double r3791193 = i;
double r3791194 = r3791192 * r3791193;
double r3791195 = r3791189 + r3791194;
double r3791196 = r3791191 / r3791195;
double r3791197 = r3791195 + r3791192;
double r3791198 = r3791196 / r3791197;
double r3791199 = 1.0;
double r3791200 = r3791198 + r3791199;
double r3791201 = r3791200 / r3791192;
return r3791201;
}
double f(double alpha, double beta, double i) {
double r3791202 = 1.0;
double r3791203 = beta;
double r3791204 = alpha;
double r3791205 = r3791203 - r3791204;
double r3791206 = 2.0;
double r3791207 = i;
double r3791208 = r3791204 + r3791203;
double r3791209 = fma(r3791206, r3791207, r3791208);
double r3791210 = r3791205 / r3791209;
double r3791211 = r3791206 + r3791209;
double r3791212 = r3791210 / r3791211;
double r3791213 = r3791212 * r3791208;
double r3791214 = r3791202 + r3791213;
double r3791215 = r3791214 / r3791206;
return r3791215;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.9
Simplified12.1
rmApplied fma-udef12.0
Final simplification12.0
herbie shell --seed 2019192 +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))