\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{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}double f(double alpha, double beta, double i) {
double r148074 = alpha;
double r148075 = beta;
double r148076 = r148074 + r148075;
double r148077 = r148075 - r148074;
double r148078 = r148076 * r148077;
double r148079 = 2.0;
double r148080 = i;
double r148081 = r148079 * r148080;
double r148082 = r148076 + r148081;
double r148083 = r148078 / r148082;
double r148084 = r148082 + r148079;
double r148085 = r148083 / r148084;
double r148086 = 1.0;
double r148087 = r148085 + r148086;
double r148088 = r148087 / r148079;
return r148088;
}
double f(double alpha, double beta, double i) {
double r148089 = 1.0;
double r148090 = 2.0;
double r148091 = i;
double r148092 = beta;
double r148093 = fma(r148090, r148091, r148092);
double r148094 = alpha;
double r148095 = r148093 + r148094;
double r148096 = r148094 + r148092;
double r148097 = r148095 / r148096;
double r148098 = r148092 - r148094;
double r148099 = r148097 / r148098;
double r148100 = r148089 / r148099;
double r148101 = r148090 * r148091;
double r148102 = r148096 + r148101;
double r148103 = r148102 + r148090;
double r148104 = r148089 / r148103;
double r148105 = 1.0;
double r148106 = fma(r148100, r148104, r148105);
double r148107 = r148106 / r148090;
return r148107;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.8
rmApplied clear-num23.8
Simplified12.0
rmApplied div-inv12.0
Applied fma-def12.1
Final simplification12.1
herbie shell --seed 2019353 +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))