\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 r4665035 = alpha;
double r4665036 = beta;
double r4665037 = r4665035 + r4665036;
double r4665038 = r4665036 - r4665035;
double r4665039 = r4665037 * r4665038;
double r4665040 = 2.0;
double r4665041 = i;
double r4665042 = r4665040 * r4665041;
double r4665043 = r4665037 + r4665042;
double r4665044 = r4665039 / r4665043;
double r4665045 = r4665043 + r4665040;
double r4665046 = r4665044 / r4665045;
double r4665047 = 1.0;
double r4665048 = r4665046 + r4665047;
double r4665049 = r4665048 / r4665040;
return r4665049;
}
double f(double alpha, double beta, double i) {
double r4665050 = 1.0;
double r4665051 = beta;
double r4665052 = alpha;
double r4665053 = r4665051 - r4665052;
double r4665054 = 2.0;
double r4665055 = i;
double r4665056 = r4665052 + r4665051;
double r4665057 = fma(r4665054, r4665055, r4665056);
double r4665058 = r4665053 / r4665057;
double r4665059 = r4665054 + r4665057;
double r4665060 = r4665058 / r4665059;
double r4665061 = r4665060 * r4665056;
double r4665062 = r4665050 + r4665061;
double r4665063 = r4665062 / r4665054;
return r4665063;
}



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
Final simplification12.1
herbie shell --seed 2019168 +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))