\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(\frac{1}{\frac{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}{\beta - \alpha}}, \left(\alpha + \beta\right) \cdot \frac{1}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}double f(double alpha, double beta, double i) {
double r87204 = alpha;
double r87205 = beta;
double r87206 = r87204 + r87205;
double r87207 = r87205 - r87204;
double r87208 = r87206 * r87207;
double r87209 = 2.0;
double r87210 = i;
double r87211 = r87209 * r87210;
double r87212 = r87206 + r87211;
double r87213 = r87208 / r87212;
double r87214 = r87212 + r87209;
double r87215 = r87213 / r87214;
double r87216 = 1.0;
double r87217 = r87215 + r87216;
double r87218 = r87217 / r87209;
return r87218;
}
double f(double alpha, double beta, double i) {
double r87219 = 1.0;
double r87220 = 2.0;
double r87221 = i;
double r87222 = alpha;
double r87223 = beta;
double r87224 = r87222 + r87223;
double r87225 = fma(r87220, r87221, r87224);
double r87226 = r87225 + r87220;
double r87227 = r87223 - r87222;
double r87228 = r87226 / r87227;
double r87229 = r87219 / r87228;
double r87230 = r87219 / r87225;
double r87231 = r87224 * r87230;
double r87232 = 1.0;
double r87233 = fma(r87229, r87231, r87232);
double r87234 = r87233 / r87220;
return r87234;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 24.1
Simplified12.7
rmApplied div-inv12.6
rmApplied clear-num12.6
Final simplification12.6
herbie shell --seed 2019325 +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))